xref: /freebsd/usr.bin/vi/catalog/Makefile (revision d0b2dbfa)
1f0957ccaSPeter Wemm#	$Id: Makefile,v 9.0 2012/10/19 15:13:11 zy Exp $
2f0957ccaSPeter Wemm
3f0957ccaSPeter Wemm.include <bsd.own.mk>
4f0957ccaSPeter Wemm
517f1329dSGlen BarberPACKAGE=vi
6f0957ccaSPeter WemmV=	${.CURDIR}/../../../contrib/nvi
7f0957ccaSPeter Wemm
817f1329dSGlen BarberFILESGROUPS+=VICAT
99da80e9eSGlen BarberCAT=	dutch english french german polish ru_RU.KOI8-R spanish swedish \
10110d525eSBaptiste Daroussin	uk_UA.KOI8-U zh_CN.GB2312 tr_TR.ISO8859-9 tr_TR.UTF-8
119da80e9eSGlen BarberVICAT=		${CAT}
1217f1329dSGlen BarberVICATDIR=	${FILESDIR}
1317f1329dSGlen BarberVICATPACKAGE=	${PACKAGE}
14f0957ccaSPeter Wemm
15f0957ccaSPeter WemmSCAN=	${V}/cl/*.c ${V}/common/*.c ${V}/ex/*.c ${V}/vi/*.c
16f0957ccaSPeter Wemm
17f0957ccaSPeter Wemm.PATH: ${V}/catalog
18f0957ccaSPeter Wemm
19f0957ccaSPeter Wemmall:		dump
20f0957ccaSPeter Wemm
21f0957ccaSPeter Wemmbuild-tools:	dump
22755cc40cSBaptiste DaroussinWARNS=		3
23f0957ccaSPeter Wemm
249b67bbbaSPeter Wemm# Helper since iconv is non trivial to make a build tool
259b67bbbaSPeter Wemmutf8convert:
269b67bbbaSPeter Wemm.for c in dutch french german spanish swedish
279b67bbbaSPeter Wemm	iconv -f ISO8859-1 -t UTF-8 $V/catalog/$c.base > $c.UTF-8.base
28f0957ccaSPeter Wemm.endfor
299b67bbbaSPeter Wemm	iconv -f ISO8859-2 -t UTF-8 $V/catalog/polish.base > polish.UTF-8.base
309b67bbbaSPeter Wemm	iconv -f GB2312 -t UTF-8 $V/catalog/zh_CN.GB2312.base > zh_CN.UTF-8.base
319b67bbbaSPeter Wemm	iconv -f KOI8-R -t UTF-8 $V/catalog/ru_RU.KOI8-R.base > ru_RU.UTF-8.base
329b67bbbaSPeter Wemm	iconv -f KOI8-U -t UTF-8 $V/catalog/uk_UA.KOI8-U.base > uk_UA.UTF-8.base
33f0957ccaSPeter Wemm
349b67bbbaSPeter Wemm.for c in dutch french german polish spanish swedish zh_CN ru_RU uk_UA
359b67bbbaSPeter WemmCAT+=	$c.UTF-8
369b67bbbaSPeter Wemm.endfor
376c43122aSPeter Wemm
38f0957ccaSPeter Wemm.for c in ${CAT}
39f0957ccaSPeter Wemm${c}:	${c}.base
4093f42260SAlexander Kabaev	echo "... $c";							\
41f0957ccaSPeter Wemm	rm -f $c;							\
42adbb8a93SEd Maste	env LC_ALL=C sort -u ${.ALLSRC} |				\
43f0957ccaSPeter Wemm	awk '{								\
44f0957ccaSPeter Wemm		if ($$1 == 1) {						\
45f0957ccaSPeter Wemm			print "\nMESSAGE NUMBER 1 IS NOT LEGAL";	\
46f0957ccaSPeter Wemm			exit 1;						\
47f0957ccaSPeter Wemm		}							\
48f0957ccaSPeter Wemm		if (++nline > $$1) {					\
49f0957ccaSPeter Wemm			print "DUPLICATE MESSAGE NUMBER " $$1;		\
50f0957ccaSPeter Wemm			exit 1;						\
51f0957ccaSPeter Wemm		}							\
5293f42260SAlexander Kabaev		print $$0;						\
53f0957ccaSPeter Wemm	}' |								\
54f0957ccaSPeter Wemm	sed -e '1s/^/$$set 1~$$quote "~/; 1y/~/\n/' |			\
55f0957ccaSPeter Wemm	gencat $c /dev/stdin;						\
56f0957ccaSPeter Wemm	chmod 444 $c;							\
57f0957ccaSPeter Wemm	if grep DUPLICATE $c > /dev/null; then				\
58f0957ccaSPeter Wemm		grep DUPLICATE $@;					\
59f0957ccaSPeter Wemm	fi;								\
60f0957ccaSPeter Wemm	if grep 'NOT LEGAL' $c > /dev/null; then			\
61f0957ccaSPeter Wemm		grep 'NOT LEGAL' $@;					\
62f0957ccaSPeter Wemm	fi
63f0957ccaSPeter Wemm.endfor
64f0957ccaSPeter Wemm
65f0957ccaSPeter WemmCHK=	dutch.check english.check french.check german.check \
66f0957ccaSPeter Wemm	polish.check ru_RU.KOI8-R.check spanish.check swedish.check \
67f0957ccaSPeter Wemm	uk_UA.KOI8-U.check zh_CN.GB2312.check
68f0957ccaSPeter Wemmcheck: ${CHK}
69f0957ccaSPeter Wemm.for c in ${CAT}
70f0957ccaSPeter Wemm${c}.check: ${c}.base
71f0957ccaSPeter Wemm	@echo "... $c";							\
72f0957ccaSPeter Wemm	f=${.ALLSRC:S;.base$;;};					\
73f0957ccaSPeter Wemm	(echo "Unused message id's (this is okay):";			\
74f0957ccaSPeter Wemm	awk '{								\
75f0957ccaSPeter Wemm		while (++nline < $$1)					\
76f0957ccaSPeter Wemm			printf "%03d\n", nline;				\
77f0957ccaSPeter Wemm	}' < $$f.base;							\
78f0957ccaSPeter Wemm	echo =========================;					\
79f0957ccaSPeter Wemm	echo "MISSING ERROR MESSAGES (Please add!):";			\
80f0957ccaSPeter Wemm	awk '{print $$1}' < $$f.base | sort -u > __ck1;			\
81f0957ccaSPeter Wemm	awk '{print $$1}' < english.base | sort -u > __ck2;		\
82f0957ccaSPeter Wemm	comm -13 __ck1 __ck2;						\
83f0957ccaSPeter Wemm	echo =========================;					\
84f0957ccaSPeter Wemm	echo "Extra error messages (just delete them):";		\
85f0957ccaSPeter Wemm	comm -23 __ck1 __ck2;						\
86f0957ccaSPeter Wemm	echo =========================;					\
87f0957ccaSPeter Wemm	echo "MESSAGES WITH THE SAME MESSAGE ID's (FIX!):";		\
88f0957ccaSPeter Wemm	for j in							\
89adbb8a93SEd Maste	    `sed '/^$$/d' < $$f.base | LC_ALL=C sort -u |		\
90f0957ccaSPeter Wemm	    awk '{print $$1}' | uniq -d`; do				\
91f0957ccaSPeter Wemm		egrep $$j $$f.base;					\
92f0957ccaSPeter Wemm	done;								\
93f0957ccaSPeter Wemm	echo =========================;					\
94f0957ccaSPeter Wemm	echo "Duplicate messages, both id and message (this is okay):";	\
95adbb8a93SEd Maste	sed '/^$$/d' < $$f.base | LC_ALL=C sort | uniq -c |		\
96f0957ccaSPeter Wemm	awk '$$1 != 1 { print $$0 }' | sort -n;				\
97f0957ccaSPeter Wemm	echo =========================) > $c
98f0957ccaSPeter Wemm.endfor
99f0957ccaSPeter Wemm
100f0957ccaSPeter Wemmenglish.base: dump ${SCAN} #Makefile
10129df9f6bSBryan Drewery	${BTOOLSPATH:U.}/dump ${SCAN} |\
102f0957ccaSPeter Wemm	sed -e '/|/!d' \
103f0957ccaSPeter Wemm	    -e 's/|/ "/' \
104f0957ccaSPeter Wemm	    -e 's/^"//' |\
105755cc40cSBaptiste Daroussin	LC_ALL=C sort -nu > $@
106f0957ccaSPeter Wemm
107f0957ccaSPeter Wemm
108c63c5ab0SBryan DreweryDEPENDOBJS+=	dump
109c63c5ab0SBryan Drewerydump: ${BUILD_TOOLS_META}
110f0957ccaSPeter Wemm
111f0957ccaSPeter WemmCLEANFILES+= dump ${CAT} english.base *.check __ck1 __ck2
112f0957ccaSPeter Wemm
113f0957ccaSPeter WemmCATALOGS= ${CAT}
114f0957ccaSPeter WemmNLLINKS= nl_NL
115f0957ccaSPeter WemmENLINKS= en_AU en_CA en_GB en_NZ en_US
116f0957ccaSPeter WemmFRLINKS= fr_BE fr_CA fr_CH fr_FR
117f0957ccaSPeter WemmDELINKS= de_AT de_CH de_DE
118f0957ccaSPeter WemmESLINKS= es_ES
119f0957ccaSPeter WemmSVLINKS= sv_SE
120f0957ccaSPeter WemmPLLINKS= pl_PL
121f0957ccaSPeter Wemm
122f0957ccaSPeter WemmFILES=	${CATALOGS}
1237d8f797bSBryan DreweryFILESDIR= ${SHAREDIR}/vi/catalog
124f0957ccaSPeter WemmSYMLINKS=
125f0957ccaSPeter Wemm.for l in ${NLLINKS}
126f0957ccaSPeter WemmSYMLINKS+= dutch ${FILESDIR}/$l.ISO8859-1
127f0957ccaSPeter WemmSYMLINKS+= dutch ${FILESDIR}/$l.ISO8859-15
1289b67bbbaSPeter WemmSYMLINKS+= dutch.UTF-8 ${FILESDIR}/$l.UTF-8
129f0957ccaSPeter Wemm.endfor
130f0957ccaSPeter Wemm.for l in ${ENLINKS}
131f0957ccaSPeter WemmSYMLINKS+= english ${FILESDIR}/$l.ISO8859-1
132f0957ccaSPeter WemmSYMLINKS+= english ${FILESDIR}/$l.ISO8859-15
133f0957ccaSPeter WemmSYMLINKS+= english ${FILESDIR}/$l.US-ASCII
1349b67bbbaSPeter WemmSYMLINKS+= english ${FILESDIR}/$l.UTF-8
135f0957ccaSPeter Wemm.endfor
136f0957ccaSPeter WemmSYMLINKS+= english ${FILESDIR}/POSIX
137f0957ccaSPeter WemmSYMLINKS+= english ${FILESDIR}/C
138f0957ccaSPeter Wemm.for l in ${FRLINKS}
139f0957ccaSPeter WemmSYMLINKS+= french ${FILESDIR}/$l.ISO8859-1
140f0957ccaSPeter WemmSYMLINKS+= french ${FILESDIR}/$l.ISO8859-15
1419b67bbbaSPeter WemmSYMLINKS+= french.UTF-8 ${FILESDIR}/$l.UTF-8
142f0957ccaSPeter Wemm.endfor
143f0957ccaSPeter Wemm.for l in ${DELINKS}
144f0957ccaSPeter WemmSYMLINKS+= german ${FILESDIR}/$l.ISO8859-1
145f0957ccaSPeter WemmSYMLINKS+= german ${FILESDIR}/$l.ISO8859-15
1469b67bbbaSPeter WemmSYMLINKS+= german.UTF-8 ${FILESDIR}/$l.UTF-8
147f0957ccaSPeter Wemm.endfor
148f0957ccaSPeter Wemm.for l in ${ESLINKS}
149f0957ccaSPeter WemmSYMLINKS+= spanish ${FILESDIR}/$l.ISO8859-1
150f0957ccaSPeter WemmSYMLINKS+= spanish ${FILESDIR}/$l.ISO8859-15
1519b67bbbaSPeter WemmSYMLINKS+= spanish.UTF-8 ${FILESDIR}/$l.UTF-8
152f0957ccaSPeter Wemm.endfor
153f0957ccaSPeter Wemm.for l in ${SVLINKS}
154f0957ccaSPeter WemmSYMLINKS+= swedish ${FILESDIR}/$l.ISO8859-1
155f0957ccaSPeter WemmSYMLINKS+= swedish ${FILESDIR}/$l.ISO8859-15
156f0957ccaSPeter WemmSYMLINKS+= swedish.UTF-8 ${FILESDIR}/$l.UTF-8
157f0957ccaSPeter Wemm.endfor
158f0957ccaSPeter Wemm.for l in ${PLLINKS}
1599b67bbbaSPeter WemmSYMLINKS+= polish ${FILESDIR}/$l.ISO8859-2
160f0957ccaSPeter WemmSYMLINKS+= polish.UTF-8 ${FILESDIR}/$l.UTF-8
161f0957ccaSPeter Wemm.endfor
1629b67bbbaSPeter WemmSYMLINKS+= zh_CN.GB2312 ${FILESDIR}/zh_CN.GB18030
1639b67bbbaSPeter WemmSYMLINKS+= zh_CN.GB2312 ${FILESDIR}/zh_CN.GBK
1649b67bbbaSPeter WemmSYMLINKS+= zh_CN.GB2312 ${FILESDIR}/zh_CN.eucCN
165f0957ccaSPeter Wemm
166f0957ccaSPeter Wemm.include <bsd.prog.mk>
167