220 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			220 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
. ../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-elf.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)/compat.h\\
 | 
						|
	\$(INC)/config.h\\
 | 
						|
	\$(INC)/cstring.h\\
 | 
						|
	\$(INC)/exception.h\\
 | 
						|
	\$(INC)/extern.h\\
 | 
						|
	\$(INC)/funcproto.h\\
 | 
						|
	\$(INC)/gc.h\\
 | 
						|
	\$(INC)/intern.h\\
 | 
						|
	\$(INC)/kernel.h\\
 | 
						|
	\$(INC)/misc.h\\
 | 
						|
	\$(INC)/object.h\\
 | 
						|
	\$(INC)/param.h\\
 | 
						|
	\$(INC)/stkmem.h\\
 | 
						|
	\$(INC)/type.h
 | 
						|
 | 
						|
C=	autoload.c\\
 | 
						|
	bignum.c\\
 | 
						|
	bool.c\\
 | 
						|
	char.c\\
 | 
						|
	cont.c\\
 | 
						|
	cstring.c\\
 | 
						|
	debug.c\\
 | 
						|
	dump.c\\
 | 
						|
	env.c\\
 | 
						|
	error.c\\
 | 
						|
	exception.c\\
 | 
						|
	feature.c\\
 | 
						|
	heap.c\\
 | 
						|
	io.c\\
 | 
						|
	list.c\\
 | 
						|
	load.c\\
 | 
						|
	libelk.c\\
 | 
						|
	malloc.c\\
 | 
						|
	math.c\\
 | 
						|
	onfork.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
 | 
						|
 | 
						|
OCOMMON=\\
 | 
						|
	autoload.o\\
 | 
						|
	bignum.o\\
 | 
						|
	bool.o\\
 | 
						|
	char.o\\
 | 
						|
	cont.o\\
 | 
						|
	cstring.o\\
 | 
						|
	debug.o\\
 | 
						|
	dump.o\\
 | 
						|
	env.o\\
 | 
						|
	error.o\\
 | 
						|
	exception.o\\
 | 
						|
	feature.o\\
 | 
						|
	heap.o\\
 | 
						|
	io.o\\
 | 
						|
	list.o\\
 | 
						|
	load.o\\
 | 
						|
	malloc.o\\
 | 
						|
	math.o\\
 | 
						|
	onfork.o\\
 | 
						|
	prim.o\\
 | 
						|
	print.o\\
 | 
						|
	proc.o\\
 | 
						|
	promise.o\\
 | 
						|
	read.o\\
 | 
						|
	special.o\\
 | 
						|
	stkmem.o\\
 | 
						|
	string.o\\
 | 
						|
	symbol.o\\
 | 
						|
	terminate.o\\
 | 
						|
	type.o\\
 | 
						|
	vector.o
 | 
						|
 | 
						|
O1= main.o
 | 
						|
O2= \$(OCOMMON) libelk2.o stab2.o
 | 
						|
O3= \$(OCOMMON) libelk3.o stab2.o
 | 
						|
 | 
						|
all: libelk.so.0.0.0 libelk.a scheme
 | 
						|
 | 
						|
scheme:	libelk.so.0.0.0 \$(O1)
 | 
						|
	\$(CC) -o \$@ \$(CFLAGS) \$(O1) -L. -lelk \$(LDFLAGS)
 | 
						|
 | 
						|
libelk.so.0.0.0: \$(O3)
 | 
						|
	\$(CC) -shared -fPIC -Wl,-soname,libelk.so.0 -o \$@ \$(O3) \$(LDFLAGS)
 | 
						|
	rm -f libelk.so.0 && ln -s libelk.so.0.0.0 libelk.so.0
 | 
						|
	rm -f libelk.so && ln -s libelk.so.0 libelk.so
 | 
						|
 | 
						|
libelk.a: \$(O3)
 | 
						|
	ar cru \$@ \$(O3)
 | 
						|
 | 
						|
standalone.a: \$(O2)
 | 
						|
	ar cru \$@ \$(O2)
 | 
						|
 | 
						|
standalone.o: \$(O2)
 | 
						|
	ld -r -o \$@ \$(O2)
 | 
						|
	chmod 644 \$@
 | 
						|
 | 
						|
module.a: \$(O3)
 | 
						|
	ar cru \$@ \$(O3)
 | 
						|
 | 
						|
module.o: \$(O3)
 | 
						|
	ld -r -o \$@ \$(O3)
 | 
						|
	chmod 644 \$@
 | 
						|
 | 
						|
.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
 | 
						|
cstring.o:	\$(H) cstring.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
 | 
						|
libelk.o:	\$(H) libelk.c
 | 
						|
malloc.o:	\$(H) malloc.c
 | 
						|
math.o:		\$(H) math.c
 | 
						|
onfork.o:	\$(H) onfork.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
 | 
						|
 | 
						|
libelk2.o:	\$(H) libelk.c
 | 
						|
	rm -f libelk2.c; ln libelk.c libelk2.c
 | 
						|
	\$(CC) -DINIT_OBJECTS \$(CFLAGS) -I\$(INC) -c libelk2.c
 | 
						|
	rm libelk2.c
 | 
						|
 | 
						|
stab2.o:	\$(H) stab.c $stab
 | 
						|
	rm -f stab2.c; ln stab.c stab2.c
 | 
						|
	\$(CC) -DINIT_OBJECTS \$(CFLAGS) -I\$(INC) -c stab2.c
 | 
						|
	rm stab2.c
 | 
						|
 | 
						|
libelk3.o:	\$(H) libelk.c
 | 
						|
	rm -f libelk3.c; ln libelk.c libelk3.c
 | 
						|
	\$(CC) -DINIT_OBJECTS -DNOMAIN \$(CFLAGS) -I\$(INC) -c libelk3.c
 | 
						|
	rm libelk3.c
 | 
						|
 | 
						|
install: scheme standalone.a module.a
 | 
						|
	-@if [ ! -d $install_dir/bin ]; then \\
 | 
						|
	    echo mkdir $install_dir/bin; \\
 | 
						|
	    mkdir $install_dir/bin; \\
 | 
						|
	fi
 | 
						|
	cp -d scheme $install_dir/bin
 | 
						|
	-@if [ ! -d $install_dir/lib ]; then \\
 | 
						|
	    echo mkdir $install_dir/lib; \\
 | 
						|
	    mkdir $install_dir/lib; \\
 | 
						|
	fi
 | 
						|
	cp -d libelk.a libelk.so libelk.so.* $install_dir/lib
 | 
						|
 | 
						|
lint:
 | 
						|
	lint \$(LINTFLAGS) -I\$(INC) \$(C)
 | 
						|
 | 
						|
clean:
 | 
						|
	rm -f *.o *.a core libelk2.c stab2.c libelk3.c
 | 
						|
	rm -f libelk.so.0.0.0 libelk.so.0 libelk.so libelk.a
 | 
						|
 | 
						|
distclean:
 | 
						|
	rm -f *.o *.a core libelk2.c stab2.c libelk3.c lint.out scheme Makefile.local
 | 
						|
	rm -f libelk.so.0.0.0 libelk.so.0 libelk.so libelk.a
 | 
						|
EOT
 |