]>
Commit | Line | Data |
---|---|---|
f3c0d7a5 A |
1 | # Copyright (C) 2016 and later: Unicode, Inc. and others. |
2 | # License & terms of use: http://www.unicode.org/copyright.html | |
51004dcb | 3 | # Some Portions Copyright (c) 2006-2012 IBM and others. All Rights Reserved. |
73c04bcf A |
4 | |
5 | srcdir = @srcdir@ | |
6 | top_srcdir = @top_srcdir@ | |
7 | ||
8 | top_builddir = ../.. | |
9 | ||
10 | subdir = tools/tzcode | |
11 | ||
12 | include $(top_builddir)/icudefs.mk | |
13 | ||
729e4ab9 | 14 | ifeq ($(TZDATA),) |
73c04bcf | 15 | TZDATA = $(firstword $(wildcard ./tzdata*.tar.gz) $(wildcard $(srcdir)/tzdata*.tar.gz)) |
729e4ab9 A |
16 | endif |
17 | ifeq ($(TZCODE),) | |
4162bf98 | 18 | TZCODE = $(firstword $(wildcard ./tzcode*.tar.gz) $(wildcard $(srcdir)/tzcode*.tar.gz)) |
729e4ab9 | 19 | endif |
4162bf98 | 20 | |
3d1f044b A |
21 | |
22 | PRIMARY_YDATA= africa antarctica asia australasia \ | |
23 | europe northamerica southamerica | |
24 | YDATA= $(PRIMARY_YDATA) pacificnew etcetera factory backward | |
25 | NDATA= systemv | |
26 | SDATA= solar87 solar88 solar89 | |
27 | #TDATA= $(YDATA) $(NDATA) $(SDATA) | |
28 | TDATA= $(YDATA) $(NDATA) | |
29 | YEARISTYPE= ./yearistype | |
30 | ||
31 | TZDIR=zoneinfo | |
32 | ||
340931cb | 33 | CFLAGS+=-D_POSIX_C_SOURCE=200112L |
3d1f044b A |
34 | CPPFLAGS+= -DTZDIR=\"$(TZDIR)\" |
35 | ||
36 | # more data | |
37 | XDATA=zone.tab yearistype.sh leapseconds iso3166.tab | |
38 | ICUDATA=ZoneMetaData.java icu_zone.txt tz2icu zoneinfo64.txt zoneinfo.txt | |
39 | ||
40 | VANGUARD_DIR= ./vanguard | |
41 | ||
42 | # For TZ DB/ICU comparison | |
4162bf98 A |
43 | TZORIG=./tzorig |
44 | TZORIG_TZDIR=./tzorig/tzdir | |
45 | TZORIG_ABS := $(shell pwd)/tzorig | |
46 | TZORIG_TZDIR_ABS := $(TZORIG_ABS)/tzdir | |
47 | TZORIG_OPTS := CFLAGS="-D_POSIX_C_SOURCE $(TZORIG_EXTRA_CFLAGS)" TZDIR=$(TZORIG_TZDIR_ABS) | |
48 | ||
49 | ||
50 | ## Options for building zdumps | |
51 | ZDUMPOUT=$(shell pwd)/zdumpout | |
52 | ICUZDUMPOUT=$(shell pwd)/icuzdumpout | |
53 | ||
54 | ZDUMP_OPTS= -v -a -d $(ZDUMPOUT) -c 1902,2038 -i | |
55 | ICUZDUMP_OPTS= -a -d $(ICUZDUMPOUT) | |
73c04bcf | 56 | |
729e4ab9 | 57 | # Executables & objects |
2ca993e8 | 58 | ZICOBJECTS= zic.o localtime.o asctime.o scheck.o ialloc.o |
729e4ab9 A |
59 | ZICTARG=$(BINDIR)/zic$(EXEEXT) |
60 | ZICEXEC=$(TOOLBINDIR)/zic$(TOOLEXEEXT) | |
2ca993e8 | 61 | TZ2ICUOBJ= tz2icu.o |
729e4ab9 A |
62 | TZ2ICUTARG=$(BINDIR)/tz2icu$(EXEEXT) |
63 | TZ2ICUEXEC=$(TOOLBINDIR)/tz2icu$(TOOLEXEEXT) | |
64 | ICUZDUMPTARG=$(BINDIR)/icuzdump$(EXEEXT) | |
65 | ICUZDUMPEXEC=$(TOOLBINDIR)/icuzdump$(TOOLEXEEXT) | |
2ca993e8 | 66 | ICUZDUMPOBJ= icuzdump.o |
729e4ab9 | 67 | |
73c04bcf A |
68 | ifeq ($(TZDATA),) |
69 | all: | |
4162bf98 | 70 | @echo ERROR "tzdata*.tar.gz" can\'t be found. |
73c04bcf A |
71 | @false |
72 | else | |
73 | all: icu_data | |
74 | endif | |
75 | ||
4162bf98 A |
76 | TZCODE_TARGETS= tzorig check-dump |
77 | ||
78 | ifeq ($(TZCODE),) | |
79 | # we're broken. | |
80 | $(TZCODE_TARGETS): | |
81 | @echo ERROR "tzcode*.tar.gz" can\'t be found. | |
82 | @false | |
83 | ||
84 | else | |
85 | ifeq ($(TZDATA),) | |
86 | # we're broken. | |
87 | $(TZCODE_TARGETS): | |
88 | @echo ERROR "tzdata*.tar.gz" can\'t be found. | |
89 | @false | |
90 | else | |
91 | tzorig: $(TZCODE) $(TZDATA) | |
92 | -$(RMV) ./tzorig/ | |
93 | mkdir $@ | |
94 | mkdir $(TZORIG_TZDIR) | |
95 | gunzip -d < $(TZDATA) | ( cd $@ ; tar xf - ) | |
96 | gunzip -d < $(TZCODE) | ( cd $@ ; tar xf - ) | |
3d1f044b A |
97 | if test -e $(TZORIG)/ziguard.awk; then \ |
98 | for tzfile in $(TDATA) ; do \ | |
99 | mv $(TZORIG)/$$tzfile $(TZORIG)/$$tzfile.bak && \ | |
100 | awk -v DATAFORM=rearguard -f $(TZORIG)/ziguard.awk $(TZORIG)/$$tzfile.bak > $(TZORIG)/$$tzfile; \ | |
101 | done; \ | |
102 | fi; | |
4162bf98 A |
103 | -mv $(TZORIG)/zdump.c $(TZORIG)/zdump.c.orig |
104 | cp $(srcdir)/zdump.c $(TZORIG)/zdump.c | |
105 | -mv $(TZORIG)/factory $(TZORIG)/factory.orig | |
106 | cat $(TZORIG)/factory.orig $(srcdir)/icuzones > $(TZORIG)/factory | |
9f1b1155 A |
107 | -mv $(TZORIG)/zishrink.awk $(TZORIG)/zishrink.awk.orig |
108 | sed -e '/if (line ~ \/^R SystemV \/) return/s/^/#/' $(TZORIG)/zishrink.awk.orig > $(TZORIG)/zishrink.awk | |
109 | -mv $(TZORIG)/Makefile $(TZORIG)/Makefile.orig | |
0f5d89e8 | 110 | sed -e "s/^BACKWARD=.*/BACKWARD= backward pacificnew/" $(TZORIG)/Makefile.orig > $(TZORIG)/Makefile |
4162bf98 A |
111 | $(MAKE) -C $@ $(TZORIG_OPTS) zdump zones |
112 | ||
113 | $(ZDUMPOUT): tzorig | |
114 | ( cd $(TZORIG) ; ./zdump$(EXEEXT) $(ZDUMP_OPTS) ) | |
0f5d89e8 | 115 | find $(ZDUMPOUT) -name '*--ICU' -exec sh -c 'mv "$${0}" $${0%--ICU}' {} \; |
4162bf98 A |
116 | |
117 | dump-out: $(ZDUMPOUT) $(ICUZDUMPOUT) | |
118 | ||
119 | check-dump: dump-out | |
120 | diff -r zdumpout icuzdumpout | |
121 | ||
122 | endif | |
123 | endif | |
124 | ||
729e4ab9 | 125 | $(ICUZDUMPOUT): $(ICUZDUMPEXEC) |
4162bf98 A |
126 | -$(RMV) $(ICUZDUMPOUT) |
127 | -mkdir $(ICUZDUMPOUT) | |
729e4ab9 | 128 | $(INVOKE) $(ICUZDUMPEXEC) $(ICUZDUMP_OPTS) |
4162bf98 A |
129 | |
130 | ||
131 | # | |
132 | # old 'tz' rules start here | |
133 | # | |
134 | ||
135 | ||
51004dcb A |
136 | # create modified CXXFLAGS without -fXXX, -Wxxxx (the settings for these don't work for tz2icu) |
137 | TZCODE_CXXFLAGS=$(patsubst -W%,,$(patsubst -f%,,$(CXXFLAGS))) | |
138 | ||
2ca993e8 A |
139 | $(ZICTARG): $(ZICOBJECTS) $(TDATA) yearistype $(srcdir)/tz2icu.h |
140 | $(CC) $(CFLAGS) $(TZORIG_EXTRA_CFLAGS) $(LFLAGS) -I$(srcdir) $(ZICOBJECTS) $(LDLIBS) -o $@ | |
73c04bcf | 141 | |
2ca993e8 A |
142 | $(TZ2ICUOBJ): $(srcdir)/tz2icu.cpp $(srcdir)/tz2icu.h |
143 | $(CXX) -W -Wall $(TZCODE_CXXFLAGS) -I$(srcdir) -I$(top_srcdir)/common -pedantic $(srcdir)/tz2icu.cpp -c -o $@ | |
144 | ||
145 | $(TZ2ICUTARG): $(TZ2ICUOBJ) | |
146 | $(CXX) -W -Wall $(TZCODE_CXXFLAGS) -I$(srcdir) -I$(top_srcdir)/common -pedantic $(TZ2ICUOBJ) -o $@ | |
4162bf98 | 147 | |
729e4ab9 | 148 | $(ICUZDUMPTARG): $(srcdir)/icuzdump.cpp |
4162bf98 A |
149 | $(LINK.cc) -I$(srcdir) -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/io -pedantic $(srcdir)/icuzdump.cpp $(LIBICUUC) $(LIBICUDT) $(LIBICUI18N) $(LIBICUIO) $(LIBICUTOOLUTIL) -o $@ |
150 | ||
2ca993e8 A |
151 | $(ICUZDUMPOBJ): $(srcdir)/icuzdump.cpp |
152 | $(CXX) -W -Wall $(TZCODE_CXXFLAGS) --std=c++0x -I$(srcdir) -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/io $(srcdir)/icuzdump.cpp -c -o $@ | |
4162bf98 | 153 | |
729e4ab9 | 154 | $(TDATA): tdatamarker |
73c04bcf | 155 | |
729e4ab9 | 156 | tdatamarker: $(TZDATA) |
3d1f044b | 157 | mkdir $(VANGUARD_DIR) |
51004dcb | 158 | gunzip -d < $(TZDATA) | tar xf - --exclude=Makefile |
3d1f044b A |
159 | if test -e ziguard.awk; then \ |
160 | for tzfile in $(TDATA) ; do \ | |
161 | mv $$tzfile $(VANGUARD_DIR)/$$tzfile && \ | |
162 | awk -v DATAFORM=rearguard -f ziguard.awk $(VANGUARD_DIR)/$$tzfile > $$tzfile; \ | |
163 | done; \ | |
164 | fi; | |
729e4ab9 | 165 | touch $@ |
73c04bcf | 166 | |
5ea0322b A |
167 | yearistype.sh: | $(TDATA) |
168 | ||
73c04bcf A |
169 | yearistype: yearistype.sh |
170 | cp yearistype.sh yearistype | |
171 | chmod +x yearistype | |
172 | ||
729e4ab9 A |
173 | posix_only: $(ZICEXEC) $(TDATA) $(srcdir)/icuzones |
174 | $(ZICEXEC) -y $(YEARISTYPE) -d $(TZDIR) -L /dev/null $(TDATA) $(srcdir)/icuzones | |
73c04bcf | 175 | |
73c04bcf | 176 | |
729e4ab9 A |
177 | icu_data: $(TZ2ICUEXEC) posix_only |
178 | $(TZ2ICUEXEC) $(TZDIR) zone.tab `echo $(TZDATA) | sed -e "s/.*\/tzdata//;s/\.tar\.gz$$//"` | |
179 | $(TZ2ICUEXEC) $(TZDIR) zone.tab `echo $(TZDATA) | sed -e "s/.*\/tzdata//;s/\.tar\.gz$$//"` --old | |
73c04bcf | 180 | |
2ca993e8 A |
181 | tztoolobjs: $(ZICOBJECTS) $(TZ2ICUOBJ) $(ICUZDUMPOBJ) |
182 | ||
73c04bcf | 183 | clean: |
729e4ab9 | 184 | -rm -f core *.o *.out zdump${EXEEXT} $(ZICTARG) yearistype date $(TZ2ICUTARG) |
73c04bcf A |
185 | @echo ICU specific cleanup: |
186 | -rm -f $(ICUDATA) | |
187 | -rm -rf $(TZDIR) | |
3d1f044b | 188 | -rm -rf $(VANGUARD_DIR) |
729e4ab9 | 189 | -$(RMV) $(ICUZDUMPTARG) tzorig ./zdumpout/ ./icuzdumpout/ |
73c04bcf | 190 | ifneq ($(TZDATA),) |
51004dcb | 191 | -rm -rf `gunzip -d < $(TZDATA) | tar tf - --exclude=Makefile | grep -o '[^ ]*$$' | tr '\n' ' '` |
3d1f044b | 192 | -rm -f tdatamarker |
73c04bcf A |
193 | endif |
194 | ||
4162bf98 A |
195 | checkclean: |
196 | ||
73c04bcf A |
197 | dataclean: clean |
198 | -rm -f $(TDATA) $(XDATA) | |
199 | ||
200 | distclean: dataclean clean | |
201 | -rm -f Makefile | |
202 | ||
203 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | |
204 | cd $(top_builddir) \ | |
205 | && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status | |
206 | ||
207 |