Le jeudi 27 août 2015 à 15:52 +0200, Andreas Bießmann a écrit : > On 08/27/2015 03:03 PM, Paul Kocialkowski wrote: > > Le jeudi 27 août 2015 à 11:30 +0200, Andreas Bießmann a écrit : > > > >> Changes in v2: > >> * check for '-u' and '-d "@0"' switch rather than for the GNU variant > >> > >> Makefile | 15 ++++++++++++--- > >> 1 file changed, 12 insertions(+), 3 deletions(-) > >> > >> diff --git a/Makefile b/Makefile > >> index b9b2375..b797e38 100644 > >> --- a/Makefile > >> +++ b/Makefile > >> @@ -346,6 +346,10 @@ PERL = perl > >> PYTHON = python > >> DTC = dtc > >> CHECK = sparse > >> +DATE := $(foreach date,gdate date.gnu date, \ > >> + $(shell _date=`which $(date)`; \ > >> + $${_date} -u -d "@0" >/dev/null 2>&1; \ > >> + test $$? -eq 0 && echo $${_date})) > > > > First, I don't understand why you need to call date with the full path: > > if which can find it, then calling the binary without its full path > > should do just as well, right? > > You'r right. > > > Then, correct me if I'm wrong, but calling test and using && is > > overkill, you could simply do: $${_date} -u -d "@0" >/dev/null 2>&1 && > > echo $${_date} > > Also true. > > > So in the end, the whole line would look like: > > > > DATE := $(foreach date,gdate date.gnu date, \ > > $($${date} -u -d "@0" >/dev/null 2>&1 \ > > && echo $${date})) > > > > Let me know what you think (and please test it as well). > > That should work. I wonder however why we don't include this snippet in > the filechk_timestamp.h script directly. In fact the $(DATE) (a date > that support -d '@0' switch) is just used there, so why clobber the > Makefile with it?
I'm fine with both options, but your suggestion also makes it more obvious why we're doing that check at all. > ---8<--- > define filechk_timestamp.h > (if test -n "$${SOURCE_DATE_EPOCH}"; then \ > date=""; \ > for _date in gdate date.gnu date; do \ > $${_date} -u -d "$${SOURCE_DATE}" >/dev/null 2>&1 && \ > date="$${_date}"; \ > done; \ > if test -n "$${date}"; then \ > SOURCE_DATE="@$${SOURCE_DATE_EPOCH}"; \ > LC_ALL=C $${date} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_DATE "%b > %d %C%y"'; \ > LC_ALL=C $${date} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TIME "%T"'; \ > LC_ALL=C $${date} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TZ "%z"'; \ > else \ > return 42; \ > fi; \ > else \ > LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"'; \ > LC_ALL=C date +'#define U_BOOT_TIME "%T"'; \ > LC_ALL=C date +'#define U_BOOT_TZ "%z"'; \ > fi) > endef > --->8--- > > > >> CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \ > >> -Wbitwise -Wno-return-void -D__CHECK_ENDIAN__ $(CF) > >> @@ -1281,9 +1285,9 @@ endef > >> define filechk_timestamp.h > >> (if test -n "$${SOURCE_DATE_EPOCH}"; then \ > >> SOURCE_DATE="@$${SOURCE_DATE_EPOCH}"; \ > >> - LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_DATE "%b > >> %d %C%y"'; \ > >> - LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TIME > >> "%T"'; \ > >> - LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TZ > >> "%z"'; \ > >> + LC_ALL=C $(DATE) -u -d "$${SOURCE_DATE}" +'#define U_BOOT_DATE > >> "%b %d %C%y"'; \ > >> + LC_ALL=C $(DATE) -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TIME > >> "%T"'; \ > >> + LC_ALL=C $(DATE) -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TZ > >> "%z"'; \ > >> else \ > >> LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"'; \ > >> LC_ALL=C date +'#define U_BOOT_TIME "%T"'; \ > >> @@ -1295,6 +1299,11 @@ $(version_h): include/config/uboot.release FORCE > >> $(call filechk,version.h) > >> > >> $(timestamp_h): $(srctree)/Makefile FORCE > >> +ifneq ($(strip $(SOURCE_DATE_EPOCH)),) > >> +ifeq ($(strip $(DATE)),) > >> + $(error "Your gdate/date.gnu/date does not support the '-u' and '-d' > >> switches like GNU date does!") > >> +endif > >> +endif > >> $(call filechk,timestamp.h) > >> > >> # > >> --------------------------------------------------------------------------- > > >
signature.asc
Description: This is a digitally signed message part
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot