Makefile revision 1.4 1 # $NetBSD: Makefile,v 1.4 2020/10/08 13:44:36 kre Exp $
2
3 .include <bsd.own.mk>
4 .include "../../Makefile.inc"
5
6 .PATH: ${TZDISTDIR}
7
8 # If you want something other than Eastern United States time as a template
9 # for handling POSIX-style time zone environment variables,
10 # change the line below (after finding the zone you want in the
11 # time zone files, or adding it to a time zone file).
12 # (When a POSIX-style environment variable is handled, the rules in the
13 # template file are used to determine "spring forward" and "fall back" days and
14 # times; the environment variable itself specifies UT offsets of standard and
15 # summer time.)
16 # Alternately, if you discover you've got the wrong time zone, you can just
17 # zic -p rightzone
18 # to correct things.
19 # Use the command
20 # make zonenames
21 # to get a list of the values you can use for POSIXRULES.
22 # If you want POSIX compatibility, use "America/New_York".
23
24 POSIXRULES= America/New_York
25
26 # "Compiled" time zone information is placed in the "TZDIR" directory
27 # (and subdirectories).
28 # Use an absolute path name for TZDIR unless you're just testing the software.
29 # Note: ${DESTDIR} is prepended to this for the actual copy.
30
31 TZDIR= /usr/share/zoneinfo
32
33 # If you always want time values interpreted as "seconds since the epoch
34 # (not counting leap seconds)", use
35 # REDO= posix_only
36 # below. If you always want right time values interpreted as "seconds since
37 # the epoch" (counting leap seconds)", use
38 # REDO= right_only
39 # below. If you want both sets of data available, with leap seconds not
40 # counted normally, use
41 # REDO= posix_right
42 # below. If you want both sets of data available, with leap seconds counted
43 # normally, use
44 # REDO= right_posix
45 # below.
46
47 REDO= posix_only
48
49 PRIMARY_YDATA= africa antarctica asia australasia \
50 europe northamerica southamerica
51 YDATA= $(PRIMARY_YDATA) etcetera backward
52 NDATA= factory
53 TDATA= $(YDATA) $(NDATA)
54 ZONETABLES= zone1970.tab zone.tab
55 TABDATA= iso3166.tab leapseconds $(ZONETABLES)
56 DATA= $(YDATA) $(NDATA) $(TABDATA)
57
58 TZBUILDDIR= ${.OBJDIR}/builddir
59
60 .PHONY: posix_only
61 posix_only: ${TDATA}
62 ${_MKTARGET_CREATE}
63 mkdir -p ${TZBUILDDIR}
64 cd ${TZDISTDIR} && \
65 ${TOOL_ZIC} -d ${TZBUILDDIR} -L /dev/null ${TDATA}
66
67 .PHONY: right_only
68 right_only: leapseconds ${TDATA}
69 ${_MKTARGET_CREATE}
70 mkdir -p ${TZBUILDDIR}
71 cd ${TZDISTDIR} && \
72 ${TOOL_ZIC} -d ${TZBUILDDIR} -L leapseconds ${TDATA}
73
74 .PHONY: other_two
75 other_two: leapseconds ${TDATA}
76 ${_MKTARGET_CREATE}
77 mkdir -p ${TZBUILDDIR}
78 cd ${TZDISTDIR} && \
79 ${TOOL_ZIC} -d ${TZBUILDDIR}/posix -L /dev/null ${TDATA}
80 cd ${TZDISTDIR} && \
81 ${TOOL_ZIC} -d ${TZBUILDDIR}/right -L leapseconds ${TDATA}
82
83 .PHONY: posix_right
84 posix_right: posix_only other_two
85
86 .PHONY: right_posix
87 right_posix: right_only other_two
88
89 .if ${MKUNPRIVED} == "no"
90 TOOL_PAX.unpriv=-pe
91 .else
92 TOOL_PAX.unpriv=
93 .endif
94
95 .if ${MKSHARE} != "no"
96 afterinstall: ${DATA} ${REDO} ${TABDATA}
97 ${_MKMSG_CREATE} ${POSIXRULES}
98 mkdir -p ${TZBUILDDIR}
99 cd ${TZDISTDIR} && \
100 ${TOOL_ZIC} -d ${TZBUILDDIR} -p ${POSIXRULES}
101 cd ${TZBUILDDIR} && \
102 find . -type f -print | xargs ${TOOL_STAT} -qf '%d,%i %N' | sort \
103 | while read devino tzfile; do \
104 destfile=${DESTDIR}${TZDIR}/$${tzfile#./}; \
105 destdir=$$(dirname $${destfile}); \
106 if [ ! -d "$$destdir" ]; then \
107 ${_MKSHMSG_INSTALL} $$destdir; \
108 ${_MKSHECHO} ${INSTALL_DIR} -o ${BINOWN} -g ${BINGRP} \
109 $$destdir; \
110 ${INSTALL_DIR} -o ${BINOWN} -g ${BINGRP} $$destdir; \
111 fi; \
112 if [ "$$devino" = "$$lastdevino" ]; then \
113 if ldevino=$$(${TOOL_STAT} -qf '%d %i' $$lastfile) && \
114 tdevino=$$(${TOOL_STAT} -qf '%d %i' $$destfile) && \
115 [ "$$ldevino" = "$$tdevino" ]; then \
116 continue; \
117 fi; \
118 ${_MKSHMSG_INSTALL} $$destfile; \
119 ${_MKSHECHO} ${INSTALL_LINK} -o ${BINOWN} -g ${BINGRP} \
120 -m ${NONBINMODE} $$lastfile $$destfile; \
121 ${INSTALL_LINK} -o ${BINOWN} -g ${BINGRP} \
122 -m ${NONBINMODE} $$lastfile $$destfile; \
123 else \
124 lastdevino=$$devino; \
125 lastfile=$$destfile; \
126 cmp -s $$tzfile $$destfile >/dev/null 2>&1 && continue;\
127 ${_MKSHMSG_INSTALL} $$destfile; \
128 ${_MKSHECHO} ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} \
129 -m ${NONBINMODE} $$tzfile $$destfile; \
130 ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} \
131 -m ${NONBINMODE} $$tzfile $$destfile; \
132 fi; \
133 done
134 for f in ${TABDATA}; do \
135 ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} -m ${NONBINMODE} \
136 ${TZDISTDIR}/$$f ${DESTDIR}${TZDIR}; \
137 done
138 ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} -m ${NONBINMODE} \
139 ${TZDISTDIR}/TZDATA_VERSION ${DESTDIR}${TZDIR}/TZDATA_VERSION
140 .else # ${MKSHARE} == "no"
141 afterinstall:
142 .endif # ${MKSHARE} == "no"
143
144 clean:
145 -rm -rf ${TZBUILDDIR}
146
147 .include <bsd.prog.mk>
148