120 lines
3.4 KiB
Makefile
120 lines
3.4 KiB
Makefile
# Copyright (C) 1991, 1992 Free Software Foundation, Inc.
|
|
# This file is part of the GNU C Library.
|
|
|
|
# The GNU C Library is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU Library General Public License as
|
|
# published by the Free Software Foundation; either version 2 of the
|
|
# License, or (at your option) any later version.
|
|
|
|
# The GNU C Library is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Library General Public License for more details.
|
|
|
|
# You should have received a copy of the GNU Library General Public
|
|
# License along with the GNU C Library; see the file COPYING.LIB. If
|
|
# not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
|
# Cambridge, MA 02139, USA.
|
|
|
|
#
|
|
# Makefile for time routines
|
|
#
|
|
subdir := time
|
|
|
|
headers := time.h sys/time.h gnu/time.h
|
|
distribute := tzfile.h private.h scheck.c ialloc.c emkdir.c
|
|
|
|
routines := offtime asctime clock ctime difftime gmtime \
|
|
localtime mktime strftime time __tzset tzfile \
|
|
__gettod settod adjtime getitmr \
|
|
__getitmr __adjtime __settod \
|
|
__setitmr tzset gettod setitmr
|
|
aux := syms-time
|
|
|
|
others := ap zdump zic
|
|
tests := test_time
|
|
|
|
tzfiles := africa antarctica asia australasia europe northamerica \
|
|
southamerica etcetera factory systemv
|
|
# pacificnew doesn't compile; if it is to be used, it should be included in
|
|
# northamerica.
|
|
distribute := $(distribute) $(tzfiles) leapseconds pacificnew
|
|
|
|
install := zic zdump
|
|
|
|
define \n
|
|
|
|
|
|
endef
|
|
include zonenames
|
|
zonenames := $(subst $(\n), ,$(zonenames))
|
|
|
|
include ../Makeconfig
|
|
ifdef localtime
|
|
zonenames := $(zonenames) localtime
|
|
endif
|
|
ifdef posixrules
|
|
zonenames := $(zonenames) posixrules
|
|
endif
|
|
|
|
install-data := $(addprefix zoneinfo/,$(zonenames))
|
|
|
|
|
|
include ../Rules
|
|
|
|
|
|
$(tzfiles:%=zones-%): zones-%: %
|
|
(echo 'define $*-zones' ;\
|
|
awk '$$1 == "Zone" { print $$2 } $$1 == "Link" { print $$3 }' $^;\
|
|
echo 'endef' ;\
|
|
echo '$*-zones := $$(subst $$('\\\\n'), ,$$($*-zones))' ;\
|
|
echo 'ifdef $*-zones' ;\
|
|
echo '$$(addprefix zoneinfo/%/,$$($*-zones)): \' ;\
|
|
echo '$< $$(objpfx)zic leapseconds zoneinfo/' ;\
|
|
echo ' $$(tzcompile)' ;\
|
|
echo 'endif' ;\
|
|
echo 'define zonenames' ;\
|
|
echo '$$($*-zones)' ;\
|
|
echo 'endef' ;\
|
|
echo 'zonenames := $$(subst $$('\\\\n'), ,$$(zonenames))' ;\
|
|
) > $@
|
|
zonenames: Makefile
|
|
(for file in $(tzfiles); do \
|
|
echo "include zones-$$file"; \
|
|
done) > $@
|
|
|
|
.PHONY: echo-zonenames
|
|
echo-zonenames: zonenames
|
|
@echo 'Known zones: $(zonenames)'
|
|
|
|
# Make all the zoneinfo files.
|
|
.PHONY: zones zoneinfo
|
|
zones: zoneinfo
|
|
zoneinfo: $(foreach file,$(tzfiles),$(addprefix zoneinfo/,$($(file)-zones)))
|
|
|
|
define tzcompile
|
|
$(word 2,$^) -d $(patsubst %/,%,$(word 4,$^)) -L $(word 3,$^) $<
|
|
endef
|
|
|
|
ifdef localtime
|
|
zoneinfo/localtime: zoneinfo/$(localtime) $(objpfx)zic
|
|
$(word 2,$^) -d zoneinfo -l $(<:zoneinfo/%=%)
|
|
zoneinfo: zoneinfo/localtime
|
|
endif
|
|
ifdef posixrules
|
|
zoneinfo/posixrules: zoneinfo/$(posixrules) $(objpfx)zic
|
|
$(word 2,$^) -d zoneinfo -p $(<:zoneinfo/%=%)
|
|
zoneinfo: zoneinfo/posixrules
|
|
endif
|
|
|
|
$(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o $(objpfx)emkdir.o
|
|
|
|
$(objpfx)tzfile.o: tzfile.c; $(tz-cc)
|
|
$(objpfx)zic.o: zic.c; $(tz-cc)
|
|
define tz-cc
|
|
$(COMPILE.c) -DTZDIR='"$(datadir)/zoneinfo"' \
|
|
-DTZDEFAULT='"$(localtime-file)"' \
|
|
-DTZDEFRULES='"$(posixrules-file)"' \
|
|
$< $(OUTPUT_OPTION)
|
|
endef
|