1219019Sgabor# $FreeBSD$
2219019Sgabor
3219019SgaborSUBDIR=	tablegen refgen	posix gnu
4219019Sgabor
5219019SgaborENCODING= ASCII ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4	ISO8859-5 ISO8859-6 \
6219019Sgabor	ISO8859-7 ISO8859-8 ISO8859-9 ISO8859-10 ISO8859-11 ISO8859-13 \
7219019Sgabor	ISO8859-14 ISO8859-15 ISO8859-16 ARMSCII-8 BIG5 BIG5-HKSCS \
8219019Sgabor	CP1131 CP1251 CP866 CP949 GB18030 GB2312 GBK VISCII KOI8-R KOI8-U \
9219019Sgabor	PT154 SHIFT_JIS EUC-CN EUC-JP EUC-KR
10219019Sgabor
11219019Sgabor.if defined(EXTRA_CHECK)
12219019SgaborENCODING+= ATARIST BIG5-2003 C99 CP1046 CP1124 CP1125 CP1129 CP1131 CP1133 \
13219019Sgabor	CP1161 CP1162 CP1163 CP1250 CP1251 CP1252 CP1253 CP1254 CP1255 \
14219019Sgabor	CP1256 CP1257 CP1258 CP437 CP737 CP775 CP850 CP852 CP853 CP855 \
15219019Sgabor	CP856 CP857 CP858 CP860 CP861 CP862 CP863 CP864 CP865 CP866 CP869 \
16219019Sgabor	CP874 CP922 CP932 CP936 CP943 CP949 CP950 DEC-HANYU EUC-TW \
17219019Sgabor	EUC-JIS-2004 GB18030 GBK GEORGIAN-ACADEMY GEORGIAN-PS HP-ROMAN8 \
18219019Sgabor	HZ ISO-2022-CN ISO-2022-CN-EXT ISO-2022-JP ISO-2022-JP-1 \
19219019Sgabor	ISO-2022-JP-2 ISO-2022-JP-2004 ISO-2022-KR ISO-IR-14 ISO-IR-57 \
20219019Sgabor	ISO-IR-165 JAVA JIS_X0201 JIS_X0208-1990 JOHAB KOI8-RU KOI8-T \
21219019Sgabor	KZ-1048 MULELAO-1 NEXTSTEP PT154 RISCOS-LATIN1 TCVN5712-1 \
22219019Sgabor	TDS565
23219019Sgabor#
24219019Sgabor# MAC encodings are known to be outdated in GNU so it's no good
25219019Sgabor# to ensure compatibility blindly here
26219019Sgabor#
27219019Sgabor#ENCODING+= MACARABIC MACCENTRALEUROPE MACCROATIAN MACCYRILLIC MACGREEK \
28219019Sgabor#	MACICELAND MACROMANIA MACROMAN MACTHAI MACTURKISH MACUKRAINE \
29219019Sgabor#	MACHEBREW
30219019Sgabor.endif
31219019Sgabor
32219019SgaborGEN_FWD?= ${.CURDIR}/tablegen/tablegen -t
33219019SgaborGEN_REV?= ${.CURDIR}/tablegen/tablegen -tr
34219019SgaborREF_FWD?= ${.CURDIR}/refgen/refgen -t
35219019SgaborREF_REV?= ${.CURDIR}/refgen/refgen -tr
36219019SgaborCMP?=	${.CURDIR}/tablegen/cmp.sh
37219019Sgabor
38219019Sgabormake-ref: refgen
39219019Sgabor	mkdir -p ref
40219019Sgabor.for enc in ${ENCODING}
41219019Sgabor	@echo "Generating ${enc} --> UTF-32 ..."
42219019Sgabor	-@${REF_FWD} ${enc} >ref/${enc}
43219019Sgabor	@echo "Generating UTF-32 --> ${enc} ..."
44219019Sgabor	-@${REF_REV} ${enc} >ref/${enc}-rev
45219019Sgabor.endfor
46219019Sgabor
47219019Sgaborcheck: tablegen
48219019Sgabor	mkdir -p output
49219019Sgabor.for enc in ${ENCODING}
50219019Sgabor	@echo "Checking ${enc} --> UTF-32 ..."
51219019Sgabor	-@${GEN_FWD} ${enc} >output/${enc}
52219019Sgabor	@${CMP} ref/${enc} output/${enc}
53219019Sgabor	@echo "Checking UTF-32 --> ${enc} ..."
54219019Sgabor	-@${GEN_REV} ${enc} >output/${enc}-rev
55219019Sgabor	@${CMP} ref/${enc}-rev output/${enc}-rev
56219019Sgabor.endfor
57219019Sgabor
58219019Sgaborperftest: refgen tablegen
59219019Sgabor.for enc in ${ENCODING}
60219019Sgabor	@echo "Checking ${enc} --> UTF-32 ..."
61219019Sgabor	@echo "GNU runtime:"
62219019Sgabor	@/usr/bin/time -h ${REF_FWD} ${enc} >/dev/null
63219019Sgabor	@echo "BSD runtime:"
64219019Sgabor	@/usr/bin/time -h ${GEN_FWD} ${enc} >/dev/null
65219019Sgabor	@echo "Checking UTF-32 --> ${enc} ..."
66219019Sgabor	@echo "GNU runtime:"
67219019Sgabor	@/usr/bin/time -h ${REF_REV} ${enc} >/dev/null
68219019Sgabor	@echo "BSD runtime:"
69219019Sgabor	@/usr/bin/time -h ${GEN_REV} ${enc} >/dev/null
70219019Sgabor.endfor
71219019Sgabor
72219019Sgaborposixtest: posix
73219019Sgabor	@${.CURDIR}/posix/posix
74219019Sgabor
75219019Sgaborgnutest: gnu
76219019Sgabor	@${.CURDIR}/gnu/gnu
77219019Sgabor
78219019Sgabortest-everything: check perftest posixtest gnutest
79219019Sgabor
80219019SgaborCLEANDIRS+= output
81219019Sgabor
82219019Sgabor.include <bsd.prog.mk>
83