1 # Make and install tzdb code and data.
3 # This file is in the public domain, so clarified as of
4 # 2009-05-17 by Arthur David Olson.
6 # Package name for the code distribution.
9 # Version number for the distribution, overridden in the 'tarballs' rule below.
12 # Email address for bug reports.
15 # Choose source data features. To get new features right away, use:
17 # To wait a while before using new features, to give downstream users
18 # time to upgrade zic (the default), use:
20 # To wait even longer for new features, use:
24 # Change the line below for your timezone (after finding the one you want in
25 # one of the $(TDATA) source files, or adding it to a source file).
26 # Alternatively, if you discover you've got the wrong timezone, you can just
31 # to get a list of the values you can use for LOCALTIME.
35 # If you want something other than Eastern United States time as a template
36 # for handling POSIX-style timezone environment variables,
37 # change the line below (after finding the timezone you want in the
38 # one of the $(TDATA) source files, or adding it to a source file).
39 # When a POSIX-style environment variable is handled, the rules in the
40 # template file are used to determine "spring forward" and "fall back" days and
41 # times; the environment variable itself specifies UT offsets of standard and
42 # daylight saving time.
43 # Alternatively, if you discover you've got the wrong timezone, you can just
48 # to get a list of the values you can use for POSIXRULES.
49 # If you want POSIX compatibility, use "America/New_York".
51 POSIXRULES
= America
/New_York
53 # Also see TZDEFRULESTRING below, which takes effect only
54 # if the time zone files cannot be accessed.
57 # Installation locations.
59 # The defaults are suitable for Debian, except that if REDO is
60 # posix_right or right_posix then files that Debian puts under
61 # /usr/share/zoneinfo/posix and /usr/share/zoneinfo/right are instead
62 # put under /usr/share/zoneinfo-posix and /usr/share/zoneinfo-leaps,
63 # respectively. Problems with the Debian approach are discussed in
64 # the commentary for the right_posix rule (below).
66 # Destination directory, which can be used for staging.
67 # 'make DESTDIR=/stage install' installs under /stage (e.g., to
68 # /stage/etc/localtime instead of to /etc/localtime). Files under
69 # /stage are not intended to work as-is, but can be copied by hand to
70 # the root directory later. If DESTDIR is empty, 'make install' does
71 # not stage, but installs directly into production locations.
74 # Everything is installed into subdirectories of TOPDIR, and used there.
75 # TOPDIR should be empty (meaning the root directory),
76 # or a directory name that does not end in "/".
77 # TOPDIR should be empty or an absolute name unless you're just testing.
80 # The default local timezone is taken from the file TZDEFAULT.
81 TZDEFAULT
= $(TOPDIR
)/etc
/localtime
83 # The subdirectory containing installed program and data files, and
84 # likewise for installed files that can be shared among architectures.
85 # These should be relative file names.
87 USRSHAREDIR
= $(USRDIR
)/share
89 # "Compiled" timezone information is placed in the "TZDIR" directory
90 # (and subdirectories).
91 # TZDIR_BASENAME should not contain "/" and should not be ".", ".." or empty.
92 TZDIR_BASENAME
= zoneinfo
93 TZDIR
= $(TOPDIR
)/$(USRSHAREDIR
)/$(TZDIR_BASENAME
)
95 # The "tzselect" and (if you do "make INSTALL") "date" commands go in:
96 BINDIR
= $(TOPDIR
)/$(USRDIR
)/bin
98 # The "zdump" command goes in:
101 # The "zic" command goes in:
102 ZICDIR
= $(TOPDIR
)/$(USRDIR
)/sbin
104 # Manual pages go in subdirectories of. . .
105 MANDIR
= $(TOPDIR
)/$(USRSHAREDIR
)/man
107 # Library functions are put in an archive in LIBDIR.
108 LIBDIR
= $(TOPDIR
)/$(USRDIR
)/lib
111 # Types to try, as an alternative to time_t.
112 TIME_T_ALTERNATIVES
= $(TIME_T_ALTERNATIVES_HEAD
) $(TIME_T_ALTERNATIVES_TAIL
)
113 TIME_T_ALTERNATIVES_HEAD
= int64_t
114 TIME_T_ALTERNATIVES_TAIL
= int32_t uint32_t uint64_t
116 # What kind of TZif data files to generate.
117 # (TZif is the binary time zone data format that zic generates.)
118 # If you want only POSIX time, with time values interpreted as
119 # seconds since the epoch (not counting leap seconds), use
121 # below. If you want only "right" time, with values interpreted
122 # as seconds since the epoch (counting leap seconds), use
124 # below. If you want both sets of data available, with leap seconds not
125 # counted normally, use
127 # below. If you want both sets of data available, with leap seconds counted
130 # below. POSIX mandates that leap seconds not be counted; for compatibility
131 # with it, use "posix_only" or "posix_right". Use POSIX time on systems with
132 # leap smearing; this can work better than unsmeared "right" time with
133 # applications that are not leap second aware, and is closer to unsmeared
134 # "right" time than unsmeared POSIX time is (e.g., 0.5 vs 1.0 s max error).
138 # To install data in text form that has all the information of the TZif data,
139 # (optionally incorporating leap second information), use
140 # TZDATA_TEXT= tzdata.zi leapseconds
141 # To install text data without leap second information (e.g., because
142 # REDO='posix_only'), use
143 # TZDATA_TEXT= tzdata.zi
144 # To avoid installing text data, use
147 TZDATA_TEXT
= leapseconds tzdata.zi
149 # For backward-compatibility links for old zone names, use
151 # If you also want the link US/Pacific-New, even though it is confusing
152 # and is planned to be removed from the database eventually, use
153 # BACKWARD= backward pacificnew
154 # To omit these links, use
159 # If you want out-of-scope and often-wrong data from the file 'backzone', use
160 # PACKRATDATA= backzone
161 # To omit this data, use
166 # The name of a locale using the UTF-8 encoding, used during self-tests.
167 # The tests are skipped if the name does not appear to work on this system.
169 UTF8_LOCALE
= en_US.utf8
171 # Since "." may not be in PATH...
173 YEARISTYPE
= .
/yearistype
175 # Non-default libraries needed to link.
178 # Add the following to the end of the "CFLAGS=" line as needed to override
179 # defaults specified in the source code. "-DFOO" is equivalent to "-DFOO=1".
180 # -DDEPRECATE_TWO_DIGIT_YEARS for optional runtime warnings about strftime
181 # formats that generate only the last two digits of year numbers
182 # -DEPOCH_LOCAL if the 'time' function returns local time not UT
183 # -DEPOCH_OFFSET=N if the 'time' function returns a value N greater
184 # than what POSIX specifies, assuming local time is UT.
185 # For example, N is 252460800 on AmigaOS.
186 # -DHAVE_DECL_ASCTIME_R=0 if <time.h> does not declare asctime_r
187 # -DHAVE_DECL_ENVIRON if <unistd.h> declares 'environ'
188 # -DHAVE_DIRECT_H if mkdir needs <direct.h> (MS-Windows)
189 # -DHAVE_GENERIC=0 if _Generic does not work
190 # -DHAVE_GETTEXT if 'gettext' works (e.g., GNU/Linux, FreeBSD, Solaris)
191 # -DHAVE_INCOMPATIBLE_CTIME_R if your system's time.h declares
192 # ctime_r and asctime_r incompatibly with the POSIX standard
193 # (Solaris when _POSIX_PTHREAD_SEMANTICS is not defined).
194 # -DHAVE_INTTYPES_H if you have a non-C99 compiler with <inttypes.h>
195 # -DHAVE_LINK=0 if your system lacks a link function
196 # -DHAVE_LOCALTIME_R=0 if your system lacks a localtime_r function
197 # -DHAVE_LOCALTIME_RZ=0 if you do not want zdump to use localtime_rz
198 # localtime_rz can make zdump significantly faster, but is nonstandard.
199 # -DHAVE_POSIX_DECLS=0 if your system's include files do not declare
200 # functions like 'link' or variables like 'tzname' required by POSIX
201 # -DHAVE_SNPRINTF=0 if your system lacks the snprintf function
202 # -DHAVE_STDBOOL_H if you have a non-C99 compiler with <stdbool.h>
203 # -DHAVE_STDINT_H if you have a non-C99 compiler with <stdint.h>
204 # -DHAVE_STRFTIME_L if <time.h> declares locale_t and strftime_l
205 # -DHAVE_STRDUP=0 if your system lacks the strdup function
206 # -DHAVE_STRTOLL=0 if your system lacks the strtoll function
207 # -DHAVE_SYMLINK=0 if your system lacks the symlink function
208 # -DHAVE_SYS_STAT_H=0 if your compiler lacks a <sys/stat.h>
209 # -DHAVE_SYS_WAIT_H=0 if your compiler lacks a <sys/wait.h>
210 # -DHAVE_TZSET=0 if your system lacks a tzset function
211 # -DHAVE_UNISTD_H=0 if your compiler lacks a <unistd.h>
212 # -Dlocale_t=XXX if your system uses XXX instead of locale_t
213 # -DRESERVE_STD_EXT_IDS if your platform reserves standard identifiers
214 # with external linkage, e.g., applications cannot define 'localtime'.
215 # -Dssize_t=long on hosts like MS-Windows that lack ssize_t
216 # -DSUPPRESS_TZDIR to not prepend TZDIR to file names; this has
217 # security implications and is not recommended for general use
218 # -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires;
219 # not needed by the main-program tz code, which is single-threaded.
220 # Append other compiler flags as needed, e.g., -pthread on GNU/Linux.
221 # -Dtime_tz=\"T\" to use T as the time_t type, rather than the system time_t
222 # This is intended for internal use only; it mangles external names.
223 # -DTZ_DOMAIN=\"foo\" to use "foo" for gettext domain name; default is "tz"
224 # -DTZ_DOMAINDIR=\"/path\" to use "/path" for gettext directory;
225 # the default is system-supplied, typically "/usr/lib/locale"
226 # -DTZDEFRULESTRING=\",date/time,date/time\" to default to the specified
227 # DST transitions if the time zone files cannot be accessed
228 # -DUNINIT_TRAP if reading uninitialized storage can cause problems
229 # other than simply getting garbage data
230 # -DUSE_LTZ=0 to build zdump with the system time zone library
231 # Also set TZDOBJS=zdump.o and CHECK_TIME_T_ALTERNATIVES= below.
232 # -DZIC_MAX_ABBR_LEN_WO_WARN=3
233 # (or some other number) to set the maximum time zone abbreviation length
234 # that zic will accept without a warning (the default is 6)
235 # $(GCC_DEBUG_FLAGS) if you are using recent GCC and want lots of checking
236 # Select instrumentation via "make GCC_INSTRUMENT='whatever'".
238 -fsanitize
=undefined
-fsanitize-address-use-after-scope \
239 -fsanitize-undefined-trap-on-error
-fstack-protector
240 GCC_DEBUG_FLAGS
= -DGCC_LINT
-g3
-O3
-fno-common \
243 -Walloc-size-larger-than
=100000 -Warray-bounds
=2 \
244 -Wbad-function-cast
-Wcast-align
=strict
-Wdate-time \
245 -Wdeclaration-after-statement
-Wdouble-promotion \
246 -Wformat
=2 -Wformat-overflow
=2 -Wformat-signedness
-Wformat-truncation \
247 -Winit-self
-Wjump-misses-init
-Wlogical-op \
248 -Wmissing-declarations
-Wmissing-prototypes
-Wnested-externs \
249 -Wold-style-definition
-Woverlength-strings
-Wpointer-arith \
250 -Wshadow
-Wshift-overflow
=2 -Wstrict-prototypes
-Wstringop-overflow
=4 \
251 -Wstringop-truncation
-Wsuggest-attribute
=cold \
252 -Wsuggest-attribute
=const
-Wsuggest-attribute
=format \
253 -Wsuggest-attribute
=malloc \
254 -Wsuggest-attribute
=noreturn
-Wsuggest-attribute
=pure \
255 -Wtrampolines
-Wundef
-Wuninitialized
-Wunused \
256 -Wvariadic-macros
-Wvla
-Wwrite-strings \
257 -Wno-address
-Wno-format-nonliteral
-Wno-sign-compare \
258 -Wno-type-limits
-Wno-unused-parameter
260 # If your system has a "GMT offset" field in its "struct tm"s
261 # (or if you decide to add such a field in your system's "time.h" file),
262 # add the name to a define such as
263 # -DTM_GMTOFF=tm_gmtoff
264 # to the end of the "CFLAGS=" line. If not defined, the code attempts to
265 # guess TM_GMTOFF from other macros; define NO_TM_GMTOFF to suppress this.
266 # Similarly, if your system has a "zone abbreviation" field, define
268 # and define NO_TM_ZONE to suppress any guessing. These two fields are not
269 # required by POSIX, but are widely available on GNU/Linux and BSD systems.
271 # The next batch of options control support for external variables
272 # exported by tzcode. In practice these variables are less useful
273 # than TM_GMTOFF and TM_ZONE. However, most of them are standardized.
275 # # To omit or support the external variable "tzname", add one of:
278 # # to the "CFLAGS=" line. "tzname" is required by POSIX 1988 and later.
279 # # If not defined, the code attempts to guess HAVE_TZNAME from other macros.
280 # # Warning: unless time_tz is also defined, HAVE_TZNAME=1 can cause
281 # # crashes when combined with some platforms' standard libraries,
282 # # presumably due to memory allocation issues.
284 # # To omit or support the external variables "timezone" and "daylight", add
287 # # to the "CFLAGS=" line; "timezone" and "daylight" are inspired by
288 # # Unix Systems Group code and are required by POSIX 2008 (with XSI) and later.
289 # # If not defined, the code attempts to guess USG_COMPAT from other macros.
291 # # To support the external variable "altzone", add
293 # # to the end of the "CFLAGS=" line; although "altzone" appeared in
294 # # System V Release 3.1 it has not been standardized.
296 # If you want functions that were inspired by early versions of X3J11's work,
299 # to the end of the "CFLAGS=" line. This arranges for the functions
300 # "tzsetwall", "offtime", "timelocal", "timegm", "timeoff",
301 # "posix2time", and "time2posix" to be added to the time conversion library.
302 # "tzsetwall" is like "tzset" except that it arranges for local wall clock
303 # time (rather than the timezone specified in the TZ environment variable)
305 # "offtime" is like "gmtime" except that it accepts a second (long) argument
306 # that gives an offset to add to the time_t when converting it.
307 # "timelocal" is equivalent to "mktime".
308 # "timegm" is like "timelocal" except that it turns a struct tm into
309 # a time_t using UT (rather than local time as "timelocal" does).
310 # "timeoff" is like "timegm" except that it accepts a second (long) argument
311 # that gives an offset to use when converting to a time_t.
312 # "posix2time" and "time2posix" are described in an included manual page.
313 # X3J11's work does not describe any of these functions.
314 # Sun has provided "tzsetwall", "timelocal", and "timegm" in SunOS 4.0.
315 # These functions may well disappear in future releases of the time
316 # conversion package.
318 # If you don't want functions that were inspired by NetBSD, add
319 # -DNETBSD_INSPIRED=0
320 # to the end of the "CFLAGS=" line. Otherwise, the functions
321 # "localtime_rz", "mktime_z", "tzalloc", and "tzfree" are added to the
322 # time library, and if STD_INSPIRED is also defined the functions
323 # "posix2time_z" and "time2posix_z" are added as well.
324 # The functions ending in "_z" (or "_rz") are like their unsuffixed
325 # (or suffixed-by-"_r") counterparts, except with an extra first
326 # argument of opaque type timezone_t that specifies the timezone.
327 # "tzalloc" allocates a timezone_t value, and "tzfree" frees it.
329 # If you want to allocate state structures in localtime, add
331 # to the end of the "CFLAGS=" line. Storage is obtained by calling malloc.
333 # NIST-PCTS:151-2, Version 1.4, (1993-12-03) is a test suite put
334 # out by the National Institute of Standards and Technology
335 # which claims to test C and Posix conformance. If you want to pass PCTS, add
337 # to the end of the "CFLAGS=" line.
339 # If you want strict compliance with XPG4 as of 1994-04-09, add
341 # to the end of the "CFLAGS=" line. This causes "strftime" to always return
342 # 53 as a week number (rather than 52 or 53) for January days before
343 # January's first Monday when a "%V" format is used and January 1
344 # falls on a Friday, Saturday, or Sunday.
348 # Linker flags. Default to $(LFLAGS) for backwards compatibility
349 # to release 2012h and earlier.
353 # For leap seconds, this Makefile uses LEAPSECONDS='-L leapseconds' in
354 # submake command lines. The default is no leap seconds.
358 # The zic command and its arguments.
361 ZIC
= $(zic
) $(ZFLAGS
)
365 # How to use zic to install TZif files.
367 ZIC_INSTALL
= $(ZIC
) -d
'$(DESTDIR)$(TZDIR)' $(LEAPSECONDS
)
369 # The name of a Posix-compliant 'awk' on your system.
370 # Older 'mawk' versions, such as the 'mawk' in Ubuntu 16.04, might dump core;
371 # on Ubuntu you can work around this with
375 # The full path name of a Posix-compliant shell, preferably one that supports
376 # the Korn shell's 'select' statement as an extension.
377 # These days, Bash is the most popular.
378 # It should be OK to set this to /bin/sh, on platforms where /bin/sh
379 # lacks 'select' or doesn't completely conform to Posix, but /bin/bash
380 # is typically nicer if it works.
383 # The path where SGML DTDs are kept and the catalog file(s) to use when
384 # validating. The default should work on both Debian and Red Hat.
386 SGML_DTDDIR
= $(SGML_TOPDIR
)/share
/xml
/w3c-sgml-lib
/schema
/dtd
387 SGML_SEARCH_PATH
= $(SGML_DTDDIR
)/REC-html401-19991224
388 SGML_CATALOG_FILES
= \
389 $(SGML_TOPDIR
)/share
/doc
/w3-recs
/html
/www.w3.org
/TR
/1999/REC-html401-19991224
/HTML4.cat
:$(SGML_TOPDIR
)/share
/sgml
/html
/4.01/HTML4.cat
391 # The name, arguments and environment of a program to validate your web pages.
392 # See <http://openjade.sourceforge.net/doc/> for a validator, and
393 # <https://validator.w3.org/source/> for a validation library.
394 # Set VALIDATE=':' if you do not have such a program.
396 VALIDATE_FLAGS
= -s
-B
-wall
-wno-unused-param
398 SGML_CATALOG_FILES
='$(SGML_CATALOG_FILES)' \
399 SGML_SEARCH_PATH
='$(SGML_SEARCH_PATH)' \
400 SP_CHARSET_FIXED
=YES \
403 # This expensive test requires USE_LTZ.
404 # To suppress it, define this macro to be empty.
405 CHECK_TIME_T_ALTERNATIVES
= check_time_t_alternatives
407 # SAFE_CHAR is a regular expression that matches a safe character.
408 # Some parts of this distribution are limited to safe characters;
409 # others can use any UTF-8 character.
410 # For now, the safe characters are a safe subset of ASCII.
411 # The caller must set the shell variable 'sharp' to the character '#',
412 # since Makefile macros cannot contain '#'.
413 # TAB_CHAR is a single tab character, in single quotes.
415 SAFE_CHARSET1
= $(TAB_CHAR
)' !\"'$$sharp'$$%&'\''()*+,./0123456789:;<=>?@'
416 SAFE_CHARSET2
= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\^_`'
417 SAFE_CHARSET3
= 'abcdefghijklmnopqrstuvwxyz{|}~'
418 SAFE_CHARSET
= $(SAFE_CHARSET1
)$(SAFE_CHARSET2
)$(SAFE_CHARSET3
)
419 SAFE_CHAR
= '[]'$(SAFE_CHARSET
)'-]'
421 # These characters are Latin-1, and so are likely to be displayable
422 # even in editors with limited character sets.
423 UNUSUAL_OK_LATIN_1
= «°±»½¾×
424 # This IPA symbol is represented in Unicode as the composition of
425 # U+0075 and U+032F, and U+032F is not considered alphabetic by some
426 # grep implementations that do not grok composition.
428 # Non-ASCII non-letters that OK_CHAR allows, as these characters are
429 # useful in commentary.
430 UNUSUAL_OK_CHARSET
= $(UNUSUAL_OK_LATIN_1
)$(UNUSUAL_OK_IPA
)
432 # OK_CHAR matches any character allowed in the distributed files.
433 # This is the same as SAFE_CHAR, except that UNUSUAL_OK_CHARSET and
434 # multibyte letters are also allowed so that commentary can contain a
435 # few safe symbols and people's names and can quote non-English sources.
436 # Other non-letters are limited to ASCII renderings for the
437 # convenience of maintainers using XEmacs 21.5.34, which by default
438 # mishandles Unicode characters U+0100 and greater.
439 OK_CHAR
= '[][:alpha:]$(UNUSUAL_OK_CHARSET)'$(SAFE_CHARSET
)'-]'
441 # SAFE_LINE matches a line of safe characters.
442 # SAFE_SHARP_LINE is similar, except any OK character can follow '#';
443 # this is so that comments can contain non-ASCII characters.
444 # OK_LINE matches a line of OK characters.
445 SAFE_LINE
= '^'$(SAFE_CHAR
)'*$$'
446 SAFE_SHARP_LINE
='^'$(SAFE_CHAR
)'*('$$sharp$(OK_CHAR
)'*)?$$'
447 OK_LINE
= '^'$(OK_CHAR
)'*$$'
449 # Flags to give 'tar' when making a distribution.
450 # Try to use flags appropriate for GNU tar.
451 GNUTARFLAGS
= --numeric-owner
--owner
=0 --group
=0 --mode
=go
+u
,go-w
--sort=name
452 TARFLAGS
= `if tar $(GNUTARFLAGS) --version >/dev/null 2>&1; \
453 then echo $(GNUTARFLAGS); \
457 # Flags to give 'gzip' when making a distribution.
460 ###############################################################################
465 CC
= $(cc) -DTZDIR
='"$(TZDIR)"'
469 # ':' on typical hosts; 'ranlib' on the ancient hosts that still need ranlib.
473 TZDOBJS
= zdump.o localtime.o asctime.o strftime.o
474 DATEOBJS
= date.o localtime.o strftime.o asctime.o
475 LIBSRCS
= localtime.c asctime.c difftime.c
476 LIBOBJS
= localtime.o asctime.o difftime.o
477 HEADERS
= tzfile.h private.h
478 NONLIBSRCS
= zic.c zdump.c
479 NEWUCBSRCS
= date.c strftime.c
480 SOURCES
= $(HEADERS
) $(LIBSRCS
) $(NONLIBSRCS
) $(NEWUCBSRCS
) \
481 tzselect.ksh workman.sh
482 MANS
= newctime
.3 newstrftime
.3 newtzset
.3 time2posix
.3 \
483 tzfile
.5 tzselect
.8 zic
.8 zdump
.8
484 MANTXTS
= newctime
.3.txt newstrftime
.3.txt newtzset
.3.txt \
486 tzfile
.5.txt tzselect
.8.txt zic
.8.txt zdump
.8.txt \
488 COMMON
= calendars CONTRIBUTING LICENSE Makefile \
489 NEWS README theory.html version
490 WEB_PAGES
= tz-art.html tz-how-to.html tz-link.html
491 DOCS
= $(MANS
) date
.1 $(MANTXTS
) $(WEB_PAGES
)
492 PRIMARY_YDATA
= africa antarctica asia australasia \
493 europe northamerica southamerica
494 YDATA
= $(PRIMARY_YDATA
) etcetera
495 NDATA
= systemv factory
496 TDATA_TO_CHECK
= $(YDATA
) $(NDATA
) backward pacificnew
497 TDATA
= $(YDATA
) $(NDATA
) $(BACKWARD
)
498 ZONETABLES
= zone1970.tab zone.tab
499 TABDATA
= iso3166.tab
$(TZDATA_TEXT
) $(ZONETABLES
)
500 LEAP_DEPS
= leapseconds.awk leap-seconds.list
501 TZDATA_ZI_DEPS
= ziguard.awk zishrink.awk version
$(TDATA
) $(PACKRATDATA
)
502 DSTDATA_ZI_DEPS
= ziguard.awk
$(TDATA
) $(PACKRATDATA
)
503 DATA
= $(TDATA_TO_CHECK
) backzone iso3166.tab leap-seconds.list \
504 leapseconds yearistype.sh
$(ZONETABLES
)
505 AWK_SCRIPTS
= checklinks.awk checktab.awk leapseconds.awk \
506 ziguard.awk zishrink.awk
507 MISC
= $(AWK_SCRIPTS
) zoneinfo2tdf.pl
509 TZS_CUTOFF_FLAG
= -c
$(TZS_YEAR
)
510 TZS
= to
$(TZS_YEAR
).tzs
511 TZS_NEW
= to
$(TZS_YEAR
)new.tzs
512 TZS_DEPS
= $(PRIMARY_YDATA
) asctime.c localtime.c \
513 private.h tzfile.h zdump.c zic.c
514 # EIGHT_YARDS is just a yard short of the whole ENCHILADA.
515 EIGHT_YARDS
= $(COMMON
) $(DOCS
) $(SOURCES
) $(DATA
) $(MISC
) tzdata.zi
516 ENCHILADA
= $(EIGHT_YARDS
) $(TZS
)
518 # Consult these files when deciding whether to rebuild the 'version' file.
519 # This list is not the same as the output of 'git ls-files', since
520 # .gitignore is not distributed.
522 calendars CONTRIBUTING LICENSE Makefile NEWS README \
523 africa antarctica asctime.c asia australasia \
525 checklinks.awk checktab.awk \
526 date
.1 date.c difftime.c \
527 etcetera europe factory iso3166.tab \
528 leap-seconds.list leapseconds.awk localtime.c \
529 newctime
.3 newstrftime
.3 newtzset
.3 northamerica \
530 pacificnew private.h \
531 southamerica strftime.c systemv theory.html \
532 time2posix
.3 tz-art.html tz-how-to.html tz-link.html \
533 tzfile
.5 tzfile.h tzselect
.8 tzselect.ksh \
534 workman.sh yearistype.sh \
535 zdump
.8 zdump.c zic
.8 zic.c \
536 ziguard.awk zishrink.awk \
537 zone.tab zone1970.tab zoneinfo2tdf.pl
539 # And for the benefit of csh users on systems that assume the user
540 # shell should be used to handle commands in Makefiles. . .
544 all: tzselect yearistype zic zdump libtz.a
$(TABDATA
) \
545 vanguard.zi main.zi rearguard.zi
547 ALL
: all date
$(ENCHILADA
)
549 install: all $(DATA
) $(REDO
) $(MANS
)
550 mkdir
-p
'$(DESTDIR)$(BINDIR)' \
551 '$(DESTDIR)$(ZDUMPDIR)' '$(DESTDIR)$(ZICDIR)' \
552 '$(DESTDIR)$(LIBDIR)' \
553 '$(DESTDIR)$(MANDIR)/man3' '$(DESTDIR)$(MANDIR)/man5' \
554 '$(DESTDIR)$(MANDIR)/man8'
555 $(ZIC_INSTALL
) -l
$(LOCALTIME
) -p
$(POSIXRULES
) \
556 -t
'$(DESTDIR)$(TZDEFAULT)'
557 cp
-f
$(TABDATA
) '$(DESTDIR)$(TZDIR)/.'
558 cp tzselect
'$(DESTDIR)$(BINDIR)/.'
559 cp zdump
'$(DESTDIR)$(ZDUMPDIR)/.'
560 cp zic
'$(DESTDIR)$(ZICDIR)/.'
561 cp libtz.a
'$(DESTDIR)$(LIBDIR)/.'
562 $(RANLIB
) '$(DESTDIR)$(LIBDIR)/libtz.a'
563 cp
-f newctime
.3 newtzset
.3 '$(DESTDIR)$(MANDIR)/man3/.'
564 cp
-f tzfile
.5 '$(DESTDIR)$(MANDIR)/man5/.'
565 cp
-f tzselect
.8 zdump
.8 zic
.8 '$(DESTDIR)$(MANDIR)/man8/.'
567 INSTALL
: ALL
install date
.1
568 mkdir
-p
'$(DESTDIR)$(BINDIR)' '$(DESTDIR)$(MANDIR)/man1'
569 cp date
'$(DESTDIR)$(BINDIR)/.'
570 cp
-f date
.1 '$(DESTDIR)$(MANDIR)/man1/.'
572 version
: $(VERSION_DEPS
)
573 { (type git
) >/dev
/null
2>&1 && \
574 V
=`git describe --match '[0-9][0-9][0-9][0-9][a-z]*' \
575 --abbrev=7 --dirty` || \
576 V
='$(VERSION)'; } && \
577 printf
'%s\n' "$$V" >$@.out
580 # These files can be tailored by setting BACKWARD and PACKRATDATA.
581 vanguard.zi main.zi rearguard.zi
: $(DSTDATA_ZI_DEPS
)
582 $(AWK
) -v DATAFORM
=`expr $@ : '\(.*\).zi'` -f ziguard.awk \
583 $(TDATA
) $(PACKRATDATA
) >$@.out
585 # This file has a version comment that attempts to capture any tailoring
586 # via BACKWARD, DATAFORM, PACKRATDATA, and REDO.
587 tzdata.zi
: $(DATAFORM
).zi version zishrink.awk
588 version
=`sed 1q version` && \
590 -v dataform
='$(DATAFORM)' \
591 -v deps
='$(DSTDATA_ZI_DEPS) zishrink.awk' \
593 -v version
="$$version" \
595 $(DATAFORM
).zi
>$@.out
599 VERSION
=`cat version` && printf
'%s\n' \
600 'static char const PKGVERSION[]="($(PACKAGE)) ";' \
601 "static char const TZVERSION[]=\"$$VERSION\";" \
602 'static char const REPORT_BUGS_TO[]="$(BUGEMAIL)";' \
607 $(CC
) -o
$@
$(CFLAGS
) $(LDFLAGS
) $(TZDOBJS
) $(LDLIBS
)
610 $(CC
) -o
$@
$(CFLAGS
) $(LDFLAGS
) $(TZCOBJS
) $(LDLIBS
)
612 yearistype
: yearistype.sh
613 cp yearistype.sh yearistype
616 leapseconds
: $(LEAP_DEPS
)
617 $(AWK
) -f leapseconds.awk leap-seconds.list
>$@.out
620 # Arguments to pass to submakes of install_data.
621 # They can be overridden by later submake arguments.
623 BACKWARD
='$(BACKWARD)' \
624 DESTDIR
='$(DESTDIR)' \
625 LEAPSECONDS
='$(LEAPSECONDS)' \
626 PACKRATDATA
='$(PACKRATDATA)' \
627 TZDEFAULT
='$(TZDEFAULT)' \
629 YEARISTYPE
='$(YEARISTYPE)' \
632 INSTALL_DATA_DEPS
= zic leapseconds yearistype tzdata.zi
634 # 'make install_data' installs one set of TZif files.
635 install_data: $(INSTALL_DATA_DEPS
)
636 $(ZIC_INSTALL
) tzdata.zi
638 posix_only
: $(INSTALL_DATA_DEPS
)
639 $(MAKE
) $(INSTALLARGS
) LEAPSECONDS
= install_data
641 right_only
: $(INSTALL_DATA_DEPS
)
642 $(MAKE
) $(INSTALLARGS
) LEAPSECONDS
='-L leapseconds' \
645 # In earlier versions of this makefile, the other two directories were
646 # subdirectories of $(TZDIR). However, this led to configuration errors.
647 # For example, with posix_right under the earlier scheme,
648 # TZ='right/Australia/Adelaide' got you localtime with leap seconds,
649 # but gmtime without leap seconds, which led to problems with applications
650 # like sendmail that subtract gmtime from localtime.
651 # Therefore, the other two directories are now siblings of $(TZDIR).
652 # You must replace all of $(TZDIR) to switch from not using leap seconds
653 # to using them, or vice versa.
654 right_posix
: right_only
655 rm -fr
'$(DESTDIR)$(TZDIR)-leaps'
656 ln
-s
'$(TZDIR_BASENAME)' '$(DESTDIR)$(TZDIR)-leaps' || \
657 $(MAKE
) $(INSTALLARGS
) TZDIR
='$(TZDIR)-leaps' right_only
658 $(MAKE
) $(INSTALLARGS
) TZDIR
='$(TZDIR)-posix' posix_only
660 posix_right
: posix_only
661 rm -fr
'$(DESTDIR)$(TZDIR)-posix'
662 ln
-s
'$(TZDIR_BASENAME)' '$(DESTDIR)$(TZDIR)-posix' || \
663 $(MAKE
) $(INSTALLARGS
) TZDIR
='$(TZDIR)-posix' posix_only
664 $(MAKE
) $(INSTALLARGS
) TZDIR
='$(TZDIR)-leaps' right_only
666 # This obsolescent rule is present for backwards compatibility with
667 # tz releases 2014g through 2015g. It should go away eventually.
668 posix_packrat
: $(INSTALL_DATA_DEPS
)
669 $(MAKE
) $(INSTALLARGS
) PACKRATDATA
=backzone posix_only
673 # dummy.zd is not a real file; it is mentioned here only so that the
674 # top-level 'make' does not have a syntax error.
676 # Rule used only by submakes invoked by the $(TZS_NEW) rule.
677 # It is separate so that GNU 'make -j' can run instances in parallel.
679 .
/zdump
-i
$(TZS_CUTOFF_FLAG
) '$(wd)/'$$(expr
$@
: '\(.*\).zd') \
682 TZS_NEW_DEPS
= tzdata.zi zdump zic
683 $(TZS_NEW
): $(TZS_NEW_DEPS
)
684 rm -fr tzs
$(TZS_YEAR
).
dir
685 mkdir tzs
$(TZS_YEAR
).
dir
686 $(zic
) -d tzs
$(TZS_YEAR
).
dir tzdata.zi
687 $(AWK
) '/^L/{print "Link\t" $$2 "\t" $$3}' \
688 tzdata.zi | LC_ALL
=C
sort >$@.out
690 x
=`$(AWK) '/^Z/{print "tzs$(TZS_YEAR).dir/" $$2 ".zd"}' \
692 | LC_ALL=C sort -t . -k 2,2` && \
696 $(MAKE
) wd
="$$wd" TZS_CUTOFF_FLAG
="$(TZS_CUTOFF_FLAG)" \
697 ZDS
="$$ZDS" $$ZDS && \
698 sed
's,^TZ=".*\.dir/,TZ=",' $$ZDS >>$@.out
699 rm -fr tzs
$(TZS_YEAR
).
dir
702 # If $(TZS) exists but 'make check_tzs' fails, a maintainer should inspect the
703 # failed output and fix the inconsistency, perhaps by running 'make force_tzs'.
707 force_tzs
: $(TZS_NEW
)
712 $(AR
) -rc
$@
$(LIBOBJS
)
716 $(CC
) -o
$@
$(CFLAGS
) $(LDFLAGS
) $(DATEOBJS
) $(LDLIBS
)
718 tzselect
: tzselect.ksh version
719 VERSION
=`cat version` && sed \
720 -e
's|#!/bin/bash|#!$(KSHELL)|g' \
721 -e
's|AWK=[^}]*|AWK=$(AWK)|g' \
722 -e
's|\(PKGVERSION\)=.*|\1='\''($(PACKAGE)) '\''|' \
723 -e
's|\(REPORT_BUGS_TO\)=.*|\1=$(BUGEMAIL)|' \
724 -e
's|TZDIR=[^}]*|TZDIR=$(TZDIR)|' \
725 -e
's|\(TZVERSION\)=.*|\1='"$$VERSION"'|' \
730 check: check_character_set check_white_space check_links \
731 check_name_lengths check_sorted \
732 check_tables check_web check_zishrink check_tzs
734 check_character_set
: $(ENCHILADA
)
735 test ! '$(UTF8_LOCALE)' || \
736 ! printf
'A\304\200B\n' | \
737 LC_ALL
='$(UTF8_LOCALE)' grep
-q
'^A.B$$' >/dev
/null
2>&1 ||
{ \
738 LC_ALL
='$(UTF8_LOCALE)' && export LC_ALL
&& \
740 ! grep
-Env
$(SAFE_LINE
) $(MANS
) date
.1 $(MANTXTS
) \
741 $(MISC
) $(SOURCES
) $(WEB_PAGES
) \
742 CONTRIBUTING LICENSE README \
743 version tzdata.zi
&& \
744 ! grep
-Env
$(SAFE_LINE
)'|^UNUSUAL_OK_'$(OK_CHAR
)'*$$' \
746 ! grep
-Env
$(SAFE_SHARP_LINE
) $(TDATA_TO_CHECK
) backzone \
747 leapseconds yearistype.sh zone.tab
&& \
748 ! grep
-Env
$(OK_LINE
) $(ENCHILADA
); \
752 check_white_space
: $(ENCHILADA
)
753 patfmt
=' \t|[\f\r\v]' && pat
=`printf "$$patfmt\\n"` && \
755 $$(ls
$(ENCHILADA
) | grep
-Fvx leap-seconds.list
)
756 ! grep
-n
'[[:space:]]$$' \
757 $$(ls
$(ENCHILADA
) | grep
-Fvx leap-seconds.list
)
760 PRECEDES_FILE_NAME
= ^
(Zone|Link
[[:space
:]]+[^
[:space
:]]+)[[:space
:]]+
761 FILE_NAME_COMPONENT_TOO_LONG
= \
762 $(PRECEDES_FILE_NAME
)[^
[:space
:]]*[^
/[:space
:]]{15}
764 check_name_lengths
: $(TDATA_TO_CHECK
) backzone
765 ! grep
-En
'$(FILE_NAME_COMPONENT_TOO_LONG)' \
766 $(TDATA_TO_CHECK
) backzone
769 CHECK_CC_LIST
= { n
= split
($$1,a
,/,/); for
(i
=2; i
<=n
; i
++) print a
[1], a
[i
]; }
771 check_sorted
: backward backzone iso3166.tab zone.tab zone1970.tab
772 $(AWK
) '/^Link/ {print $$3}' backward | LC_ALL
=C
sort -cu
773 $(AWK
) '/^Zone/ {print $$2}' backzone | LC_ALL
=C
sort -cu
774 $(AWK
) '/^[^#]/ {print $$1}' iso3166.tab | LC_ALL
=C
sort -cu
775 $(AWK
) '/^[^#]/ {print $$1}' zone.tab | LC_ALL
=C
sort -c
776 $(AWK
) '/^[^#]/ {print substr($$0, 1, 2)}' zone1970.tab | \
778 $(AWK
) '/^[^#]/ $(CHECK_CC_LIST)' zone1970.tab | \
782 check_links
: checklinks.awk
$(TDATA_TO_CHECK
) tzdata.zi
783 $(AWK
) -f checklinks.awk
$(TDATA_TO_CHECK
)
784 $(AWK
) -f checklinks.awk tzdata.zi
787 check_tables
: checktab.awk
$(PRIMARY_YDATA
) $(ZONETABLES
)
788 for tab in
$(ZONETABLES
); do \
789 $(AWK
) -f checktab.awk
-v zone_table
=$$tab $(PRIMARY_YDATA
) \
794 check_tzs
: $(TZS
) $(TZS_NEW
)
795 if
test -s
$(TZS
); then \
796 diff
-u
$(TZS
) $(TZS_NEW
); \
798 cp
$(TZS_NEW
) $(TZS
); \
802 # This checks only the HTML 4.01 strict page.
803 # To check the the other pages, use <https://validator.w3.org/>.
804 check_web
: tz-how-to.html
805 $(VALIDATE_ENV
) $(VALIDATE
) $(VALIDATE_FLAGS
) tz-how-to.html
808 # Check that zishrink.awk does not alter the data, and that ziguard.awk
809 # preserves main-format data.
810 check_zishrink
: check_zishrink_posix check_zishrink_right
811 check_zishrink_posix check_zishrink_right
: \
812 zic leapseconds
$(PACKRATDATA
) $(TDATA
) $(DATAFORM
).zi tzdata.zi
813 rm -fr
$@.
dir $@
-t.
dir $@
-shrunk.
dir
814 mkdir
$@.
dir $@
-t.
dir $@
-shrunk.
dir
816 *_right
) leap
='-L leapseconds';; \
819 $(ZIC
) $$leap -d
$@.
dir $(DATAFORM
).zi
&& \
820 $(ZIC
) $$leap -d
$@
-shrunk.
dir tzdata.zi
&& \
821 case
$(DATAFORM
) in \
823 $(ZIC
) $$leap -d
$@
-t.
dir $(TDATA
) && \
824 $(AWK
) '/^Rule/' $(TDATA
) | \
825 $(ZIC
) $$leap -d
$@
-t.
dir - $(PACKRATDATA
) && \
826 diff
-r
$@.
dir $@
-t.
dir;; \
828 diff
-r
$@.
dir $@
-shrunk.
dir
829 rm -fr
$@.
dir $@
-t.
dir $@
-shrunk.
dir
833 rm -f
*.o
*.out
$(TIME_T_ALTERNATIVES
) \
834 check_
* core typecheck_
* \
835 date tzselect version.h zdump zic yearistype libtz.a
837 rm -fr
*.
dir *.zi tzdb-
*/ $(TZS_NEW
)
839 maintainer-clean
: clean
840 @echo
'This command is intended for maintainers to use; it'
841 @echo
'deletes files that may need special tools to rebuild.'
842 rm -f leapseconds version
$(MANTXTS
) $(TZS
) *.asc
*.
tar.
*
847 public
: check check_public
$(CHECK_TIME_T_ALTERNATIVES
) \
851 newctime
.3.txt
: newctime
.3
852 newstrftime
.3.txt
: newstrftime
.3
853 newtzset
.3.txt
: newtzset
.3
854 time2posix
.3.txt
: time2posix
.3
855 tzfile
.5.txt
: tzfile
.5
856 tzselect
.8.txt
: tzselect
.8
860 $(MANTXTS
): workman.sh
861 LC_ALL
=C sh workman.sh
`expr $@ : '\(.*\)\.txt$$'` >$@.out
864 # Set the timestamps to those of the git repository, if available,
865 # and if the files have not changed since then.
866 # This uses GNU 'touch' syntax 'touch -d@N FILE',
867 # where N is the number of seconds since 1970.
868 # If git or GNU 'touch' is absent, don't bother to sync with git timestamps.
869 # Also, set the timestamp of each prebuilt file like 'leapseconds'
870 # to be the maximum of the files it depends on.
871 set-timestamps.out
: $(EIGHT_YARDS
)
873 if
(type git
) >/dev
/null
2>&1 && \
874 files
=`git ls-files $(EIGHT_YARDS)` && \
875 touch
-md @
1 test.out
; then \
877 for file in
$$files; do \
878 if git diff
--quiet
$$file; then \
879 time
=`git log -1 --format='tformat:%ct' $$file` && \
880 touch
-cmd @
$$time $$file; \
882 echo
>&2 "$$file: warning: does not match repository"; \
886 touch
-cmr
`ls -t $(LEAP_DEPS) | sed 1q` leapseconds
887 for file in
`ls $(MANTXTS) | sed 's/\.txt$$//'`; do \
888 touch
-cmr
`ls -t $$file workman.sh | sed 1q` $$file.txt || \
891 touch
-cmr
`ls -t $(TZDATA_ZI_DEPS) | sed 1q` tzdata.zi
892 touch
-cmr
`ls -t $(VERSION_DEPS) | sed 1q` version
894 set-tzs-timestamp.out
: $(TZS
)
895 touch
-cmr
`ls -t $(TZS_DEPS) | sed 1q` $(TZS
)
898 # The zics below ensure that each data file can stand on its own.
899 # We also do an all-files run to catch links to links.
901 check_public
: $(VERSION_DEPS
)
904 ln
$(VERSION_DEPS
) public.
dir
905 cd public.
dir && $(MAKE
) CFLAGS
='$(GCC_DEBUG_FLAGS)' ALL
906 for i in
$(TDATA_TO_CHECK
) public.
dir/tzdata.zi
; do \
907 public.
dir/zic
-v
-d public.
dir/zoneinfo
$$i 2>&1 || exit
; \
909 public.
dir/zic
-v
-d public.
dir/zoneinfo-all
$(TDATA_TO_CHECK
)
913 # Check that the code works under various alternative
914 # implementations of time_t.
915 check_time_t_alternatives
: $(TIME_T_ALTERNATIVES
)
916 $(TIME_T_ALTERNATIVES_TAIL
): $(TIME_T_ALTERNATIVES_HEAD
)
917 $(TIME_T_ALTERNATIVES
): $(VERSION_DEPS
)
920 ln
$(VERSION_DEPS
) $@.
dir
922 int32_t
) range
=-2147483648,2147483648;; \
923 u
*) range
=0,4294967296;; \
924 *) range
=-4294967296,4294967296;; \
927 zones
=`$(AWK) '/^[^#]/ { print $$3 }' <zone1970.tab` && \
928 if
test $@
= $(TIME_T_ALTERNATIVES_HEAD
); then \
931 range_target
=to
$$range.tzs
; \
934 $(MAKE
) TOPDIR
="$$wd/$@.dir" \
935 CFLAGS
='$(CFLAGS) -Dtime_tz='"'$@'" \
938 TZS_YEAR
="$$range" TZS_CUTOFF_FLAG
="-t $$range" \
939 install $$range_target) && \
940 test $@
= $(TIME_T_ALTERNATIVES_HEAD
) ||
{ \
941 (cd
$(TIME_T_ALTERNATIVES_HEAD
).
dir && \
942 $(MAKE
) TOPDIR
="$$wd/$@.dir" \
943 TZS_YEAR
="$$range" TZS_CUTOFF_FLAG
="-t $$range" \
946 diff
-u
$(TIME_T_ALTERNATIVES_HEAD
).
dir/to
$$range.tzs \
947 $@.
dir/to
$$range.tzs
&& \
948 if diff
-q Makefile Makefile
2>/dev
/null
; then \
953 diff
$$quiet_option -r
$(TIME_T_ALTERNATIVES_HEAD
).
dir/etc \
955 diff
$$quiet_option -r \
956 $(TIME_T_ALTERNATIVES_HEAD
).
dir/usr
/share \
962 tzcode
$(VERSION
).
tar.gz.asc \
963 tzdata
$(VERSION
).
tar.gz.asc
965 tzdata
$(VERSION
)-rearguard.
tar.gz.asc
966 ALL_ASC
= $(TRADITIONAL_ASC
) $(REARGUARD_ASC
) \
967 tzdb-
$(VERSION
).
tar.lz.asc
969 tarballs rearguard_tarballs traditional_tarballs \
970 signatures rearguard_signatures traditional_signatures
: \
971 version set-timestamps.out rearguard.zi
972 VERSION
=`cat version` && \
973 $(MAKE
) VERSION
="$$VERSION" $@_version
975 # These *_version rules are intended for use if VERSION is set by some
976 # other means. Ordinarily these rules are used only by the above
977 # non-_version rules, which set VERSION on the 'make' command line.
978 tarballs_version
: traditional_tarballs_version rearguard_tarballs_version \
979 tzdb-
$(VERSION
).
tar.lz
980 rearguard_tarballs_version
: \
981 tzdata
$(VERSION
)-rearguard.
tar.gz
982 traditional_tarballs_version
: \
983 tzcode
$(VERSION
).
tar.gz tzdata
$(VERSION
).
tar.gz
984 signatures_version
: $(ALL_ASC
)
985 rearguard_signatures_version
: $(REARGUARD_ASC
)
986 traditional_signatures_version
: $(TRADITIONAL_ASC
)
988 tzcode
$(VERSION
).
tar.gz
: set-timestamps.out
989 LC_ALL
=C
&& export LC_ALL
&& \
990 tar $(TARFLAGS
) -cf
- \
991 $(COMMON
) $(DOCS
) $(SOURCES
) | \
992 gzip
$(GZIPFLAGS
) >$@.out
995 tzdata
$(VERSION
).
tar.gz
: set-timestamps.out
996 LC_ALL
=C
&& export LC_ALL
&& \
997 tar $(TARFLAGS
) -cf
- $(COMMON
) $(DATA
) $(MISC
) | \
998 gzip
$(GZIPFLAGS
) >$@.out
1001 tzdata
$(VERSION
)-rearguard.
tar.gz
: rearguard.zi set-timestamps.out
1002 rm -fr tzdata
$(VERSION
)-rearguard.
dir
1003 mkdir tzdata
$(VERSION
)-rearguard.
dir
1004 ln
$(COMMON
) $(DATA
) $(MISC
) tzdata
$(VERSION
)-rearguard.
dir
1005 cd tzdata
$(VERSION
)-rearguard.
dir && \
1006 rm -f
$(TDATA
) $(PACKRATDATA
) version
1007 for f in
$(TDATA
) $(PACKRATDATA
); do \
1008 rearf
=tzdata
$(VERSION
)-rearguard.
dir/$$f; \
1009 $(AWK
) -v DATAFORM
=rearguard
-f ziguard.awk
$$f >$$rearf && \
1010 touch
-cmr
`ls -t ziguard.awk $$f` $$rearf || exit
; \
1012 sed
'1s/$$/-rearguard/' \
1013 <version
>tzdata
$(VERSION
)-rearguard.
dir/version
1014 touch
-cmr version tzdata
$(VERSION
)-rearguard.
dir/version
1015 LC_ALL
=C
&& export LC_ALL
&& \
1016 (cd tzdata
$(VERSION
)-rearguard.
dir && \
1017 tar $(TARFLAGS
) -cf
- $(COMMON
) $(DATA
) $(MISC
) | \
1018 gzip
$(GZIPFLAGS
)) >$@.out
1021 tzdb-
$(VERSION
).
tar.lz
: set-timestamps.out set-tzs-timestamp.out
1022 rm -fr tzdb-
$(VERSION
)
1023 mkdir tzdb-
$(VERSION
)
1024 ln
$(ENCHILADA
) tzdb-
$(VERSION
)
1025 touch
-cmr
`ls -t tzdb-$(VERSION)/* | sed 1q` tzdb-
$(VERSION
)
1026 LC_ALL
=C
&& export LC_ALL
&& \
1027 tar $(TARFLAGS
) -cf
- tzdb-
$(VERSION
) | lzip
-9 >$@.out
1030 tzcode
$(VERSION
).
tar.gz.asc
: tzcode
$(VERSION
).
tar.gz
1031 tzdata
$(VERSION
).
tar.gz.asc
: tzdata
$(VERSION
).
tar.gz
1032 tzdata
$(VERSION
)-rearguard.
tar.gz.asc
: tzdata
$(VERSION
)-rearguard.
tar.gz
1033 tzdb-
$(VERSION
).
tar.lz.asc
: tzdb-
$(VERSION
).
tar.lz
1035 gpg2
--armor
--detach-sign
$?
1037 TYPECHECK_CFLAGS
= $(CFLAGS
) -DTYPECHECK
-D__time_t_defined
-D_TIME_T
1038 typecheck
: typecheck_long_long typecheck_unsigned
1039 typecheck_long_long typecheck_unsigned
: $(VERSION_DEPS
)
1042 ln
$(VERSION_DEPS
) $@.
dir
1045 *_long_long
) i
="long long";; \
1046 *_unsigned
) i
="unsigned" ;; \
1048 typecheck_cflags
='' && \
1050 CFLAGS
="$(TYPECHECK_CFLAGS) \"-Dtime_t=$$i\"" \
1053 $@.
dir/zdump
-i
-c
1970,1971 Europe
/Rome
1056 zonenames
: tzdata.zi
1057 @
$(AWK
) '/^Z/ { print $$2 } /^L/ { print $$3 }' tzdata.zi
1059 asctime.o
: private.h tzfile.h
1061 difftime.o
: private.h
1062 localtime.o
: private.h tzfile.h
1063 strftime.o
: private.h tzfile.h
1065 zic.o
: private.h tzfile.h version.h
1069 .PHONY
: ALL INSTALL
all
1070 .PHONY
: check check_time_t_alternatives
1071 .PHONY
: check_zishrink
1072 .PHONY
: clean clean_misc dummy.zd force_tzs
1073 .PHONY
: install install_data maintainer-clean names
1074 .PHONY
: posix_only posix_packrat posix_right public
1075 .PHONY
: rearguard_signatures rearguard_signatures_version
1076 .PHONY
: rearguard_tarballs rearguard_tarballs_version
1077 .PHONY
: right_only right_posix signatures signatures_version
1078 .PHONY
: tarballs tarballs_version
1079 .PHONY
: traditional_signatures traditional_signatures_version
1080 .PHONY
: traditional_tarballs traditional_tarballs_version
1082 .PHONY
: zonenames zones