#	/b/source/CVS/src/bin/sh/Makefile,v 1.4 1993/05/04 13:56:27 mycroft Exp

CC=gcc -b linux -I/dev/temp/libc/include #-DDEBUG=1
HOSTCC = gcc
HOSTCFLAGS = $(CFLAGS)

PROG=	sh

SRCS=	builtins.c cd.c dirent.c bltin/echo.c error.c eval.c exec.c expand.c \
	input.c jobs.c mail.c main.c memalloc.c miscbltin.c \
	mystring.c nodes.c options.c parser.c redir.c show.c signames.c \
	syntax.c trap.c output.c var.c bltin/test.c

OBJ1=	init.o

OBJ2=	builtins.o cd.o dirent.o bltin/echo.o error.o eval.o exec.o expand.o \
	input.o jobs.o mail.o main.o memalloc.o miscbltin.o \
	mystring.o nodes.o options.o parser.o redir.o show.o signames.o \
	syntax.o trap.o output.o var.o bltin/test.o

OBJS=	$(OBJ1) $(OBJ2)

CFLAGS=-O6 -DSHELL -I/usr/include/bsd -I.

LDFLAGS=-L/dev/temp/libc/libc-linux #-ldbmalloc #-lbsd -s


CLEANFILES=\
	builtins.c builtins.h init.c mkinit mknodes mksignames mksyntax \
	nodes.c nodes.h signames.c signames.h syntax.c syntax.h token.def

all:	$(OBJS)
	$(CC) -o $(PROG) $(OBJS) $(LDFLAGS)

sh.dis: sh.ami
	dis -af sh.ami > sh.dis
	rm sh.ami

sh.ami: $(OBJS)
	gcc -o sh.ami -nostdlib -L/gcc/compilers/linux/2.3.3 -L/dev/temp/libc/libc-linux /gcc/compilers/linux/2.3.3/crt0.o $(OBJS) -lgcc -lc -lgcc

parser.o: token.def

token.def: mktokens
	sh ./mktokens

builtins.h builtins.c:
	sh ./mkbuiltins

init.c: mkinit $(SRCS)
	./mkinit '$(CC) -c $(CFLAGS) init.c' $(SRCS)
	touch init.c

mkinit: mkinit.c
	$(HOSTCC) $(HOSTCFLAGS) mkinit.c -o $@

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

mknodes: mknodes.c
	$(HOSTCC) $(HOSTCFLAGS) mknodes.c -o $@

signames.c signames.h: mksignames
	./mksignames

mksignames: mksignames.c
	$(HOSTCC) $(HOSTCFLAGS) mksignames.c -o $@

syntax.c syntax.h: mksyntax
	./mksyntax

mksyntax: mksyntax.c parser.h
	$(HOSTCC) $(HOSTCFLAGS) mksyntax.c -o $@

clean:
	rm -f core $(CLEANFILES) $(PROG) $(OBJS)
