1## 2## Copyright (c) 1999-2006, International Business Machines Corporation and 3## others. All Rights Reserved. 4## 5## 6## THE PURPOSE OF THIS TEST 7## 8## This tests all public header files ( 9## 10## To run it simply type 'make check'. You SHOULD see: 11## 12## unicode/uchar.h - 0 13## unicode/uchriter.h - 0 14## unicode/ucnv.h - 0 15## 16## .. etc. Anything other than zero is an error. (except for the deprecation tests, where '1' is the correct value) 17## 18## 19## If a header fails the C compile because it's a C++ header, add it to the 20## file named 'cxxfiles.txt' in this directory. 21## 22## If a header fails because it is deprecated, add it to the 'dfiles.txt' 23## 24## 25 26 27include $(shell icu-config --incfile) 28srcdir=. 29DIRS=$(prefix)/include/unicode 30LDIRS=$(prefix)/include/layout 31 32all: 33 @echo Please read this Makefile for more information. 34 @echo run \'$(MAKE) check\' to run the test 35 36check: dtest ctest cpptest lotest doclean drafttest deprtest internaltest obsoletetest 37 @echo "All header tests have finished. If deprecation #errors appeared, " 38 @echo " add files to hdrtst/dfiles.txt" 39 @echo "#################################################################" 40 @echo 41 42# break dependency 43doclean: 44 make clean 45 46cpptest: 47 @echo "C++ test #######################################################" 48 @rm -f Makefile.sub 49 @echo 'Testing all header files under C++' 50 @echo 'the number after the hyphen (-) refers to the exit code - should be zero!' 51 @for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \ 52 incfile=`basename $$file .h` ; \ 53 echo -n "C++ unicode/$$incfile.h - " ; \ 54 echo '#include "'unicode/$$incfile'.h"' > ht_$$incfile.cpp ; \ 55 echo 'void junk(){}' >> ht_$$incfile.cpp ; \ 56 $(COMPILE.cc) -c $(cppflags) ht_$$incfile.cpp ; \ 57 echo $$? ; \ 58 done 59 60lotest: 61 @echo "Layout test #######################################################" 62 @rm -f Makefile.sub 63 @echo 'Testing all layout files under C++' 64 @echo 'the number after the hyphen (-) refers to the exit code - should be zero!' 65 @for file in $(prefix)/include/layout/*.h; do \ 66 incfile=`basename $$file .h` ; \ 67 echo -n "C++ layout/$$incfile.h - " ; \ 68 echo '#include "'layout/$$incfile'.h"' > ht_$$incfile.cpp ; \ 69 echo 'void junk(){}' >> ht_$$incfile.cpp ; \ 70 $(COMPILE.cc) -c $(cppflags) -I$(prefix)/include/layout ht_$$incfile.cpp ; \ 71 echo $$? ; \ 72 done 73 74dtest: 75 @rm -f Makefile.sub 76 @echo "Deprecation #######################################################" 77 @echo 'Should be 1 in each case if file is properly obsoleted.' 78 @for stub in `cat $(srcdir)/dfiles.txt | grep -v '^#'` ; do \ 79 file=unicode/$$stub \ 80 incfile=`basename $$file .h` ; \ 81 echo -n "C++ unicode/$$incfile.h - " ; \ 82 echo '#include "'unicode/$$incfile'.h"' > ht_$$incfile.cpp ; \ 83 echo 'void junk(){}' >> ht_$$incfile.cpp ; \ 84 echo > ht_dep.junk ; \ 85 $(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" ; \ 86 RES=$$? ; \ 87 echo $$RES ; \ 88 fgrep -q "$$incfile.h header is obsolete" ht_dep.junk || echo "** FAIL Header unicode/$$incfile.h is not obsoleted properly" ; \ 89 rm -f unicode/$$stub ; \ 90 done 91 92# < ht_dep.junk && ; \ 93 94 95ctest: 96 @echo "C Test #######################################################" 97 @echo " (if any C++ files show up here, stop the test and add them to hdrtst/cxxfiles.txt) " 98 @rm -f Makefile.sub 99 @echo Building test harness for header files in ../../common and ../../i18n 100 @echo 'the number after the hyphen (-) refers to the exit code - should be zero!' 101 @for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/cxxfiles.txt | tee cfiles.txt`; do \ 102 incfile=`basename $$file .h` ; \ 103 echo -n "C unicode/$$incfile.h - " ; \ 104 echo '#include "'unicode/$$incfile'.h"' > ht_$$incfile.c ; \ 105 echo 'void junk(void);' >> ht_$$incfile.c ; \ 106 echo 'void junk(){}' >> ht_$$incfile.c ; \ 107 $(COMPILE.c) -c $(cppflags) ht_$$incfile.c ; \ 108 RES=$$? ; \ 109 echo $$RES ; \ 110 done 111 112drafttest: 113 @echo "U_HIDE_DRAFT_API Test #######################################################" 114 @rm -f Makefile.sub 115 @echo Building test harness for header files in ../../common and ../../i18n 116 @echo 'the number after the hyphen (-) refers to the exit code - should be zero!' 117 @for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \ 118 incfile=`basename $$file .h` ; \ 119 echo -n " unicode/$$incfile.h - " ; \ 120 echo '#define U_HIDE_DRAFT_API' > hd_$$incfile.c; \ 121 echo '#include "'unicode/$$incfile'.h"' >> ht_$$incfile.c ; \ 122 echo 'void junk(void);' >> hd_$$incfile.c ; \ 123 echo 'void junk(){}' >> hd_$$incfile.c ; \ 124 $(COMPILE.cc) -c $(cppflags) hd_$$incfile.c ; \ 125 RES=$$? ; \ 126 echo $$RES ; \ 127 done 128 129deprtest: 130 @echo "U_HIDE_DEPRECATED_API Test #######################################################" 131 @rm -f Makefile.sub 132 @echo Building test harness for header files in ../../common and ../../i18n 133 @echo 'the number after the hyphen (-) refers to the exit code - should be zero!' 134 @for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \ 135 incfile=`basename $$file .h` ; \ 136 echo -n " unicode/$$incfile.h - " ; \ 137 echo '#define U_HIDE_DEPRECATED_API' > hdp_$$incfile.c; \ 138 echo '#include "'unicode/$$incfile'.h"' >> hdp_$$incfile.c ; \ 139 echo 'void junk(void);' >> hdp_$$incfile.c ; \ 140 echo 'void junk(){}' >> hdp_$$incfile.c ; \ 141 $(COMPILE.cc) -c $(cppflags) hdp_$$incfile.c ; \ 142 RES=$$? ; \ 143 echo $$RES ; \ 144 done 145 146internaltest: 147 @echo "U_HIDE_INTERNAL_API Test #######################################################" 148 @rm -f Makefile.sub 149 @echo Building test harness for header files in ../../common and ../../i18n 150 @echo 'the number after the hyphen (-) refers to the exit code - should be zero!' 151 @for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \ 152 incfile=`basename $$file .h` ; \ 153 echo -n " unicode/$$incfile.h - " ; \ 154 echo '#define U_HIDE_INTERNAL_API' > hin_$$incfile.c; \ 155 echo '#include "'unicode/$$incfile'.h"' >> hin_$$incfile.c ; \ 156 echo 'void junk(void);' >> hin_$$incfile.c ; \ 157 echo 'void junk(){}' >> hin_$$incfile.c ; \ 158 $(COMPILE.cc) -c $(cppflags) hin_$$incfile.c ; \ 159 RES=$$? ; \ 160 echo $$RES ; \ 161 done 162 163obsoletetest: 164 @echo "U_HIDE_OBSOLETE_API Test #######################################################" 165 @rm -f Makefile.sub 166 @echo Building test harness for header files in ../../common and ../../i18n 167 @echo 'the number after the hyphen (-) refers to the exit code - should be zero!' 168 @for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \ 169 incfile=`basename $$file .h` ; \ 170 echo -n " unicode/$$incfile.h - " ; \ 171 echo '#define U_HIDE_OBSOLETE_API' > hob_$$incfile.c; \ 172 echo '#include "'unicode/$$incfile'.h"' >> hob_$$incfile.c ; \ 173 echo 'void junk(void);' >> hob_$$incfile.c ; \ 174 echo 'void junk(){}' >> hob_$$incfile.c ; \ 175 $(COMPILE.cc) -c $(cppflags) hob_$$incfile.c ; \ 176 RES=$$? ; \ 177 echo $$RES ; \ 178 done 179 180clean: 181 -@rm -f *.h *.c *.cpp *.o *.junk 182 183distclean: clean 184 -@rm -f Makefile 185 186 187.PHONY: doclean check all cpptest lotest dtest ctest clean distclean 188 189