Deleted Added
full compact
12a13,21
> # Choose source data features. To get new features right away, use:
> # DATAFORM= vanguard
> # To wait a while before using new features, to give downstream users
> # time to upgrade zic (the default), use:
> # DATAFORM= main
> # To wait even longer for new features, use:
> # DATAFORM= rearguard
> DATAFORM= main
>
28c37
< # (When a POSIX-style environment variable is handled, the rules in the
---
> # When a POSIX-style environment variable is handled, the rules in the
31c40
< # summer time.)
---
> # daylight saving time.
191a201
> # -DHAVE_STRTOLL=0 if your system lacks the strtoll function
197a208,209
> # -DRESERVE_STD_EXT_IDS if your platform reserves standard identifiers
> # with external linkage, e.g., applications cannot define 'localtime'.
198a211,212
> # -DSUPPRESS_TZDIR to not prepend TZDIR to file names; this has
> # security implications and is not recommended for general use
396a411,415
> # Non-ASCII non-letters that OK_CHAR allows, as these characters are
> # useful in commentary. XEmacs 21.5.34 displays them correctly,
> # presumably because they are Latin-1.
> UNUSUAL_OK_CHARSET= ����������
>
398,403c417,423
< # This is the same as SAFE_CHAR, except that multibyte letters are
< # also allowed so that commentary can contain people's names and quote
< # non-English sources. For non-letters the sources are limited to
< # ASCII renderings for the convenience of maintainers whose text editors
< # mishandle UTF-8 by default (e.g., XEmacs 21.4.22).
< OK_CHAR= '[][:alpha:]'$(SAFE_CHARSET)'-]'
---
> # This is the same as SAFE_CHAR, except that UNUSUAL_OK_CHARSET and
> # multibyte letters are also allowed so that commentary can contain a
> # few safe symbols and people's names and can quote non-English sources.
> # Other non-letters are limited to ASCII renderings for the
> # convenience of maintainers using XEmacs 21.5.34, which by default
> # mishandles Unicode characters U+0100 and greater.
> OK_CHAR= '[][:alpha:]$(UNUSUAL_OK_CHARSET)'$(SAFE_CHARSET)'-]'
465c485,486
< TZDATA_ZI_DEPS= zishrink.awk version $(TDATA) $(PACKRATDATA)
---
> TZDATA_ZI_DEPS= ziguard.awk zishrink.awk version $(TDATA) $(PACKRATDATA)
> DSTDATA_ZI_DEPS= ziguard.awk $(TDATA) $(PACKRATDATA)
468c489,490
< AWK_SCRIPTS= checklinks.awk checktab.awk leapseconds.awk zishrink.awk
---
> AWK_SCRIPTS= checklinks.awk checktab.awk leapseconds.awk \
> ziguard.awk zishrink.awk
502c524,525
< all: tzselect yearistype zic zdump libtz.a $(TABDATA)
---
> all: tzselect yearistype zic zdump libtz.a $(TABDATA) \
> vanguard.zi main.zi rearguard.zi
537,538c560,565
< # This file can be tailored by setting BACKWARD, PACKRATDATA, etc.
< tzdata.zi: $(TZDATA_ZI_DEPS)
---
> # These files can be tailored by setting BACKWARD, PACKRATDATA, etc.
> vanguard.zi main.zi rearguard.zi: $(DSTDATA_ZI_DEPS)
> $(AWK) -v outfile='$@' -f ziguard.awk $(TDATA) $(PACKRATDATA) \
> >$@.out
> mv $@.out $@
> tzdata.zi: $(DATAFORM).zi version
541c568
< $(TDATA) $(PACKRATDATA) >$@.out
---
> $(DATAFORM).zi >$@.out
616a644,651
> # dummy.zd is not a real file; it is mentioned here only so that the
> # top-level 'make' does not have a syntax error.
> ZDS = dummy.zd
> # Rule used only by submakes invoked by the $(TZS_NEW) rule.
> # It is separate so that GNU 'make -j' can run instances in parallel.
> $(ZDS): zdump
> ./zdump -i -c $(TZS_YEAR) '$(wd)/'$$(expr $@ : '\(.*\).zd') >$@
>
618c653,654
< mkdir -p tzs.dir
---
> rm -fr tzs.dir
> mkdir tzs.dir
623,629c659,666
< zones=`$(AWK) -v wd="$$wd" \
< '/^Z/{print wd "/tzs.dir/" $$2}' tzdata.zi \
< | LC_ALL=C sort` && \
< ./zdump -i -c $(TZS_YEAR) $$zones >>$@.out
< sed 's,^TZ=".*tzs\.dir/,TZ=",' $@.out >$@.sed.out
< rm -fr tzs.dir $@.out
< mv $@.sed.out $@
---
> set x `$(AWK) '/^Z/{print "tzs.dir/" $$2 ".zd"}' tzdata.zi \
> | LC_ALL=C sort -t . -k 2,2` && \
> shift && \
> ZDS=$$* && \
> $(MAKE) wd="$$wd" TZS_YEAR=$(TZS_YEAR) ZDS="$$ZDS" $$ZDS && \
> sed 's,^TZ=".*tzs\.dir/,TZ=",' $$ZDS >>$@.out
> rm -fr tzs.dir
> mv $@.out $@
672c709
< CONTRIBUTING LICENSE Makefile README \
---
> CONTRIBUTING LICENSE README \
673a711,712
> ! grep -Env $(SAFE_LINE)'|^UNUSUAL_OK_CHARSET='$(OK_CHAR)'*$$' \
> Makefile && \
705c744
< check_links: checklinks.awk $(TDATA_TO_CHECK)
---
> check_links: checklinks.awk $(TDATA_TO_CHECK) tzdata.zi
723,724c762,765
< # Check that tzdata.zi generates the same binary data that its sources do.
< check_zishrink: tzdata.zi zic leapseconds $(PACKRATDATA) $(TDATA)
---
> # Check that zishrink.awk does not alter the data, and that ziguard.awk
> # preserves main-format data.
> check_zishrink: zic leapseconds $(PACKRATDATA) $(TDATA) \
> $(DATAFORM).zi tzdata.zi
726c767,768
< mkdir -p time_t.dir/$$type time_t.dir/$$type-shrunk && \
---
> mkdir -p time_t.dir/$$type time_t.dir/$$type-t \
> time_t.dir/$$type-shrunk && \
731,733c773,781
< $(ZIC) $$leap -d time_t.dir/$$type $(TDATA) && \
< $(AWK) '/^Rule/' $(TDATA) | \
< $(ZIC) $$leap -d time_t.dir/$$type - $(PACKRATDATA) && \
---
> $(ZIC) $$leap -d time_t.dir/$$type $(DATAFORM).zi && \
> case $(DATAFORM) in \
> main) \
> $(ZIC) $$leap -d time_t.dir/$$type-t $(TDATA) && \
> $(AWK) '/^Rule/' $(TDATA) | \
> $(ZIC) $$leap -d time_t.dir/$$type-t - \
> $(PACKRATDATA) && \
> diff -r time_t.dir/$$type time_t.dir/$$type-t;; \
> esac && \
743c791
< rm -fr *.dir tzdata.zi tzdb-*/ $(TZS_NEW)
---
> rm -fr *.dir *.zi tzdb-*/ $(TZS_NEW)
858a907,909
> # These *_version rules are intended for use if VERSION is set by some
> # other means. Ordinarily these rules are used only by the above
> # non-_version rules, which set VERSION on the 'make' command line.
920c971
< .PHONY: check check_character_set check_links
---
> .PHONY: check check_character_set check_links check_name_lengths
924c975
< .PHONY: clean clean_misc force_tzs
---
> .PHONY: clean clean_misc dummy.zd force_tzs
928c979,982
< .PHONY: tarballs tarballs_version typecheck
---
> .PHONY: tarballs tarballs_version
> .PHONY: traditional_signatures traditional_signatures_version
> .PHONY: traditional_tarballs traditional_tarballs_version
> .PHONY: typecheck
929a984
> .PHONY: $(ZDS)