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