# -*- Makefile -*- for the CLISP binaries
# DO NOT EDIT! GENERATED AUTOMATICALLY!
# This file was created on host winsteingoldlap as the output of the command:
# ./makemake win32bc bcc32i

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

# Directories used by "make install":
prefix = 
exec_prefix = $(prefix)
bindir  = $(exec_prefix)\bin
shared  = $(prefix)\share
mandir  = $(shared)\man
docdir  = $(shared)\doc
lispdocdir = $(docdir)\clisp
htmldir = $(lispdocdir)
dvidir  = $(lispdocdir)
psdir   = $(lispdocdir)
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.
DESTDIR =

# (partial) list of available add-on modules:
# queens               the queens function as a separate module
# dirkey               the directory access (LDAP, win32 registry)
# berkeley-db          the Berkeley DB access
# syscalls             export some POSIX (and other) system calls
# regexp               POSIX regular expressions
# pcre                 Perl-compatible regular expressions
# clx/mit-clx          classical X11 interface
MODULES =  

# Programs used by "make":
CC = bcc32i -O2 -g0 -w-rch
CFLAGS =  -DUNICODE -DNO_GETTEXT -DNO_SIGSEGV -I.
CPP = ..\utils\gcc-cccp\cccp -U__GNUC__ -+ -D__BORLANDC__=0x460 -D__TURBOC__=0x460 -D_M_IX86=300 -D__WIN32__ -D__FLAT__ -I$(BCDIR)/include
CLFLAGS = 
LIBS = charset.lib  ole32.lib shell32.lib
X_LIBS = 
BCDIR = d:/bc5
WIN32DIR = c:\winnt35\system32

MAKE = amake
RM = -del /q
RMRF = -del /q /s
TOUCH = -touch
CP = copy
LN_S = copy
MV = ren
CAT = type
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"
ROFF_PS  = groff -Tps -mandoc # try "groff -Tps -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/glibc/
#
#   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.lisp
#                       $(CLISP) -c foo.lisp
#
#        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
VARBRACE = varbrace
TXT2C = txt2c -I../

DFILES = \
spvw.d \
spvwtabf.d \
spvwtabs.d \
spvwtabo.d \
eval.d \
control.d \
encoding.d \
pathname.d \
stream.d \
socket.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 \
i18n.d \
win32aux.d \
lispbibl.d \
fsubr.d \
subr.d \
pseudofun.d \
constsym.d \
constobj.d \
win32.d \
xthread.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 \
errwin32.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 \
socket.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 \
i18n.c \
win32aux.c \
lispbibl.c \
fsubr.c \
subr.c \
pseudofun.c \
constsym.c \
constobj.c \
win32.c \
xthread.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 \
errwin32.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 \
socket.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 \
i18n.obj \
win32aux.obj

LISPFILES = \
init.lisp \
defseq.lisp \
backquote.lisp \
defmacro.lisp \
macros1.lisp \
macros2.lisp \
defs1.lisp \
timezone.lisp \
places.lisp \
floatprint.lisp \
type.lisp \
defstruct.lisp \
format.lisp \
international.lisp \
savemem.lisp \
trace.lisp \
cmacros.lisp \
compiler.lisp \
defs2.lisp \
loop.lisp \
clos.lisp \
disassem.lisp \
condition.lisp \
loadform.lisp \
gstream.lisp \
xcharin.lisp \
keyboard.lisp \
screen.lisp \
beossock.lisp \
runprog.lisp \
query.lisp \
reploop.lisp \
dribble.lisp \
complete.lisp \
pprint.lisp \
describe.lisp \
room.lisp \
edit.lisp \
macros3.lisp \
clhs.lisp \
inspect.lisp \
gray.lisp \
german.lisp \
french.lisp \
spanish.lisp \
russian.lisp \
dutch.lisp \
deprecated.lisp \
config.lisp

FASFILES = \
init.fas \
defseq.fas \
backquote.fas \
defmacro.fas \
macros1.fas \
macros2.fas \
defs1.fas \
timezone.fas \
places.fas \
floatprint.fas \
type.fas \
defstruct.fas \
format.fas \
international.fas \
savemem.fas \
trace.fas \
cmacros.fas \
compiler.fas \
defs2.fas \
loop.fas \
clos.fas \
disassem.fas \
condition.fas \
loadform.fas \
gstream.fas \
xcharin.fas \
keyboard.fas \
screen.fas \
beossock.fas \
runprog.fas \
query.fas \
reploop.fas \
dribble.fas \
complete.fas \
pprint.fas \
describe.fas \
room.fas \
edit.fas \
macros3.fas \
clhs.fas \
inspect.fas \
gray.fas \
german.fas \
french.fas \
spanish.fas \
russian.fas \
dutch.fas \
deprecated.fas \
config.fas

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

TESTLISPFILES = \
stage\init.lisp \
stage\defseq.lisp \
stage\backquote.lisp \
stage\defmacro.lisp \
stage\macros1.lisp \
stage\macros2.lisp \
stage\defs1.lisp \
stage\timezone.lisp \
stage\places.lisp \
stage\floatprint.lisp \
stage\type.lisp \
stage\defstruct.lisp \
stage\format.lisp \
stage\international.lisp \
stage\savemem.lisp \
stage\trace.lisp \
stage\cmacros.lisp \
stage\compiler.lisp \
stage\defs2.lisp \
stage\loop.lisp \
stage\clos.lisp \
stage\disassem.lisp \
stage\condition.lisp \
stage\loadform.lisp \
stage\gstream.lisp \
stage\xcharin.lisp \
stage\keyboard.lisp \
stage\screen.lisp \
stage\beossock.lisp \
stage\runprog.lisp \
stage\query.lisp \
stage\reploop.lisp \
stage\dribble.lisp \
stage\complete.lisp \
stage\pprint.lisp \
stage\describe.lisp \
stage\room.lisp \
stage\edit.lisp \
stage\macros3.lisp \
stage\clhs.lisp \
stage\inspect.lisp \
stage\gray.lisp \
stage\german.lisp \
stage\french.lisp \
stage\spanish.lisp \
stage\russian.lisp \
stage\dutch.lisp \
stage\deprecated.lisp \
stage\config.lisp

TESTFASFILES = \
stage\init.fas \
stage\defseq.fas \
stage\backquote.fas \
stage\defmacro.fas \
stage\macros1.fas \
stage\macros2.fas \
stage\defs1.fas \
stage\timezone.fas \
stage\places.fas \
stage\floatprint.fas \
stage\type.fas \
stage\defstruct.fas \
stage\format.fas \
stage\international.fas \
stage\savemem.fas \
stage\trace.fas \
stage\cmacros.fas \
stage\compiler.fas \
stage\defs2.fas \
stage\loop.fas \
stage\clos.fas \
stage\disassem.fas \
stage\condition.fas \
stage\loadform.fas \
stage\gstream.fas \
stage\xcharin.fas \
stage\keyboard.fas \
stage\screen.fas \
stage\beossock.fas \
stage\runprog.fas \
stage\query.fas \
stage\reploop.fas \
stage\dribble.fas \
stage\complete.fas \
stage\pprint.fas \
stage\describe.fas \
stage\room.fas \
stage\edit.fas \
stage\macros3.fas \
stage\clhs.fas \
stage\inspect.fas \
stage\gray.fas \
stage\german.fas \
stage\french.fas \
stage\spanish.fas \
stage\russian.fas \
stage\dutch.fas \
stage\deprecated.fas \
stage\config.fas


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

makemake : makemake.in config.status
	./config.status --file=makemake

unixconf.h : unixconf.h.in config.status
	sh config.status --header=unixconf.h

Makefile : makemake
	./makemake win32bc bcc32i > Makefile.tmp
	$(MV) Makefile Makefile~
	$(MV) Makefile.tmp Makefile

config.status : configure
	sh config.status --recheck

VERSION : configure
	cd ..\ && $(MAKE) -f Makefile.devel src\VERSION

configure : configure.in
	cd ..\ && $(MAKE) -f Makefile.devel src\configure

init : ../utils/gcc-cccp/cccp.exe comment5.exe varbrace.exe txt2c.exe ccmp2c.exe $(DFILES) modules.h

intparam.h : intparam.c unixconf.h
	echo '#include "unixconf.h"' > tmp.c
	cat 'intparam.c' >> tmp.c
	$(CC) -eintparam.exe tmp.c
	intparam.exe > intparam.h
	$(RM) intparam.exe tmp.c

floatparam.h : floatparam.c unixconf.h
	echo '#include "unixconf.h"' > tmp.c
	cat 'floatparam.c' >> tmp.c
	$(CC) -efloatparam.exe tmp.c
	floatparam.exe > floatparam.h
	$(RM) floatparam.exe tmp.c

../utils/gcc-cccp/cccp.exe :

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

varbrace.exe : ..\utils\varbrace.d comment5.exe
	$(COMMENT5) ..\utils\varbrace.d > varbrace.c
	$(CC) $(CFLAGS) $(CLFLAGS) -evarbrace.exe varbrace.c
	$(RM) varbrace.c

txt2c.exe : ..\utils\txt2c.c
	$(CC) $(CFLAGS) $(CLFLAGS)  -etxt2c.exe ..\utils\txt2c.c

ccmp2c.exe : ..\utils\ccmp2c.c
	$(CC) $(CFLAGS) $(CLFLAGS)  -I. -eccmp2c.exe ..\utils\ccmp2c.c


stdbool.h : stdbool.h.in
	sed -e 's/@''HAVE__BOOL''@/0/g' < stdbool.h.in > stdbool.h

stdint.h : stdint.h.in
	sed -e 's/@''HAVE_LONG_64BIT''@/0/g' -e 's/@''HAVE_LONGLONG_64BIT''@/0/g' < stdint.h.in > stdint.h

allc : init $(CFILES)

spvw.c : spvw.d comment5.exe varbrace.exe
	$(COMMENT5) spvw.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw.c
	$(RM) TMPPIPE1

spvwtabf.c : spvwtabf.d comment5.exe varbrace.exe
	$(COMMENT5) spvwtabf.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvwtabf.c
	$(RM) TMPPIPE1

spvwtabs.c : spvwtabs.d comment5.exe varbrace.exe
	$(COMMENT5) spvwtabs.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvwtabs.c
	$(RM) TMPPIPE1

spvwtabo.c : spvwtabo.d comment5.exe varbrace.exe
	$(COMMENT5) spvwtabo.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvwtabo.c
	$(RM) TMPPIPE1

eval.c : eval.d comment5.exe varbrace.exe
	$(COMMENT5) eval.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > eval.c
	$(RM) TMPPIPE1

control.c : control.d comment5.exe varbrace.exe
	$(COMMENT5) control.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > control.c
	$(RM) TMPPIPE1

encoding.c : encoding.d comment5.exe varbrace.exe
	$(COMMENT5) encoding.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > encoding.c
	$(RM) TMPPIPE1

pathname.c : pathname.d comment5.exe varbrace.exe
	$(COMMENT5) pathname.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > pathname.c
	$(RM) TMPPIPE1

stream.c : stream.d comment5.exe varbrace.exe
	$(COMMENT5) stream.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > stream.c
	$(RM) TMPPIPE1

socket.c : socket.d comment5.exe varbrace.exe
	$(COMMENT5) socket.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > socket.c
	$(RM) TMPPIPE1

io.c : io.d comment5.exe varbrace.exe
	$(COMMENT5) io.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > io.c
	$(RM) TMPPIPE1

array.c : array.d comment5.exe varbrace.exe
	$(COMMENT5) array.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > array.c
	$(RM) TMPPIPE1

hashtabl.c : hashtabl.d comment5.exe varbrace.exe
	$(COMMENT5) hashtabl.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > hashtabl.c
	$(RM) TMPPIPE1

list.c : list.d comment5.exe varbrace.exe
	$(COMMENT5) list.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > list.c
	$(RM) TMPPIPE1

package.c : package.d comment5.exe varbrace.exe
	$(COMMENT5) package.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > package.c
	$(RM) TMPPIPE1

record.c : record.d comment5.exe varbrace.exe
	$(COMMENT5) record.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > record.c
	$(RM) TMPPIPE1

sequence.c : sequence.d comment5.exe varbrace.exe
	$(COMMENT5) sequence.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > sequence.c
	$(RM) TMPPIPE1

charstrg.c : charstrg.d comment5.exe varbrace.exe
	$(COMMENT5) charstrg.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > charstrg.c
	$(RM) TMPPIPE1

debug.c : debug.d comment5.exe varbrace.exe
	$(COMMENT5) debug.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > debug.c
	$(RM) TMPPIPE1

error.c : error.d comment5.exe varbrace.exe
	$(COMMENT5) error.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > error.c
	$(RM) TMPPIPE1

misc.c : misc.d comment5.exe varbrace.exe
	$(COMMENT5) misc.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > misc.c
	$(RM) TMPPIPE1

time.c : time.d comment5.exe varbrace.exe
	$(COMMENT5) time.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > time.c
	$(RM) TMPPIPE1

predtype.c : predtype.d comment5.exe varbrace.exe
	$(COMMENT5) predtype.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > predtype.c
	$(RM) TMPPIPE1

symbol.c : symbol.d comment5.exe varbrace.exe
	$(COMMENT5) symbol.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > symbol.c
	$(RM) TMPPIPE1

lisparit.c : lisparit.d comment5.exe varbrace.exe
	$(COMMENT5) lisparit.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > lisparit.c
	$(RM) TMPPIPE1

i18n.c : i18n.d comment5.exe varbrace.exe
	$(COMMENT5) i18n.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > i18n.c
	$(RM) TMPPIPE1

win32aux.c : win32aux.d comment5.exe varbrace.exe
	$(COMMENT5) win32aux.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > win32aux.c
	$(RM) TMPPIPE1

lispbibl.c : lispbibl.d comment5.exe varbrace.exe
	$(COMMENT5) lispbibl.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > lispbibl.c
	$(RM) TMPPIPE1

fsubr.c : fsubr.d comment5.exe varbrace.exe
	$(COMMENT5) fsubr.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > fsubr.c
	$(RM) TMPPIPE1

subr.c : subr.d comment5.exe varbrace.exe
	$(COMMENT5) subr.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > subr.c
	$(RM) TMPPIPE1

pseudofun.c : pseudofun.d comment5.exe varbrace.exe
	$(COMMENT5) pseudofun.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > pseudofun.c
	$(RM) TMPPIPE1

constsym.c : constsym.d comment5.exe varbrace.exe
	$(COMMENT5) constsym.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > constsym.c
	$(RM) TMPPIPE1

constobj.c : constobj.d comment5.exe varbrace.exe
	$(COMMENT5) constobj.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > constobj.c
	$(RM) TMPPIPE1

win32.c : win32.d comment5.exe varbrace.exe
	$(COMMENT5) win32.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > win32.c
	$(RM) TMPPIPE1

xthread.c : xthread.d comment5.exe varbrace.exe
	$(COMMENT5) xthread.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > xthread.c
	$(RM) TMPPIPE1

constpack.c : constpack.d comment5.exe varbrace.exe
	$(COMMENT5) constpack.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > constpack.c
	$(RM) TMPPIPE1

avl.c : avl.d comment5.exe varbrace.exe
	$(COMMENT5) avl.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > avl.c
	$(RM) TMPPIPE1

sort.c : sort.d comment5.exe varbrace.exe
	$(COMMENT5) sort.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > sort.c
	$(RM) TMPPIPE1

subrkw.c : subrkw.d comment5.exe varbrace.exe
	$(COMMENT5) subrkw.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > subrkw.c
	$(RM) TMPPIPE1

bytecode.c : bytecode.d comment5.exe varbrace.exe
	$(COMMENT5) bytecode.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > bytecode.c
	$(RM) TMPPIPE1

spvw_module.c : spvw_module.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_module.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_module.c
	$(RM) TMPPIPE1

spvw_debug.c : spvw_debug.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_debug.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_debug.c
	$(RM) TMPPIPE1

spvw_alloca.c : spvw_alloca.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_alloca.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_alloca.c
	$(RM) TMPPIPE1

spvw_mmap.c : spvw_mmap.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_mmap.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_mmap.c
	$(RM) TMPPIPE1

spvw_multimap.c : spvw_multimap.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_multimap.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_multimap.c
	$(RM) TMPPIPE1

spvw_singlemap.c : spvw_singlemap.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_singlemap.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_singlemap.c
	$(RM) TMPPIPE1

spvw_page.c : spvw_page.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_page.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_page.c
	$(RM) TMPPIPE1

spvw_heap.c : spvw_heap.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_heap.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_heap.c
	$(RM) TMPPIPE1

spvw_global.c : spvw_global.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_global.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_global.c
	$(RM) TMPPIPE1

spvw_gcstat.c : spvw_gcstat.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_gcstat.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_gcstat.c
	$(RM) TMPPIPE1

spvw_space.c : spvw_space.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_space.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_space.c
	$(RM) TMPPIPE1

spvw_mark.c : spvw_mark.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_mark.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_mark.c
	$(RM) TMPPIPE1

spvw_objsize.c : spvw_objsize.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_objsize.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_objsize.c
	$(RM) TMPPIPE1

spvw_update.c : spvw_update.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_update.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_update.c
	$(RM) TMPPIPE1

spvw_fault.c : spvw_fault.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_fault.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_fault.c
	$(RM) TMPPIPE1

spvw_sigsegv.c : spvw_sigsegv.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_sigsegv.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_sigsegv.c
	$(RM) TMPPIPE1

spvw_sigcld.c : spvw_sigcld.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_sigcld.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_sigcld.c
	$(RM) TMPPIPE1

spvw_sigpipe.c : spvw_sigpipe.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_sigpipe.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_sigpipe.c
	$(RM) TMPPIPE1

spvw_sigint.c : spvw_sigint.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_sigint.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_sigint.c
	$(RM) TMPPIPE1

spvw_sigwinch.c : spvw_sigwinch.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_sigwinch.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_sigwinch.c
	$(RM) TMPPIPE1

spvw_garcol.c : spvw_garcol.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_garcol.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_garcol.c
	$(RM) TMPPIPE1

spvw_genera1.c : spvw_genera1.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_genera1.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_genera1.c
	$(RM) TMPPIPE1

spvw_genera2.c : spvw_genera2.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_genera2.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_genera2.c
	$(RM) TMPPIPE1

spvw_genera3.c : spvw_genera3.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_genera3.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_genera3.c
	$(RM) TMPPIPE1

spvw_allocate.c : spvw_allocate.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_allocate.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_allocate.c
	$(RM) TMPPIPE1

spvw_typealloc.c : spvw_typealloc.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_typealloc.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_typealloc.c
	$(RM) TMPPIPE1

spvw_circ.c : spvw_circ.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_circ.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_circ.c
	$(RM) TMPPIPE1

spvw_walk.c : spvw_walk.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_walk.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_walk.c
	$(RM) TMPPIPE1

spvw_ctype.c : spvw_ctype.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_ctype.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_ctype.c
	$(RM) TMPPIPE1

spvw_language.c : spvw_language.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_language.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_language.c
	$(RM) TMPPIPE1

spvw_memfile.c : spvw_memfile.d comment5.exe varbrace.exe
	$(COMMENT5) spvw_memfile.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > spvw_memfile.c
	$(RM) TMPPIPE1

errwin32.c : errwin32.d comment5.exe varbrace.exe
	$(COMMENT5) errwin32.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > errwin32.c
	$(RM) TMPPIPE1

aridecl.c : aridecl.d comment5.exe varbrace.exe
	$(COMMENT5) aridecl.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > aridecl.c
	$(RM) TMPPIPE1

arilev0.c : arilev0.d comment5.exe varbrace.exe
	$(COMMENT5) arilev0.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > arilev0.c
	$(RM) TMPPIPE1

arilev1.c : arilev1.d comment5.exe varbrace.exe
	$(COMMENT5) arilev1.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > arilev1.c
	$(RM) TMPPIPE1

intelem.c : intelem.d comment5.exe varbrace.exe
	$(COMMENT5) intelem.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > intelem.c
	$(RM) TMPPIPE1

intlog.c : intlog.d comment5.exe varbrace.exe
	$(COMMENT5) intlog.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > intlog.c
	$(RM) TMPPIPE1

intplus.c : intplus.d comment5.exe varbrace.exe
	$(COMMENT5) intplus.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > intplus.c
	$(RM) TMPPIPE1

intcomp.c : intcomp.d comment5.exe varbrace.exe
	$(COMMENT5) intcomp.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > intcomp.c
	$(RM) TMPPIPE1

intbyte.c : intbyte.d comment5.exe varbrace.exe
	$(COMMENT5) intbyte.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > intbyte.c
	$(RM) TMPPIPE1

intmal.c : intmal.d comment5.exe varbrace.exe
	$(COMMENT5) intmal.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > intmal.c
	$(RM) TMPPIPE1

intdiv.c : intdiv.d comment5.exe varbrace.exe
	$(COMMENT5) intdiv.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > intdiv.c
	$(RM) TMPPIPE1

intgcd.c : intgcd.d comment5.exe varbrace.exe
	$(COMMENT5) intgcd.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > intgcd.c
	$(RM) TMPPIPE1

int2adic.c : int2adic.d comment5.exe varbrace.exe
	$(COMMENT5) int2adic.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > int2adic.c
	$(RM) TMPPIPE1

intsqrt.c : intsqrt.d comment5.exe varbrace.exe
	$(COMMENT5) intsqrt.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > intsqrt.c
	$(RM) TMPPIPE1

intprint.c : intprint.d comment5.exe varbrace.exe
	$(COMMENT5) intprint.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > intprint.c
	$(RM) TMPPIPE1

intread.c : intread.d comment5.exe varbrace.exe
	$(COMMENT5) intread.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > intread.c
	$(RM) TMPPIPE1

rational.c : rational.d comment5.exe varbrace.exe
	$(COMMENT5) rational.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > rational.c
	$(RM) TMPPIPE1

sfloat.c : sfloat.d comment5.exe varbrace.exe
	$(COMMENT5) sfloat.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > sfloat.c
	$(RM) TMPPIPE1

ffloat.c : ffloat.d comment5.exe varbrace.exe
	$(COMMENT5) ffloat.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > ffloat.c
	$(RM) TMPPIPE1

dfloat.c : dfloat.d comment5.exe varbrace.exe
	$(COMMENT5) dfloat.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > dfloat.c
	$(RM) TMPPIPE1

lfloat.c : lfloat.d comment5.exe varbrace.exe
	$(COMMENT5) lfloat.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > lfloat.c
	$(RM) TMPPIPE1

flo_konv.c : flo_konv.d comment5.exe varbrace.exe
	$(COMMENT5) flo_konv.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > flo_konv.c
	$(RM) TMPPIPE1

flo_rest.c : flo_rest.d comment5.exe varbrace.exe
	$(COMMENT5) flo_rest.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > flo_rest.c
	$(RM) TMPPIPE1

realelem.c : realelem.d comment5.exe varbrace.exe
	$(COMMENT5) realelem.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > realelem.c
	$(RM) TMPPIPE1

realrand.c : realrand.d comment5.exe varbrace.exe
	$(COMMENT5) realrand.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > realrand.c
	$(RM) TMPPIPE1

realtran.c : realtran.d comment5.exe varbrace.exe
	$(COMMENT5) realtran.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > realtran.c
	$(RM) TMPPIPE1

compelem.c : compelem.d comment5.exe varbrace.exe
	$(COMMENT5) compelem.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > compelem.c
	$(RM) TMPPIPE1

comptran.c : comptran.d comment5.exe varbrace.exe
	$(COMMENT5) comptran.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > comptran.c
	$(RM) TMPPIPE1

arilev1c.c : arilev1c.d comment5.exe varbrace.exe
	$(COMMENT5) arilev1c.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > arilev1c.c
	$(RM) TMPPIPE1

arilev1e.c : arilev1e.d comment5.exe varbrace.exe
	$(COMMENT5) arilev1e.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > arilev1e.c
	$(RM) TMPPIPE1

arilev1i.c : arilev1i.d comment5.exe varbrace.exe
	$(COMMENT5) arilev1i.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > arilev1i.c
	$(RM) TMPPIPE1

genclisph.c : genclisph.d comment5.exe varbrace.exe
	$(COMMENT5) genclisph.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > genclisph.c
	$(RM) TMPPIPE1

modules.c : modules.d comment5.exe varbrace.exe
	$(COMMENT5) modules.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > modules.c
	$(RM) TMPPIPE1

noreadline.c : noreadline.d comment5.exe varbrace.exe
	$(COMMENT5) noreadline.d > TMPPIPE1
	$(VARBRACE) < TMPPIPE1 > noreadline.c
	$(RM) TMPPIPE1

allo : allc spvw.obj spvwtabf.obj spvwtabs.obj spvwtabo.obj eval.obj control.obj encoding.obj pathname.obj stream.obj socket.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 i18n.obj win32aux.obj

alls : allc spvw.s spvwtabf.s spvwtabs.s spvwtabo.s eval.s control.s encoding.s pathname.s stream.s socket.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 i18n.s win32aux.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 socket.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 i18n.i win32aux.i

spvw.i : spvw.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.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 spvw_calendar.c arilev0.c aridecl.c stdbool.h stdint.h libcharset.h version.h
	$(CPP) $(CFLAGS) spvw.c > spvw.i

spvw.s : spvw.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.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 spvw_calendar.c arilev0.c aridecl.c stdbool.h stdint.h libcharset.h version.h
	$(CPP) $(CFLAGS) spvw.c > spvw.i.c
	$(CC) $(CFLAGS) -c spvw.i.c /FAs /Faspvw.s
	$(RM) spvw.i.obj
	$(RM) spvw.i.c

spvw.obj : spvw.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.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 spvw_calendar.c arilev0.c aridecl.c stdbool.h stdint.h libcharset.h version.h
	$(CPP) $(CFLAGS) spvw.c > spvw.i.c
	$(CC) $(CFLAGS) -c spvw.i.c
	$(RM) spvw.obj
	$(MV) spvw.i.obj spvw.obj
	$(RM) spvw.i.c

spvwtabf.i : spvwtabf.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) spvwtabf.c > spvwtabf.i

spvwtabf.s : spvwtabf.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) spvwtabf.c > spvwtabf.i.c
	$(CC) $(CFLAGS) -c spvwtabf.i.c /FAs /Faspvwtabf.s
	$(RM) spvwtabf.i.obj
	$(RM) spvwtabf.i.c

spvwtabf.obj : spvwtabf.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) spvwtabf.c > spvwtabf.i.c
	$(CC) $(CFLAGS) -c spvwtabf.i.c
	$(RM) spvwtabf.obj
	$(MV) spvwtabf.i.obj spvwtabf.obj
	$(RM) spvwtabf.i.c

spvwtabs.i : spvwtabs.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) spvwtabs.c > spvwtabs.i

spvwtabs.s : spvwtabs.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) spvwtabs.c > spvwtabs.i.c
	$(CC) $(CFLAGS) -c spvwtabs.i.c /FAs /Faspvwtabs.s
	$(RM) spvwtabs.i.obj
	$(RM) spvwtabs.i.c

spvwtabs.obj : spvwtabs.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) spvwtabs.c > spvwtabs.i.c
	$(CC) $(CFLAGS) -c spvwtabs.i.c
	$(RM) spvwtabs.obj
	$(MV) spvwtabs.i.obj spvwtabs.obj
	$(RM) spvwtabs.i.c

spvwtabo.i : spvwtabo.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) spvwtabo.c > spvwtabo.i

spvwtabo.s : spvwtabo.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) spvwtabo.c > spvwtabo.i.c
	$(CC) $(CFLAGS) -c spvwtabo.i.c /FAs /Faspvwtabo.s
	$(RM) spvwtabo.i.obj
	$(RM) spvwtabo.i.c

spvwtabo.obj : spvwtabo.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) spvwtabo.c > spvwtabo.i.c
	$(CC) $(CFLAGS) -c spvwtabo.i.c
	$(RM) spvwtabo.obj
	$(MV) spvwtabo.i.obj spvwtabo.obj
	$(RM) spvwtabo.i.c

eval.i : eval.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c bytecode.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) eval.c > eval.i

eval.s : eval.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c bytecode.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) eval.c > eval.i.c
	$(CC) $(CFLAGS) -c eval.i.c /FAs /Faeval.s
	$(RM) eval.i.obj
	$(RM) eval.i.c

eval.obj : eval.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c bytecode.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) eval.c > eval.i.c
	$(CC) $(CFLAGS) -c eval.i.c
	$(RM) eval.obj
	$(MV) eval.i.obj eval.obj
	$(RM) eval.i.c

control.i : control.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) control.c > control.i

control.s : control.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) control.c > control.i.c
	$(CC) $(CFLAGS) -c control.i.c /FAs /Facontrol.s
	$(RM) control.i.obj
	$(RM) control.i.c

control.obj : control.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) control.c > control.i.c
	$(CC) $(CFLAGS) -c control.i.c
	$(RM) control.obj
	$(MV) control.i.obj control.obj
	$(RM) control.i.c

encoding.i : encoding.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.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_cp1256.c nls_cp1257.c nls_hp_roman8.c nls_nextstep.c nls_jisx0201.c stdbool.h stdint.h libcharset.h libcharset.h
	$(CPP) $(CFLAGS) encoding.c > encoding.i

encoding.s : encoding.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.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_cp1256.c nls_cp1257.c nls_hp_roman8.c nls_nextstep.c nls_jisx0201.c stdbool.h stdint.h libcharset.h libcharset.h
	$(CPP) $(CFLAGS) encoding.c > encoding.i.c
	$(CC) $(CFLAGS) -c encoding.i.c /FAs /Faencoding.s
	$(RM) encoding.i.obj
	$(RM) encoding.i.c

encoding.obj : encoding.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.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_cp1256.c nls_cp1257.c nls_hp_roman8.c nls_nextstep.c nls_jisx0201.c stdbool.h stdint.h libcharset.h libcharset.h
	$(CPP) $(CFLAGS) encoding.c > encoding.i.c
	$(CC) $(CFLAGS) -c encoding.i.c
	$(RM) encoding.obj
	$(MV) encoding.i.obj encoding.obj
	$(RM) encoding.i.c

pathname.i : pathname.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h w32shell.c
	$(CPP) $(CFLAGS) pathname.c > pathname.i

pathname.s : pathname.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h w32shell.c
	$(CPP) $(CFLAGS) pathname.c > pathname.i.c
	$(CC) $(CFLAGS) -c pathname.i.c /FAs /Fapathname.s
	$(RM) pathname.i.obj
	$(RM) pathname.i.c

pathname.obj : pathname.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h w32shell.c
	$(CPP) $(CFLAGS) pathname.c > pathname.i.c
	$(CC) $(CFLAGS) -c pathname.i.c
	$(RM) pathname.obj
	$(MV) pathname.i.obj pathname.obj
	$(RM) pathname.i.c

stream.i : stream.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c arilev0.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) stream.c > stream.i

stream.s : stream.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c arilev0.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) stream.c > stream.i.c
	$(CC) $(CFLAGS) -c stream.i.c /FAs /Fastream.s
	$(RM) stream.i.obj
	$(RM) stream.i.c

stream.obj : stream.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c arilev0.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) stream.c > stream.i.c
	$(CC) $(CFLAGS) -c stream.i.c
	$(RM) stream.obj
	$(MV) stream.i.obj stream.obj
	$(RM) stream.i.c

socket.i : socket.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) socket.c > socket.i

socket.s : socket.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) socket.c > socket.i.c
	$(CC) $(CFLAGS) -c socket.i.c /FAs /Fasocket.s
	$(RM) socket.i.obj
	$(RM) socket.i.c

socket.obj : socket.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) socket.c > socket.i.c
	$(CC) $(CFLAGS) -c socket.i.c
	$(RM) socket.obj
	$(MV) socket.i.obj socket.obj
	$(RM) socket.i.c

io.i : io.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c arilev0.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) io.c > io.i

io.s : io.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c arilev0.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) io.c > io.i.c
	$(CC) $(CFLAGS) -c io.i.c /FAs /Faio.s
	$(RM) io.i.obj
	$(RM) io.i.c

io.obj : io.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c arilev0.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) io.c > io.i.c
	$(CC) $(CFLAGS) -c io.i.c
	$(RM) io.obj
	$(MV) io.i.obj io.obj
	$(RM) io.i.c

array.i : array.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c arilev0.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) array.c > array.i

array.s : array.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c arilev0.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) array.c > array.i.c
	$(CC) $(CFLAGS) -c array.i.c /FAs /Faarray.s
	$(RM) array.i.obj
	$(RM) array.i.c

array.obj : array.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c arilev0.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) array.c > array.i.c
	$(CC) $(CFLAGS) -c array.i.c
	$(RM) array.obj
	$(MV) array.i.obj array.obj
	$(RM) array.i.c

hashtabl.i : hashtabl.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c arilev0.c aridecl.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) hashtabl.c > hashtabl.i

hashtabl.s : hashtabl.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c arilev0.c aridecl.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) hashtabl.c > hashtabl.i.c
	$(CC) $(CFLAGS) -c hashtabl.i.c /FAs /Fahashtabl.s
	$(RM) hashtabl.i.obj
	$(RM) hashtabl.i.c

hashtabl.obj : hashtabl.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c arilev0.c aridecl.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) hashtabl.c > hashtabl.i.c
	$(CC) $(CFLAGS) -c hashtabl.i.c
	$(RM) hashtabl.obj
	$(MV) hashtabl.i.obj hashtabl.obj
	$(RM) hashtabl.i.c

list.i : list.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) list.c > list.i

list.s : list.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) list.c > list.i.c
	$(CC) $(CFLAGS) -c list.i.c /FAs /Falist.s
	$(RM) list.i.obj
	$(RM) list.i.c

list.obj : list.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) list.c > list.i.c
	$(CC) $(CFLAGS) -c list.i.c
	$(RM) list.obj
	$(MV) list.i.obj list.obj
	$(RM) list.i.c

package.i : package.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c constpack.c arilev0.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) package.c > package.i

package.s : package.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c constpack.c arilev0.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) package.c > package.i.c
	$(CC) $(CFLAGS) -c package.i.c /FAs /Fapackage.s
	$(RM) package.i.obj
	$(RM) package.i.c

package.obj : package.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c constpack.c arilev0.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) package.c > package.i.c
	$(CC) $(CFLAGS) -c package.i.c
	$(RM) package.obj
	$(MV) package.i.obj package.obj
	$(RM) package.i.c

record.i : record.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) record.c > record.i

record.s : record.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) record.c > record.i.c
	$(CC) $(CFLAGS) -c record.i.c /FAs /Farecord.s
	$(RM) record.i.obj
	$(RM) record.i.c

record.obj : record.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) record.c > record.i.c
	$(CC) $(CFLAGS) -c record.i.c
	$(RM) record.obj
	$(MV) record.i.obj record.obj
	$(RM) record.i.c

sequence.i : sequence.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) sequence.c > sequence.i

sequence.s : sequence.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) sequence.c > sequence.i.c
	$(CC) $(CFLAGS) -c sequence.i.c /FAs /Fasequence.s
	$(RM) sequence.i.obj
	$(RM) sequence.i.c

sequence.obj : sequence.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) sequence.c > sequence.i.c
	$(CC) $(CFLAGS) -c sequence.i.c
	$(RM) sequence.obj
	$(MV) sequence.i.obj sequence.obj
	$(RM) sequence.i.c

charstrg.i : charstrg.c streq.h cjk.h uniwidth.h width.c unitypes.h uniname.h uninames.h lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c uni_upcase.c uni_downcase.c uni_attribute.c uniname.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) charstrg.c > charstrg.i

charstrg.s : charstrg.c streq.h cjk.h uniwidth.h width.c unitypes.h uniname.h uninames.h lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c uni_upcase.c uni_downcase.c uni_attribute.c uniname.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) charstrg.c > charstrg.i.c
	$(CC) $(CFLAGS) -c charstrg.i.c /FAs /Facharstrg.s
	$(RM) charstrg.i.obj
	$(RM) charstrg.i.c

charstrg.obj : charstrg.c streq.h cjk.h uniwidth.h width.c unitypes.h uniname.h uninames.h lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c uni_upcase.c uni_downcase.c uni_attribute.c uniname.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) charstrg.c > charstrg.i.c
	$(CC) $(CFLAGS) -c charstrg.i.c
	$(RM) charstrg.obj
	$(MV) charstrg.i.obj charstrg.obj
	$(RM) charstrg.i.c

debug.i : debug.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) debug.c > debug.i

debug.s : debug.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) debug.c > debug.i.c
	$(CC) $(CFLAGS) -c debug.i.c /FAs /Fadebug.s
	$(RM) debug.i.obj
	$(RM) debug.i.c

debug.obj : debug.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) debug.c > debug.i.c
	$(CC) $(CFLAGS) -c debug.i.c
	$(RM) debug.obj
	$(MV) debug.i.obj debug.obj
	$(RM) debug.i.c

error.i : error.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c errwin32.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) error.c > error.i

error.s : error.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c errwin32.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) error.c > error.i.c
	$(CC) $(CFLAGS) -c error.i.c /FAs /Faerror.s
	$(RM) error.i.obj
	$(RM) error.i.c

error.obj : error.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c errwin32.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) error.c > error.i.c
	$(CC) $(CFLAGS) -c error.i.c
	$(RM) error.obj
	$(MV) error.i.obj error.obj
	$(RM) error.i.c

misc.i : misc.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) misc.c > misc.i

misc.s : misc.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) misc.c > misc.i.c
	$(CC) $(CFLAGS) -c misc.i.c /FAs /Famisc.s
	$(RM) misc.i.obj
	$(RM) misc.i.c

misc.obj : misc.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) misc.c > misc.i.c
	$(CC) $(CFLAGS) -c misc.i.c
	$(RM) misc.obj
	$(MV) misc.i.obj misc.obj
	$(RM) misc.i.c

time.i : time.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c arilev0.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) time.c > time.i

time.s : time.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c arilev0.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) time.c > time.i.c
	$(CC) $(CFLAGS) -c time.i.c /FAs /Fatime.s
	$(RM) time.i.obj
	$(RM) time.i.c

time.obj : time.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c arilev0.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) time.c > time.i.c
	$(CC) $(CFLAGS) -c time.i.c
	$(RM) time.obj
	$(MV) time.i.obj time.obj
	$(RM) time.i.c

predtype.i : predtype.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c avl.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) predtype.c > predtype.i

predtype.s : predtype.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c avl.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) predtype.c > predtype.i.c
	$(CC) $(CFLAGS) -c predtype.i.c /FAs /Fapredtype.s
	$(RM) predtype.i.obj
	$(RM) predtype.i.c

predtype.obj : predtype.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c avl.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) predtype.c > predtype.i.c
	$(CC) $(CFLAGS) -c predtype.i.c
	$(RM) predtype.obj
	$(MV) predtype.i.obj predtype.obj
	$(RM) predtype.i.c

symbol.i : symbol.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) symbol.c > symbol.i

symbol.s : symbol.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) symbol.c > symbol.i.c
	$(CC) $(CFLAGS) -c symbol.i.c /FAs /Fasymbol.s
	$(RM) symbol.i.obj
	$(RM) symbol.i.c

symbol.obj : symbol.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) symbol.c > symbol.i.c
	$(CC) $(CFLAGS) -c symbol.i.c
	$(RM) symbol.obj
	$(MV) symbol.i.obj symbol.obj
	$(RM) symbol.i.c

lisparit.i : lisparit.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.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 stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) lisparit.c > lisparit.i

lisparit.s : lisparit.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.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 stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) lisparit.c > lisparit.i.c
	$(CC) $(CFLAGS) -c lisparit.i.c /FAs /Falisparit.s
	$(RM) lisparit.i.obj
	$(RM) lisparit.i.c

lisparit.obj : lisparit.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.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 stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) lisparit.c > lisparit.i.c
	$(CC) $(CFLAGS) -c lisparit.i.c
	$(RM) lisparit.obj
	$(MV) lisparit.i.obj lisparit.obj
	$(RM) lisparit.i.c

i18n.i : i18n.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) i18n.c > i18n.i

i18n.s : i18n.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) i18n.c > i18n.i.c
	$(CC) $(CFLAGS) -c i18n.i.c /FAs /Fai18n.s
	$(RM) i18n.i.obj
	$(RM) i18n.i.c

i18n.obj : i18n.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) i18n.c > i18n.i.c
	$(CC) $(CFLAGS) -c i18n.i.c
	$(RM) i18n.obj
	$(MV) i18n.i.obj i18n.obj
	$(RM) i18n.i.c

win32aux.i : win32aux.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) win32aux.c > win32aux.i

win32aux.s : win32aux.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) win32aux.c > win32aux.i.c
	$(CC) $(CFLAGS) -c win32aux.i.c /FAs /Fawin32aux.s
	$(RM) win32aux.i.obj
	$(RM) win32aux.i.c

win32aux.obj : win32aux.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) win32aux.c > win32aux.i.c
	$(CC) $(CFLAGS) -c win32aux.i.c
	$(RM) win32aux.obj
	$(MV) win32aux.i.obj win32aux.obj
	$(RM) win32aux.i.c

genclisph.i : genclisph.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) genclisph.c > genclisph.i

genclisph.s : genclisph.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) genclisph.c > genclisph.i.c
	$(CC) $(CFLAGS) -c genclisph.i.c /FAs /Fagenclisph.s
	$(RM) genclisph.i.obj
	$(RM) genclisph.i.c

genclisph.obj : genclisph.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) genclisph.c > genclisph.i.c
	$(CC) $(CFLAGS) -c genclisph.i.c
	$(RM) genclisph.obj
	$(MV) genclisph.i.obj genclisph.obj
	$(RM) genclisph.i.c

modules.i : modules.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h modules.h
	$(CPP) $(CFLAGS) -DNO_CLISP_H modules.c > modules.i

modules.s : modules.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h modules.h
	$(CPP) $(CFLAGS) -DNO_CLISP_H modules.c > modules.i.c
	$(CC) $(CFLAGS) -DNO_CLISP_H -c modules.i.c /FAs /Famodules.s
	$(RM) modules.i.obj
	$(RM) modules.i.c

modules.obj : modules.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h modules.h
	$(CPP) $(CFLAGS) -DNO_CLISP_H modules.c > modules.i.c
	$(CC) $(CFLAGS) -DNO_CLISP_H -c modules.i.c
	$(RM) modules.obj
	$(MV) modules.i.obj modules.obj
	$(RM) modules.i.c

noreadline.i : noreadline.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) noreadline.c > noreadline.i

noreadline.s : noreadline.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) noreadline.c > noreadline.i.c
	$(CC) $(CFLAGS) -c noreadline.i.c /FAs /Fanoreadline.s
	$(RM) noreadline.i.obj
	$(RM) noreadline.i.c

noreadline.obj : noreadline.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CFLAGS) noreadline.c > noreadline.i.c
	$(CC) $(CFLAGS) -c noreadline.i.c
	$(RM) noreadline.obj
	$(MV) noreadline.i.obj noreadline.obj
	$(RM) noreadline.i.c

libcharset.h : ..\libcharset\include\libcharset.h
	-$(LN_S) ..\libcharset\include\libcharset.h libcharset.h

charset.lib : ..\libcharset\lib\charset.lib
	-$(LN_S) ..\libcharset\lib\charset.lib charset.lib

ole32.lib :
	implib ole32.lib $(WIN32DIR)\ole32.dll

data : ..\utils\unicode\UnicodeDataFull.txt ..\src\clhs.txt
	$(RMRF) data
	mkdir data
	cd data && $(LN_S) ..\..\utils\unicode\UnicodeDataFull.txt .
	cd data && $(LN_S) ..\..\src\clhs.txt .

lisp.exe : $(OBJECTS) modules.obj   charset.lib  ole32.lib data
	$(CC) $(CFLAGS) $(CLFLAGS) -elisp.exe $(OBJECTS) modules.obj $(LIBS)


alllisp : $(LISPFILES)

config.lisp : cfgwin32.lisp
	$(CP) cfgwin32.lisp config.lisp

RUN= lisp.exe -B . -Efile UTF-8 -Eterminal UTF-8 -norc

modprep.fas : ..\utils\modprep.lisp lisp.exe lispinit.mem
	$(RUN) -M lispinit.mem -q -c ../utils/modprep.lisp -o modprep.fas

modprep.lisp : ..\utils\modprep.lisp
	-$(RM) modprep.lisp
	-$(LN_S) ..\utils\modprep.lisp modprep.lisp


interpreted.mem : lisp.exe $(LISPFILES)
	-$(RM) interpreted.mem
	$(RUN) -m 750KW -x "(and (load \"init.lisp\") (sys::%saveinitmem) (ext::exit))"
	$(MV) lispimag.mem interpreted.mem

init.fas : init.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c init.lisp

defseq.fas : defseq.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c defseq.lisp

backquote.fas : backquote.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c backquote.lisp

defmacro.fas : defmacro.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c defmacro.lisp

macros1.fas : macros1.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c macros1.lisp

macros2.fas : macros2.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c macros2.lisp

defs1.fas : defs1.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c defs1.lisp

timezone.fas : timezone.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c timezone.lisp

places.fas : places.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c places.lisp

floatprint.fas : floatprint.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c floatprint.lisp

type.fas : type.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c type.lisp

defstruct.fas : defstruct.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c defstruct.lisp

format.fas : format.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c format.lisp

international.fas : international.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c international.lisp

savemem.fas : savemem.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c savemem.lisp

trace.fas : trace.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c trace.lisp

cmacros.fas : cmacros.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c cmacros.lisp

compiler.fas : compiler.lisp lisp.exe interpreted.mem
	$(RUN) -m 1000KW -M interpreted.mem -q -c compiler.lisp

defs2.fas : defs2.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c defs2.lisp

loop.fas : loop.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c loop.lisp

clos.fas : clos.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c clos.lisp

disassem.fas : disassem.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c disassem.lisp

condition.fas : condition.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c condition.lisp

loadform.fas : loadform.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c loadform.lisp

gstream.fas : gstream.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c gstream.lisp

xcharin.fas : xcharin.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c xcharin.lisp

keyboard.fas : keyboard.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c keyboard.lisp

screen.fas : screen.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c screen.lisp

beossock.fas : beossock.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c beossock.lisp

runprog.fas : runprog.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c runprog.lisp

query.fas : query.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c query.lisp

reploop.fas : reploop.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c reploop.lisp

dribble.fas : dribble.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c dribble.lisp

complete.fas : complete.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c complete.lisp

pprint.fas : pprint.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c pprint.lisp

describe.fas : describe.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c describe.lisp

room.fas : room.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c room.lisp

edit.fas : edit.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c edit.lisp

macros3.fas : macros3.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c macros3.lisp

clhs.fas : clhs.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c clhs.lisp

inspect.fas : inspect.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c inspect.lisp

gray.fas : gray.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c gray.lisp

german.fas : german.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c german.lisp

french.fas : french.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c french.lisp

spanish.fas : spanish.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c spanish.lisp

russian.fas : russian.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c russian.lisp

dutch.fas : dutch.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c dutch.lisp

deprecated.fas : deprecated.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c deprecated.lisp

config.fas : config.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1000KW -M halfcompiled.mem -q -c config.lisp

halfcompiled.mem : lisp.exe $(LISPFILES) compiler.fas
	-$(RM) halfcompiled.mem
	$(RUN) -m 750KW -x "(and (load \"init.lisp\") (sys::%saveinitmem) (ext::exit))"
	$(MV) lispimag.mem halfcompiled.mem

lispinit.mem : lisp.exe $(FASFILES)
	-$(RM) lispinit.mem
	$(RUN) -x "(and (load \"init.fas\") (ext::saveinitmem) (ext::exit))"


# Perform self-tests.
check : test testsuite

# check the sources:
# 1. subr.d, fsubr.d, subrkw.d and all the LISPFUNs must add up
# 2. no variables of type gcv_object_t - only pointers to it
check-sources : # lisp.exe lispinit.mem
	$(RUN) -M lispinit.mem -C -i check-lispfun.lisp -x '(check-lisp-defs "")'
	if egrep ' var gcv_object_t *[^* ]' *.d; then false; else true; fi

# Test: recompile $(LISPFILES) and compare their contents.
test : lispinit.mem stage $(TESTLISPFILES) $(TESTFASFILES)
	comp *.fas stage
	echo The test passed if only GENSYM differences were found.

stage :
	-mkdir stage

stage\init.lisp : init.lisp
	$(LN_S) init.lisp stage

stage\defseq.lisp : defseq.lisp
	$(LN_S) defseq.lisp stage

stage\backquote.lisp : backquote.lisp
	$(LN_S) backquote.lisp stage

stage\defmacro.lisp : defmacro.lisp
	$(LN_S) defmacro.lisp stage

stage\macros1.lisp : macros1.lisp
	$(LN_S) macros1.lisp stage

stage\macros2.lisp : macros2.lisp
	$(LN_S) macros2.lisp stage

stage\defs1.lisp : defs1.lisp
	$(LN_S) defs1.lisp stage

stage\timezone.lisp : timezone.lisp
	$(LN_S) timezone.lisp stage

stage\places.lisp : places.lisp
	$(LN_S) places.lisp stage

stage\floatprint.lisp : floatprint.lisp
	$(LN_S) floatprint.lisp stage

stage\type.lisp : type.lisp
	$(LN_S) type.lisp stage

stage\defstruct.lisp : defstruct.lisp
	$(LN_S) defstruct.lisp stage

stage\format.lisp : format.lisp
	$(LN_S) format.lisp stage

stage\international.lisp : international.lisp
	$(LN_S) international.lisp stage

stage\savemem.lisp : savemem.lisp
	$(LN_S) savemem.lisp stage

stage\trace.lisp : trace.lisp
	$(LN_S) trace.lisp stage

stage\cmacros.lisp : cmacros.lisp
	$(LN_S) cmacros.lisp stage

stage\compiler.lisp : compiler.lisp
	$(LN_S) compiler.lisp stage

stage\defs2.lisp : defs2.lisp
	$(LN_S) defs2.lisp stage

stage\loop.lisp : loop.lisp
	$(LN_S) loop.lisp stage

stage\clos.lisp : clos.lisp
	$(LN_S) clos.lisp stage

stage\disassem.lisp : disassem.lisp
	$(LN_S) disassem.lisp stage

stage\condition.lisp : condition.lisp
	$(LN_S) condition.lisp stage

stage\loadform.lisp : loadform.lisp
	$(LN_S) loadform.lisp stage

stage\gstream.lisp : gstream.lisp
	$(LN_S) gstream.lisp stage

stage\xcharin.lisp : xcharin.lisp
	$(LN_S) xcharin.lisp stage

stage\keyboard.lisp : keyboard.lisp
	$(LN_S) keyboard.lisp stage

stage\screen.lisp : screen.lisp
	$(LN_S) screen.lisp stage

stage\beossock.lisp : beossock.lisp
	$(LN_S) beossock.lisp stage

stage\runprog.lisp : runprog.lisp
	$(LN_S) runprog.lisp stage

stage\query.lisp : query.lisp
	$(LN_S) query.lisp stage

stage\reploop.lisp : reploop.lisp
	$(LN_S) reploop.lisp stage

stage\dribble.lisp : dribble.lisp
	$(LN_S) dribble.lisp stage

stage\complete.lisp : complete.lisp
	$(LN_S) complete.lisp stage

stage\pprint.lisp : pprint.lisp
	$(LN_S) pprint.lisp stage

stage\describe.lisp : describe.lisp
	$(LN_S) describe.lisp stage

stage\room.lisp : room.lisp
	$(LN_S) room.lisp stage

stage\edit.lisp : edit.lisp
	$(LN_S) edit.lisp stage

stage\macros3.lisp : macros3.lisp
	$(LN_S) macros3.lisp stage

stage\clhs.lisp : clhs.lisp
	$(LN_S) clhs.lisp stage

stage\inspect.lisp : inspect.lisp
	$(LN_S) inspect.lisp stage

stage\gray.lisp : gray.lisp
	$(LN_S) gray.lisp stage

stage\german.lisp : german.lisp
	$(LN_S) german.lisp stage

stage\french.lisp : french.lisp
	$(LN_S) french.lisp stage

stage\spanish.lisp : spanish.lisp
	$(LN_S) spanish.lisp stage

stage\russian.lisp : russian.lisp
	$(LN_S) russian.lisp stage

stage\dutch.lisp : dutch.lisp
	$(LN_S) dutch.lisp stage

stage\deprecated.lisp : deprecated.lisp
	$(LN_S) deprecated.lisp stage

stage\config.lisp : config.lisp
	$(LN_S) config.lisp stage

stage\testinit.mem: lispinit.mem
	$(CP) lispinit.mem stage\testinit.mem

stage\init.fas : stage\init.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\init.lisp

stage\defseq.fas : stage\defseq.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\defseq.lisp

stage\backquote.fas : stage\backquote.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\backquote.lisp

stage\defmacro.fas : stage\defmacro.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\defmacro.lisp

stage\macros1.fas : stage\macros1.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\macros1.lisp

stage\macros2.fas : stage\macros2.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\macros2.lisp

stage\defs1.fas : stage\defs1.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\defs1.lisp

stage\timezone.fas : stage\timezone.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\timezone.lisp

stage\places.fas : stage\places.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\places.lisp

stage\floatprint.fas : stage\floatprint.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\floatprint.lisp

stage\type.fas : stage\type.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\type.lisp

stage\defstruct.fas : stage\defstruct.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\defstruct.lisp

stage\format.fas : stage\format.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\format.lisp

stage\international.fas : stage\international.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\international.lisp

stage\savemem.fas : stage\savemem.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\savemem.lisp

stage\trace.fas : stage\trace.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\trace.lisp

stage\cmacros.fas : stage\cmacros.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\cmacros.lisp

stage\compiler.fas : stage\compiler.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\compiler.lisp

stage\defs2.fas : stage\defs2.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\defs2.lisp

stage\loop.fas : stage\loop.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\loop.lisp

stage\clos.fas : stage\clos.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\clos.lisp

stage\disassem.fas : stage\disassem.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\disassem.lisp

stage\condition.fas : stage\condition.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\condition.lisp

stage\loadform.fas : stage\loadform.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\loadform.lisp

stage\gstream.fas : stage\gstream.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\gstream.lisp

stage\xcharin.fas : stage\xcharin.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\xcharin.lisp

stage\keyboard.fas : stage\keyboard.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\keyboard.lisp

stage\screen.fas : stage\screen.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\screen.lisp

stage\beossock.fas : stage\beossock.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\beossock.lisp

stage\runprog.fas : stage\runprog.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\runprog.lisp

stage\query.fas : stage\query.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\query.lisp

stage\reploop.fas : stage\reploop.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\reploop.lisp

stage\dribble.fas : stage\dribble.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\dribble.lisp

stage\complete.fas : stage\complete.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\complete.lisp

stage\pprint.fas : stage\pprint.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\pprint.lisp

stage\describe.fas : stage\describe.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\describe.lisp

stage\room.fas : stage\room.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\room.lisp

stage\edit.fas : stage\edit.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\edit.lisp

stage\macros3.fas : stage\macros3.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\macros3.lisp

stage\clhs.fas : stage\clhs.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\clhs.lisp

stage\inspect.fas : stage\inspect.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\inspect.lisp

stage\gray.fas : stage\gray.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\gray.lisp

stage\german.fas : stage\german.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\german.lisp

stage\french.fas : stage\french.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\french.lisp

stage\spanish.fas : stage\spanish.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\spanish.lisp

stage\russian.fas : stage\russian.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\russian.lisp

stage\dutch.fas : stage\dutch.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\dutch.lisp

stage\deprecated.fas : stage\deprecated.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\deprecated.lisp

stage\config.fas : stage\config.lisp lisp.exe stage\testinit.mem
	$(RUN) -M stage\testinit.mem -q -d -c stage\config.lisp

lispinit2.mem : lisp.exe $(TESTFASFILES)
	$(RUN) -x "(and (cd \"stage/\") (load \"init.fas\") (cd \"../\") (sys::%saveinitmem) (ext::exit))"
	-$(RM) lispinit2.mem
	$(MV) lispimag.mem lispinit2.mem


testsuite : suite lisp.exe lispinit.mem
	cd suite && $(MAKE) LEXE=.exe

testsuite-all : suite lisp.exe lispinit.mem
	cd suite && $(MAKE) LEXE=.exe complete

suite :
	-mkdir suite
	cd suite && $(LN_S) ..\..\tests\Makefile .
	cd suite && $(LN_S) ..\..\tests\*.lisp .
	cd suite && $(LN_S) ..\..\tests\*.tst .


clisp.h clisp-test.c : genclisph.o unixconf.h  intparam.h floatparam.h
	$(CC) $(CFLAGS) $(CLFLAGS) -egenclisph.exe genclisph.o
	(echo '#ifndef _CLISP_H' ; echo '#define _CLISP_H' ; echo; echo '/* unixconf */' ; grep '^#' unixconf.h ) > clisp.h
	(echo; echo '/* 'intparam.h' */' ; grep '^#' intparam.h ) >> clisp.h
	(echo; echo '/* 'floatparam.h' */' ; grep '^#' floatparam.h ) >> clisp.h
	(echo; echo '/* genclisph */' ; genclisph clisp-test.c; echo ; echo '#endif /* _CLISP_H */') >> clisp.h
	$(CC) $(CFLAGS) $(CLFLAGS) -DUSE_CLISP_H=1 -eclisp-test-clisp.exe clisp-test.c
	$(CC) $(CFLAGS) $(CLFLAGS) -DUSE_CLISP_H=0 -eclisp-test-lispbibl.exe clisp-test.c
	clisp-test-clisp > clisp-test-clisp.out
	clisp-test-lispbibl > clisp-test-lispbibl.out
	comp clisp-test-clisp.out clisp-test-lispbibl.out
	$(RM) genclisph.exe clisp-test-clisp.exe clisp-test-lispbibl.exe clisp-test-clisp.out clisp-test-lispbibl.out

linkkit : modules.d modules.c clisp.h exporting.lisp modprep.lisp
	-$(RMRF) linkkit
	mkdir linkkit
	cd linkkit && $(LN_S) ..\modules.d modules.d
	cd linkkit && $(LN_S) ..\modules.c modules.c
	cd linkkit && $(LN_S) ..\clisp.h clisp.h
	cd linkkit && $(LN_S) ..\exporting.lisp exporting.lisp
	cd linkkit && $(LN_S) ..\modprep.lisp modprep.lisp

exporting.fas : ..\modules\exporting.lisp lisp.exe lispinit.mem
	$(RUN) -M lispinit.mem -q -c ../modules/exporting.lisp -o exporting.fas

exporting.lisp : ..\modules\exporting.lisp
	-$(RM) exporting.lisp
	-$(LN_S) ..\modules\exporting.lisp exporting.lisp


modular : lisp.a  clisp-link linkkit modules.h modules.o makevars

makevars :
	(echo 'CC='"'"'$(CC)'"'" ; echo 'CFLAGS='"'"'$(CFLAGS)'"'" ; echo 'CLFLAGS='"'"'$(CLFLAGS)'"'" ; echo 'LIBS='"'"'lisp.a $(LIBS)'"'" ; echo 'X_LIBS='"'"'$(X_LIBS)'"'" ; echo 'RANLIB='"'"'$(RANLIB)'"'" ; echo 'FILES='"'"'lisp.a '"'") > makevars

clisp-link : clisp-link.in
	sed -e 's%@with_dynamic_modules@%%' -e 's%@createsharedlib@%%' -e 's%@LEXE@%.exe%' < clisp-link.in > clisp-link
	chmod a+x clisp-link

base : modular lispinit.mem
	test -d base || (mkdir base && cd base && for f in lisp.a  modules.h modules.o makevars lisp.exe lispinit.mem; do $(LN_S) ..\$$f $$f; done) || ($(RMRF) base ; exit 1)

anymodule $(MODULES) : lisp.exe lispinit.mem force modprep.fas exporting.fas clisp.h
	test -d $@ || lndir ..\modules/$@ $@
	if test -f $@/configure -a '!' -f $@/config.status ; then cd $@ ; ./configure --cache-file=`echo $@/ | sed -e 's,[^/][^/]*//*,../,g'`config.cache ; fi
	CLISP="`pwd`\lisp.exe -M `pwd`\lispinit.mem -B `pwd` -Efile UTF-8 -Eterminal UTF-8 -norc" ; cd $@ ; dots=`echo $@/ | sed -e 's,[^/][^/]*//*,../,g'` ; $(MAKE) clisp-module CC="$(CC)" CFLAGS="$(CFLAGS)" INCLUDES="$$dots" LISPBIBL_INCLUDES=" $${dots}lispbibl.c $${dots}fsubr.c $${dots}subr.c $${dots}pseudofun.c $${dots}constsym.c $${dots}constobj.c $${dots}win32.c $${dots}xthread.c $${dots}stdbool.h $${dots}stdint.h $${dots}libcharset.h" CLFLAGS="$(CLFLAGS)" LIBS="$(LIBS)" RANLIB="$(RANLIB)" CLISP="$$CLISP -q"

full : modular base $(MODULES)
	$(RMRF) full
	CLISP_LINKKIT=. clisp-link add-module-sets base full $(MODULES) || ($(RMRF) full ; exit 1)

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

impnotes.html : ..\doc\impnotes.html
	$(LN_S) ..\doc\impnotes.html impnotes.html

impnotes.css : ..\doc\impnotes.css
	$(LN_S) ..\doc\impnotes.css impnotes.css

clisp.png : ..\doc\clisp.png
	$(LN_S) ..\doc\clisp.png clisp.png

clisp.ico : ..\doc\clisp.ico
	$(LN_S) ..\doc\clisp.ico clisp.ico

manual : $(READMES) $(MANUALS)

manualx : manual clisp.man clisp.dvi clisp.ps

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

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

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

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

README : _README lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h _README.de _README.en txt2c.exe
	$(TXT2C) < _README > txt.c
	$(CPP) $(CFLAGS) txt.c > txt.i.c
	$(CC) $(CFLAGS) $(CLFLAGS) -etxt.exe txt.i.c
	$(RM) txt.i.c
	txt > README
	$(RM) txt.c
	$(RM) txt.exe

README.de : _README.de lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h txt2c.exe
	$(TXT2C) < _README.de > txt.c
	$(CPP) $(CFLAGS) txt.c > txt.i.c
	$(CC) $(CFLAGS) $(CLFLAGS) -etxt.exe txt.i.c
	$(RM) txt.i.c
	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 win32.c xthread.c stdbool.h stdint.h libcharset.h txt2c.exe
	$(TXT2C) < _README.es > txt.c
	$(CPP) $(CFLAGS) txt.c > txt.i.c
	$(CC) $(CFLAGS) $(CLFLAGS) -etxt.exe txt.i.c
	$(RM) txt.i.c
	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 win32.c xthread.c stdbool.h stdint.h libcharset.h txt2c.exe
	$(TXT2C) < _clisp.1 > txt.c
	$(CPP) $(CFLAGS) txt.c > txt.i.c
	$(CC) $(CFLAGS) $(CLFLAGS) -etxt.exe txt.i.c
	$(RM) txt.i.c
	txt > clisp.1
	$(RM) txt.c
	$(RM) txt.exe

clisp.html : _clisp.html lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h VERSION txt2c.exe
	$(TXT2C) < _clisp.html > txt.c
	$(CPP) $(CFLAGS) txt.c > txt.i.c
	$(CC) $(CFLAGS) $(CLFLAGS) -etxt.exe txt.i.c
	$(RM) txt.i.c
	txt > TMPPIPE1
	sed -e 's,="CLHSROOT/,="http://www.lisp.org/HyperSpec/,' -e "s,VERSION,`cat VERSION`," < TMPPIPE1 > clisp.html
	$(RM) TMPPIPE1
	$(RM) txt.c
	$(RM) txt.exe

clisp.c : _clisp.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h txt2c.exe
	$(TXT2C) < _clisp.c > txt.c
	$(CPP) $(CFLAGS) txt.c > txt.i.c
	$(CC) $(CFLAGS) $(CLFLAGS) -etxt.exe txt.i.c
	$(RM) txt.i.c
	txt > clisp.c
	$(RM) txt.c
	$(RM) txt.exe

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

clisp.ps : clisp.1
	$(ROFF_PS) clisp.1 > clisp.ps

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

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

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

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


clispres.o : clisp.rc
	windres -i clisp.rc -o clispres.o

clisp.rc :
	echo "MAINICON ICON \"clisp.ico\"" > clisp.rc

clisp : clisp.c clispres.o w32shell.c
	builddir="`pwd`"; $(CC) $(CFLAGS) $(CLFLAGS) -DLISPLIBDIR='"'$$builddir'"' -DLOCALEDIR='"'$$builddir/locale'"' clisp.c clispres.o $(LIBS) -o clisp

# Distribution, to be executed on a Unix host or using Cygwin.
distrib : install.lisp install.bat clisp.man clisp.html force
	version=`cat VERSION` ; \
	distdir=clisp-$$version ; \
	mkdir $$distdir ; \
	for f in ANNOUNCE COPYRIGHT GNU-GPL SUMMARY NEWS README README.de README.es install.bat ; do \
	  if test -f $$f ; then cp -p $$f $$distdir/$$f ; else cp -p `echo $$f | tr '[A-Z]' '[a-z]'` $$distdir/$$f ; fi ; \
	done ; \
	distfile=clisp-$$version-win32.zip ; \
	for d in base full ; do \
	  mkdir $$distdir/$$d ; \
	  for f in lisp.exe lispinit.mem ; do \
	    cp -p $$d/$$f $$distdir/$$d/$$f ; \
	  done ; \
	done ; \
	mkdir $$distdir/data ; \
	cp -p data/UnicodeDataFull.txt $$distdir/data/UnicodeDataFull.txt ; \
	cp -p data/clhs.txt $$distdir/data/clhs.txt ; \
	mkdir $$distdir/doc ; \
	for f in clisp.1 clisp.man clisp.html $(TXTFILES) $(IMPNOTES) ; do \
	  if test -f $$f ; then cp -p $$f $$distdir/doc/$$f ; else cp -p `echo $$f | tr '[A-Z]' '[a-z]'` $$distdir/doc/$$f ; fi ; \
	done ; \
	mkdir $$distdir/emacs; \
	cp -p ../emacs/clisp-coding.el $$distdir/emacs/clisp-coding.el ; \
	cp -p ../emacs/clisp-indent.el $$distdir/emacs/clisp-indent.el ; \
	cp -p ../emacs/clisp-indent.lisp $$distdir/emacs/clisp-indent.lisp ; \
	mkdir $$distdir/src ; \
	cp -p $(LISPFILES) install.lisp $$distdir/src/ ; \
	chmod 755 $$distdir/. $$distdir/*/. ; \
	find $$distdir -type f -exec chmod 664 {} \';\' ; \
	rm -f $$distfile ; \
	(echo "CLISP version $$version for Win32."; echo ".") | zip -r -9 -z $$distfile $$distdir ; \
	rm -rf $$distdir

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

# 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\*
	-$(RMRF) base full
	-$(RM) charset.lib avcall.lib callback.lib
	-rmdir stage
	-rmdir suite
	-$(RM) README README.de README.es clisp.1 clisp.man clisp.dvi clisp.ps clisp.html $(IMPNOTES) clisp.c distmakefile $(TXTFILES)

# 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
	-$(RM) modprep.fas

# 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)
	-$(RM) libcharset.h
	-$(RM) charset.alias
	-$(RM) stdbool.h
	-$(RM) stdint.h

# clean5 even undoes "make init".
clean5 : clean4
	-$(RM) ANNOUNCE COPYRIGHT GNU-GPL SUMMARY
	-$(RM) config.lisp
	-$(RMRF) data
	-$(RM) clisp.exe clisp.rc comment5.exe varbrace.exe txt2c.exe ccmp2c.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 floatparam.h unixconf.h makemake
	-$(RMRF) avcall
	-$(RMRF) callback
	-$(RMRF) libcharset

# 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:

