Makefile.in (5960B)
1 ## Makefile.in for ICU tests 2 ## Copyright (C) 2016 and later: Unicode, Inc. and others. 3 ## License & terms of use: http://www.unicode.org/copyright.html 4 ## Copyright (c) 1999-2014, International Business Machines Corporation and 5 ## others. All Rights Reserved. 6 7 ## Source directory information 8 srcdir = @srcdir@ 9 top_srcdir = @top_srcdir@ 10 11 top_builddir = .. 12 13 include $(top_builddir)/icudefs.mk 14 15 ## Build directory information 16 subdir = test 17 18 @FUZZER_TRUE@FUZZER=fuzzer 19 20 @ICUIO_TRUE@IOTEST = iotest 21 22 # the letest directory depends on layoutex. 23 # If you have layoutex but not layout, you will be using 24 # harfbuzz. 25 @LAYOUTEX_TRUE@LETEST = letest 26 27 # no testdata without tools.. 28 @TOOLS_TRUE@TESTDATA = testdata 29 30 # status dir 31 STATUS_TMP = tmp 32 STATUS_FULL = $(shell pwd)/$(STATUS_TMP) 33 34 ## Files to remove for 'make clean' 35 CLEANFILES = *~ $(STATUS_TMP) 36 37 SUBDIRS = $(TESTDATA) intltest $(IOTEST) cintltst $(LETEST) $(FUZZER) 38 39 ## List of phony targets 40 .PHONY : everything all all-local all-recursive install install-local \ 41 install-recursive clean clean-local clean-recursive distclean \ 42 distclean-local distclean-recursive dist dist-recursive dist-local \ 43 check check-recursive check-local xcheck xcheck-recursive xcheck-local \ 44 check-exhaustive check-exhaustive-recursive 45 46 ## Clear suffix list 47 .SUFFIXES : 48 49 ## List of standard targets 50 everything: all-recursive all-local 51 all: 52 ifneq ($(RECURSIVE),YES) 53 @echo simply use \`make\' \(or \`make everything\'\) to do all 54 endif 55 56 install: install-recursive install-local 57 clean: clean-recursive clean-local 58 distclean : distclean-recursive distclean-local 59 $(RMV) hdrtst/Makefile 60 $(RMV) perf/convperf/Makefile 61 $(RMV) $(STATUS_TMP) 62 63 dist: dist-recursive dist-local 64 check: everything check-recursive check-local 65 check-recursive: all-recursive 66 # the xcheck targets create a ../test-*.xml file in JUnit format. 67 xcheck: everything xcheck-recursive xcheck-local 68 xcheck-recursive: all-recursive 69 check-exhaustive: everything check-exhaustive-recursive check-local 70 71 ## Recursive targets 72 all-recursive install-recursive clean-recursive distclean-recursive dist-recursive: 73 @dot_seen=no; \ 74 target=`echo $@ | sed s/-recursive//`; \ 75 list='$(SUBDIRS)'; for subdir in $$list; do \ 76 echo "$(MAKE)[$(MAKELEVEL)]: Making \`$$target' in \`$$subdir'"; \ 77 if test "$$subdir" = "."; then \ 78 dot_seen=yes; \ 79 local_target="$$target-local"; \ 80 else \ 81 local_target="$$target"; \ 82 fi; \ 83 (cd $$subdir && $(MAKE) $$local_target) || exit; \ 84 done; \ 85 if test "$$dot_seen" = "no"; then \ 86 $(MAKE) "$$target-local" || exit; \ 87 fi 88 89 xcheck-recursive check-recursive check-exhaustive-recursive: 90 @$(MKINSTALLDIRS) $(STATUS_TMP) 91 @mystatus=$(STATUS_FULL)/status.$$$$.deleteme ; \ 92 $(RMV) "$$mystatus".* ; \ 93 goods=; \ 94 bads=; \ 95 target=`echo $@ | sed s/-recursive//`; \ 96 list='$(SUBDIRS)'; for subdir in $$list; do \ 97 echo "$(MAKE)[$(MAKELEVEL)]: Making \`$$target' in \`$$subdir'"; \ 98 local_target="$$target"; \ 99 if (cd $$subdir && $(MAKE) $$local_target TEST_STATUS_FILE="$$mystatus.$$subdir" ); then \ 100 goods="$$goods $$subdir"; \ 101 else \ 102 bads="$$bads $$subdir"; \ 103 fi; \ 104 done; \ 105 for subdir in $$list; do \ 106 if [ -f "$$mystatus.$$subdir" ]; then \ 107 echo "-------------" ; \ 108 echo "| *** FAILING TEST SUMMARY FOR: $$subdir " ; \ 109 cat "$$mystatus.$$subdir" ; \ 110 echo "| *** END FAILING TEST SUMMARY FOR: $$subdir" ; \ 111 $(RMV) "$$mystatus.$$subdir" ; \ 112 fi; \ 113 done; \ 114 echo "---------------"; \ 115 echo "ALL TESTS SUMMARY:"; \ 116 if test ! "x$$bads" = "x"; then \ 117 echo "ok: $$goods"; \ 118 echo "===== ERRS: $$bads"; exit 1; \ 119 else \ 120 echo "All tests OK: $$goods"; \ 121 fi 122 123 # pcheck = parallel check. We don't care about the output interleaving, 124 # just run it as fast as possible. 125 # todo would be to merge this code into the above non-parallel check. 126 STATUS_NUM:=$(shell echo $$$$) 127 MYSTATUS_R=$(STATUS_FULL)/status.$(STATUS_NUM).deleteme 128 STATUS_FILES=$(SUBDIRS:%=$(MYSTATUS_R).%) 129 130 pcheck_setup: testdata 131 @$(MKINSTALLDIRS) $(STATUS_TMP) 132 $(RMV) "$(MYSTATUS_R)".* 133 @echo Beginning parallel make. Output may be interleaved! 134 135 $(STATUS_FULL)/status.$(STATUS_NUM).deleteme.%: pcheck_setup 136 -@$(MAKE) -C $* TEST_STATUS_FILE=$@ check || ( echo "FAILED: $* (other tests may still be running..)" ; touch $@ ; cp $@ $@.FAIL ; false ) 137 -@[ ! -f $@.FAIL ] && touch $@.PASS && echo "PASSED: $* (other tests may still be running..)" 138 -@touch $@ 139 140 # print out status 141 pcheck: $(STATUS_FILES) 142 @goods=; \ 143 bads=; \ 144 echo "----------------------------------------"; \ 145 echo $SUBDIRS \ 146 echo "----------------------------------------"; \ 147 for subdir in $(SUBDIRS); do \ 148 if [ -s "$(MYSTATUS_R).$$subdir" ]; then \ 149 echo "-------------" ; \ 150 echo "| *** FAILING TEST SUMMARY FOR: $$subdir " ; \ 151 cat "$(MYSTATUS_R).$$subdir" ; \ 152 echo "| *** END FAILING TEST SUMMARY FOR: $$subdir" ; \ 153 $(RMV) "$(MYSTATUS_R).$$subdir" ; \ 154 fi; \ 155 done; \ 156 for subdir in $(SUBDIRS); do \ 157 if [ -f "$(MYSTATUS_R).$$subdir.FAIL" ]; \ 158 then \ 159 bads="$$bads $$subdir" ; \ 160 elif [ -f "$(MYSTATUS_R).$$subdir.PASS" ]; \ 161 then \ 162 goods="$$goods $$subdir" ; \ 163 else \ 164 echo "*** subtest did not complete - $$subdir" ; \ 165 bads="$$bads $$subdir" ; \ 166 fi ; \ 167 done ; \ 168 echo "ALL TESTS SUMMARY:"; \ 169 if test ! "x$$bads" = "x"; then \ 170 echo "(to get non-interleaved err output, use \"$(MAKE) check\" instead.)" ; \ 171 echo "ok: $$goods"; \ 172 echo "===== ERRS: $$bads"; exit 1; \ 173 else \ 174 echo "All tests OK: $$goods"; \ 175 fi 176 -@$(RMV) "$(MYSTATUS_R)".* 177 178 all-local: 179 180 install-local: 181 182 dist-local: 183 184 clean-local: 185 test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES) 186 187 distclean-local: clean-local 188 $(RMV) Makefile 189 190 xcheck-local check-local: all-local 191 192 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status 193 cd $(top_builddir) \ 194 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status