Makefile revision 215520
117987Speter#	@(#)Makefile	8.4 (Berkeley) 5/5/95
250471Speter# $FreeBSD: head/bin/sh/Makefile 215520 2010-11-19 12:56:13Z jilles $
31556Srgrimes
41556SrgrimesPROG=	sh
5127167SruINSTALLFLAGS= -S
635783SbdeSHSRCS=	alias.c arith.y arith_lex.l cd.c echo.c error.c eval.c exec.c expand.c \
71556Srgrimes	histedit.c input.c jobs.c mail.c main.c memalloc.c miscbltin.c \
8215520Sjilles	mystring.c options.c output.c parser.c printf.c redir.c show.c \
986505Sknu	test.c trap.c var.c
1035783SbdeGENSRCS= builtins.c init.c nodes.c syntax.c
11124751SruGENHDRS= builtins.h nodes.h syntax.h token.h
1235783SbdeSRCS= ${SHSRCS} ${GENSRCS} ${GENHDRS} y.tab.h
1317987Speter
1451090Ssheldonh# MLINKS for Shell built in commands for which there are no userland
1551090Ssheldonh# utilities of the same name are handled with the associated manpage,
16157811Sschweikh# builtin.1 in share/man/man1/.
1751090Ssheldonh
18125503SruDPADD= ${LIBL} ${LIBEDIT} ${LIBTERMCAP}
19125503SruLDADD= -ll -ledit -ltermcap
2017987Speter
211556SrgrimesLFLAGS= -8	# 8-bit lex scanner for arithmetic
221556SrgrimesCFLAGS+=-DSHELL -I. -I${.CURDIR}
2317988Speter# for debug:
24213811Sobrien# DEBUG_FLAGS+= -g -DDEBUG=2 -fno-inline
25173718SjbWARNS?=	2
26114500SobrienWFORMAT=0
2717987Speter
2886505Sknu.PATH:	${.CURDIR}/bltin \
29215520Sjilles	${.CURDIR}/../test \
30215520Sjilles	${.CURDIR}/../../usr.bin/printf
311556Srgrimes
3230113SjkhCLEANFILES+= mkinit mkinit.o mknodes mknodes.o \
3335783Sbde	mksyntax mksyntax.o
3430113SjkhCLEANFILES+= ${GENSRCS} ${GENHDRS}
351556Srgrimes
3637456Sbdebuild-tools: mkinit mknodes mksyntax
3737456Sbde
3830113Sjkh.ORDER: builtins.c builtins.h
3925903Sstevebuiltins.c builtins.h: mkbuiltins builtins.def
4017987Speter	cd ${.CURDIR}; sh mkbuiltins ${.OBJDIR}
411556Srgrimes
4225903Ssteveinit.c: mkinit alias.c eval.c exec.c input.c jobs.c options.c parser.c \
4325903Ssteve	redir.c trap.c var.c
4417987Speter	./mkinit ${.ALLSRC:S/^mkinit$//}
451556Srgrimes
4628729Sbde# XXX this is just to stop the default .c rule being used, so that the
4728729Sbde# intermediate object has a fixed name.
4828729Sbde# XXX we have a default .c rule, but no default .o rule.
4928729Sbde.o:
5028729Sbde	${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET}
5128729Sbdemkinit: mkinit.o
5228729Sbdemknodes: mknodes.o
5328729Sbdemksyntax: mksyntax.o
5428729Sbde
5530113Sjkh.ORDER: nodes.c nodes.h
5617987Speternodes.c nodes.h: mknodes nodetypes nodes.c.pat
571556Srgrimes	./mknodes ${.CURDIR}/nodetypes ${.CURDIR}/nodes.c.pat
581556Srgrimes
5930113Sjkh.ORDER: syntax.c syntax.h
601556Srgrimessyntax.c syntax.h: mksyntax
611556Srgrimes	./mksyntax
621556Srgrimes
6325903Sstevetoken.h: mktokens
6425903Ssteve	sh ${.CURDIR}/mktokens
651556Srgrimes
66213738Sobrienregress:
67213738Sobrien	cd ${.CURDIR}/../../tools/regression/bin/sh && ${MAKE} SH=${.OBJDIR}/sh
68213738Sobrien
691556Srgrimes.include <bsd.prog.mk>
70