| ## Makefile.in for ICU tests |
| ## Copyright (C) 2016 and later: Unicode, Inc. and others. |
| ## License & terms of use: http://www.unicode.org/copyright.html |
| ## Copyright (c) 1999-2014, International Business Machines Corporation and |
| ## others. All Rights Reserved. |
| |
| ## Source directory information |
| srcdir = @srcdir@ |
| top_srcdir = @top_srcdir@ |
| |
| top_builddir = .. |
| |
| include $(top_builddir)/icudefs.mk |
| |
| ## Build directory information |
| subdir = test |
| |
| @FUZZER_TRUE@FUZZER=fuzzer |
| |
| @ICUIO_TRUE@IOTEST = iotest |
| |
| # the letest directory depends on layoutex. |
| # If you have layoutex but not layout, you will be using |
| # harfbuzz. |
| @LAYOUTEX_TRUE@LETEST = letest |
| |
| # no testdata without tools.. |
| @TOOLS_TRUE@TESTDATA = testdata |
| |
| # status dir |
| STATUS_TMP = tmp |
| STATUS_FULL = $(shell pwd)/$(STATUS_TMP) |
| |
| ## Files to remove for 'make clean' |
| CLEANFILES = *~ $(STATUS_TMP) |
| |
| SUBDIRS = $(TESTDATA) intltest $(IOTEST) cintltst $(LETEST) $(FUZZER) |
| |
| ## List of phony targets |
| .PHONY : everything all all-local all-recursive install install-local \ |
| install-recursive clean clean-local clean-recursive distclean \ |
| distclean-local distclean-recursive dist dist-recursive dist-local \ |
| check check-recursive check-local xcheck xcheck-recursive xcheck-local \ |
| check-exhaustive check-exhaustive-recursive |
| |
| ## Clear suffix list |
| .SUFFIXES : |
| |
| ## List of standard targets |
| everything: all-recursive all-local |
| all: |
| ifneq ($(RECURSIVE),YES) |
| @echo simply use \`make\' \(or \`make everything\'\) to do all |
| endif |
| |
| install: install-recursive install-local |
| clean: clean-recursive clean-local |
| distclean : distclean-recursive distclean-local |
| $(RMV) hdrtst/Makefile |
| $(RMV) perf/convperf/Makefile |
| $(RMV) $(STATUS_TMP) |
| |
| dist: dist-recursive dist-local |
| check: everything check-recursive check-local |
| check-recursive: all-recursive |
| # the xcheck targets create a ../test-*.xml file in JUnit format. |
| xcheck: everything xcheck-recursive xcheck-local |
| xcheck-recursive: all-recursive |
| check-exhaustive: everything check-exhaustive-recursive check-local |
| |
| ## Recursive targets |
| all-recursive install-recursive clean-recursive distclean-recursive dist-recursive: |
| @dot_seen=no; \ |
| target=`echo $@ | sed s/-recursive//`; \ |
| list='$(SUBDIRS)'; for subdir in $$list; do \ |
| echo "$(MAKE)[$(MAKELEVEL)]: Making \`$$target' in \`$$subdir'"; \ |
| if test "$$subdir" = "."; then \ |
| dot_seen=yes; \ |
| local_target="$$target-local"; \ |
| else \ |
| local_target="$$target"; \ |
| fi; \ |
| (cd $$subdir && $(MAKE) $$local_target) || exit; \ |
| done; \ |
| if test "$$dot_seen" = "no"; then \ |
| $(MAKE) "$$target-local" || exit; \ |
| fi |
| |
| xcheck-recursive check-recursive check-exhaustive-recursive: |
| @$(MKINSTALLDIRS) $(STATUS_TMP) |
| @mystatus=$(STATUS_FULL)/status.$$$$.deleteme ; \ |
| $(RMV) "$$mystatus".* ; \ |
| goods=; \ |
| bads=; \ |
| target=`echo $@ | sed s/-recursive//`; \ |
| list='$(SUBDIRS)'; for subdir in $$list; do \ |
| echo "$(MAKE)[$(MAKELEVEL)]: Making \`$$target' in \`$$subdir'"; \ |
| local_target="$$target"; \ |
| if (cd $$subdir && $(MAKE) $$local_target TEST_STATUS_FILE="$$mystatus.$$subdir" ); then \ |
| goods="$$goods $$subdir"; \ |
| else \ |
| bads="$$bads $$subdir"; \ |
| fi; \ |
| done; \ |
| for subdir in $$list; do \ |
| if [ -f "$$mystatus.$$subdir" ]; then \ |
| echo "-------------" ; \ |
| echo "| *** FAILING TEST SUMMARY FOR: $$subdir " ; \ |
| cat "$$mystatus.$$subdir" ; \ |
| echo "| *** END FAILING TEST SUMMARY FOR: $$subdir" ; \ |
| $(RMV) "$$mystatus.$$subdir" ; \ |
| fi; \ |
| done; \ |
| echo "---------------"; \ |
| echo "ALL TESTS SUMMARY:"; \ |
| if test ! "x$$bads" = "x"; then \ |
| echo "ok: $$goods"; \ |
| echo "===== ERRS: $$bads"; exit 1; \ |
| else \ |
| echo "All tests OK: $$goods"; \ |
| fi |
| |
| # pcheck = parallel check. We don't care about the output interleaving, |
| # just run it as fast as possible. |
| # todo would be to merge this code into the above non-parallel check. |
| STATUS_NUM:=$(shell echo $$$$) |
| MYSTATUS_R=$(STATUS_FULL)/status.$(STATUS_NUM).deleteme |
| STATUS_FILES=$(SUBDIRS:%=$(MYSTATUS_R).%) |
| |
| pcheck_setup: testdata |
| @$(MKINSTALLDIRS) $(STATUS_TMP) |
| $(RMV) "$(MYSTATUS_R)".* |
| @echo Beginning parallel make. Output may be interleaved! |
| |
| $(STATUS_FULL)/status.$(STATUS_NUM).deleteme.%: pcheck_setup |
| -@$(MAKE) -C $* TEST_STATUS_FILE=$@ check || ( echo "FAILED: $* (other tests may still be running..)" ; touch $@ ; cp $@ $@.FAIL ; false ) |
| -@[ ! -f $@.FAIL ] && touch $@.PASS && echo "PASSED: $* (other tests may still be running..)" |
| -@touch $@ |
| |
| # print out status |
| pcheck: $(STATUS_FILES) |
| @goods=; \ |
| bads=; \ |
| echo "----------------------------------------"; \ |
| echo $SUBDIRS \ |
| echo "----------------------------------------"; \ |
| for subdir in $(SUBDIRS); do \ |
| if [ -s "$(MYSTATUS_R).$$subdir" ]; then \ |
| echo "-------------" ; \ |
| echo "| *** FAILING TEST SUMMARY FOR: $$subdir " ; \ |
| cat "$(MYSTATUS_R).$$subdir" ; \ |
| echo "| *** END FAILING TEST SUMMARY FOR: $$subdir" ; \ |
| $(RMV) "$(MYSTATUS_R).$$subdir" ; \ |
| fi; \ |
| done; \ |
| for subdir in $(SUBDIRS); do \ |
| if [ -f "$(MYSTATUS_R).$$subdir.FAIL" ]; \ |
| then \ |
| bads="$$bads $$subdir" ; \ |
| elif [ -f "$(MYSTATUS_R).$$subdir.PASS" ]; \ |
| then \ |
| goods="$$goods $$subdir" ; \ |
| else \ |
| echo "*** subtest did not complete - $$subdir" ; \ |
| bads="$$bads $$subdir" ; \ |
| fi ; \ |
| done ; \ |
| echo "ALL TESTS SUMMARY:"; \ |
| if test ! "x$$bads" = "x"; then \ |
| echo "(to get non-interleaved err output, use \"$(MAKE) check\" instead.)" ; \ |
| echo "ok: $$goods"; \ |
| echo "===== ERRS: $$bads"; exit 1; \ |
| else \ |
| echo "All tests OK: $$goods"; \ |
| fi |
| -@$(RMV) "$(MYSTATUS_R)".* |
| |
| all-local: |
| |
| install-local: |
| |
| dist-local: |
| |
| clean-local: |
| test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES) |
| |
| distclean-local: clean-local |
| $(RMV) Makefile |
| |
| xcheck-local check-local: all-local |
| |
| Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
| cd $(top_builddir) \ |
| && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status |
| |