2009-05-17 14:44:04 -04:00
|
|
|
# This file is in the public domain, so clarified as of
|
|
|
|
|
# 2009-05-17 by Arthur David Olson.
|
1986-01-13 17:26:56 -05:00
|
|
|
|
2012-11-09 18:12:22 -08:00
|
|
|
# Package name for the code distribution.
|
|
|
|
|
PACKAGE= tzcode
|
|
|
|
|
|
2012-07-19 16:35:33 -07:00
|
|
|
# Version numbers of the code and data distributions.
|
2014-06-12 21:53:52 -07:00
|
|
|
VERSION= 2014e
|
Switch from SCCS to git.
Remove the SCCS keyword '%W%' from all files.
Mostly this just remove comments.
Remove trailing white space, too.
* Makefile (TZCODE_VERSION): New macro.
(version.h): New rule.
(tzselect): Interpolate TZCODE_VERSION.
(clean): Remove version.h.
(zdump.o, zic.o): Depend on version.h.
* asctime.c, date.c, difftime.c, ialloc.c, localtime.c, scheck.c:
* strftime.c, zdump.c, zic.c: Remove elsieid.
* private.h: Remove privatehid.
* tzfile.h: Remove tzfilehid.
* tzselect.h (TZCODE_VERSION): Rename from VERSION.
* zdump.c, zic.c: Include "version.h",
and use TZCODE_VERSION instead of elsieid.
2012-07-18 17:30:38 -07:00
|
|
|
|
2012-11-12 21:52:35 -08:00
|
|
|
# Email address for bug reports.
|
|
|
|
|
BUGEMAIL= tz@iana.org
|
|
|
|
|
|
1989-03-05 13:12:47 -05:00
|
|
|
# Change the line below for your time zone (after finding the zone you want in
|
|
|
|
|
# the time zone files, or adding it to a time zone file).
|
1986-03-02 22:02:58 -05:00
|
|
|
# Alternately, if you discover you've got the wrong time zone, you can just
|
1986-11-19 19:15:31 -05:00
|
|
|
# zic -l rightzone
|
1989-03-21 20:05:59 -05:00
|
|
|
# to correct things.
|
|
|
|
|
# Use the command
|
|
|
|
|
# make zonenames
|
|
|
|
|
# to get a list of the values you can use for LOCALTIME.
|
1986-02-28 21:30:44 -05:00
|
|
|
|
2010-10-07 17:25:45 -04:00
|
|
|
LOCALTIME= GMT
|
1986-02-28 21:30:44 -05:00
|
|
|
|
1989-01-31 23:10:30 -05:00
|
|
|
# If you want something other than Eastern United States time as a template
|
|
|
|
|
# for handling POSIX-style time zone environment variables,
|
|
|
|
|
# change the line below (after finding the zone you want in the
|
|
|
|
|
# time zone files, or adding it to a time zone file).
|
1995-12-21 12:31:40 -05:00
|
|
|
# (When a POSIX-style environment variable is handled, the rules in the
|
|
|
|
|
# template file are used to determine "spring forward" and "fall back" days and
|
2013-09-04 19:07:31 -07:00
|
|
|
# times; the environment variable itself specifies UT offsets of standard and
|
1989-03-21 20:05:59 -05:00
|
|
|
# summer time.)
|
1989-01-31 23:10:30 -05:00
|
|
|
# Alternately, if you discover you've got the wrong time zone, you can just
|
|
|
|
|
# zic -p rightzone
|
1989-03-21 20:05:59 -05:00
|
|
|
# to correct things.
|
|
|
|
|
# Use the command
|
|
|
|
|
# make zonenames
|
|
|
|
|
# to get a list of the values you can use for POSIXRULES.
|
1994-02-24 14:14:24 -05:00
|
|
|
# If you want POSIX compatibility, use "America/New_York".
|
1989-01-31 23:10:30 -05:00
|
|
|
|
1994-02-24 14:14:24 -05:00
|
|
|
POSIXRULES= America/New_York
|
1989-01-31 23:10:30 -05:00
|
|
|
|
1999-09-20 16:35:22 -04:00
|
|
|
# Also see TZDEFRULESTRING below, which takes effect only
|
|
|
|
|
# if the time zone files cannot be accessed.
|
|
|
|
|
|
1989-03-21 20:05:59 -05:00
|
|
|
# Everything gets put in subdirectories of. . .
|
|
|
|
|
|
|
|
|
|
TOPDIR= /usr/local
|
|
|
|
|
|
|
|
|
|
# "Compiled" time zone information is placed in the "TZDIR" directory
|
|
|
|
|
# (and subdirectories).
|
1986-03-02 22:02:58 -05:00
|
|
|
# Use an absolute path name for TZDIR unless you're just testing the software.
|
1986-01-13 17:26:56 -05:00
|
|
|
|
2013-08-11 10:14:18 -07:00
|
|
|
TZDIR_BASENAME= zoneinfo
|
|
|
|
|
TZDIR= $(TOPDIR)/etc/$(TZDIR_BASENAME)
|
1989-03-21 20:05:59 -05:00
|
|
|
|
2013-05-27 14:16:25 -07:00
|
|
|
# Types to try, as an alternative to time_t. int64_t should be first.
|
|
|
|
|
TIME_T_ALTERNATIVES= int64_t int32_t uint32_t uint64_t
|
|
|
|
|
|
2002-01-28 12:55:52 -05:00
|
|
|
# The "tzselect", "zic", and "zdump" commands get installed in. . .
|
1989-03-21 20:05:59 -05:00
|
|
|
|
|
|
|
|
ETCDIR= $(TOPDIR)/etc
|
|
|
|
|
|
|
|
|
|
# If you "make INSTALL", the "date" command gets installed in. . .
|
|
|
|
|
|
|
|
|
|
BINDIR= $(TOPDIR)/bin
|
|
|
|
|
|
|
|
|
|
# Manual pages go in subdirectories of. . .
|
|
|
|
|
|
|
|
|
|
MANDIR= $(TOPDIR)/man
|
|
|
|
|
|
|
|
|
|
# Library functions are put in an archive in LIBDIR.
|
|
|
|
|
|
|
|
|
|
LIBDIR= $(TOPDIR)/lib
|
1986-02-28 21:30:44 -05:00
|
|
|
|
1989-02-04 18:30:06 -05:00
|
|
|
# If you always want time values interpreted as "seconds since the epoch
|
|
|
|
|
# (not counting leap seconds)", use
|
1995-01-06 18:10:11 -05:00
|
|
|
# REDO= posix_only
|
1989-02-17 20:21:00 -05:00
|
|
|
# below. If you always want right time values interpreted as "seconds since
|
1989-02-04 18:30:06 -05:00
|
|
|
# the epoch" (counting leap seconds)", use
|
|
|
|
|
# REDO= right_only
|
|
|
|
|
# below. If you want both sets of data available, with leap seconds not
|
|
|
|
|
# counted normally, use
|
|
|
|
|
# REDO= posix_right
|
1989-02-17 20:21:00 -05:00
|
|
|
# below. If you want both sets of data available, with leap seconds counted
|
1989-02-04 18:30:06 -05:00
|
|
|
# normally, use
|
|
|
|
|
# REDO= right_posix
|
|
|
|
|
# below.
|
1989-03-21 20:05:59 -05:00
|
|
|
# POSIX mandates that leap seconds not be counted; for compatibility with it,
|
|
|
|
|
# use either "posix_only" or "posix_right".
|
1989-02-04 18:30:06 -05:00
|
|
|
|
|
|
|
|
REDO= posix_right
|
|
|
|
|
|
1992-06-15 16:24:49 -04:00
|
|
|
# Since "." may not be in PATH...
|
|
|
|
|
|
|
|
|
|
YEARISTYPE= ./yearistype
|
|
|
|
|
|
1996-02-21 15:47:19 -05:00
|
|
|
# Non-default libraries needed to link.
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
# Add -lintl if you want to use 'gettext' on Solaris.
|
1996-02-21 15:47:19 -05:00
|
|
|
LDLIBS=
|
|
|
|
|
|
1995-01-03 11:08:17 -05:00
|
|
|
# Add the following to the end of the "CFLAGS=" line as needed.
|
zic: work around GNOME bug by refusing to go back before the Big Bang
This works around Gnome bug 730332
<https://bugzilla.gnome.org/show_bug.cgi?id=730332>.
zic 2014c introduced the idea of generating a transition at the
minimum time value -2**63, to avoid ambiguities about what to do
before the first real transition. Through Glib release 2.40, the
interval_end function of Glib's gtimezone.c subtracts one from
this, to find the end time of the zeroth interval (i.e., the
interval containing all the "early" time stamps); this subtraction
typically overflows and wraps around to 2**63 - 1, which causes
Glib to go off the rails and assume that all time stamps are
"early". For example, Glib computes Sao Paulo time stamps as if
Brazil's circa-1913 rules were still in effect.
(Thanks to Leonardo Chiquitto for reporting the bug.)
Work around the bug by not generating time stamps equal to -2**63.
Come to think of it, time stamps before the Big Bang are physically
suspect anyway, so don't generate time stamps before the Big Bang.
* Makefile (GCC_DEBUG_FLAGS): Add comment re BIG_BANG.
* NEWS, zic.8 (NOTES): Document this.
* zic.c (BIG_BANG): New macro.
(big_bang_time): New constant.
(writezone, outzone, addtt): Compare to big_bang_time, not to
min_time, when deciding whether to output a time stamp.
2014-05-23 22:56:18 -03:00
|
|
|
# -DBIG_BANG=-9999999LL if the Big Bang occurred at time -9999999 (see zic.c)
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
# -DHAVE_ADJTIME=0 if 'adjtime' does not exist (SVR0?)
|
Port to NetBSD, where, e.g., 'time_t' is wider than 'long'.
I audited the code and fixed as many width-asssumptions as I could
find, including several places where the code assumed that 'time_t'
was no wider than 'long'; this assumption is not true on 32-bit
NetBSD platforms. This caught every problem that is already fixed
in the NetBSD zic.c, and caught quite a few more.
* Makefile: Add comments re HAVE_DOS_FILE_NAMES and HAVE_INTTYPES_H.
* date.c (checkfinal, netsettime): Don't use 'long' where 'int' will do.
* difftime.c (difftime): Mark with ATTRIBUTE_CONST.
Use uintmax_t, not unsigned long, for the widest unsigned integer type.
Use long double, not double, if time_t is wider than uintmax_t;
this can in theory help on nonstandard platforms, such as GCC
with 64-bit uintmax_t and 128-bit __int128_t.
* localtime.c (struct ttinfo.tt_gmtoff, struct rule.r_time)
(detzcode, getsecs, getoffset, gmtsub, localsub, increment_overflow32)
(normalize_overflow32, time1, time2, timesub, transtime, tzparse)
(time2sub, timeoff, gtime):
* tzfile.h (SECSPERDAY):
* zdump.c (SECSPERDAY):
* zic.c (convert, puttzcode):
Use int_fast32_t, not long, when all we care is that values up to
2**31 can be stored. This doesn't fix any bugs, but it allows
more opportunity for compiler optimization.
(struct lsinfo.ls_corr, timesub, leapcorr):
Use int_fast64_t, not long, when values up to 2**63 can be stored.
(timesub): Make it clearer when we are truncating 0.5 to 0.
(increment_overflow32): Rename from long_increment_overflow.
All uses changed.
(normalize_overflow32): Rename from long_normalize_overflow.
All uses changed.
* private.h (HAVE_INTTYPES_H, ATTRIBUTE_CONST): New macros.
Include <inttypes.h> if HAVE_INTTYPES_H.
(INT_FAST64_MIN, INT_FAST64_MAX, SCNdFAST64, int_fast32_t, PRIdMAX)
(uintmax_t, PRIuMAX, _Noreturn):
Define to reasonable values if it's an older compiler.
* scheck.c (scheck): Add support for arbitrary formats, such as
those that SCNdFAST64 can expand to, at the price of no longer
supporting weird conversion specs like "%[%]".
* strftime.c (_fmt): Use intmax_t and uintmax_t to format time_t,
not long and unsigned long.
* zdump.c (int_fast32_t, intmax_t, PRIdMAX, SCNdMAX):
Define for pre-C99 compilers, like private.h does.
(delta, yeartot, main): Use intmax_t, not long.
(hunt): Use time_t, not long, since the diff must be nonnegative.
(tformat): Allow for time_t wider than long.
* zic.c (ZIC_MIN, ZIC_MAX, SCNdZIC): New macros.
(OFFSET_STRLEN_MAXIMUM, RULE_STRLEN_MAXIMUM): Remove.
(struct rule): Make r_loyear, r_hiyear, r_tod, r_stdoff, z_gmtoff,
z_stdoff zic_t, not long.
(addtype, gethms, oadd, rpytime, tadd, gmtoffs, corr, inleap)
(stringoffset, stringrule, outzone, addtype, adjleap, rpytime)
(LDAYSPERWEEK):
Use zic_t, not long.
(leapminyear, leapmaxyear, min_year, max_year, rulesub, updateminmax)
(outzone, rpytime):
Use zic_t, not int.
(usage): Now _Noreturn.
(main): Use S_IWGRP, not 'unix', to determine whether to call umask.
(writezone): Omit unnecessary cast.
(mkdirs): Use HAVE_DOS_FILE_NAMES, not 'unix', to determine
whether to parse DOS file anmes.
(eitol): Remove; no longer needed.
2013-05-27 21:26:18 -07:00
|
|
|
# -DHAVE_DOS_FILE_NAMES if file names have drive specifiers etc. (MS-DOS)
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
# -DHAVE_GETTEXT=1 if 'gettext' works (GNU, Linux, Solaris); also see LDLIBS
|
2000-04-17 12:53:07 -04:00
|
|
|
# -DHAVE_INCOMPATIBLE_CTIME_R=1 if your system's time.h declares
|
|
|
|
|
# ctime_r and asctime_r incompatibly with the POSIX standard (Solaris 8).
|
Port to NetBSD, where, e.g., 'time_t' is wider than 'long'.
I audited the code and fixed as many width-asssumptions as I could
find, including several places where the code assumed that 'time_t'
was no wider than 'long'; this assumption is not true on 32-bit
NetBSD platforms. This caught every problem that is already fixed
in the NetBSD zic.c, and caught quite a few more.
* Makefile: Add comments re HAVE_DOS_FILE_NAMES and HAVE_INTTYPES_H.
* date.c (checkfinal, netsettime): Don't use 'long' where 'int' will do.
* difftime.c (difftime): Mark with ATTRIBUTE_CONST.
Use uintmax_t, not unsigned long, for the widest unsigned integer type.
Use long double, not double, if time_t is wider than uintmax_t;
this can in theory help on nonstandard platforms, such as GCC
with 64-bit uintmax_t and 128-bit __int128_t.
* localtime.c (struct ttinfo.tt_gmtoff, struct rule.r_time)
(detzcode, getsecs, getoffset, gmtsub, localsub, increment_overflow32)
(normalize_overflow32, time1, time2, timesub, transtime, tzparse)
(time2sub, timeoff, gtime):
* tzfile.h (SECSPERDAY):
* zdump.c (SECSPERDAY):
* zic.c (convert, puttzcode):
Use int_fast32_t, not long, when all we care is that values up to
2**31 can be stored. This doesn't fix any bugs, but it allows
more opportunity for compiler optimization.
(struct lsinfo.ls_corr, timesub, leapcorr):
Use int_fast64_t, not long, when values up to 2**63 can be stored.
(timesub): Make it clearer when we are truncating 0.5 to 0.
(increment_overflow32): Rename from long_increment_overflow.
All uses changed.
(normalize_overflow32): Rename from long_normalize_overflow.
All uses changed.
* private.h (HAVE_INTTYPES_H, ATTRIBUTE_CONST): New macros.
Include <inttypes.h> if HAVE_INTTYPES_H.
(INT_FAST64_MIN, INT_FAST64_MAX, SCNdFAST64, int_fast32_t, PRIdMAX)
(uintmax_t, PRIuMAX, _Noreturn):
Define to reasonable values if it's an older compiler.
* scheck.c (scheck): Add support for arbitrary formats, such as
those that SCNdFAST64 can expand to, at the price of no longer
supporting weird conversion specs like "%[%]".
* strftime.c (_fmt): Use intmax_t and uintmax_t to format time_t,
not long and unsigned long.
* zdump.c (int_fast32_t, intmax_t, PRIdMAX, SCNdMAX):
Define for pre-C99 compilers, like private.h does.
(delta, yeartot, main): Use intmax_t, not long.
(hunt): Use time_t, not long, since the diff must be nonnegative.
(tformat): Allow for time_t wider than long.
* zic.c (ZIC_MIN, ZIC_MAX, SCNdZIC): New macros.
(OFFSET_STRLEN_MAXIMUM, RULE_STRLEN_MAXIMUM): Remove.
(struct rule): Make r_loyear, r_hiyear, r_tod, r_stdoff, z_gmtoff,
z_stdoff zic_t, not long.
(addtype, gethms, oadd, rpytime, tadd, gmtoffs, corr, inleap)
(stringoffset, stringrule, outzone, addtype, adjleap, rpytime)
(LDAYSPERWEEK):
Use zic_t, not long.
(leapminyear, leapmaxyear, min_year, max_year, rulesub, updateminmax)
(outzone, rpytime):
Use zic_t, not int.
(usage): Now _Noreturn.
(main): Use S_IWGRP, not 'unix', to determine whether to call umask.
(writezone): Omit unnecessary cast.
(mkdirs): Use HAVE_DOS_FILE_NAMES, not 'unix', to determine
whether to parse DOS file anmes.
(eitol): Remove; no longer needed.
2013-05-27 21:26:18 -07:00
|
|
|
# -DHAVE_INTTYPES_H=1 if you have a pre-C99 compiler with "inttypes.h"
|
2013-09-25 17:49:49 -07:00
|
|
|
# -DHAVE_LINK=0 if your system lacks a link function
|
1995-01-03 11:08:17 -05:00
|
|
|
# -DHAVE_SETTIMEOFDAY=0 if settimeofday does not exist (SVR0?)
|
|
|
|
|
# -DHAVE_SETTIMEOFDAY=1 if settimeofday has just 1 arg (SVR4)
|
|
|
|
|
# -DHAVE_SETTIMEOFDAY=2 if settimeofday uses 2nd arg (4.3BSD)
|
|
|
|
|
# -DHAVE_SETTIMEOFDAY=3 if settimeofday ignores 2nd arg (4.4BSD)
|
2006-02-20 09:53:09 -05:00
|
|
|
# -DHAVE_STDINT_H=1 if you have a pre-C99 compiler with "stdint.h"
|
1998-01-31 13:52:40 -05:00
|
|
|
# -DHAVE_SYMLINK=0 if your system lacks the symlink function
|
2001-06-05 13:48:07 -04:00
|
|
|
# -DHAVE_SYS_STAT_H=0 if your compiler lacks a "sys/stat.h"
|
1999-08-17 14:09:02 -04:00
|
|
|
# -DHAVE_SYS_WAIT_H=0 if your compiler lacks a "sys/wait.h"
|
1995-12-21 12:31:40 -05:00
|
|
|
# -DHAVE_UNISTD_H=0 if your compiler lacks a "unistd.h" (Microsoft C++ 7?)
|
1996-01-10 16:46:38 -05:00
|
|
|
# -DHAVE_UTMPX_H=1 if your compiler has a "utmpx.h"
|
Add support for testing time_t types other than the system's.
This makes it easier to test on (say) Debian, even if we're
testing the time_t type on (say) NetBSD. NetBSD uses 64-bit
time_t on 32-bit hosts, and this lets us test a NetBSD-style
implementation (32-bit 'long', 64-bit time_t) on a 32-bit Debian host.
* Makefile: Update comments to talk about TIME_T_FLOATING and time_tz.
Sort the comments.
* private.h (restrict): Define to empty with older compilers.
'restrict' is now needed, to define gmtime_r and localtime_r in
standard ways when time_tz is defined.
Make the following changes if time_tz is defined:
(sys_time, time): New static functions. The former is the system
'time' function that applies to the system time_t, the latter
our function that applies to our time_t.
(time_t, ctime, ctime_r, difftime, gmtime, gmtime_r, localtime)
(localtime_r, mktime): Rename to tz_time_t, tz_ctime, etc.,
via macros. Declare the renamed versions.
* zdump.8: Document new options -V, -t.
* zdump.c: Include private.h if time_tz is defined.
(INITIALIZE): Remove; no longer needed.
(absolute_min_time, absolute_max_time): Work even if time_t
is wider than intmax_t, which can be true with GCC and __int128_t.
Use the new TIME_T_FLOATING macro for this.
(usage): Document new flags.
(main): Support them.
2013-05-27 14:01:55 -07:00
|
|
|
# -DLOCALE_HOME=\"path\" if locales are in "path", not "/usr/lib/locale"
|
1996-09-08 16:17:30 -04:00
|
|
|
# -DNO_RUN_TIME_WARNINGS_ABOUT_YEAR_2000_PROBLEMS_THANK_YOU=1
|
|
|
|
|
# if you do not want run time warnings about formats that may cause
|
|
|
|
|
# year 2000 grief
|
Add support for testing time_t types other than the system's.
This makes it easier to test on (say) Debian, even if we're
testing the time_t type on (say) NetBSD. NetBSD uses 64-bit
time_t on 32-bit hosts, and this lets us test a NetBSD-style
implementation (32-bit 'long', 64-bit time_t) on a 32-bit Debian host.
* Makefile: Update comments to talk about TIME_T_FLOATING and time_tz.
Sort the comments.
* private.h (restrict): Define to empty with older compilers.
'restrict' is now needed, to define gmtime_r and localtime_r in
standard ways when time_tz is defined.
Make the following changes if time_tz is defined:
(sys_time, time): New static functions. The former is the system
'time' function that applies to the system time_t, the latter
our function that applies to our time_t.
(time_t, ctime, ctime_r, difftime, gmtime, gmtime_r, localtime)
(localtime_r, mktime): Rename to tz_time_t, tz_ctime, etc.,
via macros. Declare the renamed versions.
* zdump.8: Document new options -V, -t.
* zdump.c: Include private.h if time_tz is defined.
(INITIALIZE): Remove; no longer needed.
(absolute_min_time, absolute_max_time): Work even if time_t
is wider than intmax_t, which can be true with GCC and __int128_t.
Use the new TIME_T_FLOATING macro for this.
(usage): Document new flags.
(main): Support them.
2013-05-27 14:01:55 -07:00
|
|
|
# -Dtime_tz=\"T\" to use T as the time_t type, rather than the system time_t
|
|
|
|
|
# -DTZ_DOMAIN=\"foo\" to use "foo" for gettext domain name; default is "tz"
|
|
|
|
|
# -TTZ_DOMAINDIR=\"/path\" to use "/path" for gettext directory;
|
|
|
|
|
# the default is system-supplied, typically "/usr/lib/locale"
|
|
|
|
|
# -DTZDEFRULESTRING=\",date/time,date/time\" to default to the specified
|
|
|
|
|
# DST transitions if the time zone files cannot be accessed
|
2005-05-24 13:20:21 -04:00
|
|
|
# -DZIC_MAX_ABBR_LEN_WO_WARN=3
|
|
|
|
|
# (or some other number) to set the maximum time zone abbreviation length
|
|
|
|
|
# that zic will accept without a warning (the default is 6)
|
Add support for testing time_t types other than the system's.
This makes it easier to test on (say) Debian, even if we're
testing the time_t type on (say) NetBSD. NetBSD uses 64-bit
time_t on 32-bit hosts, and this lets us test a NetBSD-style
implementation (32-bit 'long', 64-bit time_t) on a 32-bit Debian host.
* Makefile: Update comments to talk about TIME_T_FLOATING and time_tz.
Sort the comments.
* private.h (restrict): Define to empty with older compilers.
'restrict' is now needed, to define gmtime_r and localtime_r in
standard ways when time_tz is defined.
Make the following changes if time_tz is defined:
(sys_time, time): New static functions. The former is the system
'time' function that applies to the system time_t, the latter
our function that applies to our time_t.
(time_t, ctime, ctime_r, difftime, gmtime, gmtime_r, localtime)
(localtime_r, mktime): Rename to tz_time_t, tz_ctime, etc.,
via macros. Declare the renamed versions.
* zdump.8: Document new options -V, -t.
* zdump.c: Include private.h if time_tz is defined.
(INITIALIZE): Remove; no longer needed.
(absolute_min_time, absolute_max_time): Work even if time_t
is wider than intmax_t, which can be true with GCC and __int128_t.
Use the new TIME_T_FLOATING macro for this.
(usage): Document new flags.
(main): Support them.
2013-05-27 14:01:55 -07:00
|
|
|
# $(GCC_DEBUG_FLAGS) if you are using GCC and want lots of checking
|
Assume C89.
* Makefile (GCC_DEBUG_FLAGS): Modernize for GCC 4.6.3 x86.
* asctime.c (asctime_r, asctime):
* date.c (main, dogmt, reset, wildinput, nondigit, oops, display)
(timeout, sametm, netsettime):
* difftime.c (difftime):
* ialloc.c (icatalloc, icpyalloc):
* localtime.c (detzcode, detzcode64, differ_by_repeat)
(tzload, typesequiv, getzname, getnum, getsecs, getoffset)
(getrule, transtime, tzparse, gmtload, tzsetwall, tzset)
(localsub, localtime, localtime_r, gmtsub, gmtime, gmtime_r)
(offtime, leaps_thru_end_of, timesub, ctime, ctime_r)
(increment_overflow, long_increment_overflow)
(normalize_overflow, long_normalize_overflow, tmcomp, time2sub)
(time2, time1, mktime, timelocal, timegm, timeoff, gtime)
(leapcorr, time2posix, posix2time):
* scheck.c (scheck):
* strftime.c (strftime, _fmt, _conv, _add, _yconv, _loc):
* zdump.c (my_localtime, abbrok, usage, main, yeartot)
(delta, abbr, dumptime):
* zic.c (memcheck, eats, eat, error, warning, main)
(dolink, itsdir, rcomp, associate, infile, gethms, inrule)
(inzone, inzcont, inzsub, inleap, inlink, rulesub, convert)
(convert64, puttzcode, puttzcode64, atcomp, is32, writezone, DO)
(doabbr, updateminmax, stringoffset, stringrule, stringzone)
(outzone, addtt, addtype, leapadd, yearistype, lowerit, ciequal)
(itsabbr, byword, getfields, oadd, tadd, rpytime, newabbr)
(mkdirs, eitol):
Assume C89 or better. Mostly this consists of using function
prototypes. In a few places, prototypes are required for
portability to hosts where time_t does not promote to itself and
where a preceding prototype does not override a definition. But
while we're at it we might as well be consistent: it's safe to
assume at-least-C89 these days.
* ialloc.c (nonzero, imalloc, icalloc, irealloc, ifree, icfree):
Remove; no longer needed now that we assume C89 or better.
All callers changed to use malloc, calloc, realloc, free.
* localtime.c (getzname, getqzname, leaps_thru_end_of, transtime):
* zdump.c (delta, yeartot):
* zic.c (eitol):
Now pure.
* private.h, zdump.c (ATTRIBUTE_PURE): New macro.
* private.h (icalloc, imalloc, irealloc, icfree, ifree): Remove decls.
* zic.c: Remove no-longer-necessary forward decls.
(max_time, min_time): Now const.
(setboundaries): Remove.
2012-10-12 07:53:12 -07:00
|
|
|
GCC_DEBUG_FLAGS = -Dlint -g3 -O3 -fno-common -fstrict-aliasing \
|
|
|
|
|
-Wall -Wextra \
|
|
|
|
|
-Wbad-function-cast -Wcast-align -Wcast-qual \
|
2014-06-18 23:25:57 -07:00
|
|
|
-Wdeclaration-after-statement \
|
|
|
|
|
-Wformat=2 -Winit-self -Wjump-misses-init \
|
Assume C89.
* Makefile (GCC_DEBUG_FLAGS): Modernize for GCC 4.6.3 x86.
* asctime.c (asctime_r, asctime):
* date.c (main, dogmt, reset, wildinput, nondigit, oops, display)
(timeout, sametm, netsettime):
* difftime.c (difftime):
* ialloc.c (icatalloc, icpyalloc):
* localtime.c (detzcode, detzcode64, differ_by_repeat)
(tzload, typesequiv, getzname, getnum, getsecs, getoffset)
(getrule, transtime, tzparse, gmtload, tzsetwall, tzset)
(localsub, localtime, localtime_r, gmtsub, gmtime, gmtime_r)
(offtime, leaps_thru_end_of, timesub, ctime, ctime_r)
(increment_overflow, long_increment_overflow)
(normalize_overflow, long_normalize_overflow, tmcomp, time2sub)
(time2, time1, mktime, timelocal, timegm, timeoff, gtime)
(leapcorr, time2posix, posix2time):
* scheck.c (scheck):
* strftime.c (strftime, _fmt, _conv, _add, _yconv, _loc):
* zdump.c (my_localtime, abbrok, usage, main, yeartot)
(delta, abbr, dumptime):
* zic.c (memcheck, eats, eat, error, warning, main)
(dolink, itsdir, rcomp, associate, infile, gethms, inrule)
(inzone, inzcont, inzsub, inleap, inlink, rulesub, convert)
(convert64, puttzcode, puttzcode64, atcomp, is32, writezone, DO)
(doabbr, updateminmax, stringoffset, stringrule, stringzone)
(outzone, addtt, addtype, leapadd, yearistype, lowerit, ciequal)
(itsabbr, byword, getfields, oadd, tadd, rpytime, newabbr)
(mkdirs, eitol):
Assume C89 or better. Mostly this consists of using function
prototypes. In a few places, prototypes are required for
portability to hosts where time_t does not promote to itself and
where a preceding prototype does not override a definition. But
while we're at it we might as well be consistent: it's safe to
assume at-least-C89 these days.
* ialloc.c (nonzero, imalloc, icalloc, irealloc, ifree, icfree):
Remove; no longer needed now that we assume C89 or better.
All callers changed to use malloc, calloc, realloc, free.
* localtime.c (getzname, getqzname, leaps_thru_end_of, transtime):
* zdump.c (delta, yeartot):
* zic.c (eitol):
Now pure.
* private.h, zdump.c (ATTRIBUTE_PURE): New macro.
* private.h (icalloc, imalloc, irealloc, icfree, ifree): Remove decls.
* zic.c: Remove no-longer-necessary forward decls.
(max_time, min_time): Now const.
(setboundaries): Remove.
2012-10-12 07:53:12 -07:00
|
|
|
-Wmissing-declarations -Wmissing-noreturn -Wmissing-prototypes \
|
Simplify some ALL_STATE and PCTS ifdefs.
* Makefile (GCC_DEBUG_FLAGS): Add -Wno-address and -Wno-cast-qual.
Otherwise, GCC 4.8.1 complains about some of the following changes.
* localtime.c (wildabbr): Now const. This is a tiny bit more
efficient, POSIX allows it, and the ALL_STATE simplifications
below make use of it. All uses changed to cast if needed.
(settzname, tzload, localsub, gmtsub, timesub, time2sub, time1):
Protect less code with ALL_STATE; this is simpler and doesn't
change behavior (or, these days, efficiency).
(time1): Simplify the PCTS ifdef, and explain what PCTS is.
2014-01-17 22:42:22 -08:00
|
|
|
-Wnested-externs -Wno-address -Wno-cast-qual \
|
Assume C89.
* Makefile (GCC_DEBUG_FLAGS): Modernize for GCC 4.6.3 x86.
* asctime.c (asctime_r, asctime):
* date.c (main, dogmt, reset, wildinput, nondigit, oops, display)
(timeout, sametm, netsettime):
* difftime.c (difftime):
* ialloc.c (icatalloc, icpyalloc):
* localtime.c (detzcode, detzcode64, differ_by_repeat)
(tzload, typesequiv, getzname, getnum, getsecs, getoffset)
(getrule, transtime, tzparse, gmtload, tzsetwall, tzset)
(localsub, localtime, localtime_r, gmtsub, gmtime, gmtime_r)
(offtime, leaps_thru_end_of, timesub, ctime, ctime_r)
(increment_overflow, long_increment_overflow)
(normalize_overflow, long_normalize_overflow, tmcomp, time2sub)
(time2, time1, mktime, timelocal, timegm, timeoff, gtime)
(leapcorr, time2posix, posix2time):
* scheck.c (scheck):
* strftime.c (strftime, _fmt, _conv, _add, _yconv, _loc):
* zdump.c (my_localtime, abbrok, usage, main, yeartot)
(delta, abbr, dumptime):
* zic.c (memcheck, eats, eat, error, warning, main)
(dolink, itsdir, rcomp, associate, infile, gethms, inrule)
(inzone, inzcont, inzsub, inleap, inlink, rulesub, convert)
(convert64, puttzcode, puttzcode64, atcomp, is32, writezone, DO)
(doabbr, updateminmax, stringoffset, stringrule, stringzone)
(outzone, addtt, addtype, leapadd, yearistype, lowerit, ciequal)
(itsabbr, byword, getfields, oadd, tadd, rpytime, newabbr)
(mkdirs, eitol):
Assume C89 or better. Mostly this consists of using function
prototypes. In a few places, prototypes are required for
portability to hosts where time_t does not promote to itself and
where a preceding prototype does not override a definition. But
while we're at it we might as well be consistent: it's safe to
assume at-least-C89 these days.
* ialloc.c (nonzero, imalloc, icalloc, irealloc, ifree, icfree):
Remove; no longer needed now that we assume C89 or better.
All callers changed to use malloc, calloc, realloc, free.
* localtime.c (getzname, getqzname, leaps_thru_end_of, transtime):
* zdump.c (delta, yeartot):
* zic.c (eitol):
Now pure.
* private.h, zdump.c (ATTRIBUTE_PURE): New macro.
* private.h (icalloc, imalloc, irealloc, icfree, ifree): Remove decls.
* zic.c: Remove no-longer-necessary forward decls.
(max_time, min_time): Now const.
(setboundaries): Remove.
2012-10-12 07:53:12 -07:00
|
|
|
-Wno-format-nonliteral -Wno-sign-compare -Wno-sign-conversion \
|
|
|
|
|
-Wno-type-limits \
|
|
|
|
|
-Wno-unused-parameter -Woverlength-strings -Wpointer-arith \
|
|
|
|
|
-Wshadow -Wstrict-prototypes -Wsuggest-attribute=const \
|
2014-06-18 23:25:57 -07:00
|
|
|
-Wsuggest-attribute=format -Wsuggest-attribute=noreturn \
|
|
|
|
|
-Wsuggest-attribute=pure -Wtrampolines \
|
Assume C89.
* Makefile (GCC_DEBUG_FLAGS): Modernize for GCC 4.6.3 x86.
* asctime.c (asctime_r, asctime):
* date.c (main, dogmt, reset, wildinput, nondigit, oops, display)
(timeout, sametm, netsettime):
* difftime.c (difftime):
* ialloc.c (icatalloc, icpyalloc):
* localtime.c (detzcode, detzcode64, differ_by_repeat)
(tzload, typesequiv, getzname, getnum, getsecs, getoffset)
(getrule, transtime, tzparse, gmtload, tzsetwall, tzset)
(localsub, localtime, localtime_r, gmtsub, gmtime, gmtime_r)
(offtime, leaps_thru_end_of, timesub, ctime, ctime_r)
(increment_overflow, long_increment_overflow)
(normalize_overflow, long_normalize_overflow, tmcomp, time2sub)
(time2, time1, mktime, timelocal, timegm, timeoff, gtime)
(leapcorr, time2posix, posix2time):
* scheck.c (scheck):
* strftime.c (strftime, _fmt, _conv, _add, _yconv, _loc):
* zdump.c (my_localtime, abbrok, usage, main, yeartot)
(delta, abbr, dumptime):
* zic.c (memcheck, eats, eat, error, warning, main)
(dolink, itsdir, rcomp, associate, infile, gethms, inrule)
(inzone, inzcont, inzsub, inleap, inlink, rulesub, convert)
(convert64, puttzcode, puttzcode64, atcomp, is32, writezone, DO)
(doabbr, updateminmax, stringoffset, stringrule, stringzone)
(outzone, addtt, addtype, leapadd, yearistype, lowerit, ciequal)
(itsabbr, byword, getfields, oadd, tadd, rpytime, newabbr)
(mkdirs, eitol):
Assume C89 or better. Mostly this consists of using function
prototypes. In a few places, prototypes are required for
portability to hosts where time_t does not promote to itself and
where a preceding prototype does not override a definition. But
while we're at it we might as well be consistent: it's safe to
assume at-least-C89 these days.
* ialloc.c (nonzero, imalloc, icalloc, irealloc, ifree, icfree):
Remove; no longer needed now that we assume C89 or better.
All callers changed to use malloc, calloc, realloc, free.
* localtime.c (getzname, getqzname, leaps_thru_end_of, transtime):
* zdump.c (delta, yeartot):
* zic.c (eitol):
Now pure.
* private.h, zdump.c (ATTRIBUTE_PURE): New macro.
* private.h (icalloc, imalloc, irealloc, icfree, ifree): Remove decls.
* zic.c: Remove no-longer-necessary forward decls.
(max_time, min_time): Now const.
(setboundaries): Remove.
2012-10-12 07:53:12 -07:00
|
|
|
-Wwrite-strings
|
1989-03-05 22:10:42 -05:00
|
|
|
#
|
1986-12-26 15:21:45 -05:00
|
|
|
# If you want to use System V compatibility code, add
|
|
|
|
|
# -DUSG_COMPAT
|
1989-03-21 20:05:59 -05:00
|
|
|
# to the end of the "CFLAGS=" line. This arrange for "timezone" and "daylight"
|
|
|
|
|
# variables to be kept up-to-date by the time conversion functions. Neither
|
|
|
|
|
# "timezone" nor "daylight" is described in X3J11's work.
|
1986-12-26 15:21:45 -05:00
|
|
|
#
|
1989-02-07 13:08:06 -05:00
|
|
|
# If your system has a "GMT offset" field in its "struct tm"s
|
|
|
|
|
# (or if you decide to add such a field in your system's "time.h" file),
|
|
|
|
|
# add the name to a define such as
|
|
|
|
|
# -DTM_GMTOFF=tm_gmtoff
|
|
|
|
|
# or
|
|
|
|
|
# -DTM_GMTOFF=_tm_gmtoff
|
|
|
|
|
# to the end of the "CFLAGS=" line.
|
1989-03-21 20:05:59 -05:00
|
|
|
# Neither tm_gmtoff nor _tm_gmtoff is described in X3J11's work;
|
|
|
|
|
# in its work, use of "tm_gmtoff" is described as non-conforming.
|
1997-12-29 09:31:30 -05:00
|
|
|
# Both Linux and BSD have done the equivalent of defining TM_GMTOFF in
|
1989-03-21 20:05:59 -05:00
|
|
|
# their recent releases.
|
1989-02-07 13:08:06 -05:00
|
|
|
#
|
1989-04-10 18:36:22 -04:00
|
|
|
# If your system has a "zone abbreviation" field in its "struct tm"s
|
1989-02-07 13:08:06 -05:00
|
|
|
# (or if you decide to add such a field in your system's "time.h" file),
|
|
|
|
|
# add the name to a define such as
|
|
|
|
|
# -DTM_ZONE=tm_zone
|
|
|
|
|
# or
|
|
|
|
|
# -DTM_ZONE=_tm_zone
|
|
|
|
|
# to the end of the "CFLAGS=" line.
|
1989-03-21 20:05:59 -05:00
|
|
|
# Neither tm_zone nor _tm_zone is described in X3J11's work;
|
|
|
|
|
# in its work, use of "tm_zone" is described as non-conforming.
|
|
|
|
|
# Both UCB and Sun have done the equivalent of defining TM_ZONE in
|
|
|
|
|
# their recent releases.
|
1987-02-12 19:56:12 -05:00
|
|
|
#
|
1989-03-21 20:05:59 -05:00
|
|
|
# If you want functions that were inspired by early versions of X3J11's work,
|
|
|
|
|
# add
|
1987-02-12 19:56:12 -05:00
|
|
|
# -DSTD_INSPIRED
|
1989-03-22 20:00:34 -05:00
|
|
|
# to the end of the "CFLAGS=" line. This arranges for the functions
|
1993-10-31 18:48:25 -05:00
|
|
|
# "tzsetwall", "offtime", "timelocal", "timegm", "timeoff",
|
|
|
|
|
# "posix2time", and "time2posix" to be added to the time conversion library.
|
1989-03-22 20:00:34 -05:00
|
|
|
# "tzsetwall" is like "tzset" except that it arranges for local wall clock
|
|
|
|
|
# time (rather than the time specified in the TZ environment variable)
|
|
|
|
|
# to be used.
|
1989-03-21 20:05:59 -05:00
|
|
|
# "offtime" is like "gmtime" except that it accepts a second (long) argument
|
|
|
|
|
# that gives an offset to add to the time_t when converting it.
|
|
|
|
|
# "timelocal" is equivalent to "mktime".
|
|
|
|
|
# "timegm" is like "timelocal" except that it turns a struct tm into
|
2013-09-04 19:07:31 -07:00
|
|
|
# a time_t using UT (rather than local time as "timelocal" does).
|
1989-03-21 20:05:59 -05:00
|
|
|
# "timeoff" is like "timegm" except that it accepts a second (long) argument
|
|
|
|
|
# that gives an offset to use when converting to a time_t.
|
1993-10-31 18:48:25 -05:00
|
|
|
# "posix2time" and "time2posix" are described in an included manual page.
|
1999-09-21 10:15:28 -04:00
|
|
|
# X3J11's work does not describe any of these functions.
|
1989-03-22 20:00:34 -05:00
|
|
|
# Sun has provided "tzsetwall", "timelocal", and "timegm" in SunOS 4.0.
|
1989-03-21 20:05:59 -05:00
|
|
|
# These functions may well disappear in future releases of the time
|
|
|
|
|
# conversion package.
|
1987-02-12 19:56:12 -05:00
|
|
|
#
|
1989-02-26 15:28:37 -05:00
|
|
|
# If you want to allocate state structures in localtime, add
|
|
|
|
|
# -DALL_STATE
|
1989-03-21 20:05:59 -05:00
|
|
|
# to the end of the "CFLAGS=" line. Storage is obtained by calling malloc.
|
1989-02-26 15:28:37 -05:00
|
|
|
#
|
|
|
|
|
# If you want an "altzone" variable (a la System V Release 3.1), add
|
|
|
|
|
# -DALTZONE
|
|
|
|
|
# to the end of the "CFLAGS=" line.
|
1989-03-21 20:05:59 -05:00
|
|
|
# This variable is not described in X3J11's work.
|
1989-02-27 10:06:50 -05:00
|
|
|
#
|
|
|
|
|
# If you want a "gtime" function (a la MACH), add
|
|
|
|
|
# -DCMUCS
|
|
|
|
|
# to the end of the "CFLAGS=" line
|
1989-03-21 20:05:59 -05:00
|
|
|
# This function is not described in X3J11's work.
|
1994-03-29 07:31:43 -05:00
|
|
|
#
|
1994-03-30 23:15:22 -05:00
|
|
|
# NIST-PCTS:151-2, Version 1.4, (1993-12-03) is a test suite put
|
|
|
|
|
# out by the National Institute of Standards and Technology
|
|
|
|
|
# which claims to test C and Posix conformance. If you want to pass PCTS, add
|
1994-03-29 07:31:43 -05:00
|
|
|
# -DPCTS
|
|
|
|
|
# to the end of the "CFLAGS=" line.
|
1994-04-09 20:33:20 -04:00
|
|
|
#
|
1996-09-08 19:56:42 -04:00
|
|
|
# If you want strict compliance with XPG4 as of 1994-04-09, add
|
1994-04-09 20:33:20 -04:00
|
|
|
# -DXPG4_1994_04_09
|
|
|
|
|
# to the end of the "CFLAGS=" line. This causes "strftime" to always return
|
|
|
|
|
# 53 as a week number (rather than 52 or 53) for those days in January that
|
|
|
|
|
# before the first Monday in January when a "%V" format is used and January 1
|
|
|
|
|
# falls on a Friday, Saturday, or Sunday.
|
1986-12-26 15:21:45 -05:00
|
|
|
|
2012-03-03 13:25:06 -05:00
|
|
|
CFLAGS=
|
1986-11-27 12:46:22 -05:00
|
|
|
|
2012-10-27 12:54:47 -07:00
|
|
|
# Linker flags. Default to $(LFLAGS) for backwards compatibility
|
|
|
|
|
# to tzcode2012h and earlier.
|
|
|
|
|
|
|
|
|
|
LDFLAGS= $(LFLAGS)
|
|
|
|
|
|
1997-03-04 10:03:59 -05:00
|
|
|
zic= ./zic
|
|
|
|
|
ZIC= $(zic) $(ZFLAGS)
|
1997-03-03 18:27:59 -05:00
|
|
|
|
2013-09-11 02:42:07 -07:00
|
|
|
ZFLAGS=
|
2013-09-09 17:16:37 -07:00
|
|
|
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
# The name of a Posix-compliant 'awk' on your system.
|
2012-10-27 12:36:00 -07:00
|
|
|
AWK= awk
|
1996-09-08 15:51:04 -04:00
|
|
|
|
2013-10-06 02:11:51 -07:00
|
|
|
# The full path name of a Posix-compliant shell, preferably one that supports
|
|
|
|
|
# the Korn shell's 'select' statement as an extension.
|
|
|
|
|
# These days, Bash is the most popular.
|
|
|
|
|
# It should be OK to set this to /bin/sh, on platforms where /bin/sh
|
|
|
|
|
# lacks 'select' or doesn't completely conform to Posix, but /bin/bash
|
|
|
|
|
# is typically nicer if it works.
|
2012-10-27 13:54:13 -07:00
|
|
|
KSHELL= /bin/bash
|
|
|
|
|
|
2014-01-02 13:20:49 -08:00
|
|
|
# The path where SGML DTDs are kept and the catalog file(s) to use when
|
|
|
|
|
# validating. The default is appropriate for Ubuntu 13.10.
|
2012-07-18 19:23:31 -07:00
|
|
|
SGML_TOPDIR= /usr
|
2013-01-11 12:02:22 -08:00
|
|
|
SGML_DTDDIR= $(SGML_TOPDIR)/share/xml/w3c-sgml-lib/schema/dtd
|
|
|
|
|
SGML_SEARCH_PATH= $(SGML_DTDDIR)/REC-html401-19991224
|
2014-01-02 13:20:49 -08:00
|
|
|
SGML_CATALOG_FILES= \
|
|
|
|
|
$(SGML_TOPDIR)/share/doc/w3-recs/html/www.w3.org/TR/1999/REC-html401-19991224/HTML4.cat
|
2001-04-05 16:43:36 -04:00
|
|
|
|
|
|
|
|
# The name, arguments and environment of a program to validate your web pages.
|
2000-12-14 15:31:52 -05:00
|
|
|
# See <http://www.jclark.com/sp/> for a validator, and
|
|
|
|
|
# <http://validator.w3.org/source/> for a validation library.
|
|
|
|
|
VALIDATE = nsgmls
|
2006-08-21 09:56:06 -04:00
|
|
|
VALIDATE_FLAGS = -s -B -wall -wno-unused-param
|
2001-04-05 16:43:36 -04:00
|
|
|
VALIDATE_ENV = \
|
|
|
|
|
SGML_CATALOG_FILES=$(SGML_CATALOG_FILES) \
|
|
|
|
|
SGML_SEARCH_PATH=$(SGML_SEARCH_PATH) \
|
|
|
|
|
SP_CHARSET_FIXED=YES \
|
|
|
|
|
SP_ENCODING=UTF-8
|
2000-12-14 15:31:52 -05:00
|
|
|
|
2014-06-14 16:36:18 -07:00
|
|
|
# SAFE_CHAR is a regular expression that matches a safe character.
|
|
|
|
|
# Some parts of this distribution are limited to safe characters;
|
|
|
|
|
# others can use any UTF-8 character.
|
|
|
|
|
# For now, the safe characters are a safe subset of ASCII.
|
2012-12-13 17:19:47 -08:00
|
|
|
# The caller must set the shell variable 'sharp' to the character '#',
|
|
|
|
|
# since Makefile macros cannot contain '#'.
|
|
|
|
|
# TAB_CHAR is a single tab character, in single quotes.
|
|
|
|
|
TAB_CHAR= ' '
|
2014-06-14 16:36:18 -07:00
|
|
|
SAFE_CHARSET1= $(TAB_CHAR)' !\"'$$sharp'$$%&'\''()*+,./0123456789:;<=>?@'
|
|
|
|
|
SAFE_CHARSET2= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\^_`'
|
|
|
|
|
SAFE_CHARSET3= 'abcdefghijklmnopqrstuvwxyz{|}~'
|
|
|
|
|
SAFE_CHARSET= ]$(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3)-
|
|
|
|
|
SAFE_CHAR= '['$(SAFE_CHARSET)']'
|
|
|
|
|
|
|
|
|
|
# SAFE_LINE matches a line of safe characters.
|
|
|
|
|
# SAFE_SHARP_LINE is similar, except any character can follow '#';
|
|
|
|
|
# this is so that comments can contain non-ASCII characters.
|
|
|
|
|
# VALID_LINE matches a line of any validly-encoded characters.
|
|
|
|
|
SAFE_LINE= '^'$(SAFE_CHAR)'*$$'
|
|
|
|
|
SAFE_SHARP_LINE='^'$(SAFE_CHAR)'*('$$sharp'.*)?$$'
|
|
|
|
|
VALID_LINE= '^.*$$'
|
2012-12-13 17:19:47 -08:00
|
|
|
|
2012-07-19 16:35:33 -07:00
|
|
|
# Flags to give 'tar' when making a distribution.
|
|
|
|
|
# Try to use flags appropriate for GNU tar.
|
|
|
|
|
GNUTARFLAGS= --numeric-owner --owner=0 --group=0 --mode=go+u,go-w
|
|
|
|
|
TARFLAGS= `if tar $(GNUTARFLAGS) --version >/dev/null 2>&1; \
|
|
|
|
|
then echo $(GNUTARFLAGS); \
|
|
|
|
|
else :; \
|
|
|
|
|
fi`
|
|
|
|
|
|
|
|
|
|
# Flags to give 'gzip' when making a distribution.
|
|
|
|
|
GZIPFLAGS= -9n
|
|
|
|
|
|
1995-12-21 12:31:40 -05:00
|
|
|
###############################################################################
|
1986-12-26 15:21:45 -05:00
|
|
|
|
1995-01-02 12:15:47 -05:00
|
|
|
cc= cc
|
|
|
|
|
CC= $(cc) -DTZDIR=\"$(TZDIR)\"
|
1986-01-16 08:50:41 -05:00
|
|
|
|
build: Makefile fixes; let user give AR and RANLIB; local libtz.a
* Makefile: Let the user override AR, and build libtz.a before
installing it, as suggested by Michael Forney in
<https://github.com/eggert/tz/pull/3>. Also, let the user
override RANLIB. Modernize a bit by assuming POSIX.2-1992 or
later; this is safe nowadays and simplifies the libtz.a business.
And treat 'leapseconds' more like we used to, since it's
machine-independent a 'make clean' doesn't need to remove it.
(TZLIB): Remove.
(AR, RANLIB): New macros.
(TABDATA): Add leapseconds, so that 'make' builds it by default.
(DATA): Remove leapseconds, since $(TABDATA) now has it.
(all): Depend on libtz.a, not $(LIBOBJS).
(install): Install libtz.a using 'cp', like other files.
Also invoke $(RANLIB) on it, after installing.
Do not assume that TZDIR is not overridden.
(install, INSTALL, check_time_t_alternatives): Use 'mkdir -p', as
it's safe to assume nowadays (standardized in POSIX.2-1992).
(install, INSTALL): Prefer 'cp -f' to 'rm' followed by 'cp', as
it's safe to assume 'cp -f' nowadays (also standardized in POSIX.2-1992).
(libtz.a): Rename from $(DESTDIR)$(TZLIB), since we now build it here.
Use $(AR) rather than ar.
Use $(RANLIB) rather than trying to guess it.
(clean_misc): Do not remove 'leapseconds', as it's machine-independent.
(maintainer-clean): Remove 'leapseconds' here instead.
(clean, check_public): Standardize on 'rm -fr' rather than 'rm -f -r';
formerly the makefile was inconsistent.
(set-timestamps.out): Don't ignore failurs of the actual touch command.
2013-10-02 10:48:46 -07:00
|
|
|
AR= ar
|
|
|
|
|
|
|
|
|
|
# ':' on typical hosts; 'ranlib' on the ancient hosts that still need ranlib.
|
|
|
|
|
RANLIB= :
|
|
|
|
|
|
1995-01-06 18:10:11 -05:00
|
|
|
TZCOBJS= zic.o localtime.o asctime.o scheck.o ialloc.o
|
2013-10-01 21:45:25 -07:00
|
|
|
TZDOBJS= zdump.o localtime.o ialloc.o asctime.o
|
2008-07-20 14:23:26 -04:00
|
|
|
DATEOBJS= date.o localtime.o strftime.o asctime.o
|
1989-03-07 22:22:17 -05:00
|
|
|
LIBSRCS= localtime.c asctime.c difftime.c
|
|
|
|
|
LIBOBJS= localtime.o asctime.o difftime.o
|
1989-03-21 11:36:47 -05:00
|
|
|
HEADERS= tzfile.h private.h
|
1995-01-06 18:10:11 -05:00
|
|
|
NONLIBSRCS= zic.c zdump.c scheck.c ialloc.c
|
2008-07-20 14:23:26 -04:00
|
|
|
NEWUCBSRCS= date.c strftime.c
|
1996-09-08 17:03:58 -04:00
|
|
|
SOURCES= $(HEADERS) $(LIBSRCS) $(NONLIBSRCS) $(NEWUCBSRCS) tzselect.ksh
|
1996-01-04 12:40:31 -05:00
|
|
|
MANS= newctime.3 newstrftime.3 newtzset.3 time2posix.3 \
|
1996-09-08 15:51:04 -04:00
|
|
|
tzfile.5 tzselect.8 zic.8 zdump.8
|
main: distribute leapseconds in tzdata, and fix timestamps
Problem with leapseconds reported by Matt Burgess in
<http://mm.icann.org/pipermail/tz/2013-September/020379.html>
with a followup by Ian Abbott in
<http://mm.icann.org/pipermail/tz/2013-September/020383.html>.
* Makefile (MANTXTS): New macro.
(maintainer-clean): Use it.
(DOCS): Add it.
(DATA): Add 'leapseconds'.
(LEAP_DEPS): New macro.
(leapseconds): Use it.
(public): Don't depend on set-timestamps; each tarball does that
individually now, to allow for more parallelization.
(date.1.txt, newctime.3.txt, newstrftime.3.txt, newtzset.3.txt)
(time2posix.3.txt, tzfile.5.txt, tzselect.8.txt, zdump.8.txt)
(zic.8.txt): Depend on the corresponding non-.txt file.
$(MANTXTS): New rule.
(set-timestamps.out): Rename from set-timestamps, and make it a file,
so that it has its own timestamp; this avoids useless rework.
Depend on $(ENCHILADA) and ignore files under Git that are not
also listed in $(ENCHILADA). Set the timestamp of 'leapseconds'
and each $(MANTXTS) to be the maximum of its dependencies, to avoid
timestamp churn in future tarballs. Prefer touch -m, as we don't
care about access time here.
(tzcode$(VERSION).tar.gz, tzdata$(VERSION).tar.gz):
Depend on set-timestamps.out rather than the individual files,
so timestamps are set before creating the tarballs even when
make is parallelized.
(tzcode$(VERSION).tar.gz): Don't mention *.[1-8].txt explicitly,
since we now get $(MANTXTS) via $(DOCS).
* NEWS: Document the above.
2013-09-25 15:50:44 -07:00
|
|
|
MANTXTS= newctime.3.txt newstrftime.3.txt newtzset.3.txt \
|
|
|
|
|
time2posix.3.txt \
|
|
|
|
|
tzfile.5.txt tzselect.8.txt zic.8.txt zdump.8.txt \
|
|
|
|
|
date.1.txt
|
2013-09-25 13:16:49 -07:00
|
|
|
COMMON= Makefile README
|
2014-06-14 17:19:27 -07:00
|
|
|
WEB_PAGES= tz-art.htm tz-link.htm
|
|
|
|
|
DOCS= NEWS Theory $(MANS) date.1 $(MANTXTS) $(WEB_PAGES)
|
1996-09-08 15:51:04 -04:00
|
|
|
PRIMARY_YDATA= africa antarctica asia australasia \
|
|
|
|
|
europe northamerica southamerica
|
Revert recent pre-1970 changes.
Other tz file readers had problems with the new pre1970 file, so
remove it and related changes. To recover the pre-1970 data,
instead change pre-1970 Zone entries in other files back to what
they were. Perhaps we'll try to find a better way someday.
* .gitignore: Remove back-pre1970.
* Makefile (BACKWARD): Remove. All uses changed back to 'backward'.
(AWK_SCRIPTS): Remove back-pre1970.awk.
(back-pre1970): Remove.
(clean_misc): Don't rm back-pre1970.
(check_public): Remove special case for pre1970.
* back-pre1970.awk, pre1970: Remove.
* backward (America/Anguilla, America/Antigua, America/Aruba)
(America/Atikokan, America/Blanc-Sablon, America/Cayman)
(America/Creston, America/Curacao, America/Dominica, America/Grenada)
(America/Guadeloupe, America/Montreal, America/Montserrat)
(America/Nassau, America/Port_of_Spain, America/St_Kitts)
(America/St_Lucia, America/St_Thomas, America/St_Vincent)
(America/Tortola): Remove, as these are zones again.
(America/Coral_Harbour, America/Kralendijk, America/Lower_Princes)
(America/Marigot, America/St_Barthelemy, America/Virgin):
Revert to previous links.
* northamerica (Mont, America/Blanc-Sablon, America/Montreal)
(America/Atikokan, America/Creston, America/Anguilla, America/Antigua)
(Bahamas, America/Nassau, America/Cayman, America/Dominica)
(America/Grenada, America/Guadeloupe, America/Montserrat)
(America/St_Kitts, America/St_Lucia, America/St_Vincent)
(America/Tortola, America/St_Thomas):
* southamerica (America/Aruba, America/Curacao, America/Port_of_Spain):
Restore these rules and zones.
* .gitignore: Add back-pre1970.
2013-08-30 16:36:21 -07:00
|
|
|
YDATA= $(PRIMARY_YDATA) pacificnew etcetera backward
|
2010-10-07 17:25:45 -04:00
|
|
|
NDATA= systemv factory
|
2013-11-04 09:24:09 -08:00
|
|
|
TDATA= $(YDATA) $(NDATA)
|
build: Makefile fixes; let user give AR and RANLIB; local libtz.a
* Makefile: Let the user override AR, and build libtz.a before
installing it, as suggested by Michael Forney in
<https://github.com/eggert/tz/pull/3>. Also, let the user
override RANLIB. Modernize a bit by assuming POSIX.2-1992 or
later; this is safe nowadays and simplifies the libtz.a business.
And treat 'leapseconds' more like we used to, since it's
machine-independent a 'make clean' doesn't need to remove it.
(TZLIB): Remove.
(AR, RANLIB): New macros.
(TABDATA): Add leapseconds, so that 'make' builds it by default.
(DATA): Remove leapseconds, since $(TABDATA) now has it.
(all): Depend on libtz.a, not $(LIBOBJS).
(install): Install libtz.a using 'cp', like other files.
Also invoke $(RANLIB) on it, after installing.
Do not assume that TZDIR is not overridden.
(install, INSTALL, check_time_t_alternatives): Use 'mkdir -p', as
it's safe to assume nowadays (standardized in POSIX.2-1992).
(install, INSTALL): Prefer 'cp -f' to 'rm' followed by 'cp', as
it's safe to assume 'cp -f' nowadays (also standardized in POSIX.2-1992).
(libtz.a): Rename from $(DESTDIR)$(TZLIB), since we now build it here.
Use $(AR) rather than ar.
Use $(RANLIB) rather than trying to guess it.
(clean_misc): Do not remove 'leapseconds', as it's machine-independent.
(maintainer-clean): Remove 'leapseconds' here instead.
(clean, check_public): Standardize on 'rm -fr' rather than 'rm -f -r';
formerly the makefile was inconsistent.
(set-timestamps.out): Don't ignore failurs of the actual touch command.
2013-10-02 10:48:46 -07:00
|
|
|
TABDATA= iso3166.tab zone.tab leapseconds
|
main: distribute leapseconds in tzdata, and fix timestamps
Problem with leapseconds reported by Matt Burgess in
<http://mm.icann.org/pipermail/tz/2013-September/020379.html>
with a followup by Ian Abbott in
<http://mm.icann.org/pipermail/tz/2013-September/020383.html>.
* Makefile (MANTXTS): New macro.
(maintainer-clean): Use it.
(DOCS): Add it.
(DATA): Add 'leapseconds'.
(LEAP_DEPS): New macro.
(leapseconds): Use it.
(public): Don't depend on set-timestamps; each tarball does that
individually now, to allow for more parallelization.
(date.1.txt, newctime.3.txt, newstrftime.3.txt, newtzset.3.txt)
(time2posix.3.txt, tzfile.5.txt, tzselect.8.txt, zdump.8.txt)
(zic.8.txt): Depend on the corresponding non-.txt file.
$(MANTXTS): New rule.
(set-timestamps.out): Rename from set-timestamps, and make it a file,
so that it has its own timestamp; this avoids useless rework.
Depend on $(ENCHILADA) and ignore files under Git that are not
also listed in $(ENCHILADA). Set the timestamp of 'leapseconds'
and each $(MANTXTS) to be the maximum of its dependencies, to avoid
timestamp churn in future tarballs. Prefer touch -m, as we don't
care about access time here.
(tzcode$(VERSION).tar.gz, tzdata$(VERSION).tar.gz):
Depend on set-timestamps.out rather than the individual files,
so timestamps are set before creating the tarballs even when
make is parallelized.
(tzcode$(VERSION).tar.gz): Don't mention *.[1-8].txt explicitly,
since we now get $(MANTXTS) via $(DOCS).
* NEWS: Document the above.
2013-09-25 15:50:44 -07:00
|
|
|
LEAP_DEPS= leapseconds.awk leap-seconds.list
|
2013-11-04 09:24:09 -08:00
|
|
|
DATA= $(YDATA) $(NDATA) $(TABDATA) \
|
build: Makefile fixes; let user give AR and RANLIB; local libtz.a
* Makefile: Let the user override AR, and build libtz.a before
installing it, as suggested by Michael Forney in
<https://github.com/eggert/tz/pull/3>. Also, let the user
override RANLIB. Modernize a bit by assuming POSIX.2-1992 or
later; this is safe nowadays and simplifies the libtz.a business.
And treat 'leapseconds' more like we used to, since it's
machine-independent a 'make clean' doesn't need to remove it.
(TZLIB): Remove.
(AR, RANLIB): New macros.
(TABDATA): Add leapseconds, so that 'make' builds it by default.
(DATA): Remove leapseconds, since $(TABDATA) now has it.
(all): Depend on libtz.a, not $(LIBOBJS).
(install): Install libtz.a using 'cp', like other files.
Also invoke $(RANLIB) on it, after installing.
Do not assume that TZDIR is not overridden.
(install, INSTALL, check_time_t_alternatives): Use 'mkdir -p', as
it's safe to assume nowadays (standardized in POSIX.2-1992).
(install, INSTALL): Prefer 'cp -f' to 'rm' followed by 'cp', as
it's safe to assume 'cp -f' nowadays (also standardized in POSIX.2-1992).
(libtz.a): Rename from $(DESTDIR)$(TZLIB), since we now build it here.
Use $(AR) rather than ar.
Use $(RANLIB) rather than trying to guess it.
(clean_misc): Do not remove 'leapseconds', as it's machine-independent.
(maintainer-clean): Remove 'leapseconds' here instead.
(clean, check_public): Standardize on 'rm -fr' rather than 'rm -f -r';
formerly the makefile was inconsistent.
(set-timestamps.out): Don't ignore failurs of the actual touch command.
2013-10-02 10:48:46 -07:00
|
|
|
$(LEAP_DEPS) yearistype.sh
|
2013-09-10 17:43:02 -07:00
|
|
|
AWK_SCRIPTS= checktab.awk leapseconds.awk
|
2004-10-18 11:43:08 -04:00
|
|
|
MISC= usno1988 usno1989 usno1989a usno1995 usno1997 usno1998 \
|
2014-06-14 17:19:27 -07:00
|
|
|
$(AWK_SCRIPTS) workman.sh \
|
Revert recent pre-1970 changes.
Other tz file readers had problems with the new pre1970 file, so
remove it and related changes. To recover the pre-1970 data,
instead change pre-1970 Zone entries in other files back to what
they were. Perhaps we'll try to find a better way someday.
* .gitignore: Remove back-pre1970.
* Makefile (BACKWARD): Remove. All uses changed back to 'backward'.
(AWK_SCRIPTS): Remove back-pre1970.awk.
(back-pre1970): Remove.
(clean_misc): Don't rm back-pre1970.
(check_public): Remove special case for pre1970.
* back-pre1970.awk, pre1970: Remove.
* backward (America/Anguilla, America/Antigua, America/Aruba)
(America/Atikokan, America/Blanc-Sablon, America/Cayman)
(America/Creston, America/Curacao, America/Dominica, America/Grenada)
(America/Guadeloupe, America/Montreal, America/Montserrat)
(America/Nassau, America/Port_of_Spain, America/St_Kitts)
(America/St_Lucia, America/St_Thomas, America/St_Vincent)
(America/Tortola): Remove, as these are zones again.
(America/Coral_Harbour, America/Kralendijk, America/Lower_Princes)
(America/Marigot, America/St_Barthelemy, America/Virgin):
Revert to previous links.
* northamerica (Mont, America/Blanc-Sablon, America/Montreal)
(America/Atikokan, America/Creston, America/Anguilla, America/Antigua)
(Bahamas, America/Nassau, America/Cayman, America/Dominica)
(America/Grenada, America/Guadeloupe, America/Montserrat)
(America/St_Kitts, America/St_Lucia, America/St_Vincent)
(America/Tortola, America/St_Thomas):
* southamerica (America/Aruba, America/Curacao, America/Port_of_Spain):
Restore these rules and zones.
* .gitignore: Add back-pre1970.
2013-08-30 16:36:21 -07:00
|
|
|
zoneinfo2tdf.pl
|
2012-10-17 20:59:45 -07:00
|
|
|
ENCHILADA= $(COMMON) $(DOCS) $(SOURCES) $(DATA) $(MISC)
|
1986-01-16 08:50:41 -05:00
|
|
|
|
1989-05-13 14:43:20 -04:00
|
|
|
# And for the benefit of csh users on systems that assume the user
|
|
|
|
|
# shell should be used to handle commands in Makefiles. . .
|
|
|
|
|
|
|
|
|
|
SHELL= /bin/sh
|
|
|
|
|
|
build: Makefile fixes; let user give AR and RANLIB; local libtz.a
* Makefile: Let the user override AR, and build libtz.a before
installing it, as suggested by Michael Forney in
<https://github.com/eggert/tz/pull/3>. Also, let the user
override RANLIB. Modernize a bit by assuming POSIX.2-1992 or
later; this is safe nowadays and simplifies the libtz.a business.
And treat 'leapseconds' more like we used to, since it's
machine-independent a 'make clean' doesn't need to remove it.
(TZLIB): Remove.
(AR, RANLIB): New macros.
(TABDATA): Add leapseconds, so that 'make' builds it by default.
(DATA): Remove leapseconds, since $(TABDATA) now has it.
(all): Depend on libtz.a, not $(LIBOBJS).
(install): Install libtz.a using 'cp', like other files.
Also invoke $(RANLIB) on it, after installing.
Do not assume that TZDIR is not overridden.
(install, INSTALL, check_time_t_alternatives): Use 'mkdir -p', as
it's safe to assume nowadays (standardized in POSIX.2-1992).
(install, INSTALL): Prefer 'cp -f' to 'rm' followed by 'cp', as
it's safe to assume 'cp -f' nowadays (also standardized in POSIX.2-1992).
(libtz.a): Rename from $(DESTDIR)$(TZLIB), since we now build it here.
Use $(AR) rather than ar.
Use $(RANLIB) rather than trying to guess it.
(clean_misc): Do not remove 'leapseconds', as it's machine-independent.
(maintainer-clean): Remove 'leapseconds' here instead.
(clean, check_public): Standardize on 'rm -fr' rather than 'rm -f -r';
formerly the makefile was inconsistent.
(set-timestamps.out): Don't ignore failurs of the actual touch command.
2013-10-02 10:48:46 -07:00
|
|
|
all: tzselect zic zdump libtz.a $(TABDATA)
|
1986-01-13 17:26:56 -05:00
|
|
|
|
2002-01-28 12:55:52 -05:00
|
|
|
ALL: all date
|
1989-03-07 22:22:17 -05:00
|
|
|
|
build: Makefile fixes; let user give AR and RANLIB; local libtz.a
* Makefile: Let the user override AR, and build libtz.a before
installing it, as suggested by Michael Forney in
<https://github.com/eggert/tz/pull/3>. Also, let the user
override RANLIB. Modernize a bit by assuming POSIX.2-1992 or
later; this is safe nowadays and simplifies the libtz.a business.
And treat 'leapseconds' more like we used to, since it's
machine-independent a 'make clean' doesn't need to remove it.
(TZLIB): Remove.
(AR, RANLIB): New macros.
(TABDATA): Add leapseconds, so that 'make' builds it by default.
(DATA): Remove leapseconds, since $(TABDATA) now has it.
(all): Depend on libtz.a, not $(LIBOBJS).
(install): Install libtz.a using 'cp', like other files.
Also invoke $(RANLIB) on it, after installing.
Do not assume that TZDIR is not overridden.
(install, INSTALL, check_time_t_alternatives): Use 'mkdir -p', as
it's safe to assume nowadays (standardized in POSIX.2-1992).
(install, INSTALL): Prefer 'cp -f' to 'rm' followed by 'cp', as
it's safe to assume 'cp -f' nowadays (also standardized in POSIX.2-1992).
(libtz.a): Rename from $(DESTDIR)$(TZLIB), since we now build it here.
Use $(AR) rather than ar.
Use $(RANLIB) rather than trying to guess it.
(clean_misc): Do not remove 'leapseconds', as it's machine-independent.
(maintainer-clean): Remove 'leapseconds' here instead.
(clean, check_public): Standardize on 'rm -fr' rather than 'rm -f -r';
formerly the makefile was inconsistent.
(set-timestamps.out): Don't ignore failurs of the actual touch command.
2013-10-02 10:48:46 -07:00
|
|
|
install: all $(DATA) $(REDO) $(MANS)
|
|
|
|
|
mkdir -p $(DESTDIR)$(ETCDIR) $(DESTDIR)$(TZDIR) \
|
|
|
|
|
$(DESTDIR)$(LIBDIR) \
|
|
|
|
|
$(DESTDIR)$(MANDIR)/man3 $(DESTDIR)$(MANDIR)/man5 \
|
|
|
|
|
$(DESTDIR)$(MANDIR)/man8
|
1997-03-03 18:27:59 -05:00
|
|
|
$(ZIC) -y $(YEARISTYPE) \
|
2013-09-09 23:58:03 -07:00
|
|
|
-d $(DESTDIR)$(TZDIR) -l $(LOCALTIME) -p $(POSIXRULES)
|
build: Makefile fixes; let user give AR and RANLIB; local libtz.a
* Makefile: Let the user override AR, and build libtz.a before
installing it, as suggested by Michael Forney in
<https://github.com/eggert/tz/pull/3>. Also, let the user
override RANLIB. Modernize a bit by assuming POSIX.2-1992 or
later; this is safe nowadays and simplifies the libtz.a business.
And treat 'leapseconds' more like we used to, since it's
machine-independent a 'make clean' doesn't need to remove it.
(TZLIB): Remove.
(AR, RANLIB): New macros.
(TABDATA): Add leapseconds, so that 'make' builds it by default.
(DATA): Remove leapseconds, since $(TABDATA) now has it.
(all): Depend on libtz.a, not $(LIBOBJS).
(install): Install libtz.a using 'cp', like other files.
Also invoke $(RANLIB) on it, after installing.
Do not assume that TZDIR is not overridden.
(install, INSTALL, check_time_t_alternatives): Use 'mkdir -p', as
it's safe to assume nowadays (standardized in POSIX.2-1992).
(install, INSTALL): Prefer 'cp -f' to 'rm' followed by 'cp', as
it's safe to assume 'cp -f' nowadays (also standardized in POSIX.2-1992).
(libtz.a): Rename from $(DESTDIR)$(TZLIB), since we now build it here.
Use $(AR) rather than ar.
Use $(RANLIB) rather than trying to guess it.
(clean_misc): Do not remove 'leapseconds', as it's machine-independent.
(maintainer-clean): Remove 'leapseconds' here instead.
(clean, check_public): Standardize on 'rm -fr' rather than 'rm -f -r';
formerly the makefile was inconsistent.
(set-timestamps.out): Don't ignore failurs of the actual touch command.
2013-10-02 10:48:46 -07:00
|
|
|
cp -f iso3166.tab zone.tab $(DESTDIR)$(TZDIR)/.
|
2013-09-09 23:58:03 -07:00
|
|
|
cp tzselect zic zdump $(DESTDIR)$(ETCDIR)/.
|
build: Makefile fixes; let user give AR and RANLIB; local libtz.a
* Makefile: Let the user override AR, and build libtz.a before
installing it, as suggested by Michael Forney in
<https://github.com/eggert/tz/pull/3>. Also, let the user
override RANLIB. Modernize a bit by assuming POSIX.2-1992 or
later; this is safe nowadays and simplifies the libtz.a business.
And treat 'leapseconds' more like we used to, since it's
machine-independent a 'make clean' doesn't need to remove it.
(TZLIB): Remove.
(AR, RANLIB): New macros.
(TABDATA): Add leapseconds, so that 'make' builds it by default.
(DATA): Remove leapseconds, since $(TABDATA) now has it.
(all): Depend on libtz.a, not $(LIBOBJS).
(install): Install libtz.a using 'cp', like other files.
Also invoke $(RANLIB) on it, after installing.
Do not assume that TZDIR is not overridden.
(install, INSTALL, check_time_t_alternatives): Use 'mkdir -p', as
it's safe to assume nowadays (standardized in POSIX.2-1992).
(install, INSTALL): Prefer 'cp -f' to 'rm' followed by 'cp', as
it's safe to assume 'cp -f' nowadays (also standardized in POSIX.2-1992).
(libtz.a): Rename from $(DESTDIR)$(TZLIB), since we now build it here.
Use $(AR) rather than ar.
Use $(RANLIB) rather than trying to guess it.
(clean_misc): Do not remove 'leapseconds', as it's machine-independent.
(maintainer-clean): Remove 'leapseconds' here instead.
(clean, check_public): Standardize on 'rm -fr' rather than 'rm -f -r';
formerly the makefile was inconsistent.
(set-timestamps.out): Don't ignore failurs of the actual touch command.
2013-10-02 10:48:46 -07:00
|
|
|
cp libtz.a $(DESTDIR)$(LIBDIR)/.
|
|
|
|
|
$(RANLIB) $(DESTDIR)$(LIBDIR)/libtz.a
|
|
|
|
|
cp -f newctime.3 newtzset.3 $(DESTDIR)$(MANDIR)/man3/.
|
|
|
|
|
cp -f tzfile.5 $(DESTDIR)$(MANDIR)/man5/.
|
|
|
|
|
cp -f tzselect.8 zdump.8 zic.8 $(DESTDIR)$(MANDIR)/man8/.
|
1989-03-21 20:05:59 -05:00
|
|
|
|
1989-03-22 20:00:34 -05:00
|
|
|
INSTALL: ALL install date.1
|
build: Makefile fixes; let user give AR and RANLIB; local libtz.a
* Makefile: Let the user override AR, and build libtz.a before
installing it, as suggested by Michael Forney in
<https://github.com/eggert/tz/pull/3>. Also, let the user
override RANLIB. Modernize a bit by assuming POSIX.2-1992 or
later; this is safe nowadays and simplifies the libtz.a business.
And treat 'leapseconds' more like we used to, since it's
machine-independent a 'make clean' doesn't need to remove it.
(TZLIB): Remove.
(AR, RANLIB): New macros.
(TABDATA): Add leapseconds, so that 'make' builds it by default.
(DATA): Remove leapseconds, since $(TABDATA) now has it.
(all): Depend on libtz.a, not $(LIBOBJS).
(install): Install libtz.a using 'cp', like other files.
Also invoke $(RANLIB) on it, after installing.
Do not assume that TZDIR is not overridden.
(install, INSTALL, check_time_t_alternatives): Use 'mkdir -p', as
it's safe to assume nowadays (standardized in POSIX.2-1992).
(install, INSTALL): Prefer 'cp -f' to 'rm' followed by 'cp', as
it's safe to assume 'cp -f' nowadays (also standardized in POSIX.2-1992).
(libtz.a): Rename from $(DESTDIR)$(TZLIB), since we now build it here.
Use $(AR) rather than ar.
Use $(RANLIB) rather than trying to guess it.
(clean_misc): Do not remove 'leapseconds', as it's machine-independent.
(maintainer-clean): Remove 'leapseconds' here instead.
(clean, check_public): Standardize on 'rm -fr' rather than 'rm -f -r';
formerly the makefile was inconsistent.
(set-timestamps.out): Don't ignore failurs of the actual touch command.
2013-10-02 10:48:46 -07:00
|
|
|
mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(MANDIR)/man1
|
2013-09-09 23:58:03 -07:00
|
|
|
cp date $(DESTDIR)$(BINDIR)/.
|
build: Makefile fixes; let user give AR and RANLIB; local libtz.a
* Makefile: Let the user override AR, and build libtz.a before
installing it, as suggested by Michael Forney in
<https://github.com/eggert/tz/pull/3>. Also, let the user
override RANLIB. Modernize a bit by assuming POSIX.2-1992 or
later; this is safe nowadays and simplifies the libtz.a business.
And treat 'leapseconds' more like we used to, since it's
machine-independent a 'make clean' doesn't need to remove it.
(TZLIB): Remove.
(AR, RANLIB): New macros.
(TABDATA): Add leapseconds, so that 'make' builds it by default.
(DATA): Remove leapseconds, since $(TABDATA) now has it.
(all): Depend on libtz.a, not $(LIBOBJS).
(install): Install libtz.a using 'cp', like other files.
Also invoke $(RANLIB) on it, after installing.
Do not assume that TZDIR is not overridden.
(install, INSTALL, check_time_t_alternatives): Use 'mkdir -p', as
it's safe to assume nowadays (standardized in POSIX.2-1992).
(install, INSTALL): Prefer 'cp -f' to 'rm' followed by 'cp', as
it's safe to assume 'cp -f' nowadays (also standardized in POSIX.2-1992).
(libtz.a): Rename from $(DESTDIR)$(TZLIB), since we now build it here.
Use $(AR) rather than ar.
Use $(RANLIB) rather than trying to guess it.
(clean_misc): Do not remove 'leapseconds', as it's machine-independent.
(maintainer-clean): Remove 'leapseconds' here instead.
(clean, check_public): Standardize on 'rm -fr' rather than 'rm -f -r';
formerly the makefile was inconsistent.
(set-timestamps.out): Don't ignore failurs of the actual touch command.
2013-10-02 10:48:46 -07:00
|
|
|
cp -f date.1 $(DESTDIR)$(MANDIR)/man1/.
|
1989-03-21 20:05:59 -05:00
|
|
|
|
Switch from SCCS to git.
Remove the SCCS keyword '%W%' from all files.
Mostly this just remove comments.
Remove trailing white space, too.
* Makefile (TZCODE_VERSION): New macro.
(version.h): New rule.
(tzselect): Interpolate TZCODE_VERSION.
(clean): Remove version.h.
(zdump.o, zic.o): Depend on version.h.
* asctime.c, date.c, difftime.c, ialloc.c, localtime.c, scheck.c:
* strftime.c, zdump.c, zic.c: Remove elsieid.
* private.h: Remove privatehid.
* tzfile.h: Remove tzfilehid.
* tzselect.h (TZCODE_VERSION): Rename from VERSION.
* zdump.c, zic.c: Include "version.h",
and use TZCODE_VERSION instead of elsieid.
2012-07-18 17:30:38 -07:00
|
|
|
version.h:
|
2012-11-09 18:12:22 -08:00
|
|
|
(echo 'static char const PKGVERSION[]="($(PACKAGE)) ";' && \
|
2012-11-12 21:52:35 -08:00
|
|
|
echo 'static char const TZVERSION[]="$(VERSION)";' && \
|
|
|
|
|
echo 'static char const REPORT_BUGS_TO[]="$(BUGEMAIL)";') >$@
|
Switch from SCCS to git.
Remove the SCCS keyword '%W%' from all files.
Mostly this just remove comments.
Remove trailing white space, too.
* Makefile (TZCODE_VERSION): New macro.
(version.h): New rule.
(tzselect): Interpolate TZCODE_VERSION.
(clean): Remove version.h.
(zdump.o, zic.o): Depend on version.h.
* asctime.c, date.c, difftime.c, ialloc.c, localtime.c, scheck.c:
* strftime.c, zdump.c, zic.c: Remove elsieid.
* private.h: Remove privatehid.
* tzfile.h: Remove tzfilehid.
* tzselect.h (TZCODE_VERSION): Rename from VERSION.
* zdump.c, zic.c: Include "version.h",
and use TZCODE_VERSION instead of elsieid.
2012-07-18 17:30:38 -07:00
|
|
|
|
1989-03-21 20:05:59 -05:00
|
|
|
zdump: $(TZDOBJS)
|
2012-10-27 12:54:47 -07:00
|
|
|
$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZDOBJS) $(LDLIBS)
|
1989-03-21 20:05:59 -05:00
|
|
|
|
1992-03-15 22:02:43 -05:00
|
|
|
zic: $(TZCOBJS) yearistype
|
2012-10-27 12:54:47 -07:00
|
|
|
$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZCOBJS) $(LDLIBS)
|
1986-01-16 11:00:37 -05:00
|
|
|
|
1992-03-15 22:02:43 -05:00
|
|
|
yearistype: yearistype.sh
|
|
|
|
|
cp yearistype.sh yearistype
|
|
|
|
|
chmod +x yearistype
|
|
|
|
|
|
main: distribute leapseconds in tzdata, and fix timestamps
Problem with leapseconds reported by Matt Burgess in
<http://mm.icann.org/pipermail/tz/2013-September/020379.html>
with a followup by Ian Abbott in
<http://mm.icann.org/pipermail/tz/2013-September/020383.html>.
* Makefile (MANTXTS): New macro.
(maintainer-clean): Use it.
(DOCS): Add it.
(DATA): Add 'leapseconds'.
(LEAP_DEPS): New macro.
(leapseconds): Use it.
(public): Don't depend on set-timestamps; each tarball does that
individually now, to allow for more parallelization.
(date.1.txt, newctime.3.txt, newstrftime.3.txt, newtzset.3.txt)
(time2posix.3.txt, tzfile.5.txt, tzselect.8.txt, zdump.8.txt)
(zic.8.txt): Depend on the corresponding non-.txt file.
$(MANTXTS): New rule.
(set-timestamps.out): Rename from set-timestamps, and make it a file,
so that it has its own timestamp; this avoids useless rework.
Depend on $(ENCHILADA) and ignore files under Git that are not
also listed in $(ENCHILADA). Set the timestamp of 'leapseconds'
and each $(MANTXTS) to be the maximum of its dependencies, to avoid
timestamp churn in future tarballs. Prefer touch -m, as we don't
care about access time here.
(tzcode$(VERSION).tar.gz, tzdata$(VERSION).tar.gz):
Depend on set-timestamps.out rather than the individual files,
so timestamps are set before creating the tarballs even when
make is parallelized.
(tzcode$(VERSION).tar.gz): Don't mention *.[1-8].txt explicitly,
since we now get $(MANTXTS) via $(DOCS).
* NEWS: Document the above.
2013-09-25 15:50:44 -07:00
|
|
|
leapseconds: $(LEAP_DEPS)
|
2013-08-12 23:58:29 -07:00
|
|
|
$(AWK) -f leapseconds.awk leap-seconds.list >$@
|
|
|
|
|
|
1989-03-11 21:05:20 -05:00
|
|
|
posix_only: zic $(TDATA)
|
2013-09-09 23:58:03 -07:00
|
|
|
$(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR) \
|
|
|
|
|
-L /dev/null $(TDATA)
|
1989-02-04 18:30:06 -05:00
|
|
|
|
1989-03-11 21:05:20 -05:00
|
|
|
right_only: zic leapseconds $(TDATA)
|
2013-09-09 23:58:03 -07:00
|
|
|
$(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR) \
|
|
|
|
|
-L leapseconds $(TDATA)
|
1989-02-04 18:30:06 -05:00
|
|
|
|
1998-05-25 13:04:43 -04:00
|
|
|
# In earlier versions of this makefile, the other two directories were
|
|
|
|
|
# subdirectories of $(TZDIR). However, this led to configuration errors.
|
|
|
|
|
# For example, with posix_right under the earlier scheme,
|
|
|
|
|
# TZ='right/Australia/Adelaide' got you localtime with leap seconds,
|
|
|
|
|
# but gmtime without leap seconds, which led to problems with applications
|
|
|
|
|
# like sendmail that subtract gmtime from localtime.
|
|
|
|
|
# Therefore, the other two directories are now siblings of $(TZDIR).
|
|
|
|
|
# You must replace all of $(TZDIR) to switch from not using leap seconds
|
|
|
|
|
# to using them, or vice versa.
|
2013-08-12 23:58:29 -07:00
|
|
|
right_posix: right_only leapseconds
|
2013-09-09 23:58:03 -07:00
|
|
|
rm -fr $(DESTDIR)$(TZDIR)-leaps
|
|
|
|
|
ln -s $(TZDIR_BASENAME) $(DESTDIR)$(TZDIR)-leaps || \
|
|
|
|
|
$(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR)-leaps \
|
|
|
|
|
-L leapseconds $(TDATA)
|
|
|
|
|
$(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR)-posix \
|
|
|
|
|
-L /dev/null $(TDATA)
|
2013-08-11 10:14:18 -07:00
|
|
|
|
2013-08-12 23:58:29 -07:00
|
|
|
posix_right: posix_only leapseconds
|
2013-09-09 23:58:03 -07:00
|
|
|
rm -fr $(DESTDIR)$(TZDIR)-posix
|
|
|
|
|
ln -s $(TZDIR_BASENAME) $(DESTDIR)$(TZDIR)-posix || \
|
|
|
|
|
$(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR)-posix \
|
|
|
|
|
-L /dev/null $(TDATA)
|
|
|
|
|
$(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR)-leaps \
|
|
|
|
|
-L leapseconds $(TDATA)
|
1989-02-04 18:30:06 -05:00
|
|
|
|
1997-12-11 12:50:00 -05:00
|
|
|
zones: $(REDO)
|
|
|
|
|
|
build: Makefile fixes; let user give AR and RANLIB; local libtz.a
* Makefile: Let the user override AR, and build libtz.a before
installing it, as suggested by Michael Forney in
<https://github.com/eggert/tz/pull/3>. Also, let the user
override RANLIB. Modernize a bit by assuming POSIX.2-1992 or
later; this is safe nowadays and simplifies the libtz.a business.
And treat 'leapseconds' more like we used to, since it's
machine-independent a 'make clean' doesn't need to remove it.
(TZLIB): Remove.
(AR, RANLIB): New macros.
(TABDATA): Add leapseconds, so that 'make' builds it by default.
(DATA): Remove leapseconds, since $(TABDATA) now has it.
(all): Depend on libtz.a, not $(LIBOBJS).
(install): Install libtz.a using 'cp', like other files.
Also invoke $(RANLIB) on it, after installing.
Do not assume that TZDIR is not overridden.
(install, INSTALL, check_time_t_alternatives): Use 'mkdir -p', as
it's safe to assume nowadays (standardized in POSIX.2-1992).
(install, INSTALL): Prefer 'cp -f' to 'rm' followed by 'cp', as
it's safe to assume 'cp -f' nowadays (also standardized in POSIX.2-1992).
(libtz.a): Rename from $(DESTDIR)$(TZLIB), since we now build it here.
Use $(AR) rather than ar.
Use $(RANLIB) rather than trying to guess it.
(clean_misc): Do not remove 'leapseconds', as it's machine-independent.
(maintainer-clean): Remove 'leapseconds' here instead.
(clean, check_public): Standardize on 'rm -fr' rather than 'rm -f -r';
formerly the makefile was inconsistent.
(set-timestamps.out): Don't ignore failurs of the actual touch command.
2013-10-02 10:48:46 -07:00
|
|
|
libtz.a: $(LIBOBJS)
|
|
|
|
|
$(AR) ru $@ $(LIBOBJS)
|
|
|
|
|
$(RANLIB) $@
|
1986-07-12 07:27:55 -04:00
|
|
|
|
1989-03-21 20:05:59 -05:00
|
|
|
date: $(DATEOBJS)
|
2012-10-27 12:54:47 -07:00
|
|
|
$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(DATEOBJS) $(LDLIBS)
|
1986-01-21 09:11:47 -05:00
|
|
|
|
1996-09-08 15:51:04 -04:00
|
|
|
tzselect: tzselect.ksh
|
|
|
|
|
sed \
|
2012-10-27 13:54:13 -07:00
|
|
|
-e 's|#!/bin/bash|#!$(KSHELL)|g' \
|
1996-09-08 15:51:04 -04:00
|
|
|
-e 's|AWK=[^}]*|AWK=$(AWK)|g' \
|
2012-11-09 18:12:22 -08:00
|
|
|
-e 's|\(PKGVERSION\)=.*|\1='\''($(PACKAGE)) '\''|' \
|
2012-11-12 21:52:35 -08:00
|
|
|
-e 's|\(REPORT_BUGS_TO\)=.*|\1=$(BUGEMAIL)|' \
|
1996-09-08 15:51:04 -04:00
|
|
|
-e 's|TZDIR=[^}]*|TZDIR=$(TZDIR)|' \
|
2012-11-09 18:12:22 -08:00
|
|
|
-e 's|\(TZVERSION\)=.*|\1=$(VERSION)|' \
|
1996-09-08 15:51:04 -04:00
|
|
|
<$? >$@
|
|
|
|
|
chmod +x $@
|
|
|
|
|
|
2012-12-13 17:19:47 -08:00
|
|
|
check: check_character_set check_tables check_web
|
|
|
|
|
|
|
|
|
|
check_character_set: $(ENCHILADA)
|
2014-06-14 16:36:18 -07:00
|
|
|
LC_ALL=en_US.utf8 && export LC_ALL && \
|
|
|
|
|
sharp='#' && \
|
|
|
|
|
! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MISC) $(SOURCES) && \
|
|
|
|
|
! grep -Env $(SAFE_SHARP_LINE) Makefile $(DATA) && \
|
|
|
|
|
! grep -Env $(VALID_LINE) $(ENCHILADA)
|
2000-12-14 15:31:52 -05:00
|
|
|
|
1996-09-08 15:51:04 -04:00
|
|
|
check_tables: checktab.awk $(PRIMARY_YDATA)
|
|
|
|
|
$(AWK) -f checktab.awk $(PRIMARY_YDATA)
|
|
|
|
|
|
2000-12-14 15:31:52 -05:00
|
|
|
check_web: $(WEB_PAGES)
|
2001-04-05 16:43:36 -04:00
|
|
|
$(VALIDATE_ENV) $(VALIDATE) $(VALIDATE_FLAGS) $(WEB_PAGES)
|
2000-12-14 15:31:52 -05:00
|
|
|
|
2013-05-27 14:16:25 -07:00
|
|
|
clean_misc:
|
Switch from SCCS to git.
Remove the SCCS keyword '%W%' from all files.
Mostly this just remove comments.
Remove trailing white space, too.
* Makefile (TZCODE_VERSION): New macro.
(version.h): New rule.
(tzselect): Interpolate TZCODE_VERSION.
(clean): Remove version.h.
(zdump.o, zic.o): Depend on version.h.
* asctime.c, date.c, difftime.c, ialloc.c, localtime.c, scheck.c:
* strftime.c, zdump.c, zic.c: Remove elsieid.
* private.h: Remove privatehid.
* tzfile.h: Remove tzfilehid.
* tzselect.h (TZCODE_VERSION): Rename from VERSION.
* zdump.c, zic.c: Include "version.h",
and use TZCODE_VERSION instead of elsieid.
2012-07-18 17:30:38 -07:00
|
|
|
rm -f core *.o *.out \
|
2014-03-26 18:20:38 -07:00
|
|
|
date tzselect version.h zdump zic yearistype libtz.a
|
2013-05-27 14:16:25 -07:00
|
|
|
clean: clean_misc
|
build: Makefile fixes; let user give AR and RANLIB; local libtz.a
* Makefile: Let the user override AR, and build libtz.a before
installing it, as suggested by Michael Forney in
<https://github.com/eggert/tz/pull/3>. Also, let the user
override RANLIB. Modernize a bit by assuming POSIX.2-1992 or
later; this is safe nowadays and simplifies the libtz.a business.
And treat 'leapseconds' more like we used to, since it's
machine-independent a 'make clean' doesn't need to remove it.
(TZLIB): Remove.
(AR, RANLIB): New macros.
(TABDATA): Add leapseconds, so that 'make' builds it by default.
(DATA): Remove leapseconds, since $(TABDATA) now has it.
(all): Depend on libtz.a, not $(LIBOBJS).
(install): Install libtz.a using 'cp', like other files.
Also invoke $(RANLIB) on it, after installing.
Do not assume that TZDIR is not overridden.
(install, INSTALL, check_time_t_alternatives): Use 'mkdir -p', as
it's safe to assume nowadays (standardized in POSIX.2-1992).
(install, INSTALL): Prefer 'cp -f' to 'rm' followed by 'cp', as
it's safe to assume 'cp -f' nowadays (also standardized in POSIX.2-1992).
(libtz.a): Rename from $(DESTDIR)$(TZLIB), since we now build it here.
Use $(AR) rather than ar.
Use $(RANLIB) rather than trying to guess it.
(clean_misc): Do not remove 'leapseconds', as it's machine-independent.
(maintainer-clean): Remove 'leapseconds' here instead.
(clean, check_public): Standardize on 'rm -fr' rather than 'rm -f -r';
formerly the makefile was inconsistent.
(set-timestamps.out): Don't ignore failurs of the actual touch command.
2013-10-02 10:48:46 -07:00
|
|
|
rm -fr tzpublic
|
1986-01-13 17:26:56 -05:00
|
|
|
|
2003-12-15 09:31:40 -05:00
|
|
|
maintainer-clean: clean
|
|
|
|
|
@echo 'This command is intended for maintainers to use; it'
|
|
|
|
|
@echo 'deletes files that may need special tools to rebuild.'
|
build: Makefile fixes; let user give AR and RANLIB; local libtz.a
* Makefile: Let the user override AR, and build libtz.a before
installing it, as suggested by Michael Forney in
<https://github.com/eggert/tz/pull/3>. Also, let the user
override RANLIB. Modernize a bit by assuming POSIX.2-1992 or
later; this is safe nowadays and simplifies the libtz.a business.
And treat 'leapseconds' more like we used to, since it's
machine-independent a 'make clean' doesn't need to remove it.
(TZLIB): Remove.
(AR, RANLIB): New macros.
(TABDATA): Add leapseconds, so that 'make' builds it by default.
(DATA): Remove leapseconds, since $(TABDATA) now has it.
(all): Depend on libtz.a, not $(LIBOBJS).
(install): Install libtz.a using 'cp', like other files.
Also invoke $(RANLIB) on it, after installing.
Do not assume that TZDIR is not overridden.
(install, INSTALL, check_time_t_alternatives): Use 'mkdir -p', as
it's safe to assume nowadays (standardized in POSIX.2-1992).
(install, INSTALL): Prefer 'cp -f' to 'rm' followed by 'cp', as
it's safe to assume 'cp -f' nowadays (also standardized in POSIX.2-1992).
(libtz.a): Rename from $(DESTDIR)$(TZLIB), since we now build it here.
Use $(AR) rather than ar.
Use $(RANLIB) rather than trying to guess it.
(clean_misc): Do not remove 'leapseconds', as it's machine-independent.
(maintainer-clean): Remove 'leapseconds' here instead.
(clean, check_public): Standardize on 'rm -fr' rather than 'rm -f -r';
formerly the makefile was inconsistent.
(set-timestamps.out): Don't ignore failurs of the actual touch command.
2013-10-02 10:48:46 -07:00
|
|
|
rm -f leapseconds $(MANTXTS) *.asc *.tar.gz
|
2003-12-15 09:31:40 -05:00
|
|
|
|
1988-02-13 10:06:38 -05:00
|
|
|
names:
|
|
|
|
|
@echo $(ENCHILADA)
|
1986-11-24 16:39:58 -05:00
|
|
|
|
2013-05-27 14:16:25 -07:00
|
|
|
public: check check_public check_time_t_alternatives \
|
main: distribute leapseconds in tzdata, and fix timestamps
Problem with leapseconds reported by Matt Burgess in
<http://mm.icann.org/pipermail/tz/2013-September/020379.html>
with a followup by Ian Abbott in
<http://mm.icann.org/pipermail/tz/2013-September/020383.html>.
* Makefile (MANTXTS): New macro.
(maintainer-clean): Use it.
(DOCS): Add it.
(DATA): Add 'leapseconds'.
(LEAP_DEPS): New macro.
(leapseconds): Use it.
(public): Don't depend on set-timestamps; each tarball does that
individually now, to allow for more parallelization.
(date.1.txt, newctime.3.txt, newstrftime.3.txt, newtzset.3.txt)
(time2posix.3.txt, tzfile.5.txt, tzselect.8.txt, zdump.8.txt)
(zic.8.txt): Depend on the corresponding non-.txt file.
$(MANTXTS): New rule.
(set-timestamps.out): Rename from set-timestamps, and make it a file,
so that it has its own timestamp; this avoids useless rework.
Depend on $(ENCHILADA) and ignore files under Git that are not
also listed in $(ENCHILADA). Set the timestamp of 'leapseconds'
and each $(MANTXTS) to be the maximum of its dependencies, to avoid
timestamp churn in future tarballs. Prefer touch -m, as we don't
care about access time here.
(tzcode$(VERSION).tar.gz, tzdata$(VERSION).tar.gz):
Depend on set-timestamps.out rather than the individual files,
so timestamps are set before creating the tarballs even when
make is parallelized.
(tzcode$(VERSION).tar.gz): Don't mention *.[1-8].txt explicitly,
since we now get $(MANTXTS) via $(DOCS).
* NEWS: Document the above.
2013-09-25 15:50:44 -07:00
|
|
|
tarballs signatures
|
|
|
|
|
|
|
|
|
|
date.1.txt: date.1
|
|
|
|
|
newctime.3.txt: newctime.3
|
|
|
|
|
newstrftime.3.txt: newstrftime.3
|
|
|
|
|
newtzset.3.txt: newtzset.3
|
|
|
|
|
time2posix.3.txt: time2posix.3
|
|
|
|
|
tzfile.5.txt: tzfile.5
|
|
|
|
|
tzselect.8.txt: tzselect.8
|
|
|
|
|
zdump.8.txt: zdump.8
|
|
|
|
|
zic.8.txt: zic.8
|
|
|
|
|
|
|
|
|
|
$(MANTXTS): workman.sh
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
LC_ALL=en_US.utf8 sh workman.sh `expr $@ : '\(.*\)\.txt$$'` >$@
|
2012-11-03 12:56:05 -07:00
|
|
|
|
2012-07-19 16:35:33 -07:00
|
|
|
# Set the time stamps to those of the git repository, if available,
|
|
|
|
|
# and if the files have not changed since then.
|
|
|
|
|
# This uses GNU 'touch' syntax 'touch -d@N FILE',
|
|
|
|
|
# where N is the number of seconds since 1970.
|
build: Makefile fixes; let user give AR and RANLIB; local libtz.a
* Makefile: Let the user override AR, and build libtz.a before
installing it, as suggested by Michael Forney in
<https://github.com/eggert/tz/pull/3>. Also, let the user
override RANLIB. Modernize a bit by assuming POSIX.2-1992 or
later; this is safe nowadays and simplifies the libtz.a business.
And treat 'leapseconds' more like we used to, since it's
machine-independent a 'make clean' doesn't need to remove it.
(TZLIB): Remove.
(AR, RANLIB): New macros.
(TABDATA): Add leapseconds, so that 'make' builds it by default.
(DATA): Remove leapseconds, since $(TABDATA) now has it.
(all): Depend on libtz.a, not $(LIBOBJS).
(install): Install libtz.a using 'cp', like other files.
Also invoke $(RANLIB) on it, after installing.
Do not assume that TZDIR is not overridden.
(install, INSTALL, check_time_t_alternatives): Use 'mkdir -p', as
it's safe to assume nowadays (standardized in POSIX.2-1992).
(install, INSTALL): Prefer 'cp -f' to 'rm' followed by 'cp', as
it's safe to assume 'cp -f' nowadays (also standardized in POSIX.2-1992).
(libtz.a): Rename from $(DESTDIR)$(TZLIB), since we now build it here.
Use $(AR) rather than ar.
Use $(RANLIB) rather than trying to guess it.
(clean_misc): Do not remove 'leapseconds', as it's machine-independent.
(maintainer-clean): Remove 'leapseconds' here instead.
(clean, check_public): Standardize on 'rm -fr' rather than 'rm -f -r';
formerly the makefile was inconsistent.
(set-timestamps.out): Don't ignore failurs of the actual touch command.
2013-10-02 10:48:46 -07:00
|
|
|
# If git or GNU 'touch' is absent, don't bother to sync with git timestamps.
|
main: distribute leapseconds in tzdata, and fix timestamps
Problem with leapseconds reported by Matt Burgess in
<http://mm.icann.org/pipermail/tz/2013-September/020379.html>
with a followup by Ian Abbott in
<http://mm.icann.org/pipermail/tz/2013-September/020383.html>.
* Makefile (MANTXTS): New macro.
(maintainer-clean): Use it.
(DOCS): Add it.
(DATA): Add 'leapseconds'.
(LEAP_DEPS): New macro.
(leapseconds): Use it.
(public): Don't depend on set-timestamps; each tarball does that
individually now, to allow for more parallelization.
(date.1.txt, newctime.3.txt, newstrftime.3.txt, newtzset.3.txt)
(time2posix.3.txt, tzfile.5.txt, tzselect.8.txt, zdump.8.txt)
(zic.8.txt): Depend on the corresponding non-.txt file.
$(MANTXTS): New rule.
(set-timestamps.out): Rename from set-timestamps, and make it a file,
so that it has its own timestamp; this avoids useless rework.
Depend on $(ENCHILADA) and ignore files under Git that are not
also listed in $(ENCHILADA). Set the timestamp of 'leapseconds'
and each $(MANTXTS) to be the maximum of its dependencies, to avoid
timestamp churn in future tarballs. Prefer touch -m, as we don't
care about access time here.
(tzcode$(VERSION).tar.gz, tzdata$(VERSION).tar.gz):
Depend on set-timestamps.out rather than the individual files,
so timestamps are set before creating the tarballs even when
make is parallelized.
(tzcode$(VERSION).tar.gz): Don't mention *.[1-8].txt explicitly,
since we now get $(MANTXTS) via $(DOCS).
* NEWS: Document the above.
2013-09-25 15:50:44 -07:00
|
|
|
# Also, set the timestamp of each prebuilt file like 'leapseconds'
|
|
|
|
|
# to be the maximum of the files it depends on.
|
|
|
|
|
set-timestamps.out: $(ENCHILADA)
|
|
|
|
|
rm -f $@
|
build: Makefile fixes; let user give AR and RANLIB; local libtz.a
* Makefile: Let the user override AR, and build libtz.a before
installing it, as suggested by Michael Forney in
<https://github.com/eggert/tz/pull/3>. Also, let the user
override RANLIB. Modernize a bit by assuming POSIX.2-1992 or
later; this is safe nowadays and simplifies the libtz.a business.
And treat 'leapseconds' more like we used to, since it's
machine-independent a 'make clean' doesn't need to remove it.
(TZLIB): Remove.
(AR, RANLIB): New macros.
(TABDATA): Add leapseconds, so that 'make' builds it by default.
(DATA): Remove leapseconds, since $(TABDATA) now has it.
(all): Depend on libtz.a, not $(LIBOBJS).
(install): Install libtz.a using 'cp', like other files.
Also invoke $(RANLIB) on it, after installing.
Do not assume that TZDIR is not overridden.
(install, INSTALL, check_time_t_alternatives): Use 'mkdir -p', as
it's safe to assume nowadays (standardized in POSIX.2-1992).
(install, INSTALL): Prefer 'cp -f' to 'rm' followed by 'cp', as
it's safe to assume 'cp -f' nowadays (also standardized in POSIX.2-1992).
(libtz.a): Rename from $(DESTDIR)$(TZLIB), since we now build it here.
Use $(AR) rather than ar.
Use $(RANLIB) rather than trying to guess it.
(clean_misc): Do not remove 'leapseconds', as it's machine-independent.
(maintainer-clean): Remove 'leapseconds' here instead.
(clean, check_public): Standardize on 'rm -fr' rather than 'rm -f -r';
formerly the makefile was inconsistent.
(set-timestamps.out): Don't ignore failurs of the actual touch command.
2013-10-02 10:48:46 -07:00
|
|
|
if files=`git ls-files $(ENCHILADA)` && \
|
|
|
|
|
touch -md @1 test.out; then \
|
|
|
|
|
rm -f test.out && \
|
|
|
|
|
for file in $$files; do \
|
|
|
|
|
if git diff --quiet $$file; then \
|
|
|
|
|
time=`git log -1 --format='tformat:%ct' $$file` && \
|
|
|
|
|
touch -cmd @$$time $$file; \
|
|
|
|
|
else \
|
|
|
|
|
echo >&2 "$$file: warning: does not match repository"; \
|
|
|
|
|
fi || exit; \
|
|
|
|
|
done; \
|
|
|
|
|
fi
|
main: distribute leapseconds in tzdata, and fix timestamps
Problem with leapseconds reported by Matt Burgess in
<http://mm.icann.org/pipermail/tz/2013-September/020379.html>
with a followup by Ian Abbott in
<http://mm.icann.org/pipermail/tz/2013-September/020383.html>.
* Makefile (MANTXTS): New macro.
(maintainer-clean): Use it.
(DOCS): Add it.
(DATA): Add 'leapseconds'.
(LEAP_DEPS): New macro.
(leapseconds): Use it.
(public): Don't depend on set-timestamps; each tarball does that
individually now, to allow for more parallelization.
(date.1.txt, newctime.3.txt, newstrftime.3.txt, newtzset.3.txt)
(time2posix.3.txt, tzfile.5.txt, tzselect.8.txt, zdump.8.txt)
(zic.8.txt): Depend on the corresponding non-.txt file.
$(MANTXTS): New rule.
(set-timestamps.out): Rename from set-timestamps, and make it a file,
so that it has its own timestamp; this avoids useless rework.
Depend on $(ENCHILADA) and ignore files under Git that are not
also listed in $(ENCHILADA). Set the timestamp of 'leapseconds'
and each $(MANTXTS) to be the maximum of its dependencies, to avoid
timestamp churn in future tarballs. Prefer touch -m, as we don't
care about access time here.
(tzcode$(VERSION).tar.gz, tzdata$(VERSION).tar.gz):
Depend on set-timestamps.out rather than the individual files,
so timestamps are set before creating the tarballs even when
make is parallelized.
(tzcode$(VERSION).tar.gz): Don't mention *.[1-8].txt explicitly,
since we now get $(MANTXTS) via $(DOCS).
* NEWS: Document the above.
2013-09-25 15:50:44 -07:00
|
|
|
touch -cmr `ls -t $(LEAP_DEPS) | sed 1q` leapseconds
|
|
|
|
|
for file in `ls $(MANTXTS) | sed 's/\.txt$$//'`; do \
|
|
|
|
|
touch -cmr `ls -t $$file workman.sh | sed 1q` $$file.txt || \
|
|
|
|
|
exit; \
|
|
|
|
|
done
|
|
|
|
|
touch $@
|
2012-07-19 16:35:33 -07:00
|
|
|
|
Revert recent pre-1970 changes.
Other tz file readers had problems with the new pre1970 file, so
remove it and related changes. To recover the pre-1970 data,
instead change pre-1970 Zone entries in other files back to what
they were. Perhaps we'll try to find a better way someday.
* .gitignore: Remove back-pre1970.
* Makefile (BACKWARD): Remove. All uses changed back to 'backward'.
(AWK_SCRIPTS): Remove back-pre1970.awk.
(back-pre1970): Remove.
(clean_misc): Don't rm back-pre1970.
(check_public): Remove special case for pre1970.
* back-pre1970.awk, pre1970: Remove.
* backward (America/Anguilla, America/Antigua, America/Aruba)
(America/Atikokan, America/Blanc-Sablon, America/Cayman)
(America/Creston, America/Curacao, America/Dominica, America/Grenada)
(America/Guadeloupe, America/Montreal, America/Montserrat)
(America/Nassau, America/Port_of_Spain, America/St_Kitts)
(America/St_Lucia, America/St_Thomas, America/St_Vincent)
(America/Tortola): Remove, as these are zones again.
(America/Coral_Harbour, America/Kralendijk, America/Lower_Princes)
(America/Marigot, America/St_Barthelemy, America/Virgin):
Revert to previous links.
* northamerica (Mont, America/Blanc-Sablon, America/Montreal)
(America/Atikokan, America/Creston, America/Anguilla, America/Antigua)
(Bahamas, America/Nassau, America/Cayman, America/Dominica)
(America/Grenada, America/Guadeloupe, America/Montserrat)
(America/St_Kitts, America/St_Lucia, America/St_Vincent)
(America/Tortola, America/St_Thomas):
* southamerica (America/Aruba, America/Curacao, America/Port_of_Spain):
Restore these rules and zones.
* .gitignore: Add back-pre1970.
2013-08-30 16:36:21 -07:00
|
|
|
# The zics below ensure that each data file can stand on its own.
|
2005-01-27 08:12:53 -05:00
|
|
|
# We also do an all-files run to catch links to links.
|
1999-03-29 11:18:12 -05:00
|
|
|
|
2012-11-03 12:56:05 -07:00
|
|
|
check_public: $(ENCHILADA)
|
2005-01-24 12:21:45 -05:00
|
|
|
make maintainer-clean
|
2013-09-29 23:45:06 -07:00
|
|
|
make "CFLAGS=$(GCC_DEBUG_FLAGS)" $(ENCHILADA) all
|
2012-11-03 19:39:56 -07:00
|
|
|
mkdir tzpublic
|
|
|
|
|
for i in $(TDATA) ; do \
|
Revert recent pre-1970 changes.
Other tz file readers had problems with the new pre1970 file, so
remove it and related changes. To recover the pre-1970 data,
instead change pre-1970 Zone entries in other files back to what
they were. Perhaps we'll try to find a better way someday.
* .gitignore: Remove back-pre1970.
* Makefile (BACKWARD): Remove. All uses changed back to 'backward'.
(AWK_SCRIPTS): Remove back-pre1970.awk.
(back-pre1970): Remove.
(clean_misc): Don't rm back-pre1970.
(check_public): Remove special case for pre1970.
* back-pre1970.awk, pre1970: Remove.
* backward (America/Anguilla, America/Antigua, America/Aruba)
(America/Atikokan, America/Blanc-Sablon, America/Cayman)
(America/Creston, America/Curacao, America/Dominica, America/Grenada)
(America/Guadeloupe, America/Montreal, America/Montserrat)
(America/Nassau, America/Port_of_Spain, America/St_Kitts)
(America/St_Lucia, America/St_Thomas, America/St_Vincent)
(America/Tortola): Remove, as these are zones again.
(America/Coral_Harbour, America/Kralendijk, America/Lower_Princes)
(America/Marigot, America/St_Barthelemy, America/Virgin):
Revert to previous links.
* northamerica (Mont, America/Blanc-Sablon, America/Montreal)
(America/Atikokan, America/Creston, America/Anguilla, America/Antigua)
(Bahamas, America/Nassau, America/Cayman, America/Dominica)
(America/Grenada, America/Guadeloupe, America/Montserrat)
(America/St_Kitts, America/St_Lucia, America/St_Vincent)
(America/Tortola, America/St_Thomas):
* southamerica (America/Aruba, America/Curacao, America/Port_of_Spain):
Restore these rules and zones.
* .gitignore: Add back-pre1970.
2013-08-30 16:36:21 -07:00
|
|
|
$(zic) -v -d tzpublic $$i 2>&1 || exit; \
|
2012-11-03 12:56:05 -07:00
|
|
|
done
|
2012-11-03 19:39:56 -07:00
|
|
|
$(zic) -v -d tzpublic $(TDATA)
|
build: Makefile fixes; let user give AR and RANLIB; local libtz.a
* Makefile: Let the user override AR, and build libtz.a before
installing it, as suggested by Michael Forney in
<https://github.com/eggert/tz/pull/3>. Also, let the user
override RANLIB. Modernize a bit by assuming POSIX.2-1992 or
later; this is safe nowadays and simplifies the libtz.a business.
And treat 'leapseconds' more like we used to, since it's
machine-independent a 'make clean' doesn't need to remove it.
(TZLIB): Remove.
(AR, RANLIB): New macros.
(TABDATA): Add leapseconds, so that 'make' builds it by default.
(DATA): Remove leapseconds, since $(TABDATA) now has it.
(all): Depend on libtz.a, not $(LIBOBJS).
(install): Install libtz.a using 'cp', like other files.
Also invoke $(RANLIB) on it, after installing.
Do not assume that TZDIR is not overridden.
(install, INSTALL, check_time_t_alternatives): Use 'mkdir -p', as
it's safe to assume nowadays (standardized in POSIX.2-1992).
(install, INSTALL): Prefer 'cp -f' to 'rm' followed by 'cp', as
it's safe to assume 'cp -f' nowadays (also standardized in POSIX.2-1992).
(libtz.a): Rename from $(DESTDIR)$(TZLIB), since we now build it here.
Use $(AR) rather than ar.
Use $(RANLIB) rather than trying to guess it.
(clean_misc): Do not remove 'leapseconds', as it's machine-independent.
(maintainer-clean): Remove 'leapseconds' here instead.
(clean, check_public): Standardize on 'rm -fr' rather than 'rm -f -r';
formerly the makefile was inconsistent.
(set-timestamps.out): Don't ignore failurs of the actual touch command.
2013-10-02 10:48:46 -07:00
|
|
|
rm -fr tzpublic
|
2012-11-03 12:56:05 -07:00
|
|
|
|
2013-05-27 14:16:25 -07:00
|
|
|
# Check that the code works under various alternative
|
|
|
|
|
# implementations of time_t.
|
|
|
|
|
check_time_t_alternatives:
|
|
|
|
|
zones=`$(AWK) '/^[^#]/ { print $$3 }' <zone.tab` && \
|
|
|
|
|
for type in $(TIME_T_ALTERNATIVES); do \
|
build: Makefile fixes; let user give AR and RANLIB; local libtz.a
* Makefile: Let the user override AR, and build libtz.a before
installing it, as suggested by Michael Forney in
<https://github.com/eggert/tz/pull/3>. Also, let the user
override RANLIB. Modernize a bit by assuming POSIX.2-1992 or
later; this is safe nowadays and simplifies the libtz.a business.
And treat 'leapseconds' more like we used to, since it's
machine-independent a 'make clean' doesn't need to remove it.
(TZLIB): Remove.
(AR, RANLIB): New macros.
(TABDATA): Add leapseconds, so that 'make' builds it by default.
(DATA): Remove leapseconds, since $(TABDATA) now has it.
(all): Depend on libtz.a, not $(LIBOBJS).
(install): Install libtz.a using 'cp', like other files.
Also invoke $(RANLIB) on it, after installing.
Do not assume that TZDIR is not overridden.
(install, INSTALL, check_time_t_alternatives): Use 'mkdir -p', as
it's safe to assume nowadays (standardized in POSIX.2-1992).
(install, INSTALL): Prefer 'cp -f' to 'rm' followed by 'cp', as
it's safe to assume 'cp -f' nowadays (also standardized in POSIX.2-1992).
(libtz.a): Rename from $(DESTDIR)$(TZLIB), since we now build it here.
Use $(AR) rather than ar.
Use $(RANLIB) rather than trying to guess it.
(clean_misc): Do not remove 'leapseconds', as it's machine-independent.
(maintainer-clean): Remove 'leapseconds' here instead.
(clean, check_public): Standardize on 'rm -fr' rather than 'rm -f -r';
formerly the makefile was inconsistent.
(set-timestamps.out): Don't ignore failurs of the actual touch command.
2013-10-02 10:48:46 -07:00
|
|
|
mkdir -p tzpublic/$$type && \
|
2013-05-27 14:16:25 -07:00
|
|
|
make clean_misc && \
|
|
|
|
|
make TOPDIR=`pwd`/tzpublic/$$type \
|
|
|
|
|
CFLAGS='$(CFLAGS) -Dtime_tz='"'$$type'" \
|
|
|
|
|
install && \
|
|
|
|
|
diff -qr tzpublic/int64_t/etc/zoneinfo tzpublic/$$type/etc/zoneinfo && \
|
|
|
|
|
case $$type in \
|
|
|
|
|
int32_t) range=-2147483648,2147483647;; \
|
|
|
|
|
uint32_t) range=0,4294967296;; \
|
|
|
|
|
int64_t) continue;; \
|
|
|
|
|
*u*) range=0,10000000000;; \
|
|
|
|
|
*) range=-10000000000,10000000000;; \
|
|
|
|
|
esac && \
|
|
|
|
|
echo checking $$type zones ... && \
|
|
|
|
|
tzpublic/int64_t/etc/zdump -V -t $$range $$zones \
|
|
|
|
|
>tzpublic/int64_t.out && \
|
|
|
|
|
tzpublic/$$type/etc/zdump -V -t $$range $$zones \
|
|
|
|
|
>tzpublic/$$type.out && \
|
|
|
|
|
diff -u tzpublic/int64_t.out tzpublic/$$type.out \
|
|
|
|
|
|| exit; \
|
|
|
|
|
done
|
build: Makefile fixes; let user give AR and RANLIB; local libtz.a
* Makefile: Let the user override AR, and build libtz.a before
installing it, as suggested by Michael Forney in
<https://github.com/eggert/tz/pull/3>. Also, let the user
override RANLIB. Modernize a bit by assuming POSIX.2-1992 or
later; this is safe nowadays and simplifies the libtz.a business.
And treat 'leapseconds' more like we used to, since it's
machine-independent a 'make clean' doesn't need to remove it.
(TZLIB): Remove.
(AR, RANLIB): New macros.
(TABDATA): Add leapseconds, so that 'make' builds it by default.
(DATA): Remove leapseconds, since $(TABDATA) now has it.
(all): Depend on libtz.a, not $(LIBOBJS).
(install): Install libtz.a using 'cp', like other files.
Also invoke $(RANLIB) on it, after installing.
Do not assume that TZDIR is not overridden.
(install, INSTALL, check_time_t_alternatives): Use 'mkdir -p', as
it's safe to assume nowadays (standardized in POSIX.2-1992).
(install, INSTALL): Prefer 'cp -f' to 'rm' followed by 'cp', as
it's safe to assume 'cp -f' nowadays (also standardized in POSIX.2-1992).
(libtz.a): Rename from $(DESTDIR)$(TZLIB), since we now build it here.
Use $(AR) rather than ar.
Use $(RANLIB) rather than trying to guess it.
(clean_misc): Do not remove 'leapseconds', as it's machine-independent.
(maintainer-clean): Remove 'leapseconds' here instead.
(clean, check_public): Standardize on 'rm -fr' rather than 'rm -f -r';
formerly the makefile was inconsistent.
(set-timestamps.out): Don't ignore failurs of the actual touch command.
2013-10-02 10:48:46 -07:00
|
|
|
rm -fr tzpublic
|
2013-05-27 14:16:25 -07:00
|
|
|
|
2012-11-03 12:56:05 -07:00
|
|
|
tarballs: tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz
|
|
|
|
|
|
main: distribute leapseconds in tzdata, and fix timestamps
Problem with leapseconds reported by Matt Burgess in
<http://mm.icann.org/pipermail/tz/2013-September/020379.html>
with a followup by Ian Abbott in
<http://mm.icann.org/pipermail/tz/2013-September/020383.html>.
* Makefile (MANTXTS): New macro.
(maintainer-clean): Use it.
(DOCS): Add it.
(DATA): Add 'leapseconds'.
(LEAP_DEPS): New macro.
(leapseconds): Use it.
(public): Don't depend on set-timestamps; each tarball does that
individually now, to allow for more parallelization.
(date.1.txt, newctime.3.txt, newstrftime.3.txt, newtzset.3.txt)
(time2posix.3.txt, tzfile.5.txt, tzselect.8.txt, zdump.8.txt)
(zic.8.txt): Depend on the corresponding non-.txt file.
$(MANTXTS): New rule.
(set-timestamps.out): Rename from set-timestamps, and make it a file,
so that it has its own timestamp; this avoids useless rework.
Depend on $(ENCHILADA) and ignore files under Git that are not
also listed in $(ENCHILADA). Set the timestamp of 'leapseconds'
and each $(MANTXTS) to be the maximum of its dependencies, to avoid
timestamp churn in future tarballs. Prefer touch -m, as we don't
care about access time here.
(tzcode$(VERSION).tar.gz, tzdata$(VERSION).tar.gz):
Depend on set-timestamps.out rather than the individual files,
so timestamps are set before creating the tarballs even when
make is parallelized.
(tzcode$(VERSION).tar.gz): Don't mention *.[1-8].txt explicitly,
since we now get $(MANTXTS) via $(DOCS).
* NEWS: Document the above.
2013-09-25 15:50:44 -07:00
|
|
|
tzcode$(VERSION).tar.gz: set-timestamps.out
|
2012-07-19 16:35:33 -07:00
|
|
|
LC_ALL=C && export LC_ALL && \
|
2012-10-17 20:59:45 -07:00
|
|
|
tar $(TARFLAGS) -cf - \
|
main: distribute leapseconds in tzdata, and fix timestamps
Problem with leapseconds reported by Matt Burgess in
<http://mm.icann.org/pipermail/tz/2013-September/020379.html>
with a followup by Ian Abbott in
<http://mm.icann.org/pipermail/tz/2013-September/020383.html>.
* Makefile (MANTXTS): New macro.
(maintainer-clean): Use it.
(DOCS): Add it.
(DATA): Add 'leapseconds'.
(LEAP_DEPS): New macro.
(leapseconds): Use it.
(public): Don't depend on set-timestamps; each tarball does that
individually now, to allow for more parallelization.
(date.1.txt, newctime.3.txt, newstrftime.3.txt, newtzset.3.txt)
(time2posix.3.txt, tzfile.5.txt, tzselect.8.txt, zdump.8.txt)
(zic.8.txt): Depend on the corresponding non-.txt file.
$(MANTXTS): New rule.
(set-timestamps.out): Rename from set-timestamps, and make it a file,
so that it has its own timestamp; this avoids useless rework.
Depend on $(ENCHILADA) and ignore files under Git that are not
also listed in $(ENCHILADA). Set the timestamp of 'leapseconds'
and each $(MANTXTS) to be the maximum of its dependencies, to avoid
timestamp churn in future tarballs. Prefer touch -m, as we don't
care about access time here.
(tzcode$(VERSION).tar.gz, tzdata$(VERSION).tar.gz):
Depend on set-timestamps.out rather than the individual files,
so timestamps are set before creating the tarballs even when
make is parallelized.
(tzcode$(VERSION).tar.gz): Don't mention *.[1-8].txt explicitly,
since we now get $(MANTXTS) via $(DOCS).
* NEWS: Document the above.
2013-09-25 15:50:44 -07:00
|
|
|
$(COMMON) $(DOCS) $(SOURCES) $(MISC) | \
|
2012-11-03 12:56:05 -07:00
|
|
|
gzip $(GZIPFLAGS) > $@
|
|
|
|
|
|
main: distribute leapseconds in tzdata, and fix timestamps
Problem with leapseconds reported by Matt Burgess in
<http://mm.icann.org/pipermail/tz/2013-September/020379.html>
with a followup by Ian Abbott in
<http://mm.icann.org/pipermail/tz/2013-September/020383.html>.
* Makefile (MANTXTS): New macro.
(maintainer-clean): Use it.
(DOCS): Add it.
(DATA): Add 'leapseconds'.
(LEAP_DEPS): New macro.
(leapseconds): Use it.
(public): Don't depend on set-timestamps; each tarball does that
individually now, to allow for more parallelization.
(date.1.txt, newctime.3.txt, newstrftime.3.txt, newtzset.3.txt)
(time2posix.3.txt, tzfile.5.txt, tzselect.8.txt, zdump.8.txt)
(zic.8.txt): Depend on the corresponding non-.txt file.
$(MANTXTS): New rule.
(set-timestamps.out): Rename from set-timestamps, and make it a file,
so that it has its own timestamp; this avoids useless rework.
Depend on $(ENCHILADA) and ignore files under Git that are not
also listed in $(ENCHILADA). Set the timestamp of 'leapseconds'
and each $(MANTXTS) to be the maximum of its dependencies, to avoid
timestamp churn in future tarballs. Prefer touch -m, as we don't
care about access time here.
(tzcode$(VERSION).tar.gz, tzdata$(VERSION).tar.gz):
Depend on set-timestamps.out rather than the individual files,
so timestamps are set before creating the tarballs even when
make is parallelized.
(tzcode$(VERSION).tar.gz): Don't mention *.[1-8].txt explicitly,
since we now get $(MANTXTS) via $(DOCS).
* NEWS: Document the above.
2013-09-25 15:50:44 -07:00
|
|
|
tzdata$(VERSION).tar.gz: set-timestamps.out
|
2012-07-19 16:35:33 -07:00
|
|
|
LC_ALL=C && export LC_ALL && \
|
2012-10-17 20:59:45 -07:00
|
|
|
tar $(TARFLAGS) -cf - $(COMMON) $(DATA) | \
|
2012-11-03 12:56:05 -07:00
|
|
|
gzip $(GZIPFLAGS) > $@
|
|
|
|
|
|
2012-11-03 17:41:16 -07:00
|
|
|
signatures: tzcode$(VERSION).tar.gz.asc tzdata$(VERSION).tar.gz.asc
|
2012-11-03 12:56:05 -07:00
|
|
|
|
2012-11-03 17:41:16 -07:00
|
|
|
tzcode$(VERSION).tar.gz.asc: tzcode$(VERSION).tar.gz
|
|
|
|
|
gpg --armor --detach-sign $?
|
2012-11-03 12:56:05 -07:00
|
|
|
|
2012-11-03 17:41:16 -07:00
|
|
|
tzdata$(VERSION).tar.gz.asc: tzdata$(VERSION).tar.gz
|
|
|
|
|
gpg --armor --detach-sign $?
|
1993-01-08 06:51:58 -05:00
|
|
|
|
2005-01-31 14:06:03 -05:00
|
|
|
typecheck:
|
2004-11-29 10:02:21 -05:00
|
|
|
make clean
|
Remove attempt to support floating-point time_t.
It wasn't tested and probably never worked, no platform used it,
and the latest POSIX no longer allows it.
* Makefile (typecheck): Don't check time_t being 'double'.
* Theory: Document the change.
* difftime.c (difftime):
* localtime.c (differ_by_repeat, tzload, timesub, time2sub):
* private.h (time_t_min, time_t_max):
* zdump.c (absolute_min_time, absolute_max_time, tformat):
Don't try to support floating-point time_t.
* localtime.c, private.h, zdump.c: Don't include float.h.
* localtime.c (truncate_time, double_to_time):
* private.h (TYPE_INTEGRAL):
* zdump.c (checkabsolutes):
Remove; no longer needed. All uses removed.
* zdump.8 (LIMITATIONS): Remove discussion of floating-point time_t.
2013-08-12 01:41:34 -07:00
|
|
|
for i in "long long" unsigned; \
|
2004-11-30 08:38:36 -05:00
|
|
|
do \
|
More C modernization.
* Makefile (typecheck): Add -D__time_t_defined to CFLAGS,
for glibc 2.15.
* asctime.c (asctime_r, asctime):
* date.c (main, dogmt, reset, nondigit, sametm, convert, checkfinal):
* ialloc.c (icatalloc):
* localtime.c (detzcode, detzcode64, settzname, tzload)
(typesequiv, getzname, getqzname, getnum, getsecs, getoffset)
(getrule, transtime, tzparse, tzset, localsub, gmtsub)
(leaps_thru_end_of, timesub, increment_overflow)
(long_increment_overflow, normalize_overflow)
(long_normalize_overflow, tmcomp, time2sub, time1, leapcorr):
* scheck.c (scheck):
* strftime.c (_yconv):
* zdump.c (my_localtime, abbrok, main, yeartot, hunt)
(delta, show, abbr, dumptime):
* zic.c (main, dolink, itsdir, associate, infile, inrule)
(inzone, inzcont, inzsub, inleap, inlink, rulesub, convert64)
(writezone, doabbr, stringoffset, stringrule, stringzone)
(outzone, addtype, leapadd, adjleap, ciequal, itsabbr, byword)
(getfields, rpytime, newabbr, mkdirs):
Omit 'register', as it adds no value these days. See Christos Zoulas in
<http://mm.icann.org/pipermail/tz/2012-October/018376.html>.
* date.c (netsettime) [TSP_SETDATE]: Add forward decl.
Don't rely on implicit int. Now static. Use NULL, not 0.
* zdump.c: Include "limits.h".
(absolute_min_time, absolute_max_time): Compute at compile-time,
as the run-time tests relied on undefined behavior.
(checkabsolutes): Rename from setabsolutes. Just check, since
there's nothing to set now. All uses changed.
2012-10-26 00:48:01 -07:00
|
|
|
make CFLAGS="-DTYPECHECK -D__time_t_defined -D_TIME_T \"-Dtime_t=$$i\"" ; \
|
2005-03-17 21:48:15 -05:00
|
|
|
./zdump -v Europe/Rome ; \
|
2004-11-30 08:38:36 -05:00
|
|
|
make clean ; \
|
|
|
|
|
done
|
2004-11-29 10:02:21 -05:00
|
|
|
|
1989-03-21 11:36:47 -05:00
|
|
|
zonenames: $(TDATA)
|
1999-11-04 16:41:29 -05:00
|
|
|
@$(AWK) '/^Zone/ { print $$2 } /^Link/ { print $$3 }' $(TDATA)
|
1989-03-21 11:36:47 -05:00
|
|
|
|
|
|
|
|
asctime.o: private.h tzfile.h
|
1989-03-22 20:00:34 -05:00
|
|
|
date.o: private.h
|
1989-03-21 11:36:47 -05:00
|
|
|
difftime.o: private.h
|
|
|
|
|
ialloc.o: private.h
|
|
|
|
|
localtime.o: private.h tzfile.h
|
|
|
|
|
scheck.o: private.h
|
1989-03-22 20:00:34 -05:00
|
|
|
strftime.o: tzfile.h
|
Switch from SCCS to git.
Remove the SCCS keyword '%W%' from all files.
Mostly this just remove comments.
Remove trailing white space, too.
* Makefile (TZCODE_VERSION): New macro.
(version.h): New rule.
(tzselect): Interpolate TZCODE_VERSION.
(clean): Remove version.h.
(zdump.o, zic.o): Depend on version.h.
* asctime.c, date.c, difftime.c, ialloc.c, localtime.c, scheck.c:
* strftime.c, zdump.c, zic.c: Remove elsieid.
* private.h: Remove privatehid.
* tzfile.h: Remove tzfilehid.
* tzselect.h (TZCODE_VERSION): Rename from VERSION.
* zdump.c, zic.c: Include "version.h",
and use TZCODE_VERSION instead of elsieid.
2012-07-18 17:30:38 -07:00
|
|
|
zdump.o: version.h
|
|
|
|
|
zic.o: private.h tzfile.h version.h
|
1989-02-17 20:21:00 -05:00
|
|
|
|
|
|
|
|
.KEEP_STATE:
|
2014-06-14 15:25:13 -07:00
|
|
|
|
|
|
|
|
.PHONY: ALL INSTALL all
|
|
|
|
|
.PHONY: check check_character_set check_public check_tables
|
|
|
|
|
.PHONY: check_time_t_alternatives check_web clean clean_misc
|
|
|
|
|
.PHONY: install maintainer-clean names posix_only posix_right
|
|
|
|
|
.PHONY: public right_only right_posix signatures tarballs typecheck
|
|
|
|
|
.PHONY: zonenames zones
|