@@ -196,6 +196,7 @@ PACKRATLIST=
196196UTF8_LOCALE = en_US.utf8
197197
198198# Non-default libraries needed to link.
199+ # On some hosts, this should have -lintl unless CFLAGS has -DHAVE_GETTEXT=0.
199200LDLIBS =
200201
201202# Add the following to the end of the "CFLAGS=" line as needed to override
@@ -208,14 +209,18 @@ LDLIBS=
208209# For example, N is 252460800 on AmigaOS.
209210# -DHAVE_DECL_ASCTIME_R=0 if <time.h> does not declare asctime_r
210211# -DHAVE_DECL_ENVIRON if <unistd.h> declares 'environ'
212+ # -DHAVE_DECL_TIMEGM=0 if <time.h> does not declare timegm
211213# -DHAVE_DIRECT_H if mkdir needs <direct.h> (MS-Windows)
212- # -DHAVE_GENERIC=0 if _Generic does not work
213- # -DHAVE_GETRANDOM if getgrandom works (e.g., GNU/Linux)*
214- # -DHAVE_GETTEXT if 'gettext' works (e.g., GNU/Linux, FreeBSD, Solaris)*
214+ # -DHAVE_GENERIC=0 if _Generic does not work*
215+ # -DHAVE_GETRANDOM if getrandom works (e.g., GNU/Linux),
216+ # -DHAVE_GETRANDOM=0 to avoid using getrandom
217+ # -DHAVE_GETTEXT if gettext works (e.g., GNU/Linux, FreeBSD, Solaris),
218+ # where LDLIBS also needs to contain -lintl on some hosts;
219+ # -DHAVE_GETTEXT=0 to avoid using gettext
215220# -DHAVE_INCOMPATIBLE_CTIME_R if your system's time.h declares
216221# ctime_r and asctime_r incompatibly with the POSIX standard
217222# (Solaris when _POSIX_PTHREAD_SEMANTICS is not defined).
218- # -DHAVE_INTTYPES_H if you have a non-C99 compiler with <inttypes.h>
223+ # -DHAVE_INTTYPES_H=0 if <inttypes.h> does not work*
219224# -DHAVE_LINK=0 if your system lacks a link function
220225# -DHAVE_LOCALTIME_R=0 if your system lacks a localtime_r function
221226# -DHAVE_LOCALTIME_RZ=0 if you do not want zdump to use localtime_rz
@@ -225,15 +230,17 @@ LDLIBS=
225230# functions like 'link' or variables like 'tzname' required by POSIX
226231# -DHAVE_SETENV=0 if your system lacks the setenv function
227232# -DHAVE_SNPRINTF=0 if your system lacks the snprintf function
228- # -DHAVE_STDINT_H if you have a non-C99 compiler with <stdint.h>*
233+ # -DHAVE_STDCKDINT_H=0 if neither <stdckdint.h> nor substitutes like
234+ # __builtin_add_overflow work*
235+ # -DHAVE_STDINT_H=0 if <stdint.h> does not work*
229236# -DHAVE_STRFTIME_L if <time.h> declares locale_t and strftime_l
230237# -DHAVE_STRDUP=0 if your system lacks the strdup function
231238# -DHAVE_STRTOLL=0 if your system lacks the strtoll function
232239# -DHAVE_SYMLINK=0 if your system lacks the symlink function
233- # -DHAVE_SYS_STAT_H=0 if your compiler lacks a <sys/stat.h>*
240+ # -DHAVE_SYS_STAT_H=0 if <sys/stat.h> does not work *
234241# -DHAVE_TZSET=0 if your system lacks a tzset function
235- # -DHAVE_UNISTD_H=0 if your compiler lacks a <unistd.h>*
236- # -DHAVE_UTMPX_H=0 if your compiler lacks a <utmpx.h>*
242+ # -DHAVE_UNISTD_H=0 if <unistd.h> does not work *
243+ # -DHAVE_UTMPX_H=0 if <utmpx.h> does not work *
237244# -Dlocale_t=XXX if your system uses XXX instead of locale_t
238245# -DRESERVE_STD_EXT_IDS if your platform reserves standard identifiers
239246# with external linkage, e.g., applications cannot define 'localtime'.
@@ -280,7 +287,7 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \
280287 -Wdeclaration-after-statement -Wdouble-promotion \
281288 -Wduplicated-branches -Wduplicated-cond \
282289 -Wformat=2 -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation \
283- -Winit-self -Wlogical-op \
290+ -Wimplicit-fallthrough=5 - Winit-self -Wlogical-op \
284291 -Wmissing-declarations -Wmissing-prototypes -Wnested-externs \
285292 -Wnull-dereference \
286293 -Wold-style-definition -Woverlength-strings -Wpointer-arith \
@@ -293,7 +300,7 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \
293300 -Wtrampolines -Wundef -Wuninitialized -Wunused-macros -Wuse-after-free=3 \
294301 -Wvariadic-macros -Wvla -Wwrite-strings \
295302 -Wno-address -Wno-format-nonliteral -Wno-sign-compare \
296- -Wno-type-limits -Wno-unused-parameter
303+ -Wno-type-limits
297304#
298305# If your system has a "GMT offset" field in its "struct tm"s
299306# (or if you decide to add such a field in your system's "time.h" file),
@@ -340,14 +347,11 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \
340347# If you want functions that were inspired by early versions of X3J11's work,
341348# add
342349# -DSTD_INSPIRED
343- # to the end of the "CFLAGS=" line. This arranges for the functions
344- # "offtime", "timelocal", "timegm", "timeoff",
345- # "posix2time", and "time2posix" to be added to the time conversion library.
350+ # to the end of the "CFLAGS=" line. This arranges for the following
351+ # functions to be added to the time conversion library.
346352# "offtime" is like "gmtime" except that it accepts a second (long) argument
347353# that gives an offset to add to the time_t when converting it.
348354# "timelocal" is equivalent to "mktime".
349- # "timegm" is like "timelocal" except that it turns a struct tm into
350- # a time_t using UT (rather than local time as "timelocal" does).
351355# "timeoff" is like "timegm" except that it accepts a second (long) argument
352356# that gives an offset to use when converting to a time_t.
353357# "posix2time" and "time2posix" are described in an included manual page.
@@ -495,6 +499,11 @@ TARFLAGS= `if tar $(GNUTARFLAGS) --version >/dev/null 2>&1; \
495499# Flags to give 'gzip' when making a distribution.
496500GZIPFLAGS= -9n
497501
502+ # When comparing .tzs files, use GNU diff's -F'^TZ=' option if supported.
503+ # This makes it easier to see which Zone has been affected.
504+ DIFF_TZS= diff -u$$ (! diff -u -F' ^TZ=' - - <> /dev/null >&0 2>&1 \
505+ || echo ' -F^TZ=' )
506+
498507# ##############################################################################
499508
500509# MAKE= make
@@ -773,7 +782,8 @@ tzselect: tzselect.ksh version
773782 chmod +x $@ .out
774783 mv $@ .out $@
775784
776- check: check_character_set check_white_space check_links \
785+ check: check_back check_mild
786+ check_mild: check_character_set check_white_space check_links \
777787 check_name_lengths check_slashed_abbrs check_sorted \
778788 check_tables check_web check_ziguard check_zishrink check_tzs
779789
@@ -824,16 +834,19 @@ check_slashed_abbrs: $(TDATA_TO_CHECK)
824834CHECK_CC_LIST = { n = split($$ 1,a,/,/); for (i=2; i< =n; i++) print a[1], a[i]; }
825835
826836check_sorted: backward backzone iso3166.tab zone.tab zone1970.tab
827- $( AWK) ' /^Link/ {printf "%.5d %s\n", g, $$3} /^$$ / {g++}' \
837+ $( AWK) ' /^Link/ {printf "%.5d %s\n", g, $$3} !/. / {g++}' \
828838 backward | LC_ALL=C sort -cu
829839 $( AWK) ' /^Zone/ {print $$2}' backzone | LC_ALL=C sort -cu
830840 touch $@
831841
832- check_links : checklinks.awk $( TDATA_TO_CHECK) tzdata.zi
842+ check_back : checklinks.awk $( TDATA_TO_CHECK)
833843 $( AWK) \
834844 -v DATAFORM=$( DATAFORM) \
835845 -v backcheck=backward \
836846 -f checklinks.awk $( TDATA_TO_CHECK)
847+ touch $@
848+
849+ check_links: checklinks.awk tzdata.zi
837850 $( AWK) \
838851 -v DATAFORM=$( DATAFORM) \
839852 -f checklinks.awk tzdata.zi
@@ -849,7 +862,7 @@ check_tables: checktab.awk $(YDATA) backward $(ZONETABLES)
849862
850863check_tzs: $( TZS) $( TZS_NEW)
851864 if test -s $( TZS) ; then \
852- diff -u $( TZS) $( TZS_NEW) ; \
865+ $( DIFF_TZS ) $( TZS) $( TZS_NEW) ; \
853866 else \
854867 cp $( TZS_NEW) $( TZS) ; \
855868 fi
@@ -1050,7 +1063,7 @@ $(TIME_T_ALTERNATIVES): $(VERSION_DEPS)
10501063 TZS_YEAR="$$range" TZS_CUTOFF_FLAG="-t $$range" \
1051106410521065 to$$range.tzs) && \
1053- diff -u $(TIME_T_ALTERNATIVES_HEAD).dir/to$$range.tzs \
1066+ $(DIFF_TZS) $(TIME_T_ALTERNATIVES_HEAD).dir/to$$range.tzs \
10541067 [email protected] /to$$range.tzs && \ 10551068 if diff -q Makefile Makefile 2>/dev/null; then \
10561069 quiet_option=' -q' ; \
@@ -1220,7 +1233,7 @@ zdump.o: version.h
12201233zic.o: private.h tzfile.h version.h
12211234
12221235.PHONY: ALL INSTALL all
1223- .PHONY: check check_time_t_alternatives
1236+ .PHONY: check check_mild check_time_t_alternatives
12241237.PHONY: check_web check_zishrink
12251238.PHONY: clean clean_misc dummy.zd force_tzs
12261239.PHONY: install install_data maintainer-clean names
0 commit comments