summaryrefslogtreecommitdiffstats
path: root/intl/icu/source/tools/tzcode/Makefile.in
blob: 02fe6eb2dad3cadb2af2924ccb07bbaaaf1be9d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
# Copyright (C) 2016 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
# Some Portions Copyright (c) 2006-2012 IBM and others. All Rights Reserved.

srcdir = @srcdir@
top_srcdir = @top_srcdir@

top_builddir = ../..

subdir = tools/tzcode

include $(top_builddir)/icudefs.mk

ifeq ($(TZDATA),)
TZDATA = $(firstword $(wildcard ./tzdata*.tar.gz) $(wildcard $(srcdir)/tzdata*.tar.gz))
endif
ifeq ($(TZCODE),)
TZCODE = $(firstword $(wildcard ./tzcode*.tar.gz) $(wildcard $(srcdir)/tzcode*.tar.gz))
endif

TZORIG=./tzorig
TZORIG_TZDIR=./tzorig/tzdir
TZORIG_ABS := $(shell pwd)/tzorig
TZORIG_TZDIR_ABS := $(TZORIG_ABS)/tzdir
TZORIG_OPTS := CFLAGS="-D_POSIX_C_SOURCE $(TZORIG_EXTRA_CFLAGS)" TZDIR=$(TZORIG_TZDIR_ABS)


## Options for building zdumps
ZDUMPOUT=$(shell pwd)/zdumpout
ICUZDUMPOUT=$(shell pwd)/icuzdumpout

ZDUMP_OPTS= -v -a -d $(ZDUMPOUT) -c 1902,2038 -i
ICUZDUMP_OPTS= -a -d $(ICUZDUMPOUT)

# Executables & objects
OBJECTS= zic.o localtime.o asctime.o scheck.o ialloc.o
ZICTARG=$(BINDIR)/zic$(EXEEXT)
ZICEXEC=$(TOOLBINDIR)/zic$(TOOLEXEEXT)
TZ2ICUTARG=$(BINDIR)/tz2icu$(EXEEXT)
TZ2ICUEXEC=$(TOOLBINDIR)/tz2icu$(TOOLEXEEXT)
ICUZDUMPTARG=$(BINDIR)/icuzdump$(EXEEXT)
ICUZDUMPEXEC=$(TOOLBINDIR)/icuzdump$(TOOLEXEEXT)

ifeq ($(TZDATA),)
all: 
	@echo ERROR "tzdata*.tar.gz" can\'t be found.
	@false
else
all: icu_data
endif

TZCODE_TARGETS= tzorig check-dump

ifeq ($(TZCODE),)
# we're broken.
$(TZCODE_TARGETS):
	@echo ERROR "tzcode*.tar.gz" can\'t be found.
	@false

else
ifeq ($(TZDATA),)
# we're broken.
$(TZCODE_TARGETS):
	@echo ERROR "tzdata*.tar.gz" can\'t be found.
	@false
else
tzorig:	$(TZCODE) $(TZDATA)
	-$(RMV) ./tzorig/
	mkdir $@
	mkdir $(TZORIG_TZDIR)
	gunzip -d < $(TZDATA) | ( cd $@ ; tar xf - )
	gunzip -d < $(TZCODE) | ( cd $@ ; tar xf - )
	-mv $(TZORIG)/zdump.c $(TZORIG)/zdump.c.orig
	cp $(srcdir)/zdump.c $(TZORIG)/zdump.c
	-mv $(TZORIG)/factory $(TZORIG)/factory.orig
	cat $(TZORIG)/factory.orig $(srcdir)/icuzones > $(TZORIG)/factory
	$(MAKE) -C $@ $(TZORIG_OPTS) zdump zones

$(ZDUMPOUT): tzorig
	( cd $(TZORIG) ; ./zdump$(EXEEXT) $(ZDUMP_OPTS) )


dump-out: $(ZDUMPOUT) $(ICUZDUMPOUT)

check-dump: dump-out
	diff -r zdumpout icuzdumpout

endif
endif

$(ICUZDUMPOUT): $(ICUZDUMPEXEC)
	-$(RMV) $(ICUZDUMPOUT)
	-mkdir $(ICUZDUMPOUT)
	$(INVOKE) $(ICUZDUMPEXEC) $(ICUZDUMP_OPTS)


#
# old 'tz' rules start here
#


PRIMARY_YDATA=	africa antarctica asia australasia \
		europe northamerica southamerica
YDATA=		$(PRIMARY_YDATA) pacificnew etcetera factory backward
NDATA=		systemv
SDATA=		solar87 solar88 solar89
#TDATA=		$(YDATA) $(NDATA) $(SDATA)
TDATA=		$(YDATA) $(NDATA)
YEARISTYPE=     ./yearistype

TZDIR=zoneinfo

CFLAGS+=-D_POSIX_C_SOURCE
CPPFLAGS+= -DTZDIR=\"$(TZDIR)\" 

# more data
XDATA=zone.tab yearistype.sh leapseconds iso3166.tab
ICUDATA=ZoneMetaData.java icu_zone.txt tz2icu zoneinfo64.txt zoneinfo.txt

$(ZICTARG):		$(OBJECTS) $(TDATA) yearistype $(srcdir)/tz2icu.h
		$(CC) $(CFLAGS) $(TZORIG_EXTRA_CFLAGS) $(LFLAGS) -I$(srcdir) $(OBJECTS) $(LDLIBS) -o $@

$(TZ2ICUTARG):	$(srcdir)/tz2icu.cpp $(srcdir)/tz2icu.h
		$(CXX) -W -Wall  -I$(srcdir) -I$(top_srcdir)/common -pedantic $(srcdir)/tz2icu.cpp -o $@

$(ICUZDUMPTARG):	$(srcdir)/icuzdump.cpp
		$(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 $@


$(TDATA): tdatamarker

tdatamarker: $(TZDATA)
	gunzip -d < $(TZDATA) | tar xf - --exclude=Makefile
	touch $@

yearistype:	yearistype.sh
		cp yearistype.sh yearistype
		chmod +x yearistype

posix_only:	$(ZICEXEC) $(TDATA) $(srcdir)/icuzones
		$(ZICEXEC) -y $(YEARISTYPE) -d $(TZDIR) -L /dev/null $(TDATA) $(srcdir)/icuzones


icu_data:	$(TZ2ICUEXEC) posix_only
		$(TZ2ICUEXEC) $(TZDIR) zone.tab `echo $(TZDATA) | sed -e "s/.*\/tzdata//;s/\.tar\.gz$$//"`
		$(TZ2ICUEXEC) $(TZDIR) zone.tab `echo $(TZDATA) | sed -e "s/.*\/tzdata//;s/\.tar\.gz$$//"` --old

clean:
		-rm -f core *.o *.out zdump${EXEEXT} $(ZICTARG) yearistype date $(TZ2ICUTARG)
		@echo ICU specific cleanup:
		-rm -f $(ICUDATA)
		-rm -rf $(TZDIR)
		-$(RMV) $(ICUZDUMPTARG) tzorig ./zdumpout/ ./icuzdumpout/
ifneq ($(TZDATA),)
		-rm -rf `gunzip -d < $(TZDATA) | tar tf - --exclude=Makefile | grep -o '[^ ]*$$' | tr '\n' ' '`
		-rm tdatamarker
endif

checkclean:

dataclean: clean
	-rm -f $(TDATA) $(XDATA)

distclean:	dataclean clean
	-rm -f Makefile

Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
	cd $(top_builddir) \
	&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status