Makefile revision 104273
1251881Speter#	@(#)Makefile	8.4 (Berkeley) 5/5/95
2251881Speter# $FreeBSD: head/bin/sh/Makefile 104273 2002-10-01 07:26:35Z tjr $
3251881Speter
4251881SpeterPROG=	sh
5251881SpeterSHSRCS=	alias.c arith.y arith_lex.l cd.c echo.c error.c eval.c exec.c expand.c \
6251881Speter	histedit.c input.c jobs.c mail.c main.c memalloc.c miscbltin.c \
7251881Speter	mystring.c options.c output.c parser.c redir.c show.c \
8251881Speter	test.c trap.c var.c
9251881SpeterGENSRCS= builtins.c init.c nodes.c syntax.c
10251881SpeterGENHDRS= builtins.h nodes.h syntax.h token.h y.tab.h
11251881SpeterSRCS= ${SHSRCS} ${GENSRCS} ${GENHDRS} y.tab.h
12251881Speter
13251881Speter# MLINKS for Shell built in commands for which there are no userland
14251881Speter# utilities of the same name are handled with the associated manpage,
15251881Speter# builtin.1 in share/man/man1/.  
16251881Speter
17251881SpeterDPADD+= ${LIBL} ${LIBEDIT} ${LIBTERMCAP}
18251881SpeterLDADD+= -ll -ledit -ltermcap
19251881Speter
20251881SpeterLFLAGS= -8	# 8-bit lex scanner for arithmetic
21251881SpeterCFLAGS+=-DSHELL -I. -I${.CURDIR}
22251881Speter# for debug:
23251881Speter# CFLAGS+= -g -DDEBUG=2
24251881Speter
25251881Speter.PATH:	${.CURDIR}/bltin \
26251881Speter	${.CURDIR}/../../bin/test
27251881Speter
28251881SpeterCLEANFILES+= mkinit mkinit.o mknodes mknodes.o \
29251881Speter	mksyntax mksyntax.o
30251881SpeterCLEANFILES+= ${GENSRCS} ${GENHDRS}
31251881Speter
32251881Speterbuild-tools: mkinit mknodes mksyntax
33251881Speter
34251881Speter.ORDER: builtins.c builtins.h
35251881Speterbuiltins.c builtins.h: mkbuiltins builtins.def
36251881Speter	cd ${.CURDIR}; sh mkbuiltins ${.OBJDIR}
37251881Speter
38251881Speterinit.c: mkinit alias.c eval.c exec.c input.c jobs.c options.c parser.c \
39251881Speter	redir.c trap.c var.c
40251881Speter	./mkinit ${.ALLSRC:S/^mkinit$//}
41251881Speter
42251881Speter# XXX this is just to stop the default .c rule being used, so that the
43251881Speter# intermediate object has a fixed name.
44251881Speter# XXX we have a default .c rule, but no default .o rule.
45251881Speter.o:
46251881Speter	${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET}
47251881Spetermkinit: mkinit.o
48251881Spetermknodes: mknodes.o
49289180Spetermksyntax: mksyntax.o
50251881Speter
51251881Speter.ORDER: nodes.c nodes.h
52251881Speternodes.c nodes.h: mknodes nodetypes nodes.c.pat
53251881Speter	./mknodes ${.CURDIR}/nodetypes ${.CURDIR}/nodes.c.pat
54251881Speter
55251881Speter.ORDER: syntax.c syntax.h
56251881Spetersyntax.c syntax.h: mksyntax
57251881Speter	./mksyntax
58251881Speter
59251881Spetertoken.h: mktokens
60251881Speter	sh ${.CURDIR}/mktokens
61251881Speter
62251881Speter.include <bsd.prog.mk>
63251881Speter