freebsd-dev/share/zoneinfo/Makefile
Brooks Davis 78e832b82d Rather than using zic to both compile and install zoneinfo files,
generate the files during the build and install them with install(1).
This was the one place in installworld where files (vs links) were
installed by a tool other than install.

Reviewed by:	edwin, jilles
2013-01-10 19:46:08 +00:00

109 lines
2.7 KiB
Makefile

# $FreeBSD$
#
# HOW TO UPDATE THE ZONEINFO DATA
#
# With the use of subversion, this is a little bit simpler than the CVS method.
#
# Import the new sources to the vendor branch:
#
# $ cd ~/svn/vendor/tzdata/dist
# $ tar zxvf /usr/ports/distfile/tzdata2008X.tar.gz
# (check with "svn stat" and "svn diff" if it all makes sense)
# $ svn commit # Commit message: "Vendor import of tzdata2008X (+details)"
#
# Tag it
#
# $ cd ~/svn/vendor/tzdata
# $ svn cp svn+ssh://svn.freebsd.org/base/vendor/tzdata/dist \
# svn+ssh://svn.freebsd.org/base/vendor/tzdata/tzdata2008X
# $ svn update # Commit message: "Tag of tzdata2008X"
#
# Merge-from-vendor
#
# $ cd ~/svn/head/share/zoneinfo
# $ svn update
# $ svn merge -c X --accept=postpone \
# svn+ssh://svn.freebsd.org/base/vendor/tzdata/dist .
# $ svn update # Commit message: "MFV of tzdata2008X"
#
CLEANFILES+= yearistype
CLEANDIRS+= builddir
CONTRIBDIR= ${.CURDIR}/../../contrib/tzdata/
.PATH: ${CONTRIBDIR}
.if defined(LEAPSECONDS)
LEAPFILE= -L leapseconds
.else
LEAPFILE=
.endif
TZFILES= africa antarctica asia australasia etcetera europe \
factory northamerica southamerica
POSIXRULES= America/New_York
.if defined(OLDTIMEZONES)
TZFILES+= backward systemv
.endif
TZFILES:= ${TZFILES:S/^/${CONTRIBDIR}/}
TZBUILDDIR= ${.OBJDIR}/builddir
TZBUILDSUBDIRS= \
Africa \
America/Argentina \
America/Indiana \
America/Kentucky \
America/North_Dakota \
Antarctica \
Arctic \
Asia \
Atlantic \
Australia \
Etc \
Europe \
Indian \
Pacific \
SystemV
all: zoneinfo
.PHONY: zoneinfo
zoneinfo: yearistype ${TDATA}
mkdir -p ${TZBUILDDIR}
cd ${TZBUILDDIR}; mkdir -p ${TZBUILDSUBDIRS}
umask 022; cd ${.CURDIR}; \
zic -D -d ${TZBUILDDIR} -p ${POSIXRULES} -m ${NOBINMODE} \
${LEAPFILE} -y ${.OBJDIR}/yearistype ${TZFILES}
beforeinstall:
cd ${TZBUILDDIR} && \
find . -type f -print | xargs -I _FILE_ ${INSTALL} \
-o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \
_FILE_ ${DESTDIR}/usr/share/zoneinfo/_FILE_
${INSTALL} -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \
${CONTRIBDIR}/zone.tab ${DESTDIR}/usr/share/zoneinfo/
afterinstall:
#
# If the file /var/db/zoneinfo exists, and it is owned by root:wheel,
# and the contents of it exists in /usr/share/zoneinfo, then reinstall
# it.
#
@if [ -f ${DESTDIR}/var/db/zoneinfo -a -O ${DESTDIR}/var/db/zoneinfo \
-a -G ${DESTDIR}/var/db/zoneinfo ]; then \
zf=$$(cat ${DESTDIR}/var/db/zoneinfo); \
if [ -f ${DESTDIR}/usr/share/zoneinfo/$${zf} ]; then \
if [ ! -z "${DESTDIR}" ]; then \
optC="-C ${DESTDIR}"; \
fi; \
echo "Updating /etc/localtime"; \
tzsetup $${optC} -r; \
fi; \
else \
echo "Run tzsetup(8) manually to update /etc/localtime."; \
fi
.include <bsd.prog.mk>