xref: /original-bsd/old/pcc/lint/Makefile (revision 7211505a)
1#
2#	@(#)Makefile	1.21	(Berkeley)	05/22/88
3#
4M=../../lib/mip
5P=../../lib/pcc
6CFLAGS=-O
7LINTLIBS=llib-port.ln llib-lc.ln llib-lcurses.ln llib-ldbm.ln llib-lm.ln \
8	llib-lmp.ln llib-lplot.ln llib-ltermcap.ln
9SRCS=	$M/cgram.y $M/common.c $M/optim.c $M/pftn.c $M/scan.c $M/trees.c \
10	$M/xdefs.c lint.c hash.c $M/pass1.h $M/manifest.h macdefs.h \
11	lpass2.c
12
13all:	lpass1 lpass2 ${LINTLIBS}
14
15lpass1: cgram.o rodata.o comm1.o optim.o pftn.o scan.o trees.o xdefs.o \
16	lint.o hash.o rel.o
17	${CC} ${CFLAGS} cgram.o rodata.o comm1.o optim.o pftn.o scan.o \
18		trees.o xdefs.o lint.o hash.o rel.o -o lpass1
19
20cgram.o: $M/manifest.h $M/pass1.h pcclocal.h macdefs.h cgram.c
21	$(CC) -c $(CFLAGS) -I$M -I. cgram.c
22
23rodata.o: rodata.c
24	$(CC) -c $(CFLAGS) -R rodata.c
25
26comm1.o: $M/manifest.h $M/pass1.h pcclocal.h $M/common.c macdefs.h
27	ln -s $M/common.c comm1.c
28	$(CC) -c $(CFLAGS) -I$M -I. -DPASS1COMMON comm1.c
29	rm -f comm1.c
30
31optim.o: $M/manifest.h macdefs.h $M/pass1.h pcclocal.h $M/optim.c
32	$(CC) -c $(CFLAGS) -I$M -I. $M/optim.c
33
34pftn.o: $M/manifest.h macdefs.h $M/pass1.h pcclocal.h $M/pftn.c
35	$(CC) -c $(CFLAGS) -I$M -I. $M/pftn.c
36
37scan.o: $M/manifest.h macdefs.h $M/pass1.h pcclocal.h $M/scan.c
38	$(CC) -c $(CFLAGS) -I$M -I. $M/scan.c
39
40trees.o: $M/manifest.h macdefs.h $M/pass1.h pcclocal.h $M/trees.c
41	$(CC) -c $(CFLAGS) -I$M -I. $M/trees.c
42
43xdefs.o: $M/manifest.h $M/pass1.h pcclocal.h macdefs.h $M/xdefs.c
44	$(CC) -c $(CFLAGS) -I$M -I. $M/xdefs.c
45
46rodata.c cgram.c: $M/cgram.y pcctokens
47	cat pcctokens $M/cgram.y > gram.in
48	$(YACC) gram.in
49	rm -f rodata.c
50	sh ./:yyfix yyexca yyact yypact yypgo yyr1 yyr2 yychk yydef
51	mv y.tab.c cgram.c
52
53GREP=	egrep
54
55pcclocal.h: $P/localdefs.h /usr/include/pcc.h
56	rm -f pcclocal.h
57	cat /usr/include/pcc.h $P/localdefs.h | $(GREP) '^#[ 	]*(define[ 	][ 	]*PCC(F|T|TM|OM)?_|ifdef|ifndef|endif)' | sed -e 's/PCC[A-Z]*_//' > pcclocal.h
58
59pcctokens: $P/localdefs.h /usr/include/pcc.h
60	rm -f pcctokens
61	cat /usr/include/pcc.h $P/localdefs.h | $(GREP) '^#[ 	]*define[ 	][ 	]*PCC_' | sed -e 's/^#[ 	]*define[ 	][ 	]*PCC_/%term	/' > pcctokens
62
63lint.o: $M/manifest.h macdefs.h $M/pass1.h lmanifest.h
64	${CC} -c ${CFLAGS} -I$M -I. lint.c
65
66llib-port.ln: llib-port lpass1
67	-(/lib/cpp -C -Dlint llib-port | ./lpass1 -puv > llib-port.ln )
68
69llib-ldbm.ln: llib-ldbm lpass1
70	-(/lib/cpp -C -Dlint llib-ldbm | ./lpass1 -uv > llib-ldbm.ln )
71
72llib-lm.ln: llib-lm lpass1
73	-(/lib/cpp -C -Dlint llib-lm | ./lpass1 -uv > llib-lm.ln )
74
75llib-lmp.ln: llib-lmp lpass1
76	-(/lib/cpp -C -Dlint llib-lmp | ./lpass1 -uv > llib-lmp.ln )
77
78llib-lplot.ln: llib-lplot lpass1
79	-(/lib/cpp -C -Dlint llib-lplot | ./lpass1 -uv > llib-lplot.ln )
80
81llib-ltermcap.ln: llib-ltermcap lpass1
82	-(/lib/cpp -C -Dlint llib-ltermcap | ./lpass1 -uv > llib-ltermcap.ln )
83
84llib-lc.ln: llib-lc lpass1
85	-(/lib/cpp -C -Dlint llib-lc | ./lpass1 -v > llib-lc.ln )
86
87llib-lcurses.ln: llib-lcurses lpass1
88	-(/lib/cpp -C -Dlint -D__void__=__curses__ llib-lcurses | ./lpass1 -v > llib-lcurses.ln )
89
90lpass2: lpass2.o hash.o
91	${CC} ${CFLAGS} lpass2.o hash.o -o lpass2
92
93lpass2.o: $M/manifest.h lmanifest.h pcclocal.h macdefs.h
94	${CC} ${CFLAGS} -c -I$M -I. lpass2.c
95
96hash.o: hash.c
97	${CC} ${CFLAGS} -c -I$M -I. hash.c
98
99lintall:
100	lint -hpv -I. -I$M  $M/cgram.c $M/xdefs.c $M/scan.c \
101		$M/pftn.c $M/trees.c $M/optim.c lint.c
102
103install: all SHELL
104	install -s -o bin -g bin -m 755 lpass1 ${DESTDIR}/usr/lib/lint/lint1
105	install -s -o bin -g bin -m 755 lpass2 ${DESTDIR}/usr/lib/lint/lint2
106	for i in llib-*; do install -c -o bin -g bin -m 644 $$i ${DESTDIR}/usr/lib/lint; done
107	-rm -f ${DESTDIR}/usr/lib/lint/llib-ltermlib*
108	ln -s llib-ltermcap ${DESTDIR}/usr/lib/lint/llib-ltermlib
109	ln -s llib-ltermcap.ln ${DESTDIR}/usr/lib/lint/llib-ltermlib.ln
110	install -c -o bin -g bin -m 755 SHELL ${DESTDIR}/usr/bin/lint
111
112shrink:
113	rm -f *.o errs rodata.c pcctokens pcclocal.h
114
115clean: shrink
116	rm -f lpass1 lpass2 cgram.c gram.in tags ${LINTLIBS}
117
118tags:	${SRCS}
119	ctags -w ${SRCS}
120
121depend:
122