1#	$NetBSD: Makefile,v 1.2 2014/08/08 09:17:03 apb 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
24POSIXRULES=	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
31TZDIR=	/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
47REDO=		posix_only
48
49# Since "." may not be in PATH...
50YEARISTYPE=	"${HOST_SH} ${TZDISTDIR}/yearistype.sh"
51
52PRIMARY_YDATA=	africa antarctica asia australasia \
53		europe northamerica southamerica
54YDATA=		$(PRIMARY_YDATA) pacificnew etcetera backward
55NDATA=		systemv factory
56TDATA=		$(YDATA) $(NDATA)
57ZONETABLES=	zone1970.tab zone.tab
58TABDATA=	iso3166.tab leapseconds $(ZONETABLES)
59DATA=		$(YDATA) $(NDATA) $(TABDATA) # yearistype.sh
60
61TZBUILDDIR=	${.OBJDIR}/builddir
62
63.PHONY:	posix_only
64posix_only: ${TDATA}
65	${_MKTARGET_CREATE}
66	mkdir -p ${TZBUILDDIR}
67	cd ${TZDISTDIR} && \
68	    ${TOOL_ZIC} -y ${YEARISTYPE} -d ${TZBUILDDIR} -L /dev/null ${TDATA}
69
70.PHONY:	right_only
71right_only: leapseconds ${TDATA}
72	${_MKTARGET_CREATE}
73	mkdir -p ${TZBUILDDIR}
74	cd ${TZDISTDIR} && \
75	    ${TOOL_ZIC} -y ${YEARISTYPE} -d ${TZBUILDDIR} -L leapseconds ${TDATA}
76
77.PHONY:	other_two
78other_two: leapseconds ${TDATA}
79	${_MKTARGET_CREATE}
80	mkdir -p ${TZBUILDDIR}
81	cd ${TZDISTDIR} && \
82	    ${TOOL_ZIC} -y ${YEARISTYPE} -d ${TZBUILDDIR}/posix -L /dev/null ${TDATA}
83	cd ${TZDISTDIR} && \
84	    ${TOOL_ZIC} -y ${YEARISTYPE} -d ${TZBUILDDIR}/right -L leapseconds ${TDATA}
85
86.PHONY:	posix_right
87posix_right: posix_only other_two
88
89.PHONY:	right_posix
90right_posix: right_only other_two
91
92.if ${MKUNPRIVED} == "no"
93TOOL_PAX.unpriv=-pe
94.else
95TOOL_PAX.unpriv=
96.endif
97
98.if ${MKSHARE} != "no"
99afterinstall: ${DATA} ${REDO} ${TABDATA}
100	${_MKMSG_CREATE} ${POSIXRULES}
101	mkdir -p ${TZBUILDDIR}
102	cd ${TZDISTDIR} && \
103	    ${TOOL_ZIC} -y ${YEARISTYPE} -d ${TZBUILDDIR} -p ${POSIXRULES}
104	cd ${TZBUILDDIR} && \
105	    find . -type f -print | xargs ${TOOL_STAT} -qf '%d,%i %N' | sort \
106	| while read devino tzfile; do \
107		destfile=${DESTDIR}${TZDIR}/$${tzfile#./}; \
108		destdir=$$(dirname $${destfile}); \
109		if [ ! -d "$$destdir" ]; then \
110			${_MKSHMSG_INSTALL} $$destdir; \
111			${_MKSHECHO} ${INSTALL_DIR} -o ${BINOWN} -g ${BINGRP} \
112			$$destdir; \
113			${INSTALL_DIR} -o ${BINOWN} -g ${BINGRP} $$destdir; \
114		fi; \
115		if [ "$$devino" = "$$lastdevino" ]; then \
116			if  ldevino=$$(${TOOL_STAT} -qf '%d %i' $$lastfile) && \
117			    tdevino=$$(${TOOL_STAT} -qf '%d %i' $$destfile) && \
118			    [ "$$ldevino" = "$$tdevino" ]; then \
119				continue; \
120			fi; \
121			${_MKSHMSG_INSTALL} $$destfile; \
122			${_MKSHECHO} ${INSTALL_LINK} -o ${BINOWN} -g ${BINGRP} \
123			    -m ${NONBINMODE} $$lastfile $$destfile; \
124			${INSTALL_LINK} -o ${BINOWN} -g ${BINGRP} \
125			    -m ${NONBINMODE} $$lastfile $$destfile; \
126		else \
127			lastdevino=$$devino; \
128			lastfile=$$destfile; \
129			cmp -s $$tzfile $$destfile >/dev/null 2>&1 && continue;\
130			${_MKSHMSG_INSTALL} $$destfile; \
131			${_MKSHECHO} ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} \
132			    -m ${NONBINMODE} $$tzfile $$destfile; \
133			${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} \
134			    -m ${NONBINMODE} $$tzfile $$destfile; \
135		fi; \
136	done
137	for f in ${TABDATA}; do \
138		${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} -m ${NONBINMODE} \
139			${TZDISTDIR}/$$f ${DESTDIR}${TZDIR}; \
140	done
141.else	# ${MKSHARE} == "no"
142afterinstall:
143.endif	# ${MKSHARE} == "no"
144
145clean:
146	-rm -rf ${TZBUILDDIR}
147
148.include <bsd.prog.mk>
149