]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/nvi/catalog/Makefile
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / nvi / catalog / Makefile
1 #       $Id: Makefile,v 9.0 2012/10/19 15:13:11 zy Exp $
2
3 CAT=    dutch english french german polish ru_RU.KOI8-R spanish swedish \
4         uk_UA.KOI8-U zh_CN.GB2312
5 FILES=  ../cl/*.c ../common/*.c ../ex/*.c ../vi/*.c
6
7 all: dump ${CAT}
8
9 ${CAT}: english.base
10         @echo "... $@";                                                 \
11         rm -f $@;                                                       \
12         sort -u $@.base |                                               \
13         awk '{                                                          \
14                 if ($$1 == 1) {                                         \
15                         print "\nMESSAGE NUMBER 1 IS NOT LEGAL";        \
16                         exit 1;                                         \
17                 }                                                       \
18                 if (++nline > $$1) {                                    \
19                         print "DUPLICATE MESSAGE NUMBER " $$1;          \
20                         exit 1;                                         \
21                 }                                                       \
22                 print $0;                                               \
23         }' |                                                            \
24         sed -e '1s/^/$$set 1~$$quote "~/; 1y/~/\n/' |                   \
25         gencat $@ /dev/stdin;                                           \
26         chmod 444 $@;                                                   \
27         if grep DUPLICATE $@ > /dev/null; then                          \
28                 grep DUPLICATE $@;                                      \
29         fi;                                                             \
30         if grep 'NOT LEGAL' $@ > /dev/null; then                        \
31                 grep 'NOT LEGAL' $@;                                    \
32         fi
33
34 CHK=    dutch.check english.check french.check german.check \
35         polish.check ru_RU.KOI8-R.check spanish.check swedish.check \
36         uk_UA.KOI8-U.check zh_CN.GB2312.check
37 check: ${CHK}
38 ${CHK}: ${CAT}
39         @echo "... $@";                                                 \
40         f=`basename $@ .check`;                                         \
41         (echo "Unused message id's (this is okay):";                    \
42         awk '{                                                          \
43                 while (++nline < $$1)                                   \
44                         printf "%03d\n", nline;                         \
45         }' < $$f.base;                                                  \
46         echo =========================;                                 \
47         echo "MISSING ERROR MESSAGES (Please add!):";                   \
48         awk '{print $$1}' < $$f.base | sort -u > __ck1;                 \
49         awk '{print $$1}' < english.base | sort -u > __ck2;             \
50         comm -13 __ck1 __ck2;                                           \
51         echo =========================;                                 \
52         echo "Extra error messages (just delete them):";                \
53         comm -23 __ck1 __ck2;                                           \
54         echo =========================;                                 \
55         echo "MESSAGES WITH THE SAME MESSAGE ID's (FIX!):";             \
56         for j in                                                        \
57             `sed '/^$$/d' < $$f.base | sort -u |                        \
58             awk '{print $$1}' | uniq -d`; do                            \
59                 egrep $$j $$f.base;                                     \
60         done;                                                           \
61         echo =========================;                                 \
62         echo "Duplicate messages, both id and message (this is okay):"; \
63         sed '/^$$/d' < $$f.base | sort | uniq -c |                      \
64         awk '$$1 != 1 { print $$0 }' | sort -n;                         \
65         echo =========================) > $@
66
67 english.base: dump ${FILES} #Makefile
68         ./dump ${FILES} |\
69         sed -e '/|/!d' \
70             -e 's/|/ "/' \
71             -e 's/^"//' |\
72         sort -nu > $@
73
74 dump: dump.c
75         ${CC} -O -o dump dump.c
76
77 clean:
78         rm -f dump dump.o ${CAT} english.base *.check __ck1 __ck2