. ../config/system
. ../config/site

case _$aout_format in
_coff)   dump=dump-vanilla.c; stab=stab-coff.c;;
_ecoff)  dump=dump-ecoff.c;   stab=stab-ecoff.c;;
_xcoff)                       stab=stab-coff.c;;
_elf)    dump=dump-ecoff.c;   stab=stab-elf.c;;
_macho)                       stab=stab-macho.c;;
_hp9k)   dump=dump-hp9k.c;    stab='stab-hp9k300.c stab-hp9k800.c';;
_convex)                      stab='stab-convex.c';;
*)       dump=dump-vanilla.c; stab=stab-bsd.c;;
esac

if [ _$load_obj != _ ]; then
    load=load-${load_obj}.c
fi

echo Building Makefile.local...
cat <<EOT >Makefile.local
# This Makefile was produced by running ./build in this directory.

SHELL=/bin/sh

CC= ${cc-cc}
CFLAGS= $cflags
LDFLAGS= $ldflags
LINTFLAGS= $lintflags

INC=	../include

H=	\$(INC)/config.h\\
	\$(INC)/param.h\\
	\$(INC)/object.h\\
	\$(INC)/extern.h\\
	\$(INC)/misc.h\\
	\$(INC)/stkmem.h\\
	\$(INC)/cstring.h

C=	autoload.c\\
	bignum.c\\
	bool.c\\
	char.c\\
	cont.c\\
	debug.c\\
	dump.c\\
	env.c\\
	error.c\\
	exception.c\\
	feature.c\\
	heap.c\\
	io.c\\
	list.c\\
	load.c\\
	main.c\\
	math.c\\
	prim.c\\
	print.c\\
	proc.c\\
	promise.c\\
	read.c\\
	special.c\\
	stab.c\\
	stkmem.c\\
	string.c\\
	symbol.c\\
	terminate.c\\
	type.c\\
	vector.c

O=	autoload.o\\
	bignum.o\\
	bool.o\\
	char.o\\
	cont.o\\
	debug.o\\
	dump.o\\
	env.o\\
	error.o\\
	exception.o\\
	feature.o\\
	heap.o\\
	io.o\\
	list.o\\
	load.o\\
	main.o\\
	math.o\\
	prim.o\\
	print.o\\
	proc.o\\
	promise.o\\
	read.o\\
	special.o\\
	stab.o\\
	stkmem.o\\
	string.o\\
	symbol.o\\
	terminate.o\\
	type.o\\
	vector.o

scheme:	\$(O)
	\$(CC) -o scheme \$(CFLAGS) \$(O) \$(LDFLAGS)

.c.o:
	\$(CC) \$(CFLAGS) -I\$(INC) -c \$<

autoload.o:	\$(H) autoload.c
bignum.o:	\$(H) bignum.c
bool.o:		\$(H) bool.c
char.o:		\$(H) char.c
cont.o:		\$(H) cont.c
debug.o:	\$(H) debug.c
dump.o:		\$(H) dump.c $dump
env.o:		\$(H) env.c
error.o:	\$(H) error.c
exception.o:	\$(H) exception.c
feature.o:	\$(H) feature.c
heap.o:		\$(H) heap.c heap-sc.c heap-gen.c
io.o:		\$(H) io.c
list.o:		\$(H) list.c
load.o:		\$(H) load.c $load
main.o:		\$(H) main.c
math.o:		\$(H) math.c
prim.o:		\$(H) prim.c
print.o:	\$(H) print.c
proc.o:		\$(H) proc.c
promise.o:	\$(H) promise.c
read.o:		\$(H) read.c
special.o:	\$(H) special.c
stab.o:		\$(H) stab.c $stab
stkmem.o:	\$(H) stkmem.c
string.o:	\$(H) string.c
symbol.o:	\$(H) symbol.c
terminate.o:	\$(H) terminate.c
type.o:		\$(H) type.c
vector.o:	\$(H) vector.c

install: scheme
	-@if [ ! -d $bin_dir ]; then \\
	    echo mkdir $bin_dir; \\
	    mkdir $bin_dir; \\
	fi
	cp scheme $bin_dir

lint:
	lint \$(LINTFLAGS) -I\$(INC) \$(C)

clean:
	rm -f *.o core

distclean:
	rm -f *.o core lint.out scheme Makefile.local
EOT
