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