xref: /freebsd/contrib/nvi/catalog/Makefile (revision 51a9219f5780e61e1437d25220bf8750d9df7f8b)
1#	@(#)Makefile	8.29 (Berkeley) 10/19/96
2
3CAT=	dutch english french german polish ru_SU.KOI8-R spanish swedish
4FILES=	../cl/*.c ../common/*.c ../ex/*.c ../tk/*.c ../vi/*.c
5
6all: dump ${CAT}
7
8${CAT}: english.base
9	@echo "... $@";							\
10	rm -f $@;							\
11	sort -u $@.base |						\
12	awk '{								\
13		if ($$1 == 1) {						\
14			print "\nMESSAGE NUMBER 1 IS NOT LEGAL";	\
15			exit 1;						\
16		}							\
17		if (++nline > $$1) {					\
18			print "DUPLICATE MESSAGE NUMBER " $$1;		\
19			exit 1;						\
20		}							\
21		for (; nline < $$1; ++nline)				\
22			print "";					\
23		print $0;						\
24	}' |								\
25	sed -e '1s/^/VI_MESSAGE_CATALOG/'				\
26	    -e '/"/s/^[^"]*"//'						\
27	    -e '1!s/"$$/X/' > $@;					\
28	chmod 444 $@;							\
29	if grep DUPLICATE $@ > /dev/null; then				\
30		grep DUPLICATE $@;					\
31	fi;								\
32	if grep 'NOT LEGAL' $@ > /dev/null; then			\
33		grep 'NOT LEGAL' $@;					\
34	fi
35
36CHK=	dutch.check english.check french.check german.check \
37	polish.check ru_SU.KOI8-R.check spanish.check swedish.check
38check: ${CHK}
39${CHK}: ${CAT}
40	@echo "... $@";							\
41	f=`basename $@ .check`;						\
42	(echo "Unused message id's (this is okay):";			\
43	awk '{								\
44		while (++nline < $$1)					\
45			printf "%03d\n", nline;				\
46	}' < $$f.base;							\
47	echo =========================;					\
48	echo "MISSING ERROR MESSAGES (Please add!):";			\
49	awk '{print $$1}' < $$f.base | sort -u > __ck1;			\
50	awk '{print $$1}' < english.base | sort -u > __ck2;		\
51	comm -13 __ck1 __ck2;						\
52	echo =========================;					\
53	echo "Extra error messages (just delete them):";		\
54	comm -23 __ck1 __ck2;						\
55	echo =========================;					\
56	echo "MESSAGES WITH THE SAME MESSAGE ID's (FIX!):";		\
57	for j in							\
58	    `sed '/^$$/d' < $$f.base | sort -u |			\
59	    awk '{print $$1}' | uniq -d`; do				\
60		egrep $$j $$f.base;					\
61	done;								\
62	echo =========================;					\
63	echo "Duplicate messages, both id and message (this is okay):";	\
64	sed '/^$$/d' < $$f.base | sort | uniq -c |			\
65	awk '$$1 != 1 { print $$0 }' | sort -n;				\
66	echo =========================;					\
67	echo "Duplicate messages, just message (this is okay):";	\
68	sed '/^$$/d' < $$f | sort | uniq -c |				\
69	awk '$$1 != 1 { print $$0 }' | sort -n;				\
70	echo =========================) > $@
71
72english.base: dump ${FILES} #Makefile
73	./dump ${FILES} |\
74	sed -e '/|/!d' \
75	    -e 's/|/ "/' \
76	    -e 's/^"//' \
77	    -e 's/\\"/"/g' |\
78	sort -n > $@
79
80dump: dump.c
81	${CC} -O -o dump dump.c
82
83clean:
84	rm -f dump dump.o ${CAT} english.base *.check __ck1 __ck2
85