Formerly ../time/Makefile.~17~
[kopensolaris-gnu/glibc.git] / time / Makefile
1 # Copyright (C) 1991, 1992 Free Software Foundation, Inc.
2 # This file is part of the GNU C Library.
3
4 # The GNU C Library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Library General Public License as
6 # published by the Free Software Foundation; either version 2 of the
7 # License, or (at your option) any later version.
8
9 # The GNU C Library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 # Library General Public License for more details.
13
14 # You should have received a copy of the GNU Library General Public
15 # License along with the GNU C Library; see the file COPYING.LIB.  If
16 # not, write to the Free Software Foundation, Inc., 675 Mass Ave,
17 # Cambridge, MA 02139, USA.
18
19 #
20 #       Makefile for time routines
21 #
22 subdir  := time
23
24 headers := time.h sys/time.h gnu/time.h
25 distribute := tzfile.h private.h scheck.c ialloc.c emkdir.c
26
27 routines        := offtime asctime clock ctime difftime gmtime  \
28                    localtime mktime strftime time __tzset tzfile \
29                    __gettod settod adjtime getitmr \
30                    __getitmr __adjtime __settod \
31                    __setitmr tzset gettod setitmr
32 aux             := syms-time
33
34 others  := ap zdump zic
35 tests   := test_time
36
37 tzfiles := africa antarctica asia australasia europe northamerica \
38            southamerica etcetera factory systemv
39 # pacificnew doesn't compile; if it is to be used, it should be included in
40 # northamerica.
41 distribute := $(distribute) $(tzfiles) leapseconds pacificnew
42
43 install := zic zdump
44
45 define \n
46
47
48 endef
49 include zonenames
50 zonenames := $(subst $(\n), ,$(zonenames))
51
52 include ../Makeconfig
53 ifdef localtime
54 zonenames := $(zonenames) localtime
55 endif
56
57 install-data := $(addprefix zoneinfo/,$(zonenames))
58
59
60 include ../Rules
61
62
63 $(tzfiles:%=zones-%): zones-%: %
64         (echo 'define $*-zones'                                         ;\
65          awk '$$1 == "Zone" { print $$2 } $$1 == "Link" { print $$3 }' $^;\
66          echo 'endef'                                                   ;\
67          echo '$*-zones := $$(subst $$('\\\\n'), ,$$($*-zones))'        ;\
68          echo 'ifdef $*-zones'                                          ;\
69          echo '$$(addprefix zoneinfo/%/,$$($*-zones)): \'               ;\
70          echo '$< $$(objpfx)zic leapseconds zoneinfo/'                  ;\
71          echo ' $$(tzcompile)'                                          ;\
72          echo 'endif'                                                   ;\
73          echo 'define zonenames'                                        ;\
74          echo '$$($*-zones)'                                            ;\
75          echo 'endef'                                                   ;\
76          echo 'zonenames := $$(subst $$('\\\\n'), ,$$(zonenames))'      ;\
77         ) > $@
78 zonenames: Makefile
79         (for file in $(tzfiles); do     \
80            echo "include zones-$$file"; \
81          done) > $@
82
83 .PHONY: echo-zonenames
84 echo-zonenames: zonenames
85         @echo 'Known zones: $(zonenames)'
86
87 # Make all the zoneinfo files.
88 .PHONY: zones zoneinfo
89 zones: zoneinfo
90 zoneinfo: $(foreach file,$(tzfiles),$(addprefix zoneinfo/,$($(file)-zones)))
91
92 define tzcompile
93 $(word 2,$^) -d $(patsubst %/,%,$(word 4,$^)) -L $(word 3,$^) $<
94 endef
95
96 ifdef localtime
97 zoneinfo/localtime: zoneinfo/$(localtime) $(objpfx)zic
98         $(word 2,$^) -d zoneinfo -l $(<:zoneinfo/%=%)
99 $(datadir)/zoneinfo/localtime: $(datadir)/zoneinfo/$(localtime) $(objpfx)zic
100         $(word 2,$^) -d $(datadir)/zoneinfo -l $(<:$(datadir)/zoneinfo/%=%)
101 zoneinfo: zoneinfo/localtime
102 endif
103
104 $(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o $(objpfx)emkdir.o
105
106 $(objpfx)tzfile.o: tzfile.c
107         $(COMPILE.c) -DTZDIR='"$(datadir)/zoneinfo"' $< $(OUTPUT_OPTION)