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