xref: /original-bsd/old/pcc/ccom.tahoe/Makefile (revision 77936e01)
1#
2#	Makefile	1.13	90/02/20
3#
4# Makefile for tahoe pcc
5#
6RM=	/bin/rm -f
7GREP=	egrep
8MIP=	../../mip
9#
10# Some symbols are specific to certain compilers:
11#	ONEPASS		compile pass 1 and pass 2 together
12#	FORT		get f77-style pass 2
13#
14INCS=	-I. -I${MIP}
15CFLAGS=	-O
16LDFLAGS=
17LIBS=
18
19# c version
20OPTS=	-DONEPASS ${INCS}
21FLAGS=	${CFLAGS} ${OPTS}
22SRCS=	code.c local.c local2.c order.c rel.c stab.c \
23	${MIP}/common.c ${MIP}/match.c ${MIP}/optim.c ${MIP}/pftn.c \
24	${MIP}/reader.c ${MIP}/scan.c ${MIP}/xdefs.c ${MIP}/cgram.y \
25	${MIP}/allo.c ${MIP}/trees.c table.c
26OBJS=	code.o local.o local2.o order.o rel.o stab.o \
27	comm1.o match.o optim.o pftn.o reader.o scan.o xdefs.o cgram.o \
28	allo.o trees.o table.o rodata.o
29# fortran version
30FOPTS=	-DFORT ${INCS}
31FFLAGS=	${CFLAGS} ${FOPTS}
32FSRCS=	freader.c fallo.c fmatch.c ftable.c forder.c flocal2.c fcomm2.c ftable.c
33FOBJS=	freader.o fallo.o fmatch.o ftable.o forder.o flocal2.o fcomm2.o ftable.o
34
35TESTDIR=.
36
37all:	ccom f1
38
39#
40# 'ccom' is a one-pass C compiler.
41#
42ccom:	${OBJS} rel.o
43	${CC} ${LDFLAGS} -o ${TESTDIR}/ccom ${OBJS} rel.o ${LIBS}
44trees.o: ${MIP}/trees.c
45	${CC} -c ${FLAGS} ${MIP}/trees.c
46optim.o: ${MIP}/optim.c
47	${CC} -c ${FLAGS} ${MIP}/optim.c
48pftn.o: ${MIP}/pftn.c
49	${CC} -c ${FLAGS} ${MIP}/pftn.c
50code.o: code.c
51	${CC} -c ${FLAGS} code.c
52local.o: local.c
53	${CC} -c ${FLAGS} local.c
54scan.o: ${MIP}/scan.c
55	${CC} -c ${FLAGS} ${MIP}/scan.c
56xdefs.o: ${MIP}/xdefs.c
57	${CC} -c ${FLAGS} ${MIP}/xdefs.c
58cgram.o: cgram.c
59	${CC} -c ${FLAGS} cgram.c
60rodata.o: rodata.c
61	${CC} -c ${FLAGS} -R rodata.c
62rodata.c cgram.c: ${MIP}/cgram.y pcctokens
63	cat pcctokens ${MIP}/cgram.y > gram.in
64	${YACC} gram.in
65	${RM} rodata.c
66	sh :yyfix yylhs yylen yydefred yydgoto yysindex yyrindex \
67		yygindex yytable yycheck
68	mv y.tab.c cgram.c
69comm1.o: ${MIP}/common.c
70	ln ${MIP}/common.c comm1.c
71	${CC} -c ${FLAGS} -DPASS1COMMON comm1.c
72	${RM} comm1.c
73stab.o: stab.c
74	${CC} -c ${FLAGS} stab.c
75table.o: table.c
76	${CC} -c ${FLAGS} -R table.c
77reader.o: ${MIP}/reader.c
78	${CC} -c ${FLAGS} ${MIP}/reader.c
79local2.o: local2.c
80	${CC} -c ${FLAGS} local2.c
81order.o: order.c
82	${CC} -c ${FLAGS} order.c
83match.o: ${MIP}/match.c
84	${CC} -c ${FLAGS} ${MIP}/match.c
85allo.o: ${MIP}/allo.c
86	${CC} -c ${FLAGS} ${MIP}/allo.c
87
88#
89# 'f1' is the f77 and pc code generator.
90#
91f1:	fort.o ${FOBJS}
92	${CC} ${LDFLAGS} -o ${TESTDIR}/f1 fort.o ${FOBJS} ${LIBS}
93fort.o: fort.h ${MIP}/fort.c
94	${CC} -c ${FFLAGS} ${MIP}/fort.c
95freader.o: ${MIP}/reader.c
96	ln ${MIP}/reader.c freader.c
97	${CC} -c ${FFLAGS} freader.c
98	${RM} freader.c
99fallo.o: ${MIP}/allo.c
100	ln ${MIP}/allo.c fallo.c
101	${CC} -c ${FFLAGS} fallo.c
102	${RM} fallo.c
103fmatch.o: ${MIP}/match.c
104	ln ${MIP}/match.c fmatch.c
105	${CC} -c ${FFLAGS} fmatch.c
106	${RM} fmatch.c
107ftable.o: table.c
108	ln table.c ftable.c
109	${CC} -c -R ${FFLAGS} ftable.c
110	${RM} ftable.c
111forder.o: order.c
112	ln order.c forder.c
113	${CC} -c ${FFLAGS} forder.c
114	${RM} forder.c
115flocal2.o: local2.c
116	ln local2.c flocal2.c
117	${CC} -c ${FFLAGS} flocal2.c
118	${RM} flocal2.c
119fcomm2.o: ${MIP}/common.c
120	ln ${MIP}/common.c fcomm2.c
121	${CC} -c ${FFLAGS} -DPASS2COMMON fcomm2.c
122	${RM} fcomm2.c
123
124install:
125	install -s -o bin -g bin -m 755 ${TESTDIR}/ccom ${DESTDIR}/usr/libexec
126	install -s -o bin -g bin -m 755 ${TESTDIR}/f1 ${DESTDIR}/usr/libexec
127
128pcclocal.h: ../localdefs.h /usr/include/pcc.h
129	${RM} pcclocal.h
130	cat /usr/include/pcc.h ../localdefs.h | \
131	    ${GREP} '^#[ 	]*(define[ 	][ 	]*PCC(F|T|TM|OM)?_|ifdef|ifndef|endif)' | \
132	    sed -e 's/PCC[A-Z]*_//' > pcclocal.h
133
134pcctokens: ../localdefs.h /usr/include/pcc.h
135	${RM} pcctokens
136	cat /usr/include/pcc.h ../localdefs.h | \
137	    ${GREP} '^#[ 	]*define[ 	][ 	]*PCC_' | sed -e 's/^#[ 	]*define[ 	][ 	]*PCC_/%term	/' > pcctokens
138
139clean:
140	${RM} *.o ccom f1 cgram.c rodata.c pcctokens pcclocal.h \
141	    gram.in ${SSRCS} ${FSRCS}
142
143cleandir: clean
144	rm -f ${MAN} tags .depend
145
146lint:
147	lint -hx ${OPTS} -DPASS1COMMON cgram.c \
148	    ${MIP}/xdefs.c ${MIP}/scan.c ${MIP}/pftn.c ${MIP}/trees.c \
149	    ${MIP}/optim.c ${MIP}/reader.c ${MIP}/match.c ${MIP}/allo.c \
150	    ${MIP}/common.c \
151	    code.c local.c stab.c local2.c order.c table.c rel.c
152
153tags:	${SRCS}
154	ctags ${SRCS}
155
156# XXX this is less than complete
157depend: ${SRCS} ${MIP}/fort.c pcclocal.h pcctokens
158	mkdep ${CFLAGS} ${INCS} ${SRCS} ${MIP}/fort.c
159