xref: /dflybsd-src/usr.bin/vi/catalog/Makefile (revision 9d6cd60188fb1eb53b70f94089552f34d78270c0)
1b06105caSJohn Marino#	$Id: Makefile,v 9.0 2012/10/19 15:13:11 zy Exp $
2b06105caSJohn Marino# $FreeBSD: head/usr.bin/vi/catalog/Makefile 254244 2013-08-12 09:56:52Z peter $
3b06105caSJohn Marino
4b06105caSJohn Marino.include <bsd.own.mk>
5b06105caSJohn Marino
6babded0eSJohn MarinoV=	${.CURDIR}/../../../contrib/nvi2
7b06105caSJohn Marino
8b06105caSJohn MarinoCAT=	dutch english french german polish ru_RU.KOI8-R spanish swedish \
9b06105caSJohn Marino	uk_UA.KOI8-U zh_CN.GB2312
10b06105caSJohn Marino
11b06105caSJohn MarinoSCAN=	${V}/cl/*.c ${V}/common/*.c ${V}/ex/*.c ${V}/vi/*.c
12b06105caSJohn Marino
13b06105caSJohn Marino.PATH: ${V}/catalog
14b06105caSJohn Marino
15*9d6cd601Szrjbuildfiles:
16b06105caSJohn Marino
17b06105caSJohn Marino# Helper since iconv is non trivial to make a build tool
18*9d6cd601Szrjutf8convert: .PHONY
19b06105caSJohn Marino.for c in dutch french german spanish swedish
20b06105caSJohn Marino	iconv -f ISO8859-1 -t UTF-8 $V/catalog/$c.base > $c.UTF-8.base
21b06105caSJohn Marino.endfor
22b06105caSJohn Marino	iconv -f ISO8859-2 -t UTF-8 $V/catalog/polish.base > polish.UTF-8.base
23b06105caSJohn Marino	iconv -f GB2312 -t UTF-8 $V/catalog/zh_CN.GB2312.base > zh_CN.UTF-8.base
24b06105caSJohn Marino	iconv -f KOI8-R -t UTF-8 $V/catalog/ru_RU.KOI8-R.base > ru_RU.UTF-8.base
25b06105caSJohn Marino	iconv -f KOI8-U -t UTF-8 $V/catalog/uk_UA.KOI8-U.base > uk_UA.UTF-8.base
26b06105caSJohn Marino
27b06105caSJohn Marino.for c in dutch french german polish spanish swedish zh_CN ru_RU uk_UA
28b06105caSJohn MarinoCAT+=	$c.UTF-8
29b06105caSJohn Marino.endfor
30b06105caSJohn Marino
31*9d6cd601Szrjall:	${CAT}
32*9d6cd601Szrj
33b06105caSJohn Marino.for c in ${CAT}
34b06105caSJohn Marino${c}:	${c}.base
35b06105caSJohn Marino	@echo "... $c";							\
36b06105caSJohn Marino	rm -f $c;							\
37*9d6cd601Szrj	env LANG=C sort -u ${.ALLSRC} |					\
38b06105caSJohn Marino	awk '{								\
39b06105caSJohn Marino		if ($$1 == 1) {						\
40b06105caSJohn Marino			print "\nMESSAGE NUMBER 1 IS NOT LEGAL";	\
41b06105caSJohn Marino			exit 1;						\
42b06105caSJohn Marino		}							\
43b06105caSJohn Marino		if (++nline > $$1) {					\
44b06105caSJohn Marino			print "DUPLICATE MESSAGE NUMBER " $$1;		\
45b06105caSJohn Marino			exit 1;						\
46b06105caSJohn Marino		}							\
47*9d6cd601Szrj		print $$0;						\
48b06105caSJohn Marino	}' |								\
49b06105caSJohn Marino	sed -e '1s/^/$$set 1~$$quote "~/; 1y/~/\n/' |			\
50b06105caSJohn Marino	gencat $c /dev/stdin;						\
51b06105caSJohn Marino	chmod 444 $c;							\
52b06105caSJohn Marino	if grep DUPLICATE $c > /dev/null; then				\
53b06105caSJohn Marino		grep DUPLICATE $@;					\
54b06105caSJohn Marino	fi;								\
55b06105caSJohn Marino	if grep 'NOT LEGAL' $c > /dev/null; then			\
56b06105caSJohn Marino		grep 'NOT LEGAL' $@;					\
57b06105caSJohn Marino	fi
58b06105caSJohn Marino.endfor
59b06105caSJohn Marino
60b06105caSJohn MarinoCHK=	dutch.check english.check french.check german.check \
61b06105caSJohn Marino	polish.check ru_RU.KOI8-R.check spanish.check swedish.check \
62b06105caSJohn Marino	uk_UA.KOI8-U.check zh_CN.GB2312.check
63b06105caSJohn Marinocheck: ${CHK}
64b06105caSJohn Marino.for c in ${CAT}
65b06105caSJohn Marino${c}.check: ${c}.base
66b06105caSJohn Marino	@echo "... $c";							\
67b06105caSJohn Marino	f=${.ALLSRC:S;.base$;;};					\
68b06105caSJohn Marino	(echo "Unused message id's (this is okay):";			\
69b06105caSJohn Marino	awk '{								\
70b06105caSJohn Marino		while (++nline < $$1)					\
71b06105caSJohn Marino			printf "%03d\n", nline;				\
72b06105caSJohn Marino	}' < $$f.base;							\
73b06105caSJohn Marino	echo =========================;					\
74b06105caSJohn Marino	echo "MISSING ERROR MESSAGES (Please add!):";			\
75b06105caSJohn Marino	awk '{print $$1}' < $$f.base | sort -u > __ck1;			\
76b06105caSJohn Marino	awk '{print $$1}' < english.base | sort -u > __ck2;		\
77b06105caSJohn Marino	comm -13 __ck1 __ck2;						\
78b06105caSJohn Marino	echo =========================;					\
79b06105caSJohn Marino	echo "Extra error messages (just delete them):";		\
80b06105caSJohn Marino	comm -23 __ck1 __ck2;						\
81b06105caSJohn Marino	echo =========================;					\
82b06105caSJohn Marino	echo "MESSAGES WITH THE SAME MESSAGE ID's (FIX!):";		\
83b06105caSJohn Marino	for j in							\
84b06105caSJohn Marino	    `sed '/^$$/d' < $$f.base | LANG=C sort -u |			\
85b06105caSJohn Marino	    awk '{print $$1}' | uniq -d`; do				\
86b06105caSJohn Marino		egrep $$j $$f.base;					\
87b06105caSJohn Marino	done;								\
88b06105caSJohn Marino	echo =========================;					\
89b06105caSJohn Marino	echo "Duplicate messages, both id and message (this is okay):";	\
90b06105caSJohn Marino	sed '/^$$/d' < $$f.base | LANG=C sort | uniq -c |			\
91b06105caSJohn Marino	awk '$$1 != 1 { print $$0 }' | sort -n;				\
92b06105caSJohn Marino	echo =========================) > $c
93b06105caSJohn Marino.endfor
94b06105caSJohn Marino
95*9d6cd601Szrjenglish.base: ${SCAN}
96*9d6cd601Szrj	${.OBJDIR}/../vidump/vidump.nx ${SCAN} | \
97*9d6cd601Szrj	    sed -e '/|/!d' -e 's/|/ "/' -e 's/^"//' | sort -nu > $@
98b06105caSJohn Marino
99*9d6cd601SzrjCLEANFILES+= ${CAT} english.base *.check __ck1 __ck2
100b06105caSJohn Marino
101b06105caSJohn MarinoCATALOGS= ${CAT}
102b06105caSJohn MarinoNLLINKS= nl_NL
103b06105caSJohn MarinoENLINKS= en_AU en_CA en_GB en_NZ en_US
104b06105caSJohn MarinoFRLINKS= fr_BE fr_CA fr_CH fr_FR
105b06105caSJohn MarinoDELINKS= de_AT de_CH de_DE
106b06105caSJohn MarinoESLINKS= es_ES
107b06105caSJohn MarinoSVLINKS= sv_SE
108b06105caSJohn MarinoPLLINKS= pl_PL
109b06105caSJohn Marino
110b06105caSJohn MarinoFILES=	${CATALOGS}
111*9d6cd601SzrjFILESFROUPS=	FILES
112*9d6cd601SzrjFILESDIR= ${SHAREDIR}/vi/catalog
113b06105caSJohn MarinoSYMLINKS=
114b06105caSJohn Marino.for l in ${NLLINKS}
115b06105caSJohn MarinoSYMLINKS+= dutch ${FILESDIR}/$l.ISO8859-1
116b06105caSJohn MarinoSYMLINKS+= dutch ${FILESDIR}/$l.ISO8859-15
117b06105caSJohn MarinoSYMLINKS+= dutch.UTF-8 ${FILESDIR}/$l.UTF-8
118b06105caSJohn Marino.endfor
119b06105caSJohn Marino.for l in ${ENLINKS}
120b06105caSJohn MarinoSYMLINKS+= english ${FILESDIR}/$l.ISO8859-1
121b06105caSJohn MarinoSYMLINKS+= english ${FILESDIR}/$l.ISO8859-15
122b06105caSJohn MarinoSYMLINKS+= english ${FILESDIR}/$l.US-ASCII
123b06105caSJohn MarinoSYMLINKS+= english ${FILESDIR}/$l.UTF-8
124b06105caSJohn Marino.endfor
125b06105caSJohn MarinoSYMLINKS+= english ${FILESDIR}/POSIX
126b06105caSJohn MarinoSYMLINKS+= english ${FILESDIR}/C
127b06105caSJohn Marino.for l in ${FRLINKS}
128b06105caSJohn MarinoSYMLINKS+= french ${FILESDIR}/$l.ISO8859-1
129b06105caSJohn MarinoSYMLINKS+= french ${FILESDIR}/$l.ISO8859-15
130b06105caSJohn MarinoSYMLINKS+= french.UTF-8 ${FILESDIR}/$l.UTF-8
131b06105caSJohn Marino.endfor
132b06105caSJohn Marino.for l in ${DELINKS}
133b06105caSJohn MarinoSYMLINKS+= german ${FILESDIR}/$l.ISO8859-1
134b06105caSJohn MarinoSYMLINKS+= german ${FILESDIR}/$l.ISO8859-15
135b06105caSJohn MarinoSYMLINKS+= german.UTF-8 ${FILESDIR}/$l.UTF-8
136b06105caSJohn Marino.endfor
137b06105caSJohn Marino.for l in ${ESLINKS}
138b06105caSJohn MarinoSYMLINKS+= spanish ${FILESDIR}/$l.ISO8859-1
139b06105caSJohn MarinoSYMLINKS+= spanish ${FILESDIR}/$l.ISO8859-15
140b06105caSJohn MarinoSYMLINKS+= spanish.UTF-8 ${FILESDIR}/$l.UTF-8
141b06105caSJohn Marino.endfor
142b06105caSJohn Marino.for l in ${SVLINKS}
143b06105caSJohn MarinoSYMLINKS+= swedish ${FILESDIR}/$l.ISO8859-1
144b06105caSJohn MarinoSYMLINKS+= swedish ${FILESDIR}/$l.ISO8859-15
145b06105caSJohn MarinoSYMLINKS+= swedish.UTF-8 ${FILESDIR}/$l.UTF-8
146b06105caSJohn Marino.endfor
147b06105caSJohn Marino.for l in ${PLLINKS}
148b06105caSJohn MarinoSYMLINKS+= polish ${FILESDIR}/$l.ISO8859-2
149b06105caSJohn MarinoSYMLINKS+= polish.UTF-8 ${FILESDIR}/$l.UTF-8
150b06105caSJohn Marino.endfor
151b06105caSJohn MarinoSYMLINKS+= zh_CN.GB2312 ${FILESDIR}/zh_CN.GB18030
152b06105caSJohn MarinoSYMLINKS+= zh_CN.GB2312 ${FILESDIR}/zh_CN.GBK
153b06105caSJohn MarinoSYMLINKS+= zh_CN.GB2312 ${FILESDIR}/zh_CN.eucCN
154b06105caSJohn Marino
155b06105caSJohn Marino.include <bsd.prog.mk>
156