# Makefile for the CLISP binaries
# DO NOT EDIT! GENERATED AUTOMATICALLY!
# This file was created on host laplace.ilog.fr as the output of the command:
# ./makemake doswatcom wcl386

# -------------- Start of configurable section --------------------

# Directories used by "make install":
prefix = 
exec_prefix = $(prefix)
bindir = $(exec_prefix)\bin
mandir = $(exec_prefix)\man
htmldir = $(exec_prefix)\share\html
dvidir = $(exec_prefix)\share\dvi
docdir = $(exec_prefix)\doc
lispdocdir = $(docdir)\clisp
libdir = $(exec_prefix)\lib
lisplibdir = $(libdir)\clisp
# The value of following variable is prepended to all the paths for
# installation. This is useful when preparing a binary distribution.
install_root =

# List of add-on modules:
# queens               the queens function as a separate module
# If you change this after doing "make", you have to "rm -r full; make".
MODULES =  

# Programs used by "make":
CC = wcl386
CFLAGS = -3r -oxet -j -zq -w0 -zp4 -DUNICODE
CPP = wcl386 -p -zq
CLFLAGS = 
LIBS = 
X_LIBS = 
DISASM = wdisasm -au -s

MAKE = make
RM = del
CP = copy
LN = copy
MV = ren
CAT = type
TOUCH = touch
GREP = grep
AR = ar
RANLIB = ranlib

# Programs used by "make install":
INSTALL = copy
INSTALL_PROGRAM = $(INSTALL)
INSTALL_DATA = $(INSTALL)

# Programs used by "make distrib":

# formatter for manual page
ROFF_MAN = groff -Tascii -mandoc # try "groff -Tascii -mandoc" or "nroff -man"
ROFF_DVI = groff -Tdvi -mandoc # try "groff -Tdvi -mandoc"

# -------------- End of configurable section --------------------

#
#                       Requirements for add-on modules
#                       -------------------------------
#
# The general layout of add-on modules is described in ../doc/module.txt.
# The requirements made there (i.e. the existence of a "link.sh" file
# which defines certain variables) make sure that such an add-on module
# can be distributed with CLISP.
#
# If you want an add-on module to be _built_ automatically with CLISP,
# the following additional requirements have to be obeyed.
#
#   1. The module must be located in a subdirectory of clisp's source
#      directory.
#      Examples: clisp/src/ wildcard/
#                clisp/src/ bindings/linuxlibc5/
#
#   2. If the module contains a file called "configure", it is assumed
#      to be a GNU autoconf generated configuration file, and is called
#      with a "--cache-file=..." argument. It should generate platform
#      dependent header files, Makefiles and the like.
#
#   3. The module should contain a Makefile (maybe generated by requirement 2),
#      which defines the following targets:
#
#        clisp-module
#
#           This target builds the file mentioned by the link.sh file.
#           The following makefile variables can be used:
#             CC                 the C compiler used to compile the CLISP source
#             CFLAGS             the C compiler flags
#             INCLUDES           a directory containing CLISP header files
#             LISPBIBL_INCLUDES  if you #include "lispbibl.c", put this onto
#                                the dependency line
#             CLFLAGS            the C compiler flags when linking an executable
#             LIBS               the libraries used when linking an executable
#             RANLIB             the name of the "ranlib" command
#             CLISP              a command which calls the already built
#                                "base" clisp.
#           Typically, you will have rules like this in your Makefile:
#               foo.o : foo.c
#                       $(CC) $(CFLAGS) -I$(INCLUDES) -c foo.c
#               foo.fas : foo.lsp
#                       $(CLISP) -c foo.lsp
#
#        clisp-module-distrib
#
#           This target copies the module into a temporary distribution
#           directory, on the same disk.
#           The following makefile variables can be used:
#             distribdir       the name of temporary distribution directory
#             LN               command to make hard links (works also for
#                              symbolic links)
#           Typically, this target will look like this:
#
#               DISTRIBFILES = <the NEW_FILES mentioned in link.sh> <doc files>
#               clisp-module-distrib : clisp-module force
#                       $(LN) $(DISTRIBFILES) $(distribdir)
#
# If these requirements are obeyed, this Makefile will automatically build
# the add-on module and make it part of the "full" distribution -- all you
# need to do is to add its name to the MODULES definition line above.
#

COMMENT5 = comment5
ANSIDECL = ansidecl
VARBRACE = varbrace
DEEMA = deema
TXT2C = txt2c -I../

DFILES = \
spvw.d \
spvwtabf.d \
spvwtabs.d \
spvwtabo.d \
eval.d \
control.d \
encoding.d \
pathname.d \
stream.d \
io.d \
array.d \
hashtabl.d \
list.d \
package.d \
record.d \
sequence.d \
charstrg.d \
debug.d \
error.d \
misc.d \
time.d \
predtype.d \
symbol.d \
lisparit.d \
lispbibl.d \
fsubr.d \
subr.d \
pseudofun.d \
constsym.d \
constobj.d \
msdos.d \
constpack.d \
avl.d \
sort.d \
subrkw.d \
bytecode.d \
spvw_module.d \
spvw_debug.d \
spvw_alloca.d \
spvw_mmap.d \
spvw_multimap.d \
spvw_singlemap.d \
spvw_page.d \
spvw_heap.d \
spvw_global.d \
spvw_gcstat.d \
spvw_space.d \
spvw_mark.d \
spvw_objsize.d \
spvw_update.d \
spvw_fault.d \
spvw_sigsegv.d \
spvw_sigcld.d \
spvw_sigpipe.d \
spvw_sigint.d \
spvw_sigwinch.d \
spvw_garcol.d \
spvw_genera1.d \
spvw_genera2.d \
spvw_genera3.d \
spvw_allocate.d \
spvw_typealloc.d \
spvw_circ.d \
spvw_walk.d \
spvw_ctype.d \
spvw_language.d \
spvw_memfile.d \
errunix.d \
aridecl.d \
arilev0.d \
arilev1.d \
intelem.d \
intlog.d \
intplus.d \
intcomp.d \
intbyte.d \
intmal.d \
intdiv.d \
intgcd.d \
int2adic.d \
intsqrt.d \
intprint.d \
intread.d \
rational.d \
sfloat.d \
ffloat.d \
dfloat.d \
lfloat.d \
flo_konv.d \
flo_rest.d \
realelem.d \
realrand.d \
realtran.d \
compelem.d \
comptran.d \
arilev1c.d \
arilev1e.d \
arilev1i.d \
genclisph.d \
modules.d \
noreadline.d

CFILES = \
spvw.c \
spvwtabf.c \
spvwtabs.c \
spvwtabo.c \
eval.c \
control.c \
encoding.c \
pathname.c \
stream.c \
io.c \
array.c \
hashtabl.c \
list.c \
package.c \
record.c \
sequence.c \
charstrg.c \
debug.c \
error.c \
misc.c \
time.c \
predtype.c \
symbol.c \
lisparit.c \
lispbibl.c \
fsubr.c \
subr.c \
pseudofun.c \
constsym.c \
constobj.c \
msdos.c \
constpack.c \
avl.c \
sort.c \
subrkw.c \
bytecode.c \
spvw_module.c \
spvw_debug.c \
spvw_alloca.c \
spvw_mmap.c \
spvw_multimap.c \
spvw_singlemap.c \
spvw_page.c \
spvw_heap.c \
spvw_global.c \
spvw_gcstat.c \
spvw_space.c \
spvw_mark.c \
spvw_objsize.c \
spvw_update.c \
spvw_fault.c \
spvw_sigsegv.c \
spvw_sigcld.c \
spvw_sigpipe.c \
spvw_sigint.c \
spvw_sigwinch.c \
spvw_garcol.c \
spvw_genera1.c \
spvw_genera2.c \
spvw_genera3.c \
spvw_allocate.c \
spvw_typealloc.c \
spvw_circ.c \
spvw_walk.c \
spvw_ctype.c \
spvw_language.c \
spvw_memfile.c \
errunix.c \
aridecl.c \
arilev0.c \
arilev1.c \
intelem.c \
intlog.c \
intplus.c \
intcomp.c \
intbyte.c \
intmal.c \
intdiv.c \
intgcd.c \
int2adic.c \
intsqrt.c \
intprint.c \
intread.c \
rational.c \
sfloat.c \
ffloat.c \
dfloat.c \
lfloat.c \
flo_konv.c \
flo_rest.c \
realelem.c \
realrand.c \
realtran.c \
compelem.c \
comptran.c \
arilev1c.c \
arilev1e.c \
arilev1i.c \
genclisph.c \
modules.c \
noreadline.c

OBJECTS = \
spvw.obj \
spvwtabf.obj \
spvwtabs.obj \
spvwtabo.obj \
eval.obj \
control.obj \
encoding.obj \
pathname.obj \
stream.obj \
io.obj \
array.obj \
hashtabl.obj \
list.obj \
package.obj \
record.obj \
sequence.obj \
charstrg.obj \
debug.obj \
error.obj \
misc.obj \
time.obj \
predtype.obj \
symbol.obj \
lisparit.obj

LSPFILES = \
init.lsp \
defseq.lsp \
backquot.lsp \
defmacro.lsp \
macros1.lsp \
macros2.lsp \
defs1.lsp \
timezone.lsp \
places.lsp \
floatpri.lsp \
type.lsp \
defstruc.lsp \
format.lsp \
savemem.lsp \
trace.lsp \
compiler.lsp \
disassem.lsp \
defs2.lsp \
loop.lsp \
clos.lsp \
conditio.lsp \
gstream.lsp \
xcharin.lsp \
keyboard.lsp \
screen.lsp \
runprog.lsp \
query.lsp \
reploop.lsp \
dribble.lsp \
complete.lsp \
describe.lsp \
room.lsp \
edit.lsp \
macros3.lsp \
posix.lsp \
foreign1.lsp \
defs3.lsp \
german.lsp \
french.lsp \
spanish.lsp \
dutch.lsp \
config.lsp

FASFILES = \
init.fas \
defseq.fas \
backquot.fas \
defmacro.fas \
macros1.fas \
macros2.fas \
defs1.fas \
timezone.fas \
places.fas \
floatpri.fas \
type.fas \
defstruc.fas \
format.fas \
savemem.fas \
trace.fas \
compiler.fas \
disassem.fas \
defs2.fas \
loop.fas \
clos.fas \
conditio.fas \
gstream.fas \
xcharin.fas \
keyboard.fas \
screen.fas \
runprog.fas \
query.fas \
reploop.fas \
dribble.fas \
complete.fas \
describe.fas \
room.fas \
edit.fas \
macros3.fas \
posix.fas \
foreign1.fas \
defs3.fas \
german.fas \
french.fas \
spanish.fas \
dutch.fas \
config.fas

TXTFILES = \
LISP-tutorial.txt \
CLOS-guide.txt \
editors.txt

TESTLSPFILES = \
stage\init.lsp \
stage\defseq.lsp \
stage\backquot.lsp \
stage\defmacro.lsp \
stage\macros1.lsp \
stage\macros2.lsp \
stage\defs1.lsp \
stage\timezone.lsp \
stage\places.lsp \
stage\floatpri.lsp \
stage\type.lsp \
stage\defstruc.lsp \
stage\format.lsp \
stage\savemem.lsp \
stage\trace.lsp \
stage\compiler.lsp \
stage\disassem.lsp \
stage\defs2.lsp \
stage\loop.lsp \
stage\clos.lsp \
stage\conditio.lsp \
stage\gstream.lsp \
stage\xcharin.lsp \
stage\keyboard.lsp \
stage\screen.lsp \
stage\runprog.lsp \
stage\query.lsp \
stage\reploop.lsp \
stage\dribble.lsp \
stage\complete.lsp \
stage\describe.lsp \
stage\room.lsp \
stage\edit.lsp \
stage\macros3.lsp \
stage\posix.lsp \
stage\foreign1.lsp \
stage\defs3.lsp \
stage\german.lsp \
stage\french.lsp \
stage\spanish.lsp \
stage\dutch.lsp \
stage\config.lsp

TESTFASFILES = \
stage\init.fas \
stage\defseq.fas \
stage\backquot.fas \
stage\defmacro.fas \
stage\macros1.fas \
stage\macros2.fas \
stage\defs1.fas \
stage\timezone.fas \
stage\places.fas \
stage\floatpri.fas \
stage\type.fas \
stage\defstruc.fas \
stage\format.fas \
stage\savemem.fas \
stage\trace.fas \
stage\compiler.fas \
stage\disassem.fas \
stage\defs2.fas \
stage\loop.fas \
stage\clos.fas \
stage\conditio.fas \
stage\gstream.fas \
stage\xcharin.fas \
stage\keyboard.fas \
stage\screen.fas \
stage\runprog.fas \
stage\query.fas \
stage\reploop.fas \
stage\dribble.fas \
stage\complete.fas \
stage\describe.fas \
stage\room.fas \
stage\edit.fas \
stage\macros3.fas \
stage\posix.fas \
stage\foreign1.fas \
stage\defs3.fas \
stage\german.fas \
stage\french.fas \
stage\spanish.fas \
stage\dutch.fas \
stage\config.fas


all : init allc allo lisp.exe interpreted.mem halfcompiled.mem lispinit.mem manual


init : comment5.exe ansidecl.exe varbrace.exe deema.exe txt2c.exe ccmp2c.exe modprep.exe $(DFILES) modules.h

comment5.exe : ..\utils\comment5.c
	$(CC) $(CFLAGS) $(CLFLAGS) ..\utils\comment5.c -fo=comment5.exe

ansidecl.exe : ..\utils\ansidecl.d comment5.exe
	$(LN) ..\utils\ansidecl.d ansidecl.d
	$(COMMENT5) ansidecl.d ansidecl.c
	$(RM) ansidecl.d
	$(CC) $(CFLAGS) $(CLFLAGS) ansidecl.c -fo=ansidecl.exe
	$(RM) ansidecl.c

varbrace.exe : ..\utils\varbrace.d comment5.exe ansidecl.exe
	$(COMMENT5) ..\utils\varbrace.d | $(ANSIDECL) > varbrace.c
	$(CC) $(CFLAGS) $(CLFLAGS) varbrace.c -fo=varbrace.exe
	$(RM) varbrace.c

deema.exe : ..\utils\deema.c
	$(CC) $(CFLAGS) $(CLFLAGS) ..\utils\deema.c -fo=deema.exe

txt2c.exe : ..\utils\txt2c.c ansidecl.exe
	$(ANSIDECL) < ..\utils\txt2c.c > txt2c.c
	$(CC) $(CFLAGS) $(CLFLAGS) txt2c.c -fo=txt2c.exe
	$(RM) txt2c.c

ccmp2c.exe : ..\utils\ccmp2c.d comment5.exe ansidecl.exe
	$(COMMENT5) ..\utils\ccmp2c.d | $(ANSIDECL) > ccmp2c.c
	$(CC) $(CFLAGS) $(CLFLAGS) -I. ccmp2c.c -fo=ccmp2c.exe
	$(RM) ccmp2c.c

modprep.exe : ..\utils\modprep.d comment5.exe ansidecl.exe
	$(COMMENT5) ..\utils\modprep.d | $(ANSIDECL) > modprep.c
	$(CC) $(CFLAGS) $(CLFLAGS) modprep.c -fo=modprep.exe
	$(RM) modprep.c


allc : init $(CFILES)

spvw.c : spvw.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw.c

spvwtabf.c : spvwtabf.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvwtabf.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvwtabf.c

spvwtabs.c : spvwtabs.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvwtabs.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvwtabs.c

spvwtabo.c : spvwtabo.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvwtabo.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvwtabo.c

eval.c : eval.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) eval.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > eval.c

control.c : control.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) control.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > control.c

encoding.c : encoding.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) encoding.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > encoding.c

pathname.c : pathname.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) pathname.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > pathname.c

stream.c : stream.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) stream.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > stream.c

io.c : io.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) io.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > io.c

array.c : array.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) array.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > array.c

hashtabl.c : hashtabl.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) hashtabl.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > hashtabl.c

list.c : list.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) list.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > list.c

package.c : package.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) package.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > package.c

record.c : record.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) record.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > record.c

sequence.c : sequence.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) sequence.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > sequence.c

charstrg.c : charstrg.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) charstrg.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > charstrg.c

debug.c : debug.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) debug.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > debug.c

error.c : error.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) error.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > error.c

misc.c : misc.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) misc.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > misc.c

time.c : time.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) time.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > time.c

predtype.c : predtype.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) predtype.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > predtype.c

symbol.c : symbol.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) symbol.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > symbol.c

lisparit.c : lisparit.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) lisparit.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > lisparit.c

lispbibl.c : lispbibl.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) lispbibl.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > lispbibl.c

fsubr.c : fsubr.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) fsubr.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > fsubr.c

subr.c : subr.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) subr.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > subr.c

pseudofun.c : pseudofun.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) pseudofun.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > pseudofun.c

constsym.c : constsym.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) constsym.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > constsym.c

constobj.c : constobj.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) constobj.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > constobj.c

msdos.c : msdos.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) msdos.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > msdos.c

constpack.c : constpack.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) constpack.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > constpack.c

avl.c : avl.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) avl.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > avl.c

sort.c : sort.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) sort.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > sort.c

subrkw.c : subrkw.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) subrkw.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > subrkw.c

bytecode.c : bytecode.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) bytecode.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > bytecode.c

spvw_module.c : spvw_module.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_module.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_module.c

spvw_debug.c : spvw_debug.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_debug.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_debug.c

spvw_alloca.c : spvw_alloca.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_alloca.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_alloca.c

spvw_mmap.c : spvw_mmap.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_mmap.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_mmap.c

spvw_multimap.c : spvw_multimap.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_multimap.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_multimap.c

spvw_singlemap.c : spvw_singlemap.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_singlemap.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_singlemap.c

spvw_page.c : spvw_page.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_page.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_page.c

spvw_heap.c : spvw_heap.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_heap.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_heap.c

spvw_global.c : spvw_global.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_global.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_global.c

spvw_gcstat.c : spvw_gcstat.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_gcstat.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_gcstat.c

spvw_space.c : spvw_space.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_space.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_space.c

spvw_mark.c : spvw_mark.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_mark.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_mark.c

spvw_objsize.c : spvw_objsize.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_objsize.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_objsize.c

spvw_update.c : spvw_update.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_update.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_update.c

spvw_fault.c : spvw_fault.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_fault.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_fault.c

spvw_sigsegv.c : spvw_sigsegv.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_sigsegv.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_sigsegv.c

spvw_sigcld.c : spvw_sigcld.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_sigcld.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_sigcld.c

spvw_sigpipe.c : spvw_sigpipe.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_sigpipe.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_sigpipe.c

spvw_sigint.c : spvw_sigint.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_sigint.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_sigint.c

spvw_sigwinch.c : spvw_sigwinch.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_sigwinch.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_sigwinch.c

spvw_garcol.c : spvw_garcol.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_garcol.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_garcol.c

spvw_genera1.c : spvw_genera1.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_genera1.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_genera1.c

spvw_genera2.c : spvw_genera2.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_genera2.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_genera2.c

spvw_genera3.c : spvw_genera3.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_genera3.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_genera3.c

spvw_allocate.c : spvw_allocate.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_allocate.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_allocate.c

spvw_typealloc.c : spvw_typealloc.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_typealloc.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_typealloc.c

spvw_circ.c : spvw_circ.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_circ.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_circ.c

spvw_walk.c : spvw_walk.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_walk.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_walk.c

spvw_ctype.c : spvw_ctype.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_ctype.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_ctype.c

spvw_language.c : spvw_language.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_language.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_language.c

spvw_memfile.c : spvw_memfile.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) spvw_memfile.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > spvw_memfile.c

errunix.c : errunix.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) errunix.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > errunix.c

aridecl.c : aridecl.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) aridecl.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > aridecl.c

arilev0.c : arilev0.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) arilev0.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > arilev0.c

arilev1.c : arilev1.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) arilev1.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > arilev1.c

intelem.c : intelem.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) intelem.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > intelem.c

intlog.c : intlog.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) intlog.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > intlog.c

intplus.c : intplus.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) intplus.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > intplus.c

intcomp.c : intcomp.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) intcomp.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > intcomp.c

intbyte.c : intbyte.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) intbyte.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > intbyte.c

intmal.c : intmal.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) intmal.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > intmal.c

intdiv.c : intdiv.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) intdiv.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > intdiv.c

intgcd.c : intgcd.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) intgcd.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > intgcd.c

int2adic.c : int2adic.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) int2adic.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > int2adic.c

intsqrt.c : intsqrt.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) intsqrt.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > intsqrt.c

intprint.c : intprint.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) intprint.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > intprint.c

intread.c : intread.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) intread.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > intread.c

rational.c : rational.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) rational.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > rational.c

sfloat.c : sfloat.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) sfloat.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > sfloat.c

ffloat.c : ffloat.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) ffloat.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > ffloat.c

dfloat.c : dfloat.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) dfloat.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > dfloat.c

lfloat.c : lfloat.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) lfloat.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > lfloat.c

flo_konv.c : flo_konv.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) flo_konv.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > flo_konv.c

flo_rest.c : flo_rest.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) flo_rest.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > flo_rest.c

realelem.c : realelem.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) realelem.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > realelem.c

realrand.c : realrand.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) realrand.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > realrand.c

realtran.c : realtran.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) realtran.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > realtran.c

compelem.c : compelem.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) compelem.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > compelem.c

comptran.c : comptran.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) comptran.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > comptran.c

arilev1c.c : arilev1c.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) arilev1c.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > arilev1c.c

arilev1e.c : arilev1e.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) arilev1e.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > arilev1e.c

arilev1i.c : arilev1i.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) arilev1i.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > arilev1i.c

genclisph.c : genclisph.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) genclisph.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > genclisph.c

modules.c : modules.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) modules.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > modules.c

noreadline.c : noreadline.d comment5.exe ansidecl.exe varbrace.exe deema.exe
	$(COMMENT5) noreadline.d | $(ANSIDECL) | $(VARBRACE) | $(DEEMA) > noreadline.c

allo : allc spvw.obj spvwtabf.obj spvwtabs.obj spvwtabo.obj eval.obj control.obj encoding.obj pathname.obj stream.obj io.obj array.obj hashtabl.obj list.obj package.obj record.obj sequence.obj charstrg.obj debug.obj error.obj misc.obj time.obj predtype.obj symbol.obj lisparit.obj

alls : allc spvw.s spvwtabf.s spvwtabs.s spvwtabo.s eval.s control.s encoding.s pathname.s stream.s io.s array.s hashtabl.s list.s package.s record.s sequence.s charstrg.s debug.s error.s misc.s time.s predtype.s symbol.s lisparit.s

# Normally not used (just for debugging).
alli : allc spvw.i spvwtabf.i spvwtabs.i spvwtabo.i eval.i control.i encoding.i pathname.i stream.i io.i array.i hashtabl.i list.i package.i record.i sequence.i charstrg.i debug.i error.i misc.i time.i predtype.i symbol.i lisparit.i

spvw.i : spvw.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c constpack.c avl.c spvw_module.c spvw_debug.c spvw_alloca.c spvw_mmap.c spvw_multimap.c spvw_singlemap.c spvw_page.c spvw_heap.c spvw_global.c spvw_gcstat.c spvw_space.c spvw_mark.c spvw_objsize.c spvw_update.c spvw_fault.c spvw_sigsegv.c spvw_sigcld.c spvw_sigpipe.c spvw_sigint.c spvw_sigwinch.c spvw_garcol.c spvw_genera1.c spvw_genera2.c spvw_genera3.c spvw_allocate.c spvw_typealloc.c spvw_circ.c spvw_walk.c spvw_ctype.c spvw_language.c spvw_memfile.c sort.c subrkw.c arilev0.c aridecl.c version.h
	$(CPP) $(CFLAGS) spvw.c > spvw.i

spvw.s : spvw.obj
	$(DISASM) spvw.obj -l=spvw.s

spvw.obj : spvw.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c constpack.c avl.c spvw_module.c spvw_debug.c spvw_alloca.c spvw_mmap.c spvw_multimap.c spvw_singlemap.c spvw_page.c spvw_heap.c spvw_global.c spvw_gcstat.c spvw_space.c spvw_mark.c spvw_objsize.c spvw_update.c spvw_fault.c spvw_sigsegv.c spvw_sigcld.c spvw_sigpipe.c spvw_sigint.c spvw_sigwinch.c spvw_garcol.c spvw_genera1.c spvw_genera2.c spvw_genera3.c spvw_allocate.c spvw_typealloc.c spvw_circ.c spvw_walk.c spvw_ctype.c spvw_language.c spvw_memfile.c sort.c subrkw.c arilev0.c aridecl.c version.h
	$(CC) $(CFLAGS) -c spvw.c

spvwtabf.i : spvwtabf.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CPP) $(CFLAGS) spvwtabf.c > spvwtabf.i

spvwtabf.s : spvwtabf.obj
	$(DISASM) spvwtabf.obj -l=spvwtabf.s

spvwtabf.obj : spvwtabf.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CC) $(CFLAGS) -c spvwtabf.c

spvwtabs.i : spvwtabs.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CPP) $(CFLAGS) spvwtabs.c > spvwtabs.i

spvwtabs.s : spvwtabs.obj
	$(DISASM) spvwtabs.obj -l=spvwtabs.s

spvwtabs.obj : spvwtabs.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CC) $(CFLAGS) -c spvwtabs.c

spvwtabo.i : spvwtabo.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CPP) $(CFLAGS) spvwtabo.c > spvwtabo.i

spvwtabo.s : spvwtabo.obj
	$(DISASM) spvwtabo.obj -l=spvwtabo.s

spvwtabo.obj : spvwtabo.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CC) $(CFLAGS) -c spvwtabo.c

eval.i : eval.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c bytecode.c
	$(CPP) $(CFLAGS) eval.c > eval.i

eval.s : eval.obj
	$(DISASM) eval.obj -l=eval.s

eval.obj : eval.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c bytecode.c
	$(CC) $(CFLAGS) -c eval.c

control.i : control.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CPP) $(CFLAGS) control.c > control.i

control.s : control.obj
	$(DISASM) control.obj -l=control.s

control.obj : control.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CC) $(CFLAGS) -c control.c

encoding.i : encoding.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c nls_ascii.c nls_iso8859_1.c nls_iso8859_2.c nls_iso8859_3.c nls_iso8859_4.c nls_iso8859_5.c nls_iso8859_6.c nls_iso8859_7.c nls_iso8859_8.c nls_iso8859_9.c nls_iso8859_10.c nls_iso8859_13.c nls_iso8859_14.c nls_iso8859_15.c nls_iso8859_16.c nls_koi8_r.c nls_koi8_u.c nls_mac_arabic.c nls_mac_centraleurope.c nls_mac_croatian.c nls_mac_cyrillic.c nls_mac_dingbat.c nls_mac_greek.c nls_mac_hebrew.c nls_mac_iceland.c nls_mac_roman.c nls_mac_romania.c nls_mac_symbol.c nls_mac_thai.c nls_mac_turkish.c nls_mac_ukraine.c nls_cp437_ms.c nls_cp437_ibm.c nls_cp737.c nls_cp775.c nls_cp850.c nls_cp852_ms.c nls_cp852_ibm.c nls_cp855.c nls_cp857.c nls_cp860_ms.c nls_cp860_ibm.c nls_cp861_ms.c nls_cp861_ibm.c nls_cp862_ms.c nls_cp862_ibm.c nls_cp863_ms.c nls_cp863_ibm.c nls_cp864_ms.c nls_cp864_ibm.c nls_cp865_ms.c nls_cp865_ibm.c nls_cp866.c nls_cp869_ms.c nls_cp869_ibm.c nls_cp874_ms.c nls_cp874_ibm.c nls_cp1250.c nls_cp1251.c nls_cp1252.c nls_cp1253.c nls_cp1254.c nls_cp1255.c nls_cp1256.c nls_cp1257.c nls_cp1258.c nls_hp_roman8.c nls_nextstep.c nls_jisx0201.c
	$(CPP) $(CFLAGS) encoding.c > encoding.i

encoding.s : encoding.obj
	$(DISASM) encoding.obj -l=encoding.s

encoding.obj : encoding.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c nls_ascii.c nls_iso8859_1.c nls_iso8859_2.c nls_iso8859_3.c nls_iso8859_4.c nls_iso8859_5.c nls_iso8859_6.c nls_iso8859_7.c nls_iso8859_8.c nls_iso8859_9.c nls_iso8859_10.c nls_iso8859_13.c nls_iso8859_14.c nls_iso8859_15.c nls_iso8859_16.c nls_koi8_r.c nls_koi8_u.c nls_mac_arabic.c nls_mac_centraleurope.c nls_mac_croatian.c nls_mac_cyrillic.c nls_mac_dingbat.c nls_mac_greek.c nls_mac_hebrew.c nls_mac_iceland.c nls_mac_roman.c nls_mac_romania.c nls_mac_symbol.c nls_mac_thai.c nls_mac_turkish.c nls_mac_ukraine.c nls_cp437_ms.c nls_cp437_ibm.c nls_cp737.c nls_cp775.c nls_cp850.c nls_cp852_ms.c nls_cp852_ibm.c nls_cp855.c nls_cp857.c nls_cp860_ms.c nls_cp860_ibm.c nls_cp861_ms.c nls_cp861_ibm.c nls_cp862_ms.c nls_cp862_ibm.c nls_cp863_ms.c nls_cp863_ibm.c nls_cp864_ms.c nls_cp864_ibm.c nls_cp865_ms.c nls_cp865_ibm.c nls_cp866.c nls_cp869_ms.c nls_cp869_ibm.c nls_cp874_ms.c nls_cp874_ibm.c nls_cp1250.c nls_cp1251.c nls_cp1252.c nls_cp1253.c nls_cp1254.c nls_cp1255.c nls_cp1256.c nls_cp1257.c nls_cp1258.c nls_hp_roman8.c nls_nextstep.c nls_jisx0201.c
	$(CC) $(CFLAGS) -c encoding.c

pathname.i : pathname.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CPP) $(CFLAGS) pathname.c > pathname.i

pathname.s : pathname.obj
	$(DISASM) pathname.obj -l=pathname.s

pathname.obj : pathname.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CC) $(CFLAGS) -c pathname.c

stream.i : stream.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c arilev0.c
	$(CPP) $(CFLAGS) stream.c > stream.i

stream.s : stream.obj
	$(DISASM) stream.obj -l=stream.s

stream.obj : stream.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c arilev0.c
	$(CC) $(CFLAGS) -c stream.c

io.i : io.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c arilev0.c
	$(CPP) $(CFLAGS) io.c > io.i

io.s : io.obj
	$(DISASM) io.obj -l=io.s

io.obj : io.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c arilev0.c
	$(CC) $(CFLAGS) -c io.c

array.i : array.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c arilev0.c
	$(CPP) $(CFLAGS) array.c > array.i

array.s : array.obj
	$(DISASM) array.obj -l=array.s

array.obj : array.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c arilev0.c
	$(CC) $(CFLAGS) -c array.c

hashtabl.i : hashtabl.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c arilev0.c aridecl.c
	$(CPP) $(CFLAGS) hashtabl.c > hashtabl.i

hashtabl.s : hashtabl.obj
	$(DISASM) hashtabl.obj -l=hashtabl.s

hashtabl.obj : hashtabl.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c arilev0.c aridecl.c
	$(CC) $(CFLAGS) -c hashtabl.c

list.i : list.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CPP) $(CFLAGS) list.c > list.i

list.s : list.obj
	$(DISASM) list.obj -l=list.s

list.obj : list.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CC) $(CFLAGS) -c list.c

package.i : package.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c constpack.c arilev0.c
	$(CPP) $(CFLAGS) package.c > package.i

package.s : package.obj
	$(DISASM) package.obj -l=package.s

package.obj : package.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c constpack.c arilev0.c
	$(CC) $(CFLAGS) -c package.c

record.i : record.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CPP) $(CFLAGS) record.c > record.i

record.s : record.obj
	$(DISASM) record.obj -l=record.s

record.obj : record.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CC) $(CFLAGS) -c record.c

sequence.i : sequence.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CPP) $(CFLAGS) sequence.c > sequence.i

sequence.s : sequence.obj
	$(DISASM) sequence.obj -l=sequence.s

sequence.obj : sequence.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CC) $(CFLAGS) -c sequence.c

charstrg.i : charstrg.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c uni_upcase.c uni_downcase.c uni_attribute.c
	$(CPP) $(CFLAGS) charstrg.c > charstrg.i

charstrg.s : charstrg.obj
	$(DISASM) charstrg.obj -l=charstrg.s

charstrg.obj : charstrg.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c uni_upcase.c uni_downcase.c uni_attribute.c
	$(CC) $(CFLAGS) -c charstrg.c

debug.i : debug.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CPP) $(CFLAGS) debug.c > debug.i

debug.s : debug.obj
	$(DISASM) debug.obj -l=debug.s

debug.obj : debug.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CC) $(CFLAGS) -c debug.c

error.i : error.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c errunix.c
	$(CPP) $(CFLAGS) error.c > error.i

error.s : error.obj
	$(DISASM) error.obj -l=error.s

error.obj : error.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c errunix.c
	$(CC) $(CFLAGS) -c error.c

misc.i : misc.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CPP) $(CFLAGS) misc.c > misc.i

misc.s : misc.obj
	$(DISASM) misc.obj -l=misc.s

misc.obj : misc.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CC) $(CFLAGS) -c misc.c

time.i : time.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c arilev0.c
	$(CPP) $(CFLAGS) time.c > time.i

time.s : time.obj
	$(DISASM) time.obj -l=time.s

time.obj : time.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c arilev0.c
	$(CC) $(CFLAGS) -c time.c

predtype.i : predtype.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c avl.c
	$(CPP) $(CFLAGS) predtype.c > predtype.i

predtype.s : predtype.obj
	$(DISASM) predtype.obj -l=predtype.s

predtype.obj : predtype.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c avl.c
	$(CC) $(CFLAGS) -c predtype.c

symbol.i : symbol.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CPP) $(CFLAGS) symbol.c > symbol.i

symbol.s : symbol.obj
	$(DISASM) symbol.obj -l=symbol.s

symbol.obj : symbol.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CC) $(CFLAGS) -c symbol.c

lisparit.i : lisparit.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c aridecl.c arilev0.c arilev1.c intelem.c intlog.c intplus.c intcomp.c intbyte.c intmal.c intdiv.c intgcd.c int2adic.c intsqrt.c intprint.c intread.c rational.c sfloat.c ffloat.c dfloat.c lfloat.c flo_konv.c flo_rest.c realelem.c realrand.c realtran.c compelem.c comptran.c arilev1c.c arilev1e.c arilev1i.c
	$(CPP) $(CFLAGS) lisparit.c > lisparit.i

lisparit.s : lisparit.obj
	$(DISASM) lisparit.obj -l=lisparit.s

lisparit.obj : lisparit.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c aridecl.c arilev0.c arilev1.c intelem.c intlog.c intplus.c intcomp.c intbyte.c intmal.c intdiv.c intgcd.c int2adic.c intsqrt.c intprint.c intread.c rational.c sfloat.c ffloat.c dfloat.c lfloat.c flo_konv.c flo_rest.c realelem.c realrand.c realtran.c compelem.c comptran.c arilev1c.c arilev1e.c arilev1i.c
	$(CC) $(CFLAGS) -c lisparit.c

genclisph.i : genclisph.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CPP) $(CFLAGS) genclisph.c > genclisph.i

genclisph.s : genclisph.obj
	$(DISASM) genclisph.obj -l=genclisph.s

genclisph.obj : genclisph.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CC) $(CFLAGS) -c genclisph.c

modules.i : modules.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c modules.h
	$(CPP) $(CFLAGS) -DNO_CLISP_H modules.c > modules.i

modules.s : modules.obj
	$(DISASM) modules.obj -l=modules.s

modules.obj : modules.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c modules.h
	$(CC) $(CFLAGS) -DNO_CLISP_H -c modules.c

noreadline.i : noreadline.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CPP) $(CFLAGS) noreadline.c > noreadline.i

noreadline.s : noreadline.obj
	$(DISASM) noreadline.obj -l=noreadline.s

noreadline.obj : noreadline.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c
	$(CC) $(CFLAGS) -c noreadline.c

UnicodeData.txt :
	$(LN) ..\utils\unicode\ftp.unicode.org\UnicodeData.txt UnicodeData.txt
lisp.exe : $(OBJECTS) modules.obj      UnicodeData.txt
	$(RM) lisp.exe
	$(CC) $(CFLAGS) -fe=lisp.exe -fd=wcclink.lnk
	wlink @wcclink.lnk @wcclink.in
	$(RM) wcclink.lnk


alllsp : $(LSPFILES)

config.lsp : cfgdos.lsp
	$(CP) cfgdos.lsp config.lsp

interpreted.mem : lisp.exe $(LSPFILES)
	-$(RM) interpreted.mem
	lisp.exe -m 750KW -B . -Efile ISO-8859-1 -norc < interpreted.in
	$(MV) lispimag.mem interpreted.mem

init.fas : init.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c init.lsp

defseq.fas : defseq.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c defseq.lsp

backquot.fas : backquot.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c backquot.lsp

defmacro.fas : defmacro.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c defmacro.lsp

macros1.fas : macros1.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c macros1.lsp

macros2.fas : macros2.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c macros2.lsp

defs1.fas : defs1.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c defs1.lsp

timezone.fas : timezone.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c timezone.lsp

places.fas : places.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c places.lsp

floatpri.fas : floatpri.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c floatpri.lsp

type.fas : type.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c type.lsp

defstruc.fas : defstruc.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c defstruc.lsp

format.fas : format.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c format.lsp

savemem.fas : savemem.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c savemem.lsp

trace.fas : trace.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c trace.lsp

compiler.fas : compiler.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c compiler.lsp

disassem.fas : disassem.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c disassem.lsp

defs2.fas : defs2.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c defs2.lsp

loop.fas : loop.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c loop.lsp

clos.fas : clos.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c clos.lsp

conditio.fas : conditio.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c conditio.lsp

gstream.fas : gstream.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c gstream.lsp

xcharin.fas : xcharin.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c xcharin.lsp

keyboard.fas : keyboard.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c keyboard.lsp

screen.fas : screen.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c screen.lsp

runprog.fas : runprog.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c runprog.lsp

query.fas : query.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c query.lsp

reploop.fas : reploop.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c reploop.lsp

dribble.fas : dribble.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c dribble.lsp

complete.fas : complete.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c complete.lsp

describe.fas : describe.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c describe.lsp

room.fas : room.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c room.lsp

edit.fas : edit.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c edit.lsp

macros3.fas : macros3.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c macros3.lsp

posix.fas : posix.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c posix.lsp

foreign1.fas : foreign1.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c foreign1.lsp

defs3.fas : defs3.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c defs3.lsp

german.fas : german.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c german.lsp

french.fas : french.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c french.lsp

spanish.fas : spanish.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c spanish.lsp

dutch.fas : dutch.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c dutch.lsp

config.fas : config.lsp lisp.exe interpreted.mem
	lisp.exe -m 1000KW -M interpreted.mem -B . -Efile ISO-8859-1 -norc -q -c config.lsp

halfcompiled.mem : lisp.exe $(LSPFILES) compiler.fas
	-$(RM) interpreted.mem
	lisp.exe -m 750KW -B . -Efile ISO-8859-1 -norc < interpreted.in
	$(MV) lispimag.mem interpreted.mem
	$(TOUCH) interpreted.mem
	$(TOUCH) compiler.fas
	$(TOUCH) halfcompiled.mem

lispinit.mem : lisp.exe $(FASFILES)
	-$(RM) lispinit.mem
	lisp.exe -B . -Efile ISO-8859-1 -norc < lispinit.in
	$(MV) lispimag.mem lispinit.mem


# Perform self-tests.
check : test

# Test: recompile $(LSPFILES) and compare their contents.
test : lispinit.mem stage $(TESTLSPFILES) $(TESTFASFILES)
	comp *.fas stage
	REM The test passed if no differences were found.

stage :
	-mkdir stage

stage\init.lsp : init.lsp
	$(LN) init.lsp stage

stage\defseq.lsp : defseq.lsp
	$(LN) defseq.lsp stage

stage\backquot.lsp : backquot.lsp
	$(LN) backquot.lsp stage

stage\defmacro.lsp : defmacro.lsp
	$(LN) defmacro.lsp stage

stage\macros1.lsp : macros1.lsp
	$(LN) macros1.lsp stage

stage\macros2.lsp : macros2.lsp
	$(LN) macros2.lsp stage

stage\defs1.lsp : defs1.lsp
	$(LN) defs1.lsp stage

stage\timezone.lsp : timezone.lsp
	$(LN) timezone.lsp stage

stage\places.lsp : places.lsp
	$(LN) places.lsp stage

stage\floatpri.lsp : floatpri.lsp
	$(LN) floatpri.lsp stage

stage\type.lsp : type.lsp
	$(LN) type.lsp stage

stage\defstruc.lsp : defstruc.lsp
	$(LN) defstruc.lsp stage

stage\format.lsp : format.lsp
	$(LN) format.lsp stage

stage\savemem.lsp : savemem.lsp
	$(LN) savemem.lsp stage

stage\trace.lsp : trace.lsp
	$(LN) trace.lsp stage

stage\compiler.lsp : compiler.lsp
	$(LN) compiler.lsp stage

stage\disassem.lsp : disassem.lsp
	$(LN) disassem.lsp stage

stage\defs2.lsp : defs2.lsp
	$(LN) defs2.lsp stage

stage\loop.lsp : loop.lsp
	$(LN) loop.lsp stage

stage\clos.lsp : clos.lsp
	$(LN) clos.lsp stage

stage\conditio.lsp : conditio.lsp
	$(LN) conditio.lsp stage

stage\gstream.lsp : gstream.lsp
	$(LN) gstream.lsp stage

stage\xcharin.lsp : xcharin.lsp
	$(LN) xcharin.lsp stage

stage\keyboard.lsp : keyboard.lsp
	$(LN) keyboard.lsp stage

stage\screen.lsp : screen.lsp
	$(LN) screen.lsp stage

stage\runprog.lsp : runprog.lsp
	$(LN) runprog.lsp stage

stage\query.lsp : query.lsp
	$(LN) query.lsp stage

stage\reploop.lsp : reploop.lsp
	$(LN) reploop.lsp stage

stage\dribble.lsp : dribble.lsp
	$(LN) dribble.lsp stage

stage\complete.lsp : complete.lsp
	$(LN) complete.lsp stage

stage\describe.lsp : describe.lsp
	$(LN) describe.lsp stage

stage\room.lsp : room.lsp
	$(LN) room.lsp stage

stage\edit.lsp : edit.lsp
	$(LN) edit.lsp stage

stage\macros3.lsp : macros3.lsp
	$(LN) macros3.lsp stage

stage\posix.lsp : posix.lsp
	$(LN) posix.lsp stage

stage\foreign1.lsp : foreign1.lsp
	$(LN) foreign1.lsp stage

stage\defs3.lsp : defs3.lsp
	$(LN) defs3.lsp stage

stage\german.lsp : german.lsp
	$(LN) german.lsp stage

stage\french.lsp : french.lsp
	$(LN) french.lsp stage

stage\spanish.lsp : spanish.lsp
	$(LN) spanish.lsp stage

stage\dutch.lsp : dutch.lsp
	$(LN) dutch.lsp stage

stage\config.lsp : config.lsp
	$(LN) config.lsp stage

stage\init.fas : stage\init.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/init.lsp

stage\defseq.fas : stage\defseq.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/defseq.lsp

stage\backquot.fas : stage\backquot.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/backquot.lsp

stage\defmacro.fas : stage\defmacro.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/defmacro.lsp

stage\macros1.fas : stage\macros1.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/macros1.lsp

stage\macros2.fas : stage\macros2.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/macros2.lsp

stage\defs1.fas : stage\defs1.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/defs1.lsp

stage\timezone.fas : stage\timezone.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/timezone.lsp

stage\places.fas : stage\places.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/places.lsp

stage\floatpri.fas : stage\floatpri.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/floatpri.lsp

stage\type.fas : stage\type.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/type.lsp

stage\defstruc.fas : stage\defstruc.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/defstruc.lsp

stage\format.fas : stage\format.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/format.lsp

stage\savemem.fas : stage\savemem.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/savemem.lsp

stage\trace.fas : stage\trace.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/trace.lsp

stage\compiler.fas : stage\compiler.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/compiler.lsp

stage\disassem.fas : stage\disassem.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/disassem.lsp

stage\defs2.fas : stage\defs2.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/defs2.lsp

stage\loop.fas : stage\loop.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/loop.lsp

stage\clos.fas : stage\clos.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/clos.lsp

stage\conditio.fas : stage\conditio.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/conditio.lsp

stage\gstream.fas : stage\gstream.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/gstream.lsp

stage\xcharin.fas : stage\xcharin.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/xcharin.lsp

stage\keyboard.fas : stage\keyboard.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/keyboard.lsp

stage\screen.fas : stage\screen.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/screen.lsp

stage\runprog.fas : stage\runprog.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/runprog.lsp

stage\query.fas : stage\query.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/query.lsp

stage\reploop.fas : stage\reploop.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/reploop.lsp

stage\dribble.fas : stage\dribble.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/dribble.lsp

stage\complete.fas : stage\complete.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/complete.lsp

stage\describe.fas : stage\describe.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/describe.lsp

stage\room.fas : stage\room.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/room.lsp

stage\edit.fas : stage\edit.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/edit.lsp

stage\macros3.fas : stage\macros3.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/macros3.lsp

stage\posix.fas : stage\posix.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/posix.lsp

stage\foreign1.fas : stage\foreign1.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/foreign1.lsp

stage\defs3.fas : stage\defs3.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/defs3.lsp

stage\german.fas : stage\german.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/german.lsp

stage\french.fas : stage\french.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/french.lsp

stage\spanish.fas : stage\spanish.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/spanish.lsp

stage\dutch.fas : stage\dutch.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/dutch.lsp

stage\config.fas : stage\config.lsp lisp.exe lispinit.mem
	lisp.exe -M lispinit.mem -B . -Efile ISO-8859-1 -norc -q -c stage/config.lsp

lispinit2.mem : lisp.exe $(TESTFASFILES)
	lisp.exe -B . -Efile ISO-8859-1 -norc -x "(cd \"stage/\") (load \"init.fas\") (cd \"../\") (sys::%saveinitmem) (exit)"
	-$(RM) lispinit2.mem
	$(MV) lispimag.mem lispinit2.mem


READMES = ANNOUNCE COPYRIGHT GNU-GPL SUMMARY NEWS README README.de README.es
MANUALS = clisp.1 clisp.html $(TXTFILES) impnotes.html clisp.gif

impnotes.html : _impnotes.html
	sed -e 's,href="CLHSROOT/,href="http://www.harlequin.com/education/books/HyperSpec/,' _impnotes.html > impnotes.html

manual : $(READMES) $(MANUALS)

manualx : manual clisp.man clisp.dvi

ANNOUNCE : ..\ANNOUNCE
	-$(LN) ..\ANNOUNCE ANNOUNCE

COPYRIGHT : ..\COPYRIGHT
	-$(LN) ..\COPYRIGHT COPYRIGHT

GNU-GPL : ..\GNU-GPL
	-$(LN) ..\GNU-GPL GNU-GPL

SUMMARY : ..\SUMMARY
	-$(LN) ..\SUMMARY SUMMARY

README : _README lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c _README.de _README.en txt2c.exe
	$(TXT2C) < _README > txt.c
	$(CC) $(CFLAGS) $(CLFLAGS) txt.c -fo=txt.exe
	txt > README
	$(RM) txt.c
	$(RM) txt.exe

README.de : _README.de lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c txt2c.exe
	$(TXT2C) < _README.de > txt.c
	$(CC) $(CFLAGS) $(CLFLAGS) txt.c -fo=txt.exe
	txt > README.de
	$(RM) txt.c
	$(RM) txt.exe

README.es : _README.es lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c txt2c.exe
	$(TXT2C) < _README.es > txt.c
	$(CC) $(CFLAGS) $(CLFLAGS) txt.c -fo=txt.exe
	txt > README.es
	$(RM) txt.c
	$(RM) txt.exe

clisp.1 : _clisp.1 lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c txt2c.exe
	$(TXT2C) < _clisp.1 > txt.c
	$(CC) $(CFLAGS) $(CLFLAGS) txt.c -fo=txt.exe
	txt | $(GREP) -v -f grep.in > clisp.1
	$(RM) txt.c
	$(RM) txt.exe

clisp.html : _clisp.html lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c msdos.c txt2c.exe
	$(TXT2C) < _clisp.html > txt.c
	$(CC) $(CFLAGS) $(CLFLAGS) txt.c -fo=txt.exe
	txt | sed -e 's,HREF="CLHSROOT/,HREF="http://www.harlequin.com/education/books/HyperSpec/,' > clisp.html
	$(RM) txt.c
	$(RM) txt.exe

clisp.dvi : clisp.1
	$(ROFF_DVI) clisp.1 > clisp.dvi

clisp.man : clisp.1
	$(ROFF_MAN) clisp.1 > clisp.man

LISP-tutorial.txt : ..\doc\LISP-tutorial.txt
	-$(LN) ..\doc\LISP-tutorial.txt LISP-tutorial.txt

CLOS-guide.txt : ..\doc\CLOS-guide.txt
	-$(LN) ..\doc\CLOS-guide.txt CLOS-guide.txt

editors.txt : ..\doc\editors.txt
	-$(LN) ..\doc\editors.txt editors.txt


install : install-bin

installdirs : force
	-mkdir $(install_root)$(libdir)
	-mkdir $(install_root)$(lisplibdir)
	-mkdir $(install_root)$(bindir)

install-bin : lisp.exe lispinit.mem force
	-mkdir $(install_root)$(libdir)
	-mkdir $(install_root)$(lisplibdir)
	$(INSTALL_DATA) UnicodeData.txt $(install_root)$(lisplibdir)\UnicodeData.txt
	$(INSTALL_PROGRAM) lisp.exe $(install_root)$(lisplibdir)\lisp.exe
	$(INSTALL_DATA) lispinit.mem $(install_root)$(lisplibdir)\lispinit.mem
	-mkdir $(install_root)$(bindir)
	echo $(lisplibdir)\lisp.exe -M $(lisplibdir)\lispinit.mem %1 %2 %3 %4 %5 %6 %7 %8 %9 > $(install_root)$(bindir)\clisp.bat

uninstall : uninstall-bin

uninstall-bin : force
	$(RM) $(install_root)$(lisplibdir)/UnicodeData.txt
	$(RM) $(install_root)$(lisplibdir)/lisp.exe
	$(RM) $(install_root)$(lisplibdir)/lispinit.mem
	$(RM) $(install_root)$(bindir)/clisp.bat

# clean0 is harmless: removes only superfluous things: temporary files.
clean0 : force
	-$(RM) core ansidecl.c varbrace.c ccmp2c.c modprep.c genclisph.exe wgenclisph.exe linkkit txt.c txt.exe

# clean1 removes everything that becomes obsolete once lisp.exe is recompiled
# without changing the bytecode format and the tables in
# constobj.d, constpack.d, constsym.d, subr.d, fsubr.d, pseudofun.d.
clean1 : clean0
	-$(RM) lispbibl.h clisp.h *.i *.s *.obj *.a lisp.exe clisp-link makevars stage/* suite/*
	-$(RM) libsigsegv.* libiconv.* libavcall.* libcallback.*
	-rmdir stage
	-rmdir suite
	-$(RM) README README.de README.es clisp.1 clisp.man clisp.dvi clisp.html impnotes.html clisp.c distmakefile $(TXTFILES) clreadline.3 clreadline.man clreadline.html clreadline.dvi readline.dvi

# clean2 removes everything that becomes obsolete once lisp.exe is recompiled
# without changing the bytecode format.
clean2 : clean1
	-$(RM) interpreted.mem halfcompiled.mem lispinit.mem lispinit2.mem

# clean3 removes everything that becomes obsolete once lisp.exe is recompiled.
# It leaves everything generated by "make allc".
clean3 : clean2
	-$(RM) $(FASFILES) *.lib

# clean4 removes everything that becomes obsolete
# when switching to a new version of the C compiler.
# It leaves everything generated by "make init".
clean4 : clean3
	-$(RM) $(CFILES)

# clean5 even undoes "make init".
clean5 : clean4
	-$(RM) ANNOUNCE COPYRIGHT GNU-GPL SUMMARY
	-$(RM) config.lsp
	-$(RM) comment5.exe ansidecl.exe ccpaux.exe deema.exe txt2c.exe ccmp2c.exe modprep.exe

# clean6 lets us go back to "makemake > Makefile".
clean6 : clean5
	-$(RM) Makefile

# clean7 lets us go back to the main "configure".
clean7 : clean6
	-$(RM) config.status config.log config.cache intparam.h unixconf.h makemake

# clean8 moreover cleans up the SRCDIR.
clean8 : clean7

# The normal "start over" command:
mostlyclean : clean4

# Clear all files that are built by "make ...":
clean : clean5

# Make "clear for distribution":
distclean : clean7

# Remove everything that can be generated otherwise:
maintainer-clean : clean8


.SUFFIXES:

force:

