#
#	$NetBSD: Makefile,v 1.51 2000/12/29 16:30:31 bjh21 Exp $
#	@(#)Makefile	8.4 (Berkeley) 5/5/95
#	Red Hat Makefile for ash so that we can use GNU Make
#

CFLAGS+=-DBSD=1 -DSMALL -D_GNU_SOURCE \
    -DGLOB_BROKEN -D__COPYRIGHT\(x\)= \
    -D__RCSID\(x\)= -D_DIAGASSERT\(x\)= -I. -I./bltin
LDFLAGS+="-lfl"
PROG   =sh
SHSRCS =alias.c cd.c bltin/echo.c error.c eval.c exec.c expand.c \
	histedit.c input.c jobs.c mail.c main.c memalloc.c miscbltin.c \
	mystring.c options.c parser.c bltin/printf.c redir.c show.c \
	trap.c output.c var.c bltin/test.c setmode.c bltin/times.c
GENSRCS=arith.c builtins.c init.c nodes.c \
	signames.c syntax.c arith_lex.c
GENHDRS=arith.h builtins.h nodes.h syntax.h token.h
SRCS   =${SHSRCS} ${GENSRCS}
OBJS   =$(patsubst %.c,%.o,${SRCS})
OBJDIR="./"

all: ${PROG}

check:
	@echo ${OBJS}


CLEANFILES+= mkinit mknodes mksyntax
CLEANFILES+= ${GENSRCS} y.tab.h

BLTINDEFS=specialbltins.def regularbltins.def assignbltins.def

arith.h arith.c: arith.y
	bison -y -d -oarith.c arith.y

arith_lex.c: arith_lex.l
	flex -oarith_lex.c arith_lex.l

token.h: mktokens
	sh ./mktokens

builtins.c builtins.h: mkbuiltins shell.h builtins.def ${BLTINDEFS}
	sh ./mkbuiltins sh builtins.def ${BLTINDEFS} ${OBJDIR} '${CFLAGS}'

init.c: mkinit ${SHSRCS}
	./mkinit ${SHSRCS}

nodes.c nodes.h: mknodes nodetypes nodes.c.pat
	./mknodes nodetypes nodes.c.pat

syntax.c syntax.h: mksyntax
	./mksyntax

signames.c: mksignames
	./mksignames

mksignames:
	$(CC_FOR_BUILD) ${CFLAGS} -o mksignames mksignames.c

mkinit: mkinit.c
	$(CC_FOR_BUILD) ${CFLAGS} -o mkinit mkinit.c

mknodes: mknodes.c
	$(CC_FOR_BUILD) ${CFLAGS} -o mknodes mknodes.c

mksyntax: mksyntax.c
	$(CC_FOR_BUILD) ${CFLAGS} -DTARGET_CHAR="int8_t" -o mksyntax mksyntax.c

%.o: %.c
	$(CC) ${CFLAGS} -c -o $@ $^ -DSHELL

sh: ${GENHDRS} ${OBJS}
	$(CC) ${CFLAGS} -o sh ${OBJS} ${LDFLAGS}

clean:
	rm -f ${GENSRCS} ${GENHDRS} *.o ${PROG} mkinit mksignames mknodes \
		mksyntax
