| ## |
| ## Copyright (C) 2016 and later: Unicode, Inc. and others. |
| ## License & terms of use: http://www.unicode.org/copyright.html |
| ## Copyright (c) 1999-2011, International Business Machines Corporation and |
| ## others. All Rights Reserved. |
| ## |
| ## |
| ## THE PURPOSE OF THIS TEST |
| ## |
| ## This tests all public header files - as installed. icu-config needs to be on the PATH |
| ## |
| ## To run it simply type 'make check' after ICU is installed. You SHOULD see: |
| ## |
| ## unicode/uchar.h - 0 |
| ## unicode/uchriter.h - 0 |
| ## unicode/ucnv.h - 0 |
| ## |
| ## .. etc. Anything other than zero is an error. (except for the deprecation tests, where '1' is the correct value) |
| ## |
| ## If a header fails the C compile test it is likely because the header is a |
| ## C++ header and isn't properly guarded by the U_SHOW_CPLUSPLUS_API macro. |
| ## |
| ## If a header fails because it is deprecated, add it to the 'dfiles.txt' |
| ## |
| ## |
| |
| ## Source directory information |
| srcdir = @srcdir@ |
| top_srcdir = @top_srcdir@ |
| |
| top_builddir = ../.. |
| subdir = test/hdrtst |
| |
| include $(shell icu-config --incfile) |
| |
| all: |
| @echo Please read this Makefile for more information. |
| @echo run \'$(MAKE) check\' to run the test "(use -k if you don't want to stop on errs)" |
| |
| check: dtest ctest cpptest drafttest deprtest internaltest obsoletetest |
| |
| headertest: |
| @FAIL=0;stub=ht_stub_$(NAME.headers).$(SUFFIX.headers); for file in "$(prefix)/include/unicode"/*.h ; do \ |
| incfile=`basename $$file` ; \ |
| echo "$(NAME.headers) unicode/$$incfile" ; \ |
| echo "#include <unicode/$$incfile>" > $$stub ; \ |
| echo 'void junk(){}' >> $$stub ; \ |
| $(COMPILE.headers) $(cppflags) $(FLAGS.headers) $$stub || FAIL=1 ; \ |
| rm -f $$stub; \ |
| done ; \ |
| exit $$FAIL |
| |
| ctest: |
| $(MAKE) headertest \ |
| NAME.headers=$@ \ |
| COMPILE.headers="$(COMPILE.c)" \ |
| SUFFIX.headers=c \ |
| FLAGS.headers= |
| |
| cpptest: |
| $(MAKE) headertest \ |
| NAME.headers=$@ \ |
| COMPILE.headers="$(COMPILE.cc)" \ |
| SUFFIX.headers=cpp \ |
| FLAGS.headers= |
| |
| drafttest: |
| $(MAKE) headertest \ |
| NAME.headers=$@ \ |
| COMPILE.headers="$(COMPILE.cc)" \ |
| SUFFIX.headers=cpp \ |
| FLAGS.headers="-DU_HIDE_DRAFT_API" |
| |
| deprtest: |
| $(MAKE) headertest \ |
| NAME.headers=$@ \ |
| COMPILE.headers="$(COMPILE.cc)" \ |
| SUFFIX.headers=cpp \ |
| FLAGS.headers="-DU_HIDE_DEPRECATED_API" |
| |
| internaltest: |
| $(MAKE) headertest \ |
| NAME.headers=$@ \ |
| COMPILE.headers="$(COMPILE.cc)" \ |
| SUFFIX.headers=cpp \ |
| FLAGS.headers="-DU_HIDE_INTERNAL_API" |
| |
| obsoletetest: |
| $(MAKE) headertest \ |
| NAME.headers=$@ \ |
| COMPILE.headers="$(COMPILE.cc)" \ |
| SUFFIX.headers=cpp \ |
| FLAGS.headers="-DU_HIDE_OBSOLETE_API" |
| |
| dtest: |
| @FAIL=0;NONE="(No deprecated headers)";stub=ht_stub_dtest.cpp;for incfile in `cat $(srcdir)/dfiles.txt | grep -v '^#' | sort` ; do \ |
| NONE= ; \ |
| echo "$@ unicode/$$incfile" ; \ |
| echo "#include <unicode/$$incfile>" > $$stub ; \ |
| echo 'void junk(){}' >> $$stub ; \ |
| $(COMPILE.cc) $(cppflags) $$stub 2>&1 | tee $$stub.out || FAIL=1 ; \ |
| if ! cat $$stub.out | sed -e 's/^.*#error[^"]*"//' | grep -v ht_ | grep -v "$$incfile header is obsolete"; then \ |
| echo "** FAIL Header unicode/$$incfile is not obsoleted properly" ; \ |
| FAIL=1 ; \ |
| fi ; \ |
| rm -f $$stub*; \ |
| done ; \ |
| echo "$@: $$NONE - exit status $$FAIL" ; \ |
| exit $$FAIL |
| |
| clean: |
| -@rm -f ht_* |
| |
| distclean: clean |
| -@rm -f Makefile |
| |
| Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
| cd $(top_builddir) \ |
| && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status |
| |
| .PHONY: doclean check all headertest cpptest dtest ctest clean distclean |