Wed, 31 Dec 2014 07:22:50 +0100
Correct previous dual key logic pending first delivery installment.
michael@0 | 1 | #****************************************************************************** |
michael@0 | 2 | # |
michael@0 | 3 | # Copyright (C) 1998-2012, International Business Machines |
michael@0 | 4 | # Corporation and others. All Rights Reserved. |
michael@0 | 5 | # |
michael@0 | 6 | #****************************************************************************** |
michael@0 | 7 | ## Top-level Makefile.in for ICU |
michael@0 | 8 | ## Stephen F. Booth |
michael@0 | 9 | |
michael@0 | 10 | ## Source directory information |
michael@0 | 11 | srcdir = @srcdir@ |
michael@0 | 12 | top_srcdir = @top_srcdir@ |
michael@0 | 13 | |
michael@0 | 14 | top_builddir = ../.. |
michael@0 | 15 | |
michael@0 | 16 | include $(top_builddir)/icudefs.mk |
michael@0 | 17 | |
michael@0 | 18 | ## Build directory information |
michael@0 | 19 | subdir = test/testdata |
michael@0 | 20 | |
michael@0 | 21 | ## Files to remove for 'make clean' |
michael@0 | 22 | CLEANFILES = *~ |
michael@0 | 23 | |
michael@0 | 24 | SUBDIRS = |
michael@0 | 25 | |
michael@0 | 26 | -include Makefile.local |
michael@0 | 27 | |
michael@0 | 28 | ## List of phony targets |
michael@0 | 29 | .PHONY : all all-local all-recursive install install-local \ |
michael@0 | 30 | install-recursive clean clean-local clean-recursive distclean \ |
michael@0 | 31 | distclean-local distclean-recursive doc dist dist-local dist-recursive \ |
michael@0 | 32 | check check-local check-recursive build-dir testdata.jar xcheck check-exhaustive |
michael@0 | 33 | |
michael@0 | 34 | xcheck: all-local |
michael@0 | 35 | |
michael@0 | 36 | .NOTPARALLEL: build-dir |
michael@0 | 37 | |
michael@0 | 38 | ## Clear suffix list |
michael@0 | 39 | .SUFFIXES : |
michael@0 | 40 | |
michael@0 | 41 | ## List of standard targets |
michael@0 | 42 | all: all-local |
michael@0 | 43 | install: install-local |
michael@0 | 44 | clean: clean-local |
michael@0 | 45 | distclean : distclean-local |
michael@0 | 46 | dist: dist-local |
michael@0 | 47 | check: all check-local |
michael@0 | 48 | |
michael@0 | 49 | check-exhaustive: check |
michael@0 | 50 | |
michael@0 | 51 | all-local: build-dir build-testdata testdata packagetest |
michael@0 | 52 | |
michael@0 | 53 | install-local: |
michael@0 | 54 | |
michael@0 | 55 | dist-local: |
michael@0 | 56 | |
michael@0 | 57 | clean-local: |
michael@0 | 58 | test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES) |
michael@0 | 59 | $(RMV) $(TESTOUTDIR) |
michael@0 | 60 | |
michael@0 | 61 | distclean-local: clean-local |
michael@0 | 62 | $(RMV) Makefile pkgdata.inc |
michael@0 | 63 | |
michael@0 | 64 | check-local: |
michael@0 | 65 | |
michael@0 | 66 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
michael@0 | 67 | cd $(top_builddir) \ |
michael@0 | 68 | && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status |
michael@0 | 69 | |
michael@0 | 70 | pkgdata.inc: pkgdataMakefile |
michael@0 | 71 | $(MAKE) -f pkgdataMakefile |
michael@0 | 72 | |
michael@0 | 73 | pkgdataMakefile: |
michael@0 | 74 | cd $(top_builddir) \ |
michael@0 | 75 | && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status |
michael@0 | 76 | |
michael@0 | 77 | ######################################################################### |
michael@0 | 78 | ############################## Test ## stuff ############################ |
michael@0 | 79 | |
michael@0 | 80 | # relative lib links from pkgdata are the same as for tmp |
michael@0 | 81 | GENRBOPTS=-k |
michael@0 | 82 | # use the cross root, in case we are cross compiling. Otherwise it is equal to top_builddir |
michael@0 | 83 | TOOLDIR=$(cross_buildroot)/tools |
michael@0 | 84 | SRCDATADIR=$(top_srcdir)/data |
michael@0 | 85 | UNICODEDATADIR=$(SRCDATADIR)/unidata |
michael@0 | 86 | OUTDIR=$(top_builddir)/data/out |
michael@0 | 87 | OUTTMPDIR=$(top_builddir)/data/out/tmp |
michael@0 | 88 | BUILDDIR=$(OUTDIR)/build/$(ICUDATA_PLATFORM_NAME) |
michael@0 | 89 | TESTSRCDATADIR=$(top_srcdir)/test/testdata |
michael@0 | 90 | TESTOUTDIR=$(top_builddir)/test/testdata/out |
michael@0 | 91 | BUILD_DIRS = $(TESTOUTDIR) $(TESTBUILDDIR) $(TESTOUTDIR)/$(TESTDT) |
michael@0 | 92 | GENTEST=$(TOOLDIR)/gentest/gentest$(TOOLEXEEXT) |
michael@0 | 93 | |
michael@0 | 94 | ifeq ($(PKGDATA_MODE),common) |
michael@0 | 95 | ICU_DATA_OPT = -i $(OUTDIR) |
michael@0 | 96 | else |
michael@0 | 97 | ifeq ($(PKGDATA_MODE),dll) |
michael@0 | 98 | ifneq ($(ENABLE_SHARED),YES) |
michael@0 | 99 | ICU_DATA_OPT = -i $(BUILDDIR) |
michael@0 | 100 | else |
michael@0 | 101 | ICU_DATA_OPT = |
michael@0 | 102 | endif |
michael@0 | 103 | else |
michael@0 | 104 | ICU_DATA_OPT = -i $(BUILDDIR) |
michael@0 | 105 | endif |
michael@0 | 106 | endif |
michael@0 | 107 | |
michael@0 | 108 | CURDIR:=$(CURR_FULL_DIR) |
michael@0 | 109 | # current directory should not be blank |
michael@0 | 110 | ifeq ($(CURDIR),) |
michael@0 | 111 | CURDIR=. |
michael@0 | 112 | endif |
michael@0 | 113 | |
michael@0 | 114 | PKGDATA = $(TOOLBINDIR)/pkgdata -q -c -s $(CURDIR)/out/build/$(ICUDATA_PLATFORM_NAME) |
michael@0 | 115 | PKGDATA_INVOKE:=$(INVOKE) $(PKGDATA_INVOKE_OPTS) |
michael@0 | 116 | |
michael@0 | 117 | # Contains all 'intermediate' files (and temp files) except for 'unpackaged data' below |
michael@0 | 118 | TESTBUILDDIR=$(TESTOUTDIR)/build |
michael@0 | 119 | |
michael@0 | 120 | # unpackaged files - live in 'out' so that the path can find them as part of the pkg |
michael@0 | 121 | UNPACKAGEDTESTDATA=$(TESTOUTDIR)/$(TESTDT)/nam.typ |
michael@0 | 122 | |
michael@0 | 123 | # pkg name for testdata |
michael@0 | 124 | TESTDATA=testdata |
michael@0 | 125 | # prefix for files that are testdata |
michael@0 | 126 | TESTDT=$(TESTDATA) |
michael@0 | 127 | |
michael@0 | 128 | # File definitions |
michael@0 | 129 | TEST_DAT_FILES=$(TESTBUILDDIR)/test.icu |
michael@0 | 130 | TEST_SPP_FILES=$(TESTBUILDDIR)/nfscsi.spp $(TESTBUILDDIR)/nfscss.spp $(TESTBUILDDIR)/nfscis.spp $(TESTBUILDDIR)/nfsmxs.spp $(TESTBUILDDIR)/nfsmxp.spp |
michael@0 | 131 | |
michael@0 | 132 | TEST_UCM_SOURCE= test1.ucm test1bmp.ucm test2.ucm test3.ucm test4.ucm test4x.ucm test5.ucm ibm9027.ucm |
michael@0 | 133 | TEST_UCM_FILES=$(TEST_UCM_SOURCE:%=$(TESTSRCDATADIR)/data/%) |
michael@0 | 134 | TEST_CNV_FILES=$(TEST_UCM_SOURCE:%.ucm=$(TESTBUILDDIR)/%.cnv) |
michael@0 | 135 | |
michael@0 | 136 | TEST_NRM_FILES=$(TESTBUILDDIR)/testnorm.nrm |
michael@0 | 137 | |
michael@0 | 138 | # import the shared .mk file |
michael@0 | 139 | include $(TESTSRCDATADIR)/tstfiles.mk |
michael@0 | 140 | -include $(TESTSRCDATADIR)/tstlocal.mk |
michael@0 | 141 | |
michael@0 | 142 | # TEST_RES_SOURCE comes from tstfiles.mk |
michael@0 | 143 | TEST_RES = $(TEST_RES_SOURCE) $(TEST_RES_LOCAL) casing.txt mc.txt root.txt sh.txt sh_YU.txt te.txt te_IN.txt te_IN_REVISED.txt testtypes.txt testaliases.txt testempty.txt structLocale.txt idna_rules.txt conversion.txt icuio.txt testtable32.txt |
michael@0 | 144 | TEST_RES_FILES=$(TEST_RES:%.txt=$(TESTBUILDDIR)/%.res) $(TESTBUILDDIR)/iscii.res $(TESTBUILDDIR)/old_l_testtypes.res $(TESTBUILDDIR)/old_e_testtypes.res |
michael@0 | 145 | |
michael@0 | 146 | ALL_TEST_FILES = $(TEST_DAT_FILES) $(TEST_SPP_FILES) $(TEST_BRK_FILES) $(TEST_CNV_FILES) $(TEST_NRM_FILES) $(TEST_RES_FILES) $(TESTOUTDIR)/$(TESTDT)/nam.typ |
michael@0 | 147 | |
michael@0 | 148 | # list |
michael@0 | 149 | |
michael@0 | 150 | $(TESTBUILDDIR)/testdata.lst: $(SRCLISTDEPS) |
michael@0 | 151 | @echo "generating $@ (list of data files)" |
michael@0 | 152 | @-$(RMV) $@ |
michael@0 | 153 | @for file in $(TEST_RES_FILES:$(TESTBUILDDIR)/%.res=%.res) $(TEST_DAT_FILES:$(TESTBUILDDIR)/%.icu=%.icu) $(TEST_SPP_FILES:$(TESTBUILDDIR)/%.spp=%.spp) $(TEST_CNV_FILES:$(TESTBUILDDIR)/%.cnv=%.cnv) $(TEST_NRM_FILES:$(TESTBUILDDIR)/%.nrm=%.nrm); do \ |
michael@0 | 154 | echo $$file >> $@; \ |
michael@0 | 155 | done; |
michael@0 | 156 | |
michael@0 | 157 | |
michael@0 | 158 | build-testdata: build-dir $(ALL_TEST_FILES) $(TESTBUILDDIR)/testdata.lst $(TESTBUILDDIR)/iscii.res |
michael@0 | 159 | |
michael@0 | 160 | # test.icu |
michael@0 | 161 | $(TESTBUILDDIR)/test.icu: $(GENTEST) |
michael@0 | 162 | $(INVOKE) $(GENTEST) -d $(TESTBUILDDIR) |
michael@0 | 163 | |
michael@0 | 164 | $(TESTBUILDDIR)/testtable32.txt: $(GENTEST) |
michael@0 | 165 | $(INVOKE) $(GENTEST) -r -d $(TESTBUILDDIR) |
michael@0 | 166 | |
michael@0 | 167 | $(TESTBUILDDIR)/testtable32.res: $(TESTBUILDDIR)/testtable32.txt $(TOOLBINDIR)/genrb$(EXEEXT) |
michael@0 | 168 | $(INVOKE) $(TOOLBINDIR)/genrb $(GENRBOPTS) -s $(TESTBUILDDIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) $(<F) |
michael@0 | 169 | |
michael@0 | 170 | # Targets for nfscsi.spp |
michael@0 | 171 | $(TESTBUILDDIR)/nfscsi.spp: $(TOOLBINDIR)/gensprep$(EXEEXT) $(TESTSRCDATADIR)/nfs4_cs_prep_ci.txt |
michael@0 | 172 | @echo Building nfscsi.icu |
michael@0 | 173 | $(INVOKE) $(TOOLBINDIR)/gensprep -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) -b nfscsi -u 3.2.0 nfs4_cs_prep_ci.txt |
michael@0 | 174 | |
michael@0 | 175 | # Targets for nfscss.spp |
michael@0 | 176 | $(TESTBUILDDIR)/nfscss.spp: $(TOOLBINDIR)/gensprep$(EXEEXT) $(TESTSRCDATADIR)/nfs4_cs_prep_cs.txt |
michael@0 | 177 | @echo Building nfscss.icu |
michael@0 | 178 | $(INVOKE) $(TOOLBINDIR)/gensprep -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) -b nfscss -u 3.2.0 nfs4_cs_prep_cs.txt |
michael@0 | 179 | |
michael@0 | 180 | # Targets for nfscis.spp |
michael@0 | 181 | $(TESTBUILDDIR)/nfscis.spp: $(TOOLBINDIR)/gensprep$(EXEEXT) $(TESTSRCDATADIR)/nfs4_cis_prep.txt |
michael@0 | 182 | @echo Building nfscis.spp |
michael@0 | 183 | $(INVOKE) $(TOOLBINDIR)/gensprep -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) -b nfscis -k -n $(UNICODEDATADIR) -u 3.2.0 nfs4_cis_prep.txt |
michael@0 | 184 | |
michael@0 | 185 | # Targets for nfsmxs.spp |
michael@0 | 186 | $(TESTBUILDDIR)/nfsmxs.spp: $(TOOLBINDIR)/gensprep$(EXEEXT) $(TESTSRCDATADIR)/nfs4_mixed_prep_s.txt |
michael@0 | 187 | @echo Building nfsmxs.spp |
michael@0 | 188 | $(INVOKE) $(TOOLBINDIR)/gensprep -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) -b nfsmxs -k -n $(UNICODEDATADIR) -u 3.2.0 nfs4_mixed_prep_s.txt |
michael@0 | 189 | |
michael@0 | 190 | # Targets for nfsmxp.spp |
michael@0 | 191 | $(TESTBUILDDIR)/nfsmxp.spp: $(TOOLBINDIR)/gensprep$(EXEEXT) $(TESTSRCDATADIR)/nfs4_mixed_prep_p.txt |
michael@0 | 192 | @echo Building nfsmxp.spp |
michael@0 | 193 | $(INVOKE) $(TOOLBINDIR)/gensprep -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) -b nfsmxp -k -n $(UNICODEDATADIR) -u 3.2.0 nfs4_mixed_prep_p.txt |
michael@0 | 194 | |
michael@0 | 195 | $(TESTBUILDDIR)/%.cnv: $(TESTSRCDATADIR)/%.ucm $(TOOLBINDIR)/makeconv$(EXEEXT) |
michael@0 | 196 | $(INVOKE) $(TOOLBINDIR)/makeconv --small -c -d $(TESTBUILDDIR) $(TESTSRCDATADIR)/$(<F) |
michael@0 | 197 | |
michael@0 | 198 | $(TESTBUILDDIR)/%.nrm: $(TESTSRCDATADIR)/%.txt $(TOOLBINDIR)/gennorm2$(EXEEXT) |
michael@0 | 199 | $(INVOKE) $(TOOLBINDIR)/gennorm2 -s $(TESTSRCDATADIR) $(<F) -o $@ |
michael@0 | 200 | |
michael@0 | 201 | $(TESTBUILDDIR)/%.res: $(TESTSRCDATADIR)/%.txt $(TOOLBINDIR)/genrb$(EXEEXT) $(DAT_FILES) |
michael@0 | 202 | $(INVOKE) $(TOOLBINDIR)/genrb $(GENRBOPTS) -q -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) $(<F) |
michael@0 | 203 | |
michael@0 | 204 | $(TESTBUILDDIR)/iscii.res: $(TESTSRCDATADIR)/iscii.bin $(TOOLBINDIR)/genrb$(EXEEXT) |
michael@0 | 205 | @echo Testing genrb -e option |
michael@0 | 206 | @ICU_DATA=$(BUILDDIR) $(INVOKE) $(TOOLBINDIR)/genrb $(GENRBOPTS) -s $(TESTSRCDATADIR) -eISCII,version=0 -d $(TESTBUILDDIR) $(<F) >/dev/null || ( echo "WARNING: could not open ISCII - it may have been disabled." | tee $@ ) |
michael@0 | 207 | @echo Finished testing genrb -e option |
michael@0 | 208 | |
michael@0 | 209 | ################################################################### TYP |
michael@0 | 210 | # TYP FILES |
michael@0 | 211 | |
michael@0 | 212 | $(TESTOUTDIR)/$(TESTDT)/nam.typ: $(TESTBUILDDIR)/te_IN.res |
michael@0 | 213 | cp $< $@ |
michael@0 | 214 | $(TESTBUILDDIR)/old_l_testtypes.res: $(TESTSRCDATADIR)/old_l_testtypes.res |
michael@0 | 215 | cp $< $@ |
michael@0 | 216 | $(TESTBUILDDIR)/old_e_testtypes.res: $(TESTSRCDATADIR)/old_e_testtypes.res |
michael@0 | 217 | cp $< $@ |
michael@0 | 218 | |
michael@0 | 219 | testdata: build-dir $(ALL_TEST_FILES) $(UNPACKAGEDTESTDATA) |
michael@0 | 220 | |
michael@0 | 221 | #$(ALL_TEST_FILES) $(TESTBUILDDIR)/testtable32.txt $(TESTBUILDDIR)/testdata.lst: build-dir |
michael@0 | 222 | |
michael@0 | 223 | packagetest: build-dir testdata pkgdata.inc $(TESTBUILDDIR)/testdata.lst |
michael@0 | 224 | $(PKGDATA_INVOKE) $(PKGDATA) -T $(TESTBUILDDIR) -d $(TESTOUTDIR) -s $(TESTBUILDDIR) -p $(TESTDATA) -m common $(TESTBUILDDIR)/testdata.lst |
michael@0 | 225 | |
michael@0 | 226 | build-dir: $(BUILD_DIRS) |
michael@0 | 227 | $(BUILD_DIRS): |
michael@0 | 228 | -$(MKINSTALLDIRS) $(BUILD_DIRS) |
michael@0 | 229 | |
michael@0 | 230 | # Build the ICU4J testdata.jar. |
michael@0 | 231 | # Command line: |
michael@0 | 232 | # (Run this from the output testdata folder which may not be .../source/test/testdata in an out-of-source build.) |
michael@0 | 233 | # ~/svn.icu/trunk/source/test/testdata> make JAR=jar ICU4J_ROOT=~/svn.icu4j/trunk testdata.jar |
michael@0 | 234 | # You can omit the ICU4J_ROOT for just building the .jar files without copying them. |
michael@0 | 235 | # You can omit the JAR if it's just jar. |
michael@0 | 236 | JAR=jar |
michael@0 | 237 | |
michael@0 | 238 | # Build testdata.jar: |
michael@0 | 239 | # - swap the test data |
michael@0 | 240 | # - extract all data items |
michael@0 | 241 | # - package them into the .jar file |
michael@0 | 242 | $(OUTDIR)/icu4j/testdata.jar: build-dir testdata $(TESTOUTDIR)/testdata.dat |
michael@0 | 243 | mkdir -p $(OUTDIR)/icu4j/com/ibm/icu/dev/data/testdata |
michael@0 | 244 | $(INVOKE) $(TOOLBINDIR)/icupkg $(TESTOUTDIR)/testdata.dat -r test.icu -x '*' -tb -d $(OUTDIR)/icu4j/com/ibm/icu/dev/data/testdata |
michael@0 | 245 | $(JAR) cf $(OUTDIR)/icu4j/testdata.jar -C $(OUTDIR)/icu4j com/ibm/icu/dev/data/testdata |
michael@0 | 246 | |
michael@0 | 247 | |
michael@0 | 248 | DEBUGUTILITIESDATA_DIR=main/tests/core/src/com/ibm/icu/dev/test/util |
michael@0 | 249 | DEBUGUTILITIESDATA_SRC=DebugUtilitiesData.java |
michael@0 | 250 | |
michael@0 | 251 | ICU4J_DATA=$(OUTDIR)/icu4j/src/$(DEBUGUTILITIESDATA_SRC) $(OUTDIR)/icu4j/testdata.jar |
michael@0 | 252 | |
michael@0 | 253 | $(OUTDIR)/icu4j/src/$(DEBUGUTILITIESDATA_SRC): $(GENTEST) |
michael@0 | 254 | mkdir -p $(OUTDIR)/icu4j/src |
michael@0 | 255 | $(INVOKE) $(GENTEST) -j -d $(OUTDIR)/icu4j/src |
michael@0 | 256 | |
michael@0 | 257 | ifdef ICU4J_ROOT |
michael@0 | 258 | |
michael@0 | 259 | icu4j-data-install: $(ICU4J_ROOT)/main/shared/data/testdata.jar $(ICU4J_ROOT)/$(DEBUGUTILITIESDATA_DIR)/$(DEBUGUTILITIESDATA_SRC) |
michael@0 | 260 | @echo ICU4J test data installed in $(ICU4J_ROOT) |
michael@0 | 261 | |
michael@0 | 262 | $(ICU4J_ROOT)/main/shared/data/testdata.jar: $(OUTDIR)/icu4j/testdata.jar |
michael@0 | 263 | mkdir -p $(ICU4J_ROOT)/main/shared/data |
michael@0 | 264 | cp $(OUTDIR)/icu4j/testdata.jar $(ICU4J_ROOT)/main/shared/data |
michael@0 | 265 | |
michael@0 | 266 | $(ICU4J_ROOT)/$(DEBUGUTILITIESDATA_DIR)/$(DEBUGUTILITIESDATA_SRC): $(OUTDIR)/icu4j/src/$(DEBUGUTILITIESDATA_SRC) |
michael@0 | 267 | mkdir -p $(ICU4J_ROOT)/$(DEBUGUTILITIESDATA_DIR) |
michael@0 | 268 | cp $^ $@ |
michael@0 | 269 | |
michael@0 | 270 | else |
michael@0 | 271 | |
michael@0 | 272 | icu4j-data-install: $(ICU4J_DATA) |
michael@0 | 273 | @echo ICU4J data was built into $(OUTDIR)/icu4j |
michael@0 | 274 | @echo '** Error:' ICU4J_ROOT was not set, could not install |
michael@0 | 275 | exit 1 |
michael@0 | 276 | |
michael@0 | 277 | endif |
michael@0 | 278 | |
michael@0 | 279 | icu4j-data: $(ICU4J_DATA) |