Makefile revision 28729
1262569Simp#	@(#)Makefile	8.4 (Berkeley) 5/5/95
2262569Simp#	$Id: Makefile,v 1.21 1997/05/21 03:23:23 steve Exp $
3262569Simp
4262569SimpPROG=	sh
5262569SimpSHSRCS=	alias.c cd.c echo.c error.c eval.c exec.c expand.c \
6262569Simp	histedit.c input.c jobs.c mail.c main.c memalloc.c miscbltin.c \
7262569Simp	mystring.c options.c output.c parser.c printf.c redir.c show.c \
8262569Simp	trap.c var.c
9262569SimpGENSRCS= arith.c arith_lex.c builtins.c init.c nodes.c syntax.c
10262569SimpSRCS=	${SHSRCS} ${GENSRCS}
11262569Simp
12262569SimpDPADD+= ${LIBL} ${LIBEDIT} ${LIBTERMCAP}
13262569SimpLDADD+= -ll -ledit -ltermcap
14262569Simp
15262569SimpLFLAGS= -8	# 8-bit lex scanner for arithmetic
16262569SimpCFLAGS+=-DSHELL -I. -I${.CURDIR}
17262569Simp# for debug:
18262569Simp# CFLAGS+= -g -DDEBUG=2
19262569Simp
20262569Simp.PATH:	${.CURDIR}/bltin ${.CURDIR}/../../usr.bin/printf
21262569Simp
22262569SimpCLEANFILES+= builtins.h mkinit mkinit.o mknodes mknodes.o \
23262569Simp	mksyntax mksyntax.o \
24262569Simp	nodes.h syntax.h token.h y.tab.h
25262569SimpCLEANFILES+= ${GENSRCS}
26270864Simp
27270864Simpbeforedepend: builtins.h nodes.h syntax.h token.h
28262569Simp
29270864Simpbuiltins.c builtins.h: mkbuiltins builtins.def
30262569Simp	cd ${.CURDIR}; sh mkbuiltins ${.OBJDIR}
31270864Simp
32262569Simpinit.c: mkinit alias.c eval.c exec.c input.c jobs.c options.c parser.c \
33262569Simp	redir.c trap.c var.c
34262569Simp	./mkinit ${.ALLSRC:S/^mkinit$//}
35262569Simp
36262569Simp# XXX this is just to stop the default .c rule being used, so that the
37270864Simp# intermediate object has a fixed name.
38270864Simp# XXX we have a default .c rule, but no default .o rule.
39270864Simp.o:
40270864Simp	${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET}
41270864Simpmkinit: mkinit.o
42270864Simpmkinit.o: mkinit.c		# XXX and many headers
43270864Simpmknodes: mknodes.o
44270864Simpmknodes.o: mknodes.c		# XXX and many headers
45270864Simpmksyntax: mksyntax.o
46270864Simpmksyntax.o: mksyntax.c		# XXX and many headers
47262569Simp
48262569Simpnodes.c nodes.h: mknodes nodetypes nodes.c.pat
49262569Simp	./mknodes ${.CURDIR}/nodetypes ${.CURDIR}/nodes.c.pat
50262569Simp
51262569Simpsyntax.c syntax.h: mksyntax
52262569Simp	./mksyntax
53262569Simp
54262569Simptoken.h: mktokens
55262569Simp	sh ${.CURDIR}/mktokens
56262569Simp
57262569Simpy.tab.h: arith.c
58262569Simp
59262569Simp# Rules for object files that rely on generated headers.
60262569Simparith_lex.o: y.tab.h
61262569Simpcd.o: nodes.h
62270864Simpeval.o: builtins.h nodes.h syntax.h
63262569Simpexec.o: builtins.h nodes.h syntax.h
64262569Simpexpand.o: nodes.h syntax.h
65262569Simpinput.o: syntax.h
66262569Simpjobs.o: nodes.h syntax.h
67262569Simpmain.o: nodes.h
68262569Simpmystring.o: syntax.h
69262569Simpoptions.o: nodes.h
70270864Simpoutput.o: syntax.h
71262569Simpparser.o: nodes.h syntax.h token.h
72262569Simpredir.o: nodes.h
73262569Simpshow.o: nodes.h
74262569Simptrap.o: nodes.h syntax.h
75262569Simpvar.o: nodes.h syntax.h
76262569Simp
77270864Simp.include <bsd.prog.mk>
78262569Simp