xref: /netbsd/external/bsd/nvi/dist/catalog/Makefile (revision 08d478e3)
13a571abcSchristos#	Id: Makefile,v 8.30 1996/11/27 11:59:09 bostic Exp  (Berkeley) Date: 1996/11/27 11:59:09
23a571abcSchristos
3*08d478e3SchristosCAT=	dutch english french german ru_RU.KOI8-R spanish swedish
43a571abcSchristosFILES=	../cl/*.c ../common/*.c ../ex/*.c ../vi/*.c
53a571abcSchristos
63a571abcSchristosall: dump ${CAT}
73a571abcSchristos
83a571abcSchristos${CAT}: english.base
93a571abcSchristos	@echo "... $@";							\
103a571abcSchristos	rm -f $@;							\
113a571abcSchristos	sort -u $@.base |						\
123a571abcSchristos	awk '{								\
133a571abcSchristos		if ($$1 == 1) {						\
143a571abcSchristos			print "\nMESSAGE NUMBER 1 IS NOT LEGAL";	\
153a571abcSchristos			exit 1;						\
163a571abcSchristos		}							\
173a571abcSchristos		if (++nline > $$1) {					\
183a571abcSchristos			print "DUPLICATE MESSAGE NUMBER " $$1;		\
193a571abcSchristos			exit 1;						\
203a571abcSchristos		}							\
213a571abcSchristos		for (; nline < $$1; ++nline)				\
223a571abcSchristos			print "";					\
233a571abcSchristos		print $0;						\
243a571abcSchristos	}' |								\
253a571abcSchristos	sed -e '1s/^/VI_MESSAGE_CATALOG/'				\
263a571abcSchristos	    -e '/"/s/^[^"]*"//'						\
273a571abcSchristos	    -e '1!s/"$$/X/' > $@;					\
283a571abcSchristos	chmod 444 $@;							\
293a571abcSchristos	if grep DUPLICATE $@ > /dev/null; then				\
303a571abcSchristos		grep DUPLICATE $@;					\
313a571abcSchristos	fi;								\
323a571abcSchristos	if grep 'NOT LEGAL' $@ > /dev/null; then			\
333a571abcSchristos		grep 'NOT LEGAL' $@;					\
343a571abcSchristos	fi
353a571abcSchristos
363a571abcSchristosCHK=	dutch.check english.check french.check german.check \
37*08d478e3Schristos	ru_RU.KOI8-R.check spanish.check swedish.check
383a571abcSchristoscheck: ${CHK}
393a571abcSchristos${CHK}: ${CAT}
403a571abcSchristos	@echo "... $@";							\
413a571abcSchristos	f=`basename $@ .check`;						\
423a571abcSchristos	(echo "Unused message id's (this is okay):";			\
433a571abcSchristos	awk '{								\
443a571abcSchristos		while (++nline < $$1)					\
453a571abcSchristos			printf "%03d\n", nline;				\
463a571abcSchristos	}' < $$f.base;							\
473a571abcSchristos	echo =========================;					\
483a571abcSchristos	echo "MISSING ERROR MESSAGES (Please add!):";			\
493a571abcSchristos	awk '{print $$1}' < $$f.base | sort -u > __ck1;			\
503a571abcSchristos	awk '{print $$1}' < english.base | sort -u > __ck2;		\
513a571abcSchristos	comm -13 __ck1 __ck2;						\
523a571abcSchristos	echo =========================;					\
533a571abcSchristos	echo "Extra error messages (just delete them):";		\
543a571abcSchristos	comm -23 __ck1 __ck2;						\
553a571abcSchristos	echo =========================;					\
563a571abcSchristos	echo "MESSAGES WITH THE SAME MESSAGE ID's (FIX!):";		\
573a571abcSchristos	for j in							\
583a571abcSchristos	    `sed '/^$$/d' < $$f.base | sort -u |			\
593a571abcSchristos	    awk '{print $$1}' | uniq -d`; do				\
603a571abcSchristos		egrep $$j $$f.base;					\
613a571abcSchristos	done;								\
623a571abcSchristos	echo =========================;					\
633a571abcSchristos	echo "Duplicate messages, both id and message (this is okay):";	\
643a571abcSchristos	sed '/^$$/d' < $$f.base | sort | uniq -c |			\
653a571abcSchristos	awk '$$1 != 1 { print $$0 }' | sort -n;				\
663a571abcSchristos	echo =========================;					\
673a571abcSchristos	echo "Duplicate messages, just message (this is okay):";	\
683a571abcSchristos	sed '/^$$/d' < $$f | sort | uniq -c |				\
693a571abcSchristos	awk '$$1 != 1 { print $$0 }' | sort -n;				\
703a571abcSchristos	echo =========================) > $@
713a571abcSchristos
723a571abcSchristosenglish.base: dump ${FILES} #Makefile
733a571abcSchristos	./dump ${FILES} |\
743a571abcSchristos	sed -e '/|/!d' \
753a571abcSchristos	    -e 's/|/ "/' \
763a571abcSchristos	    -e 's/^"//' \
773a571abcSchristos	    -e 's/\\"/"/g' |\
783a571abcSchristos	sort -n > $@
793a571abcSchristos
803a571abcSchristosdump: dump.c
813a571abcSchristos	${CC} -O -o dump dump.c
823a571abcSchristos
833a571abcSchristosclean:
843a571abcSchristos	rm -f dump dump.o ${CAT} english.base *.check __ck1 __ck2
85