1include ../upgradeable_versions.mk
2OBJS = \
3    address_parser.o \
4    address_standardizer.o \
5    std_pg_hash.o \
6    analyze.o \
7    err_param.o \
8    export.o \
9    gamma.o \
10    hash.o \
11    lexicon.o \
12    pagc_tools.o \
13    parseaddress-api.o \
14    standard.o \
15    tokenize.o
16
17OBJS_test_main = \
18    test_main.o \
19    analyze.o \
20    err_param.o \
21    export.o \
22    gamma.o \
23    hash.o \
24    lexicon.o \
25    pagc_tools.o \
26    standard.o \
27    tokenize.o
28
29POSTGIS_PGSQL_VERSION=96
30# SQL preprocessor
31SQLPP = /usr/bin/cpp -traditional-cpp -w -P
32GREP=/bin/grep
33EXTVERSION = 3.2.0
34MODULE_big = address_standardizer-3
35MODULEPATH    = $$libdir/address_standardizer-3
36ifeq (no,yes)
37MODULE_big = address_standardizer-3.2
38MODULEPATH    = $$libdir/address_standardizer-3.2
39endif
40EXTENSION = address_standardizer
41DATA = sql/$(EXTENSION).sql sql/$(EXTENSION)_data_us.sql
42
43DATA_built = \
44	$(EXTENSION).control \
45	$(EXTENSION)_data_us.control \
46	$(NULL)
47
48all:  sql/address_standardizer.sql sql/address_standardizer--1.0--$(EXTVERSION).sql sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--ANY--$(EXTVERSION).sql \
49 sql/$(EXTENSION)_data_us.sql sql/address_standardizer--3.2.0.sql sql/$(EXTENSION)_data_us--3.2.0.sql  sql/$(EXTENSION)_data_us--$(EXTVERSION)--$(EXTVERSION)next.sql \
50sql/$(EXTENSION)_data_us--$(EXTVERSION)next--$(EXTVERSION).sql sql/$(EXTENSION)_data_us--ANY--$(EXTVERSION).sql \
51sql/test-init-extensions.sql sql/test-parseaddress.sql sql/test-standardize_address_1.sql sql/test-standardize_address_2.sql
52
53EXTRA_CLEAN = sql/
54
55
56
57DOCS = README.address_standardizer
58PG_CPPFLAGS = -std=gnu99 -g -O2 -fno-math-errno -fno-signed-zeros -Wall  -I/var/lib/jenkins/workspace/geos/rel-3.6w64/include   -I/usr/include/libxml2 -I/usr/include -I/usr/include/json-c  -DNDEBUG  -DPCRE_VERSION=0
59
60SHLIB_LINK =  -L/var/lib/jenkins/workspace/geos/rel-3.6w64/lib -lgeos_c -lproj -ljson-c -lprotobuf-c -lxml2 -L/usr/lib/x86_64-linux-gnu -lSFCGAL -lgmpxx -Wl,--exclude-libs,ALL  -lm
61EXTRA_CLEAN = usps-st-city-name.txt mk-st-regexp mk-city-regex test_main
62REGRESS = test-init-extensions test-parseaddress test-standardize_address_1 test-standardize_address_2
63
64
65# Borrow the $libdir substitution from PGXS but customise by running the preprocessor
66# and adding the version number
67sql/%.sql: %.sql.in
68	mkdir -p sql
69	$(SQLPP) -I../libpgcommon $< | grep -v '^#' | \
70	$(PERL) -lpe "s'MODULE_PATHNAME'\$(MODULEPATH)'g" > $@
71
72%.control: %.control.in Makefile
73	cat $< \
74		| sed -e 's|@EXTVERSION@|$(EXTVERSION)|g' \
75		> $@
76
77sql/address_standardizer--3.2.0.sql: sql/address_standardizer_types.sql \
78    sql/address_standardizer_functions.sql
79	mkdir -p sql
80	cat $^ > $@
81
82sql/address_standardizer.sql: sql/address_standardizer_types.sql \
83    sql/address_standardizer_functions.sql
84	mkdir -p sql
85	cat $^ > $@
86
87sql/address_standardizer--1.0--$(EXTVERSION).sql:  sql/address_standardizer_functions.sql
88	mkdir -p sql
89	cat $^ > $@
90
91EXTENSION_UPGRADE_SCRIPTS = sql/address_standardizer_functions.sql
92
93# upgrade logic for us data extension (to go to original round-robin yoyo cludge for dev upgrading)
94sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql: sql/address_standardizer_functions.sql
95	mkdir -p sql
96	cat $^ > $@
97
98# build us data extension
99sql/$(EXTENSION)_data_us--$(EXTVERSION).sql: us_lex.sql us_gaz.sql us_rules.sql sql_bits/address_standardizer_data_us_mark_editable_objects.sql.in
100	mkdir -p sql
101	cat $^ > $@
102
103sql/$(EXTENSION)_data_us.sql: us_lex.sql us_gaz.sql us_rules.sql sql_bits/address_standardizer_data_us_mark_editable_objects.sql.in
104	mkdir -p sql
105	cat $^ > $@
106
107# upgrade logic for us data extension (to go to next cludge for dev upgrading)
108sql/$(EXTENSION)_data_us--$(EXTVERSION)--$(EXTVERSION)next.sql: sql/$(EXTENSION)_data_us--$(EXTVERSION).sql
109	mkdir -p sql
110	cat $^ > $@
111
112# upgrade logic for us data extension (to go to original round-robin yoyo cludge for dev upgrading)
113sql/$(EXTENSION)_data_us--$(EXTVERSION)next--$(EXTVERSION).sql: sql/$(EXTENSION)_data_us--$(EXTVERSION).sql
114	mkdir -p sql
115	cat $^ > $@
116
117
118sql/$(EXTENSION)--ANY--$(EXTVERSION).sql: $(EXTENSION_UPGRADE_SCRIPTS)
119	cat $(EXTENSION_UPGRADE_SCRIPTS) > $@
120
121sql/$(EXTENSION)_data_us--ANY--$(EXTVERSION).sql: sql/$(EXTENSION)_data_us--$(EXTVERSION).sql
122	mkdir -p sql
123	cat $^ > $@
124
125include ../upgrade-paths-rules.mk
126
127install: install-upgrade-paths-data-us
128# address_standardizer is already defined, we have to additionally create
129# the upgrade path scripts for address_standardizer_data_us
130install-upgrade-paths-data-us:
131	tpl='$(EXTENSION)_data_us--ANY--$(EXTVERSION).sql'; \
132	$(INSTALL_DATA) sql/$${tpl} "$(EXTDIR)/$${tpl}"; \
133	ln -fs "$${tpl}" $(EXTDIR)/$(EXTENSION)_data_us--$(EXTVERSION)--$(EXTVERSION)next.sql; \
134	ln -fs "$${tpl}" $(EXTDIR)/$(EXTENSION)_data_us--$(EXTVERSION)next--$(EXTVERSION).sql; \
135	for OLD_VERSION in $(UPGRADEABLE_VERSIONS); do \
136		ln -fs "$${tpl}" $(EXTDIR)/$(EXTENSION)_data_us--$$OLD_VERSION--$(EXTVERSION).sql; \
137	done
138
139mk-st-regexp: mk-st-regexp.pl
140	$(PERL) -c mk-st-regexp.pl
141	rm -f mk-st-regexp
142	echo "#! " $(PERL) > mk-st-regexp
143	cat mk-st-regexp.pl >> mk-st-regexp
144	chmod ugo+x mk-st-regexp
145
146mk-city-regex: mk-city-regex.pl usps-st-city-name.txt
147	$(PERL) -c mk-city-regex.pl
148	rm -f mk-city-regex
149	echo "#! " $(PERL) > mk-city-regex
150	cat mk-city-regex.pl >> mk-city-regex
151	chmod ugo+x mk-city-regex
152
153usps-st-city-name.txt: usps-st-city-orig.txt usps-st-city-adds.txt
154	cat usps-st-city-orig.txt usps-st-city-adds.txt | sort -u >usps-st-city-name.txt
155
156#parseaddress-stcities.h: mk-city-regex
157#	./mk-city-regex > parseaddress-stcities.h
158
159#parseaddress-regex.h: mk-st-regexp
160#	./mk-st-regexp > parseaddress-regex.h
161
162dist-clean:
163	rm -f mk-st-regexp mk-city-regex usps-st-city-name.txt test_main Makefile
164
165
166test_main: $(OBJS_test_main)
167	gcc -o test_main $(OBJS_test_main) $(LDFLAGS) $(LIBS)
168
169test_main.o: test_main.c pagc_api.h pagc_std_api.h
170
171address_parser.o: address_parser.c parseaddress-api.h
172
173address_standardizer.o: address_standardizer.c std_pg_hash.h pagc_api.h pagc_std_api.h
174
175analyze.o: analyze.c pagc_api.h
176
177err_param.o: err_param.c pagc_api.h
178
179export.o: export.c pagc_api.h pagc_tools.h
180
181gamma.o: gamma.c pagc_api.h pagc_std_api.h gamma.h
182
183hash.o: hash.c hash.h khash.h
184
185lexicon.o: lexicon.c pagc_api.h pagc_std_api.h
186
187pagc_tools.o: pagc_tools.c pagc_tools.h pagc_common.h
188
189parseaddress-api.o: parseaddress-api.c parseaddress-api.h parseaddress-stcities.h parseaddress-regex.h
190
191standard.o: standard.c pagc_api.h
192
193tokenize.o: tokenize.c pagc_api.h
194
195std_pg_hash.o: std_pg_hash.c std_pg_hash.h pagc_api.h pagc_std_api.h
196
197#only extension files
198DATA += $(wildcard sql/*--*.sql)
199EXTRA_CLEAN += sql/*.sql
200EXTRA_CLEAN += $(wildcard expected/*--*.out)
201EXTRA_CLEAN += sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql
202EXTRA_CLEAN += sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql *.a *.so *.dll
203
204distclean: clean
205	rm Makefile
206
207PG_CONFIG := /var/lib/jenkins/workspace/pg/rel/pg9.6w64/bin/pg_config
208PGXS := /var/lib/jenkins/workspace/pg/rel/pg9.6w64/lib/postgresql/pgxs/src/makefiles/pgxs.mk
209include $(PGXS)
210PERL = /usr/bin/perl
211