1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## 283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius## Copyright (c) 1999-2011, International Business Machines Corporation and 3ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## others. All Rights Reserved. 4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## 5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## 6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## THE PURPOSE OF THIS TEST 7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## 883a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius## This tests all public header files - as installed. icu-config needs to be on the PATH 9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## 1083a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius## To run it simply type 'make check' after ICU is installed. You SHOULD see: 11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## 12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## unicode/uchar.h - 0 13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## unicode/uchriter.h - 0 14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## unicode/ucnv.h - 0 15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## 16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## .. etc. Anything other than zero is an error. (except for the deprecation tests, where '1' is the correct value) 17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## 18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## 19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## If a header fails the C compile because it's a C++ header, add it to the 20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## file named 'cxxfiles.txt' in this directory. 21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## 22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## If a header fails because it is deprecated, add it to the 'dfiles.txt' 23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## 24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru## 25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 2685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho## Source directory information 2785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Hosrcdir = @srcdir@ 2885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Hotop_srcdir = @top_srcdir@ 2985bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho 3085bf2e2fbc60a9f938064abc8127d61da7d19882Claire Hotop_builddir = ../.. 3185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Hosubdir = test/hdrtst 32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruinclude $(shell icu-config --incfile) 34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruDIRS=$(prefix)/include/unicode 35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruLDIRS=$(prefix)/include/layout 3685bf2e2fbc60a9f938064abc8127d61da7d19882Claire HoECHO_T=@ECHO_T@ 3785bf2e2fbc60a9f938064abc8127d61da7d19882Claire HoECHO_C=@ECHO_C@ 3885bf2e2fbc60a9f938064abc8127d61da7d19882Claire HoECHO_N=@ECHO_N@ 39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruall: 41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru @echo Please read this Makefile for more information. 4283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius @echo run \'$(MAKE) check\' to run the test "(use -k if you don't want to stop on errs)" 4383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius 4485bf2e2fbc60a9f938064abc8127d61da7d19882Claire HoE_NUM=8 4585bf2e2fbc60a9f938064abc8127d61da7d19882Claire HoE_D="[1/$(E_NUM)] Deprecated: " 4685bf2e2fbc60a9f938064abc8127d61da7d19882Claire HoE_C="[2/$(E_NUM)] C : " 4785bf2e2fbc60a9f938064abc8127d61da7d19882Claire HoE_CXX="[3/$(E_NUM)] C++: " 4885bf2e2fbc60a9f938064abc8127d61da7d19882Claire HoE_CXX_L="[4/$(E_NUM)] C++ layout: " 4985bf2e2fbc60a9f938064abc8127d61da7d19882Claire HoE_DRF="[5/$(E_NUM)] Hide Draft: " 5085bf2e2fbc60a9f938064abc8127d61da7d19882Claire HoE_DEP="[6/$(E_NUM)] Hide Deprecated: " 5185bf2e2fbc60a9f938064abc8127d61da7d19882Claire HoE_INT="[7/$(E_NUM)] Hide Internal: " 5285bf2e2fbc60a9f938064abc8127d61da7d19882Claire HoE_OBS="[8/$(E_NUM)] Hide Obsolete: " 53ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querucheck: dtest ctest cpptest lotest doclean drafttest deprtest internaltest obsoletetest 5583a171d1a62abf406f7f44ae671823d5ec20db7dCraig Corneliusifeq ($(MAKECMDGOALS),check) 5683a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius $(MAKE) clean 5783a171d1a62abf406f7f44ae671823d5ec20db7dCraig Corneliuselse 5883a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius @echo "(not cleaning automatically)" 5983a171d1a62abf406f7f44ae671823d5ec20db7dCraig Corneliusendif 60ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 61ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru# break dependency 62ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querudoclean: 63ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru make clean 64ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 65ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querucpptest: 6683a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius @FAIL=0;for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \ 67ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru incfile=`basename $$file .h` ; \ 6883a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius echo "$@ unicode/$$incfile.h" ; \ 69ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo '#include "'unicode/$$incfile'.h"' > ht_$$incfile.cpp ; \ 70ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo 'void junk(){}' >> ht_$$incfile.cpp ; \ 7183a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius $(COMPILE.cc) -c $(cppflags) ht_$$incfile.cpp || FAIL=1 ; \ 7283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius done ;\ 7383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius exit $$FAIL 74ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 75ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querulotest: 7683a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius @FAIL=0;for file in $(prefix)/include/layout/*.h; do \ 77ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru incfile=`basename $$file .h` ; \ 7883a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius echo "$@ layout/$$incfile.h" ; \ 79ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo '#include "'layout/$$incfile'.h"' > ht_$$incfile.cpp ; \ 80ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo 'void junk(){}' >> ht_$$incfile.cpp ; \ 8183a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius $(COMPILE.cc) -c $(cppflags) -I$(prefix)/include/layout ht_$$incfile.cpp || FAIL=1; \ 8283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius done ;\ 8383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius exit $$FAIL 84ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 85ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querudtest: 8683a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius @FAIL=0;NONE="(No deprecated headers)";for stub in `cat $(srcdir)/dfiles.txt | grep -v '^#'` ; do \ 8783a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius file=unicode/$$stub ; \ 8883a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius NONE="" ; \ 89ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru incfile=`basename $$file .h` ; \ 9083a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius echo "$@ unicode/$$incfile.h" ; \ 91ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo '#include "'unicode/$$incfile'.h"' > ht_$$incfile.cpp ; \ 92ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo 'void junk(){}' >> ht_$$incfile.cpp ; \ 93ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo > ht_dep.junk ; \ 94ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru $(COMPILE.cc) -c $(cppflags) ht_$$incfile.cpp 2>&1 | sed -e 's/^.*#error[^"]*"//' | fgrep -v ht_ | tee ht_dep.junk | fgrep -v "$$incfile.h header is obsolete" ; \ 95ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru RES=$$? ; \ 96ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo $$RES ; \ 97ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fgrep -q "$$incfile.h header is obsolete" ht_dep.junk || echo "** FAIL Header unicode/$$incfile.h is not obsoleted properly" ; \ 9883a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius fgrep -q "$$incfile.h header is obsolete" ht_dep.junk || FAIL=1 ; \ 99ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru rm -f unicode/$$stub ; \ 10083a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius done ; \ 10183a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius echo "$@: $$NONE - exit status $$FAIL" ; \ 10283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius exit $$FAIL 103ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 104ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru# < ht_dep.junk && ; \ 105ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 106ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 107ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queructest: 108ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru @echo Building test harness for header files in ../../common and ../../i18n 10983a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius @FAIL=0;for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/cxxfiles.txt | tee cfiles.txt`; do \ 110ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru incfile=`basename $$file .h` ; \ 11183a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius echo "$@ unicode/$$incfile.h" ; \ 112ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo '#include "'unicode/$$incfile'.h"' > ht_$$incfile.c ; \ 113ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo 'void junk(void);' >> ht_$$incfile.c ; \ 114ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo 'void junk(){}' >> ht_$$incfile.c ; \ 11583a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius $(COMPILE.c) -c $(cppflags) ht_$$incfile.c || FAIL=1 ; \ 11683a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius done ;\ 11783a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius exit $$FAIL 11883a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius 119ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querudrafttest: 12083a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius @FAIL=0;for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \ 121ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru incfile=`basename $$file .h` ; \ 12283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius echo "$@ unicode/$$incfile.h" ; \ 123ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo '#define U_HIDE_DRAFT_API' > hd_$$incfile.c; \ 12483a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius echo '#include "'unicode/$$incfile'.h"' >> hd_$$incfile.c ; \ 125ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo 'void junk(void);' >> hd_$$incfile.c ; \ 126ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo 'void junk(){}' >> hd_$$incfile.c ; \ 12783a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius $(COMPILE.cc) -c $(cppflags) hd_$$incfile.c ||FAIL=1 ; \ 12883a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius done ;\ 12983a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius exit $$FAIL 13083a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius 131ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querudeprtest: 13283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius @FAIL=0; for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \ 133ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru incfile=`basename $$file .h` ; \ 13483a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius echo "$@ unicode/$$incfile.h" ; \ 135ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo '#define U_HIDE_DEPRECATED_API' > hdp_$$incfile.c; \ 136ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo '#include "'unicode/$$incfile'.h"' >> hdp_$$incfile.c ; \ 137ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo 'void junk(void);' >> hdp_$$incfile.c ; \ 138ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo 'void junk(){}' >> hdp_$$incfile.c ; \ 13983a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius $(COMPILE.cc) -c $(cppflags) hdp_$$incfile.c || FAIL=1; \ 14083a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius done ; \ 14183a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius exit $$FAIL 142ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 143ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruinternaltest: 14483a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius @FAIL=0;\ 14583a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \ 146ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru incfile=`basename $$file .h` ; \ 14783a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius echo "$@ unicode/$$incfile.h" ; \ 148ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo '#define U_HIDE_INTERNAL_API' > hin_$$incfile.c; \ 149ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo '#include "'unicode/$$incfile'.h"' >> hin_$$incfile.c ; \ 150ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo 'void junk(void);' >> hin_$$incfile.c ; \ 151ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo 'void junk(){}' >> hin_$$incfile.c ; \ 15283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius $(COMPILE.cc) -c $(cppflags) hin_$$incfile.c || FAIL=1 ; \ 15383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius done ; \ 15483a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius exit $$FAIL 155ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 156ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruobsoletetest: 15783a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius @FAIL=0;for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \ 158ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru incfile=`basename $$file .h` ; \ 15983a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius echo "$@ unicode/$$incfile.h" ; \ 160ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo '#define U_HIDE_OBSOLETE_API' > hob_$$incfile.c; \ 161ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo '#include "'unicode/$$incfile'.h"' >> hob_$$incfile.c ; \ 162ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo 'void junk(void);' >> hob_$$incfile.c ; \ 163ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru echo 'void junk(){}' >> hob_$$incfile.c ; \ 16483a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius $(COMPILE.cc) -c $(cppflags) hob_$$incfile.c || FAIL=1 ; \ 16583a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius done ; \ 16683a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius exit $$FAIL 16783a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius 168ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclean: 16927f654740f2a26ad62a5c155af9199af9e69b889claireho -@echo cleaning.. 17027f654740f2a26ad62a5c155af9199af9e69b889claireho -@rm -f *.h *.c *.cpp *.o *.junk cfiles.txt 171ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 172ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querudistclean: clean 173ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru -@rm -f Makefile 174ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 17585bf2e2fbc60a9f938064abc8127d61da7d19882Claire HoMakefile: $(srcdir)/Makefile.in $(top_builddir)/config.status 17685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho cd $(top_builddir) \ 17785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status 17885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho 179ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru.PHONY: doclean check all cpptest lotest dtest ctest clean distclean 180ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 181