@@ -101,17 +101,17 @@ PACKRATDATA=
101101YEARISTYPE = ./yearistype
102102
103103# Non-default libraries needed to link.
104- # Add -lintl if you want to use 'gettext' on Solaris.
105104LDLIBS =
106105
107106# Add the following to the end of the "CFLAGS=" line as needed.
108107# -DBIG_BANG=-9999999LL if the Big Bang occurred at time -9999999 (see zic.c)
109108# -DHAVE_DECL_ASCTIME_R=0 if <time.h> does not declare asctime_r
110109# -DHAVE_DIRECT_H if mkdir needs <direct.h> (MS-Windows)
111110# -DHAVE_DOS_FILE_NAMES if file names have drive specifiers etc. (MS-DOS)
112- # -DHAVE_GETTEXT=1 if 'gettext' works (GNU, Linux, Solaris); also see LDLIBS
111+ # -DHAVE_GETTEXT=1 if 'gettext' works (e.g., GNU/ Linux, FreeBSD, Solaris)
113112# -DHAVE_INCOMPATIBLE_CTIME_R=1 if your system's time.h declares
114- # ctime_r and asctime_r incompatibly with the POSIX standard (Solaris 8).
113+ # ctime_r and asctime_r incompatibly with the POSIX standard
114+ # (Solaris when _POSIX_PTHREAD_SEMANTICS is not defined).
115115# -DHAVE_INTTYPES_H=1 if you have a pre-C99 compiler with "inttypes.h"
116116# -DHAVE_LINK=0 if your system lacks a link function
117117# -DHAVE_LOCALTIME_R=0 if your system lacks a localtime_r function
@@ -356,14 +356,14 @@ HEADERS= tzfile.h private.h
356356NONLIBSRCS= zic.c zdump.c
357357NEWUCBSRCS= date.c strftime.c
358358SOURCES= $( HEADERS) $( LIBSRCS) $( NONLIBSRCS) $( NEWUCBSRCS) \
359- tzselect.ksh version workman.sh
359+ tzselect.ksh workman.sh
360360MANS= newctime.3 newstrftime.3 newtzset.3 time2posix.3 \
361361 tzfile.5 tzselect.8 zic.8 zdump.8
362362MANTXTS= newctime.3.txt newstrftime.3.txt newtzset.3.txt \
363363 time2posix.3.txt \
364364 tzfile.5.txt tzselect.8.txt zic.8.txt zdump.8.txt \
365365 date.1.txt
366- COMMON= CONTRIBUTING LICENSE Makefile NEWS README Theory
366+ COMMON= CONTRIBUTING LICENSE Makefile NEWS README Theory version
367367WEB_PAGES= tz-art.htm tz-how-to.html tz-link.htm
368368DOCS= $( MANS) date.1 $( MANTXTS) $( WEB_PAGES)
369369PRIMARY_YDATA= africa antarctica asia australasia \
@@ -434,16 +434,20 @@ INSTALL: ALL install date.1
434434 cp -f date.1 $( DESTDIR) $( MANDIR) /man1/.
435435
436436version: $( VERSION_DEPS)
437- { V=$$ (git describe --match ' [0-9][0-9][0-9][0-9][a-z]*' \
438- --abbrev=7 --dirty) || \
437+ { (type git) > /dev/null 2>&1 && \
438+ V=` git describe --match ' [0-9][0-9][0-9][0-9][a-z]*' \
439+ --abbrev=7 --dirty` || \
439440 V=$( VERSION) ; } && \
440- printf ' %s\n' " $$ V" > $@
441+ printf ' %s\n' " $$ V" > $@ .out
442+ mv $@ .out $@
441443
442444version.h: version
443- (echo ' static char const PKGVERSION[]="($(PACKAGE)) ";' && \
444- printf ' static char const TZVERSION[]="%s";\n' \
445- " $$ (cat version)" && \
446- echo ' static char const REPORT_BUGS_TO[]="$(BUGEMAIL)";' ) > $@
445+ VERSION= ` cat version` && printf ' %s\n' \
446+ ' static char const PKGVERSION[]="($(PACKAGE)) ";' \
447+ " static char const TZVERSION[]=\" $$ VERSION\" ;" \
448+ ' static char const REPORT_BUGS_TO[]="$(BUGEMAIL)";' \
449+ > $@ .out
450+ mv $@ .out $@
447451
448452zdump: $( TZDOBJS)
449453 $( CC) -o $@ $( CFLAGS) $( LDFLAGS) $( TZDOBJS) $( LDLIBS)
@@ -456,7 +460,8 @@ yearistype: yearistype.sh
456460 chmod +x yearistype
457461
458462leapseconds: $( LEAP_DEPS)
459- $( AWK) -f leapseconds.awk leap-seconds.list > $@
463+ $( AWK) -f leapseconds.awk leap-seconds.list > $@ .out
464+ mv $@ .out $@
460465
461466# Arguments to pass to submakes of install_data.
462467# They can be overridden by later submake arguments.
@@ -514,12 +519,14 @@ $(TZS_NEW): $(TDATA) zdump zic
514519 $( zic) -d tzs.dir $( TDATA)
515520 $( AWK) ' /^Link/{print $$1 "\t" $$2 "\t" $$3}' \
516521 $( TDATA) | LC_ALL=C sort > $@ .out
517- zones=$$ ($( AWK) -v wd=" $$ (pwd)" \
522+ wd= ` pwd` && \
523+ zones= ` $(AWK ) -v wd="$$wd" \
518524 '/^Zone/{print wd "/tzs.dir/" $$2}' $(TDATA ) \
519- | LC_ALL=C sort) && \
525+ | LC_ALL=C sort` && \
520526 ./zdump -i -c $( TZS_YEAR) $$ zones >> $@ .out
521- sed ' s,^TZ=".*tzs\.dir/,TZ=",' $@ .out > $@
527+ sed ' s,^TZ=".*tzs\.dir/,TZ=",' $@ .out > $@ .sed.out
522528 rm -fr tzs.dir $@ .out
529+ mv $@ .sed.out $@
523530
524531# If $(TZS) does not already exist (e.g., old-format tarballs), create it.
525532# If it exists but 'make check_tzs' fails, a maintainer should inspect the
@@ -538,30 +545,33 @@ date: $(DATEOBJS)
538545 $( CC) -o $@ $( CFLAGS) $( LDFLAGS) $( DATEOBJS) $( LDLIBS)
539546
540547tzselect: tzselect.ksh version
541- sed \
548+ VERSION= ` cat version ` && sed \
542549 -e ' s|#!/bin/bash|#!$(KSHELL)|g' \
543550 -e ' s|AWK=[^}]*|AWK=$(AWK)|g' \
544551 -e ' s|\(PKGVERSION\)=.*|\1=' \' ' ($(PACKAGE)) ' \' ' |' \
545552 -e ' s|\(REPORT_BUGS_TO\)=.*|\1=$(BUGEMAIL)|' \
546553 -e ' s|TZDIR=[^}]*|TZDIR=$(TZDIR)|' \
547- -e ' s|\(TZVERSION\)=.*|\1=' " $$ (cat version)" ' |' \
548- < $@ .ksh > $@
549- chmod +x $@
554+ -e ' s|\(TZVERSION\)=.*|\1=' " $$ VERSION" ' |' \
555+ < $@ .ksh > $@ .out
556+ chmod +x $@ .out
557+ mv $@ .out $@
550558
551559check: check_character_set check_white_space check_links check_sorted \
552560 check_tables check_tzs check_web
553561
554562check_character_set: $( ENCHILADA)
555563 LC_ALL=en_US.utf8 && export LC_ALL && \
556564 sharp=' #' && \
557- ! grep -Env $( SAFE_LINE) Makefile $( MANS) date.1 $( MANTXTS) \
558- $( MISC) $( SOURCES) $( WEB_PAGES) && \
565+ ! grep -Env $( SAFE_LINE) $( MANS) date.1 $( MANTXTS) \
566+ $( MISC) $( SOURCES) $( WEB_PAGES) \
567+ CONTRIBUTING LICENSE Makefile README version && \
559568 ! grep -Env $( SAFE_SHARP_LINE) $( TDATA) backzone \
560569 leapseconds yearistype.sh zone.tab && \
561570 ! grep -Env $( OK_LINE) $( ENCHILADA)
562571
563572check_white_space: $( ENCHILADA)
564- ! grep -En ' ' $( TAB_CHAR) " |$$ (printf '[\f\r\v]')" $( ENCHILADA)
573+ patfmt=' \t|[\f\r\v]' && pat= ` printf "$$patfmt\\n"` && \
574+ ! grep -En " $$ pat" $( ENCHILADA)
565575 ! grep -n ' [[:space:]]$$' $( ENCHILADA)
566576
567577CHECK_CC_LIST = { n = split($$ 1,a,/,/); for (i=2; i< =n; i++) print a[1], a[i]; }
@@ -619,7 +629,8 @@ zdump.8.txt: zdump.8
619629zic.8.txt: zic.8
620630
621631$( MANTXTS) : workman.sh
622- LC_ALL=C sh workman.sh ` expr $@ : '\(.*\)\.txt$$'` > $@
632+ LC_ALL=C sh workman.sh ` expr $@ : '\(.*\)\.txt$$'` > $@ .out
633+ mv $@ .out $@
623634
624635# Set the time stamps to those of the git repository, if available,
625636# and if the files have not changed since then.
@@ -630,7 +641,8 @@ $(MANTXTS): workman.sh
630641# to be the maximum of the files it depends on.
631642set-timestamps.out: $( ENCHILADA)
632643 rm -f $@
633- if files=` git ls-files $( ENCHILADA) ` && \
644+ if (type git) > /dev/null 2>&1 && \
645+ files=` git ls-files $( ENCHILADA) ` && \
634646 touch -md @1 test.out; then \
635647 rm -f test.out && \
636648 for file in $$ files; do \
@@ -647,8 +659,8 @@ set-timestamps.out: $(ENCHILADA)
647659 touch -cmr ` ls -t $$ file workman.sh | sed 1q` $$ file.txt || \
648660 exit ; \
649661 done
650- touch -cmr $$ ( ls -t $( TZS_DEPS) | sed 1q) $( TZS)
651- touch -cmr $$ ( ls -t $( VERSION_DEPS) | sed 1q) version
662+ touch -cmr ` ls -t $(TZS_DEPS ) | sed 1q` $( TZS)
663+ touch -cmr ` ls -t $(VERSION_DEPS ) | sed 1q` version
652664 touch $@
653665
654666# The zics below ensure that each data file can stand on its own.
@@ -672,11 +684,12 @@ check_time_t_alternatives:
672684 else \
673685 quiet_option=' ' ; \
674686 fi && \
687+ wd= ` pwd` && \
675688 zones= ` $(AWK ) '/^[^# ]/ { print $$3 }' <zone1970.tab` && \
676689 for type in $(TIME_T_ALTERNATIVES); do \
677690 mkdir -p time_t.dir/$$type && \
678691 $(MAKE) clean_misc && \
679- $(MAKE) TOPDIR=$$(pwd) /time_t.dir/$$type \
692+ $(MAKE) TOPDIR="$$wd /time_t.dir/$$type" \
680693 CFLAGS='$(CFLAGS) -Dtime_tz='"'$$type'" \
681694 REDO='$(REDO)' \
682695 install && \
@@ -700,33 +713,38 @@ check_time_t_alternatives:
700713 done
701714 rm -fr time_t.dir
702715
703- tarballs signatures : version
704- $(MAKE ) VERSION=" $$ (cat version)" $@ _version
716+ tarballs traditional_tarballs signatures traditional_signatures : version
717+ VERSION=` cat version` && \
718+ $(MAKE ) VERSION=" $$ VERSION" $@ _version
705719
706- tarballs_version : tzcode$(VERSION ) .tar.gz tzdata$(VERSION ) .tar.gz \
707- tzdb-$(VERSION ) .tar.lz
720+ tarballs_version : traditional_tarballs_version tzdb-$(VERSION ) .tar.lz
721+ traditional_tarballs_version : \
722+ tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz
723+ signatures_version : traditional_signatures_version tzdb-$(VERSION ) .tar.lz.asc
724+ traditional_signatures_version : \
725+ tzcode$(VERSION).tar.gz.asc tzdata$(VERSION).tar.gz.asc \
708726
709727tzcode$(VERSION ) .tar.gz : set-timestamps.out
710728 LC_ALL=C && export LC_ALL && \
711729 tar $(TARFLAGS ) -cf - \
712730 $(COMMON ) $(DOCS ) $(SOURCES ) | \
713- gzip $(GZIPFLAGS ) > $@
731+ gzip $(GZIPFLAGS ) > $@ .out
732+ mv $@ .out $@
714733
715734tzdata$(VERSION ) .tar.gz : set-timestamps.out
716735 LC_ALL=C && export LC_ALL && \
717736 tar $(TARFLAGS ) -cf - $(COMMON ) $(DATA ) $(MISC ) | \
718- gzip $(GZIPFLAGS ) > $@
737+ gzip $(GZIPFLAGS ) > $@ .out
738+ mv $@ .out $@
719739
720740tzdb-$(VERSION ) .tar.lz : set-timestamps.out
721741 rm -fr tzdb-$(VERSION )
722742 mkdir tzdb-$(VERSION )
723743 ln $(ENCHILADA ) tzdb-$(VERSION )
724- touch -cmr $$( ls -t tzdb-$(VERSION ) /* | sed 1q ) tzdb-$(VERSION )
744+ touch -cmr ` ls -t tzdb-$( VERSION) /* | sed 1q` tzdb-$(VERSION )
725745 LC_ALL=C && export LC_ALL && \
726- tar $(TARFLAGS ) -cf - tzdb-$(VERSION ) | lzip -9 > $@
727-
728- signatures_version : tzcode$(VERSION ) .tar.gz.asc tzdata$(VERSION ) .tar.gz.asc \
729- tzdb-$(VERSION ) .tar.lz.asc
746+ tar $(TARFLAGS ) -cf - tzdb-$(VERSION ) | lzip -9 > $@ .out
747+ mv $@ .out $@
730748
731749tzcode$(VERSION ) .tar.gz.asc : tzcode$(VERSION ) .tar.gz
732750 gpg --armor --detach-sign $?
0 commit comments