#	$Header: Makefile,v 9.55 87/10/09 16:08:07 GMT jinx Rel $
#
#
###	MACHINE DEPENDENT PART	###
#
#
#	hp9000s200/300 version
#
#
#

CC = cc
ECHO = echo

#	If you have the old C compiler or you are running on a 68010, change
#	the following line.

FLAGS200 = -Dnew_cc -DMC68020 -Wp,-H60000 -Wc,-Nt30000

# -Dhp9000s200 -Dunix done by C preprocessor
# -Wp,-H40000 option increases the macro definition table size
# -Wc,-Nt30000 option increases the tasciz table size
# -Dnew_cc specifies the new compiler and assembler
# -DMC68020 specifies that the processor is a Motorola MC68020

MAC200 = -Dhpux $(FLAGS200) # -Dhp9000s200 -Dunix done by the C preprocessor

# The actual machine we are running on.

MAC = $(MAC200)

# The math libraries in use.  Use the 6881 as much as possible.

MATH_LIB = -l881 -lm

# The terminal description library in use.  Usually -ltermcap.

TERM_LIB = -ltermcap

# Extra libraries needed for compatibility.

XTRA_LIB =

# Compiled code interface files.
# The defaults (commented out) are just stubs.

CSRC  = cmp68020.s			# compiler.c
CFILE = cmp68020.o			# compiler.oo
D_CFILE = cmp68020.o			# compiler.do
F_CFILE = cmp68020.o			# compiler.fo
CFLAG = -DCMPGCFILE=\"cmp68kgc.h\"	# <nothing>
GC_HEAD_FILES= gccode.h cmp68kgc.h	# gccode.h

# Additional primitives required by the system

# These primitive files are for the default version of scheme

SYS_PRIM_SOURCES = unixprim.c # fhooks.c xdebug.c
SYS_PRIM_OBJECTS = unixprim.oo # fhooks.oo xdebug.oo

# These are for dscheme, a debugging version.  You don't want to use it.

D_SYS_PRIM_SOURCES = unixprim.c fhooks.c xdebug.c
D_SYS_PRIM_OBJECTS = unixprim.do fhooks.do xdebug.do

# These are for fscheme, a version with futures, a multiprocessing extension.

F_SYS_PRIM_SOURCES = unixprim.c fhooks.c future.c intercom.c # xdebug.c morry.c
F_SYS_PRIM_OBJECTS = unixprim.fo fhooks.fo future.fo intercom.fo # xdebug.fo \
#	morry.fo

#
#
###	INSTALLATION DEPENDENT PART	###
#
#

# Source directory and default runtime system image

BAND = -DDEFAULT_BAND_NAME=\"/scheme/rel5/runtime/scheme.bin\"
SPATH = -DSCHEME_SOURCES_PATH=\"/scheme/rel5/runtime/\"

# User defined primitives.  Add/"uncomment" files as appropriate.

USER_PRIM_SOURCES = # dumpworld.c unixlib.c process.c fetchparam.c sample.c
USER_PRIM_OBJECTS = # dumpworld.oo unixlib.oo process.oo fetchparam.oo \
#	sample.oo
D_USER_PRIM_OBJECTS = # dumpworld.do unixlib.do process.do fetchparam.do \
#	sample.do
F_USER_PRIM_OBJECTS = # dumpworld.fo unixlib.fo process.fo fetchparam.fo \
#	sample.fo
USER_LIB = # extra libraries needed by user primitives

dumpworld.oo dumpworld.do dumpworld.fo: unexec.c getpagesize.h
fetchparam.oo fetchparam.do fetchparam.fo: Makefile
Xrep.oo Xrep.do Xrep.fo: scheme.touch primitive.h Xlib.h
Xlib.oo Xlib.do Xlib.fo: scheme.touch primitive.h stringprim.h Xlib.h

getpagesize.h: pagesize.h
	rm -f getpagesize.h
	cp pagesize.h getpagesize.h

# Extra flags.  The stepper does not work, at present.

EFLAG = # -DCOMPILE_STEPPER

#
#
###	COMMON PART	###
#
#
#

#
# *** Important: ***
# You should not need to change anything below this point.
# All the machine & os/installation dependencies are above.
# 

LIB = $(USER_LIB) $(MATH_LIB) $(TERM_LIB) $(XTRA_LIB)

BASE_PRIM_SOURCES = $(SYS_PRIM_SOURCES) $(USER_PRIM_SOURCES)
BASE_PRIM_OBJECTS = $(SYS_PRIM_OBJECTS) $(USER_PRIM_OBJECTS)

# These primitive files are for the default version of scheme

PRIM_SOURCES = $(BASE_PRIM_SOURCES)
PRIM_OBJECTS = $(BASE_PRIM_OBJECTS) usrdef.o

# These are for dscheme, a debugging version.  You don't want to use it.

D_PRIM_SOURCES = $(D_SYS_PRIM_SOURCES) $(USER_PRIM_SOURCES)
D_PRIM_OBJECTS = $(D_SYS_PRIM_OBJECTS) $(D_USER_PRIM_OBJECTS) dusrdef.o

# These are for fscheme, a version with futures, a multiprocessing extension.

F_PRIM_SOURCES = $(F_SYS_PRIM_SOURCES) $(USER_PRIM_SOURCES)
F_PRIM_OBJECTS = $(F_SYS_PRIM_OBJECTS) $(F_USER_PRIM_OBJECTS) fusrdef.o

# These extra files are for 6001.

6001_SOURCES = $(BASE_PRIM_SOURCES) Sgraph.c
6001_OBJECTS = $(BASE_PRIM_OBJECTS) Sgraph.oo usr6001.oo
6001_LIB = -ltermcap -ldd300h -lsb1 -lsb2 $(MATH_LIB)

# These extra files are for 6003.

6003_SOURCES = $(BASE_PRIM_SOURCES) Sgraph.c Sgraph_xt.c fft.c array.c \
	image.c Sgraph_ar.c
6003_OBJECTS = $(BASE_PRIM_OBJECTS) Sgraph.oo Sgraph_xt.oo fft.oo array.oo \
	image.oo Sgraph_ar.oo usr6003.oo
6003_LIB = -ltermcap -ldd300h -lddhil -lsb1 -lsb2 $(MATH_LIB)

# These extra files are for KWH's development SCHEME

KWH_SOURCES = $(BASE_PRIM_SOURCES) bitops.c # Xlib.c Xrep.c 
KWH_OBJECTS = $(BASE_PRIM_OBJECTS) bitops.oo usrKWH.oo # Xlib.c Xrep.c 
KWH_LIB = -ltermcap -ldd300h -lddhil -lsb1 -lsb2 -lX $(MATH_LIB)

# Default switches

SWITCHES = $(MAC) $(BAND) $(SPATH) $(EFLAG) $(CFLAG)
PSWITCHES = -DCOMPILE_HISTORY $(SWITCHES)

# Size of the built-in primitive table.

NBUILT = 0x1b0

SRC0= interpret.c hooks.c utils.c $(CSRC)
SRC1= fixnum.c hunk.c list.c \
      step.c string.c vector.c sysprim.c daemon.c
SRC2= prim.c random.c primutl.c extern.c
SRC3= lookup.c debug.c intern.c
SRC4= fasdump.c fasload.c
SRC5= memmag.c gcloop.c purify.c purutl.c comutl.c
SRC6= bignum.c flonum.c generic.c
SRC7= storage.c
SRC8= character.c fileio.c stringprim.c ttyio.c
SRC9= boot.c
SRC10= syntax.c bitstr.c regex.c rgxprim.c

SRC4bch = bchdmp.c fasload.c
SRC5bch = bchmmg.c bchgcl.c bchpur.c purutl.c comutl.c

SOURCES = $(SRC0) $(SRC1) $(SRC2) $(SRC3) $(SRC4) \
	  $(SRC5) $(SRC6) $(SRC7) $(SRC8) $(SRC9) \
	  $(SRC10)

OBJ0= interpret.oo hooks.oo utils.oo
OBJ1= fixnum.oo hunk.oo list.oo \
      step.oo string.oo vector.oo sysprim.oo daemon.oo
OBJ2= prim.oo random.oo primutl.oo extern.oo
OBJ3= lookup.oo debug.oo intern.oo
OBJ4= fasdump.oo fasload.oo
OBJ5= memmag.oo gcloop.oo purify.oo purutl.oo comutl.oo
OBJ6= bignum.oo flonum.oo generic.oo
OBJ7= storage.oo
OBJ8= character.oo fileio.oo stringprim.oo ttyio.oo
OBJ9= boot.oo
OBJ10= syntax.oo bitstr.oo regex.oo rgxprim.oo

OBJECTS = $(OBJ0) $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) \
	  $(OBJ5) $(OBJ6) $(OBJ7) $(OBJ8) $(OBJ9) \
	  $(OBJ10) os.oo bltdef.oo

OBJ4bch= bchdmp.oo fasload.oo
OBJ5bch= bchmmg.oo bchgcl.oo bchpur.oo purutl.oo comutl.oo

BCHOBJECTS = $(OBJ0) $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4bch) \
	     $(OBJ5bch) $(OBJ6) $(OBJ7) $(OBJ8) $(OBJ9) \
	     $(OBJ10) os.oo bltdef.oo

OSWITCHES = $(SWITCHES) -DCOMPILE_HISTORY -O


OBJD0= interpret.do hooks.do utils.do bkpt.do
OBJD1= fixnum.do hunk.do list.do \
       step.do string.do vector.do sysprim.do daemon.do
OBJD2= prim.do random.do primutl.do extern.do
OBJD3= lookup.do debug.do intern.do
OBJD4= fasdump.do fasload.do
OBJD5= memmag.do gcloop.do purify.do purutl.do comutl.do
OBJD6= bignum.do flonum.do generic.do
OBJD7= storage.do
OBJD8= character.do fileio.do stringprim.do ttyio.do
OBJD9= boot.do
OBJD10= syntax.do bitstr.do regex.do rgxprim.do

D_OBJECTS = $(OBJD0) $(OBJD1) $(OBJD2) $(OBJD3) $(OBJD4) \
	    $(OBJD5) $(OBJD6) $(OBJD7) $(OBJD8) $(OBJD9) \
	    $(OBJD10) os.do bltdef.do

DSWITCHES = -g $(SWITCHES) -DENABLE_DEBUGGING_TOOLS


OBJF0= interpret.fo hooks.fo utils.fo
OBJF1= fixnum.fo hunk.fo list.fo \
       step.fo string.fo vector.fo sysprim.fo daemon.fo
OBJF2= prim.fo random.fo primutl.fo extern.fo
OBJF3= lookup.fo debug.fo intern.fo
OBJF4= fasdump.fo fasload.fo
OBJF5= memmag.fo gcloop.fo purify.fo purutl.fo comutl.fo
OBJF6= bignum.fo flonum.fo generic.fo
OBJF7= storage.fo
OBJF8= character.fo fileio.fo stringprim.fo ttyio.fo
OBJF9= boot.fo
OBJF10= syntax.fo bitstr.fo regex.fo rgxprim.fo

F_OBJECTS = $(OBJF0) $(OBJF1) $(OBJF2) $(OBJF3) $(OBJF4) \
	    $(OBJF5) $(OBJF6) $(OBJF7) $(OBJF8) $(OBJF9) \
	    $(OBJF10) os.fo bltdef.fo

FSWITCHES = -g $(SWITCHES) -DCOMPILE_FUTURES -DUSE_STACKLETS
# -DENABLE_DEBUGGING_TOOLS -DFUTURE_LOGGING


# This tells make how to generate the scheme object files

.SUFFIXES: .oo .do .fo .o .s .opp .dpp .fpp
.c.opp: ; @$(ECHO) "#** Generating" $@
	make Breakup
	cc -E $(OSWITCHES) $*.c | \
	Breakup | \
	sed -e 's/^#.*//' -e 's/^[ 	]*$$//' -e 's/^$$//' | \
	sed -n -e '/^..*/p' > $*.opp
.c.dpp: ; @$(ECHO) "#** Generating" $@
	make Breakup
	cc -E $(DSWITCHES) -DDEBUG $*.c | \
	Breakup | \
	sed -e 's/^#.*//' -e 's/^[ 	]*$$//' -e 's/^$$//' | \
	sed -n -e '/^..*/p' > $*.dpp
.c.fpp: ; @$(ECHO) "#** Generating" $@
	make Breakup
	cc -E $(FSWITCHES) $*.c | \
	Breakup | \
	sed -e 's/^#.*//' -e 's/^[ 	]*$$//' -e 's/^$$//' | \
	sed -n -e '/^..*/p' > $*.fpp
.c.oo: ; @$(ECHO) "#**   Generating" $@ because of $?
	$(CC) -c $(OSWITCHES) $*.c
	rm -f $*.oo
	mv $*.o $*.oo
.c.do: ; @$(ECHO) "#**   Generating" $@ because of $?
	$(CC) -c $(DSWITCHES) $*.c
	rm -f $*.do
	mv $*.o $*.do
.c.fo: ; @$(ECHO) "#**   Generating" $@ because of $?
	$(CC) -c $(FSWITCHES) $*.c
	rm -f $*.fo
	mv $*.o $*.fo
.c.o: ; @$(ECHO) "#**   Generating" $@ because of $?
	$(CC) -c $(PSWITCHES) $*.c
.s.o: ; @$(ECHO) "#**   Generating" $@ because of $?
	@$(ECHO) "# as -m" $*.s
	rm -f $*.o $*.m4
	m4 $*.s >$*.m4
	as -o $*.o $*.m4
.c.s: ; @$(ECHO) "#**   Generating" $@
	$(CC) -S $(OSWITCHES) $*.c

# Here are the main blocks to make

all: Psbtobin scheme

world: all scm6001 scm6003 bchscheme # kwhscheme

everything: world Bintopsb Ppband

remove:
	rm -f scheme bchscheme dscheme fscheme scm6001 scm6003 kwhscheme
	rm -f Findprim Bintopsb Psbtobin Breakup Wsize Ppband
	rm -f bltdef.c *.o *.oo *.do *.fo # cmp68020.m4
	rm -f usrdef.c dusrdef.c fusrdef.c usr6001.c usr6003.c usrKWH.c
	rm -f scheme.touch os.touch translate.touch usrdef.touch
	rm -f lint.out lint.dout lint.fout

relink:
	@$(ECHO) "#**   Re-linking" $@ because of $?
	rm -f scheme
	$(CC) -o scheme $(OBJECTS) $(PRIM_OBJECTS) $(CFILE) $(LIB)

scheme: $(OBJECTS) $(PRIM_OBJECTS) $(CFILE)
	@$(ECHO) "#**   Re-linking" $@ because of $?
	rm -f scheme
	$(CC) -o scheme $(OBJECTS) $(PRIM_OBJECTS) $(CFILE) $(LIB)

bchscheme: $(BCHOBJECTS) $(PRIM_OBJECTS) $(CFILE)
	@$(ECHO) "#**   Re-linking" $@ because of $?
	rm -f bchscheme
	$(CC) -o bchscheme $(BCHOBJECTS) $(PRIM_OBJECTS) $(CFILE) $(LIB)

scm6001: $(OBJECTS) $(6001_OBJECTS) $(CFILE)
	@$(ECHO) "#**   Re-linking" $@ because of $?
	rm -f scm6001
	$(CC) -o scm6001 $(OBJECTS) $(6001_OBJECTS) $(CFILE) $(6001_LIB)

scm6003: $(OBJECTS) $(6003_OBJECTS) $(CFILE)
	@$(ECHO) "#**   Re-linking" $@ because of $?
	rm -f scm6003
	$(CC) -o scm6003 $(OBJECTS) $(6003_OBJECTS) $(CFILE) $(6003_LIB)

kwhscheme: $(BCHOBJECTS) $(KWH_OBJECTS) $(CFILE)
	@$(ECHO) "#**   Re-linking" $@ because of $?
	rm -f kwhscheme
	$(CC) -o kwhscheme $(BCHOBJECTS) $(KWH_OBJECTS) $(CFILE) $(KWH_LIB)

dscheme: $(D_OBJECTS) $(D_PRIM_OBJECTS) $(D_CFILE)
	@$(ECHO) "#**   Re-linking" $@ because of $?
	rm -f dscheme
	$(CC) -g -o dscheme $(D_OBJECTS) $(D_PRIM_OBJECTS) $(D_CFILE) $(LIB)

fscheme: $(F_OBJECTS) $(F_PRIM_OBJECTS) $(F_CFILE)
	@$(ECHO) "#**   Re-linking" $@ because of $?
	rm -f fscheme
	$(CC) -g -o fscheme $(F_OBJECTS) $(F_PRIM_OBJECTS) $(F_CFILE) $(LIB)

# Primitive table files

# The first four are for VMS.

builtin.txt:
	make_vmslist builtin.txt $(SOURCES)

usrdef.txt:
	make_vmslist usrdef.txt $(PRIM_SOURCES)

vmsbltdef.c:
	echo "$$ Findprim -o bltdef.c -b $(NBUILT) -l [-.vms]builtin.txt"
	$(CC) -c $(OSWITCHES) bltdef.c

vmsusrdef.c:
	echo "$$ Findprim -o usrdef.c -l [-.vms]usrdef.txt"
	$(CC) -c $(OSWITCHES) usrdef.c
#
# This one should depend on SOURCES, but it changes rarely,
# so it is left out be genrated by hand.
#

bltdef.c: usrdef.touch Findprim Makefile # $(SOURCES)
	@$(ECHO) "#**   Re-making" $@ because of $?
	rm -f bltdef.c
	./Findprim -b $(NBUILT) $(SOURCES) >bltdef.c

usrdef.c: usrdef.touch Findprim Makefile $(PRIM_SOURCES)
	@$(ECHO) "#**   Re-making" $@ because of $?
	rm -f usrdef.c
	./Findprim $(PRIM_SOURCES) >usrdef.c

dusrdef.c: $(D_PRIM_SOURCES) usrdef.touch Findprim Makefile
	@$(ECHO) "#**   Re-making" $@ because of $?
	rm -f dusrdef.c
	./Findprim $(D_PRIM_SOURCES) >dusrdef.c

fusrdef.c: $(F_PRIM_SOURCES) usrdef.touch Findprim Makefile
	@$(ECHO) "#**   Re-making" $@ because of $?
	rm -f fusrdef.c
	./Findprim $(F_PRIM_SOURCES) >fusrdef.c

usr6001.c: $(6001_SOURCES) usrdef.touch Findprim Makefile
	@$(ECHO) "#**   Re-making" $@ because of $?
	rm -f usr6001.c
	./Findprim $(6001_SOURCES) >usr6001.c

usr6003.c: $(6003_SOURCES) usrdef.touch Findprim Makefile
	@$(ECHO) "#**   Re-making" $@ because of $?
	rm -f usr6003.c
	./Findprim $(6003_SOURCES) >usr6003.c

usrKWH.c: $(KWH_SOURCES) usrdef.touch Findprim Makefile
	@$(ECHO) "#**   Re-making" $@ because of $?
	rm -f usrKWH.c
	./Findprim $(KWH_SOURCES) >usrKWH.c

Findprim: Findprim.c
	@$(ECHO) "#**   Re-generating" $@ because of $?
	rm -f Findprim
	$(CC) $(MAC) -o Findprim Findprim.c

Bintopsb: translate.touch trap.h load.c Bintopsb.c
	@$(ECHO) "#**   Re-making" $@ because of $?
	rm -f Bintopsb
	$(CC) $(MAC) -O -o Bintopsb Bintopsb.c $(MATH_LIB)

Psbtobin: translate.touch dump.c Psbtobin.c
	@$(ECHO) "#**   Re-making" $@ because of $?
	rm -f Psbtobin
	$(CC) $(MAC) -O -o Psbtobin Psbtobin.c $(MATH_LIB)

Breakup: Breakup.c
	rm -f Breakup
	$(CC) $(MAC) -O -o Breakup Breakup.c

Wsize: Wsize.c
	rm -f Wsize
	$(CC) $(MAC) -o Wsize Wsize.c $(MATH_LIB)

Ppband: scheme.touch fasl.h load.c gctype.c Ppband.c
	rm -f Ppband
	$(CC) $(MAC) -o Ppband Ppband.c

# scheme.touch depends also on butterfly.h rename.c

scheme.touch: scheme.h config.h bkpt.h object.h scode.h sdata.h	\
	gc.h interpret.h stack.h futures.h types.h errors.h returns.h \
	const.h fixobj.h default.h extern.h  \
	prim.h
	@$(ECHO) "#**   Resetting" $@ because of $?
	touch scheme.touch

os.touch: os.c unix.c vms.c unknown.c scheme.touch zones.h
	@$(ECHO) "#**   Resetting" $@ because of $?
	touch os.touch

translate.touch: config.h object.h bignum.h gc.h types.h	\
	sdata.h const.h fasl.h load.c dump.c translate.h	\
	$(GC_HEAD_FILES)
	@$(ECHO) "#**   Resetting" $@ because of $?
	touch translate.touch

usrdef.touch: usrdef.h config.h object.h prim.h
	@$(ECHO) "#**   Resetting" $@ because of $?
	touch usrdef.touch

HEAD_FILES = scheme.touch primitive.h zones.h locks.h		\
	flonum.h bignum.h stringprim.h character.h		\
	$(GC_HEAD_FILES) trap.h lookup.h history.h cmpint.h

lint.out: $(SOURCES) $(PRIM_SOURCES) $(CSRC) usrdef.c $(HEAD_FILES)
	rm -f lint.out
	lint $(OSWITCHES) $(SOURCES) $(PRIM_SOURCES) $(CSRC) usrdef.c >lint.out

lint.dout: $(SOURCES) $(D_PRIM_SOURCES) $(CSRC) dusrdef.c $(HEAD_FILES)
	rm -f lint.dout
	lint $(DSWITCHES) $(SOURCES) $(D_PRIM_SOURCES) $(CSRC) dusrdef.c \
	>lint.dout

lint.fout: $(SOURCES) $(F_PRIM_SOURCES) $(CSRC) fusrdef.c $(HEAD_FILES)
	rm -f lint.fout
	lint $(FSWITCHES) $(SOURCES) $(F_PRIM_SOURCES) $(CSRC) fusrdef.c \
	>lint.fout

# Here are the source file dependencies on the header files

# The files in OBJ0, etc. are explicitly listed below.
$(OBJF1) $(OBJD1) $(OBJ1): scheme.touch primitive.h
$(OBJF2) $(OBJD2) $(OBJ2): scheme.touch primitive.h
$(OBJF3) $(OBJD3) $(OBJ3): scheme.touch lookup.h trap.h primitive.h locks.h
$(OBJF4) $(OBJD4) $(OBJ4): scheme.touch primitive.h trap.h $(GC_HEAD_FILES) \
	fasl.h load.c dump.c
$(OBJF5) $(OBJD5) $(OBJ5): scheme.touch primitive.h $(GC_HEAD_FILES) zones.h
$(OBJF6) $(OBJD6) $(OBJ6): scheme.touch primitive.h flonum.h zones.h bignum.h
$(OBJF7) $(OBJD7) $(OBJ7): scheme.touch gctype.c
$(OBJF8) $(OBJD8) $(OBJ8): scheme.touch primitive.h stringprim.h character.h
$(OBJF9) $(OBJD9) $(OBJ9): scheme.touch primitive.h version.h character.h \
	Makefile
$(PRIM_OBJECTS) $(D_PRIM_OBJECTS) $(F_PRIM_OBJECTS): $(HEAD_FILES)
$(6001_OBJECTS) $(6003_OBJECTS) $(KWH_OBJECTS): $(HEAD_FILES)

#
# These files have explicit dependencies
#

interpret.oo interpret.do interpret.fo: scheme.touch locks.h trap.h \
	lookup.h  history.h cmpint.h zones.h

hooks.oo hooks.do hooks.fo: scheme.touch primitive.h winder.h history.h

utils.oo utils.do utils.fo: scheme.touch primitive.h flonum.h winder.h \
	history.h cmpint.h

bkpt.do: scheme.touch

os.oo os.do os.fo: scheme.touch os.touch zones.h

compiler.oo compiler.do compiler.fo: config.h object.h sdata.h		\
				     types.h errors.h const.h returns.h

bchmmg.oo bchgcl.oo bchpur.oo: scheme.touch primitive.h bchgcc.h $(GC_HEAD_FILES)

bchdmp.oo: scheme.touch primitive.h bchgcc.h $(GC_HEAD_FILES) fasl.h dump.c

Sgraph.oo Sgraph.do Sgraph.fo: Sgraph.h
Sgraph_xt.oo Sgraph_xt.do Sgraph_xt.fo: Sgraph.h
Sgraph_ar.oo Sgraph_ar.do Sgraph_ar.fo: Sgraph.h array.h
fft.oo fft.do fft.fo: array.h
array.oo array.do array.fo: array.h
image.oo image.do image.fo: array.h image.h
hooks.oo hooks.do hooks.fo: winder.h
utils.oo utils.do utils.fo: winder.h

syntax.oo syntax.do syntax.fo: scheme.touch primitive.h stringprim.h \
	character.h edwin.h syntax.h
bitstr.oo bitstr.do bitstr.fo: scheme.touch primitive.h bignum.h bitstr.h
regex.oo regex.do regex.fo: scheme.touch character.h syntax.h regex.h
rgxprim.oo rgxprim.do rgxprim.fo: scheme.touch primitive.h stringprim.h \
	character.h edwin.h syntax.h regex.h

# Lint crud

lint.out lint.dout lint.fout:					\
	scheme.touch primitive.h fasl.h				\
	flonum.h bignum.h locks.h zones.h Makefile unexec.c

