1149211Spjd#	$NetBSD: Makefile,v 1.5 2024/06/02 00:21:12 kre Exp $
2181477Spjd
3149211Spjd.include <bsd.own.mk>
4149211Spjd.include "../../Makefile.inc"
5149211Spjd
6149211Spjd.PATH: ${TZDISTDIR}
7149211Spjd
8149211Spjd# If you want something other than Eastern United States time as a template
9149211Spjd# for handling POSIX-style time zone environment variables,
10149211Spjd# change the line below (after finding the zone you want in the
11149211Spjd# time zone files, or adding it to a time zone file).
12149211Spjd# (When a POSIX-style environment variable is handled, the rules in the
13160674Spjd# template file are used to determine "spring forward" and "fall back" days and
14149211Spjd# times; the environment variable itself specifies UT offsets of standard and
15149211Spjd# summer time.)
16149211Spjd# Alternately, if you discover you've got the wrong time zone, you can just
17149211Spjd#	zic -p rightzone
18149211Spjd# to correct things.
19149211Spjd# Use the command
20149211Spjd#	make zonenames
21149211Spjd# to get a list of the values you can use for POSIXRULES.
22149211Spjd# If you want POSIX compatibility, use "America/New_York".
23149211Spjd
24149211SpjdPOSIXRULES=	America/New_York
25149211Spjd
26149211Spjd# "Compiled" time zone information is placed in the "TZDIR" directory
27149211Spjd# (and subdirectories).
28149211Spjd# Use an absolute path name for TZDIR unless you're just testing the software.
29149211Spjd# Note: ${DESTDIR} is prepended to this for the actual copy.
30149211Spjd
31149211SpjdTZDIR=	/usr/share/zoneinfo
32149211Spjd
33149211Spjd# If you always want time values interpreted as "seconds since the epoch
34149211Spjd# (not counting leap seconds)", use
35180626Spjd#	REDO=		posix_only
36149211Spjd# below.  If you always want right time values interpreted as "seconds since
37149211Spjd# the epoch" (counting leap seconds)", use
38187112Sjkim#	REDO=		right_only
39149211Spjd# below.  If you want both sets of data available, with leap seconds not
40149211Spjd# counted normally, use
41160325Smr#	REDO=		posix_right
42160325Smr# below.  If you want both sets of data available, with leap seconds counted
43149211Spjd# normally, use
44149211Spjd#	REDO=		right_posix
45149211Spjd# below.
46149211Spjd
47160582SpjdREDO=		posix_only
48149211Spjd
49167755SsamPRIMARY_YDATA=	africa antarctica asia australasia \
50167755Ssam		europe northamerica southamerica
51167755SsamYDATA=		$(PRIMARY_YDATA) etcetera backward
52167755SsamNDATA=		factory
53160582SpjdTDATA=		$(YDATA) $(NDATA)
54160582SpjdZONETABLES=	zone1970.tab zone.tab
55160582SpjdTABDATA=	iso3166.tab leapseconds leap-seconds.list $(ZONETABLES)
56160582SpjdDATA=		$(YDATA) $(NDATA) $(TABDATA)
57160582Spjd
58149211SpjdTZBUILDDIR=	${.OBJDIR}/builddir
59149211Spjd
60149211Spjd.PHONY:	posix_only
61149211Spjdposix_only: ${TDATA}
62181473Spjd	${_MKTARGET_CREATE}
63180626Spjd	mkdir -p ${TZBUILDDIR}
64149211Spjd	cd ${TZDISTDIR} && \
65149211Spjd	    ${TOOL_ZIC} -d ${TZBUILDDIR} -L /dev/null ${TDATA}
66167755Ssam
67167755Ssam.PHONY:	right_only
68181477Spjdright_only: leapseconds ${TDATA}
69181477Spjd	${_MKTARGET_CREATE}
70167755Ssam	mkdir -p ${TZBUILDDIR}
71149211Spjd	cd ${TZDISTDIR} && \
72160582Spjd	    ${TOOL_ZIC} -d ${TZBUILDDIR} -L leapseconds ${TDATA}
73149211Spjd
74167755Ssam.PHONY:	other_two
75188171Simpother_two: leapseconds ${TDATA}
76167755Ssam	${_MKTARGET_CREATE}
77167755Ssam	mkdir -p ${TZBUILDDIR}
78167755Ssam	cd ${TZDISTDIR} && \
79167755Ssam	    ${TOOL_ZIC} -d ${TZBUILDDIR}/posix -L /dev/null ${TDATA}
80167755Ssam	cd ${TZDISTDIR} && \
81167755Ssam	    ${TOOL_ZIC} -d ${TZBUILDDIR}/right -L leapseconds ${TDATA}
82167755Ssam
83149211Spjd.PHONY:	posix_right
84167755Ssamposix_right: posix_only other_two
85149211Spjd
86160582Spjd.PHONY:	right_posix
87160582Spjdright_posix: right_only other_two
88187112Sjkim
89160582Spjd.if ${MKUNPRIVED} == "no"
90160325SmrTOOL_PAX.unpriv=-pe
91167755Ssam.else
92149211SpjdTOOL_PAX.unpriv=
93160582Spjd.endif
94160582Spjd
95160582Spjd.if ${MKSHARE} != "no"
96160582Spjdafterinstall: ${DATA} ${REDO} ${TABDATA}
97160582Spjd	${_MKMSG_CREATE} ${POSIXRULES}
98160582Spjd	mkdir -p ${TZBUILDDIR}
99160582Spjd	cd ${TZDISTDIR} && \
100160582Spjd	    ${TOOL_ZIC} -d ${TZBUILDDIR} -p ${POSIXRULES}
101160582Spjd	cd ${TZBUILDDIR} && \
102160582Spjd	    find . -type f -print | xargs ${TOOL_STAT} -qf '%d,%i %N' | sort \
103160582Spjd	| while read devino tzfile; do \
104160582Spjd		destfile=${DESTDIR}${TZDIR}/$${tzfile#./}; \
105160582Spjd		destdir=$$(dirname $${destfile}); \
106160582Spjd		if [ ! -d "$$destdir" ]; then \
107160582Spjd			${_MKSHMSG_INSTALL} $$destdir; \
108160582Spjd			${_MKSHECHO} ${INSTALL_DIR} -o ${BINOWN} -g ${BINGRP} \
109160582Spjd			$$destdir; \
110167755Ssam			${INSTALL_DIR} -o ${BINOWN} -g ${BINGRP} $$destdir; \
111167755Ssam		fi; \
112149211Spjd		if [ "$$devino" = "$$lastdevino" ]; then \
113149211Spjd			if  ldevino=$$(${TOOL_STAT} -qf '%d %i' $$lastfile) && \
114149211Spjd			    tdevino=$$(${TOOL_STAT} -qf '%d %i' $$destfile) && \
115167755Ssam			    [ "$$ldevino" = "$$tdevino" ]; then \
116149211Spjd				continue; \
117167755Ssam			fi; \
118167755Ssam			${_MKSHMSG_INSTALL} $$destfile; \
119167755Ssam			${_MKSHECHO} ${INSTALL_LINK} -o ${BINOWN} -g ${BINGRP} \
120167755Ssam			    -m ${NONBINMODE} $$lastfile $$destfile; \
121167755Ssam			${INSTALL_LINK} -o ${BINOWN} -g ${BINGRP} \
122149211Spjd			    -m ${NONBINMODE} $$lastfile $$destfile; \
123149211Spjd		else \
124149211Spjd			lastdevino=$$devino; \
125167755Ssam			lastfile=$$destfile; \
126149211Spjd			cmp -s $$tzfile $$destfile >/dev/null 2>&1 && continue;\
127167755Ssam			${_MKSHMSG_INSTALL} $$destfile; \
128149211Spjd			${_MKSHECHO} ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} \
129160785Spjd			    -m ${NONBINMODE} $$tzfile $$destfile; \
130149211Spjd			${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} \
131180626Spjd			    -m ${NONBINMODE} $$tzfile $$destfile; \
132167755Ssam		fi; \
133167755Ssam	done
134167755Ssam	for f in ${TABDATA}; do \
135167755Ssam		${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} -m ${NONBINMODE} \
136167755Ssam			${TZDISTDIR}/$$f ${DESTDIR}${TZDIR}; \
137167755Ssam	done
138167755Ssam	${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} -m ${NONBINMODE} \
139149211Spjd		${TZDISTDIR}/TZDATA_VERSION ${DESTDIR}${TZDIR}/TZDATA_VERSION
140149211Spjd.else	# ${MKSHARE} == "no"
141149211Spjdafterinstall:
142149211Spjd.endif	# ${MKSHARE} == "no"
143167755Ssam
144149211Spjdclean:
145167755Ssam	-rm -rf ${TZBUILDDIR}
146149211Spjd
147149211Spjd.include <bsd.prog.mk>
148180626Spjd