# -*- Makefile -*- for the CLISP binaries
# DO NOT EDIT! GENERATED AUTOMATICALLY!
# This file was created on host loiso as the output of the command:
# ./makemake --with-dynamic-ffi win32msvc msvc5

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

# Flags that can be set on the nmake command line:
#   MFLAGS={-ML|-MT|-MD} for defining the compilation model
#     MFLAGS=-ML (the default)  Single-threaded, statically linked - libc.lib
#     MFLAGS=-MT                Multi-threaded, statically linked  - libcmt.lib
#     MFLAGS=-MD                Multi-threaded, dynamically linked - msvcrt.lib
!if !defined(MFLAGS)
MFLAGS=
!endif

# Directories used by "make install":
prefix = 
exec_prefix = $(prefix)
bindir  = $(exec_prefix)\bin
datadir = $(prefix)\share
mandir  = $(datadir)\man
docdir  = $(datadir)\doc\clisp
htmldir = $(docdir)
dvidir  = $(docdir)
psdir   = $(docdir)
pdfdir  = $(docdir)
libdir  = $(exec_prefix)\lib
lisplibdir = $(libdir)\clisp
elispdir = $(datadir)/emacs/site-lisp
# 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
# (see directory modules/ for the full list
#  or pass --list-modules to top-level configure):
# queens               the queens function (a toy example)
# dirkey               the directory access (LDAP, win32 registry)
# berkeley-db          the Berkeley DB access
# rawsock              raw socket access
# pcre                 Perl-compatible regular expressions
# wildcard             wildcard matching
# postgresql           interface to PostgreSQL ODBMS
# fastcgi              FastCGI (http://www.fastcgi.com/) interface
# oracle               Oracle (http://www.oracle.com/) interface
# netica               Netica (http://norsys.com/netica_c_api.htm)
# pari                 PARI/gp (http://pari.math.u-bordeaux.fr/)
# zlib                 ZLIB (http://www.zlib.org)
# clx/mit-clx          classical X11 interface
MODULES = 

# Command line options passed to the configure files of add-on modules
MODULE_CONFIGURE_FLAGS = --with-dynamic-ffi

# Programs used by "make":
CC = cl $(MFLAGS) -G5 -Os -Oy -Ob1 -Gs -Gf -Gy
CPPFLAGS = 
CFLAGS =  -DUNICODE -DDYNAMIC_FFI -DNO_GETTEXT -DNO_SIGSEGV -I.
CPP = ..\utils\gcc-cccp\cccp -U__GNUC__ -+ -D_M_IX86=500 -D_WIN32 -I$(MSVCDIR)/include -D_MSC_VER=1100 -D_INTEGRAL_MAX_BITS=64
CLFLAGS = 
LIBS = charset.lib avcall.lib callback.lib  user32.lib ws2_32.lib advapi32.lib  ole32.lib shell32.lib
X_LIBS = 
#MSVCDIR = d:/msdev
#MSVCDIR = d:/devstudio/vc
#MSVCDIR = c:/msvs/vc98
#MSVCDIR = "C:/Program Files/Microsoft Visual Studio/VC98"
#MSVCDIR = "C:\Programme\Microsoft Visual Studio\VC98"

MAKE = nmake
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"
DVIPDF = dvipdf

# -------------- 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 build
#      directory.
#      Examples: clisp/build/wildcard/
#                clisp/build/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
#             CPPFLAGS           the C compiler flags when compiling some source
#             CFLAGS             the C compiler flags
#             INCLUDES           a directory containing CLISP header files
#             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
#                                "boot" clisp.
#           Typically, you will have rules like this in your Makefile:
#               foo.o : foo.c
#                       $(CC) $(CPPFLAGS) $(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.
#

# The official version number
VERSION=2.40
# If you want to distribute a modified version of CLISP,
# use this to distinguish your distribution from the official one.
# This can also be used for pre-test and post-release distributions:
#   make distrib VERSION_SUFFIX=pre
VERSION_SUFFIX=
# The distribution's top directory
TOPDIR=clisp-$(VERSION)$(VERSION_SUFFIX)

# Add-on modules that are present in all linking sets (including base)
# syscalls             export some POSIX (and other) system calls
# regexp               POSIX regular expressions
# i18n                 Lisp program internationalization
# readline             extra fine REPL controls
BASE_MODULES = i18n syscalls regexp readline

COMMENT5 = comment5
GCTRIGGER = gctrigger
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 \
weak.d \
sequence.d \
charstrg.d \
debug.d \
error.d \
misc.d \
time.d \
predtype.d \
symbol.d \
lisparit.d \
i18n.d \
foreign.d \
win32aux.d \
built.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_sigterm.d \
spvw_garcol.d \
spvw_genera1.d \
spvw_gcmark.d \
spvw_genera2.d \
spvw_weak.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 \
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 \
intserial.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 \
ari80386.d \
sp80386.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 \
weak.c \
sequence.c \
charstrg.c \
debug.c \
error.c \
misc.c \
time.c \
predtype.c \
symbol.c \
lisparit.c \
i18n.c \
foreign.c \
win32aux.c \
built.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_sigterm.c \
spvw_garcol.c \
spvw_genera1.c \
spvw_gcmark.c \
spvw_genera2.c \
spvw_weak.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 \
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 \
intserial.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 \
ari80386.c \
sp80386.c \
gen.lispbibl.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 \
weak.obj \
sequence.obj \
charstrg.obj \
debug.obj \
error.obj \
misc.obj \
time.obj \
predtype.obj \
symbol.obj \
lisparit.obj \
i18n.obj \
foreign.obj \
win32aux.obj \
built.obj \
ari80386.obj \
sp80386.obj

LISPFILES = \
init.lisp \
defseq.lisp \
backquote.lisp \
defmacro.lisp \
macros1.lisp \
macros2.lisp \
defs1.lisp \
timezone.lisp \
lambdalist.lisp \
places.lisp \
floatprint.lisp \
defpackage.lisp \
type.lisp \
subtypep.lisp \
clos-package.lisp \
clos-macros.lisp \
clos-class0.lisp \
clos-metaobject1.lisp \
clos-slotdef1.lisp \
clos-stablehash1.lisp \
clos-specializer1.lisp \
clos-class1.lisp \
clos-class2.lisp \
clos-class3.lisp \
defstruct.lisp \
format.lisp \
international.lisp \
savemem.lisp \
functions.lisp \
trace.lisp \
cmacros.lisp \
compiler.lisp \
defs2.lisp \
loop.lisp \
clos.lisp \
clos-stablehash2.lisp \
clos-specializer2.lisp \
clos-specializer3.lisp \
clos-class4.lisp \
clos-class5.lisp \
clos-class6.lisp \
clos-slotdef2.lisp \
clos-slotdef3.lisp \
clos-slots1.lisp \
clos-slots2.lisp \
clos-method1.lisp \
clos-method2.lisp \
clos-method3.lisp \
clos-method4.lisp \
clos-methcomb1.lisp \
clos-methcomb2.lisp \
clos-methcomb3.lisp \
clos-methcomb4.lisp \
clos-genfun1.lisp \
clos-genfun2a.lisp \
clos-genfun2b.lisp \
clos-genfun3.lisp \
clos-genfun4.lisp \
clos-genfun5.lisp \
clos-dependent.lisp \
clos-print.lisp \
clos-custom.lisp \
documentation.lisp \
fill-out.lisp \
disassem.lisp \
condition.lisp \
loadform.lisp \
gstream.lisp \
xcharin.lisp \
keyboard.lisp \
screen.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 \
case-sensitive.lisp \
foreign1.lisp \
exporting.lisp \
german.lisp \
french.lisp \
spanish.lisp \
russian.lisp \
danish.lisp \
dutch.lisp \
deprecated.lisp \
config.lisp

FASFILES = \
init.fas \
defseq.fas \
backquote.fas \
defmacro.fas \
macros1.fas \
macros2.fas \
defs1.fas \
timezone.fas \
lambdalist.fas \
places.fas \
floatprint.fas \
defpackage.fas \
type.fas \
subtypep.fas \
clos-package.fas \
clos-macros.fas \
clos-class0.fas \
clos-metaobject1.fas \
clos-slotdef1.fas \
clos-stablehash1.fas \
clos-specializer1.fas \
clos-class1.fas \
clos-class2.fas \
clos-class3.fas \
defstruct.fas \
format.fas \
international.fas \
savemem.fas \
functions.fas \
trace.fas \
cmacros.fas \
compiler.fas \
defs2.fas \
loop.fas \
clos.fas \
clos-stablehash2.fas \
clos-specializer2.fas \
clos-specializer3.fas \
clos-class4.fas \
clos-class5.fas \
clos-class6.fas \
clos-slotdef2.fas \
clos-slotdef3.fas \
clos-slots1.fas \
clos-slots2.fas \
clos-method1.fas \
clos-method2.fas \
clos-method3.fas \
clos-method4.fas \
clos-methcomb1.fas \
clos-methcomb2.fas \
clos-methcomb3.fas \
clos-methcomb4.fas \
clos-genfun1.fas \
clos-genfun2a.fas \
clos-genfun2b.fas \
clos-genfun3.fas \
clos-genfun4.fas \
clos-genfun5.fas \
clos-dependent.fas \
clos-print.fas \
clos-custom.fas \
documentation.fas \
fill-out.fas \
disassem.fas \
condition.fas \
loadform.fas \
gstream.fas \
xcharin.fas \
keyboard.fas \
screen.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 \
case-sensitive.fas \
foreign1.fas \
exporting.fas \
german.fas \
french.fas \
spanish.fas \
russian.fas \
danish.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\lambdalist.lisp \
stage\places.lisp \
stage\floatprint.lisp \
stage\defpackage.lisp \
stage\type.lisp \
stage\subtypep.lisp \
stage\clos-package.lisp \
stage\clos-macros.lisp \
stage\clos-class0.lisp \
stage\clos-metaobject1.lisp \
stage\clos-slotdef1.lisp \
stage\clos-stablehash1.lisp \
stage\clos-specializer1.lisp \
stage\clos-class1.lisp \
stage\clos-class2.lisp \
stage\clos-class3.lisp \
stage\defstruct.lisp \
stage\format.lisp \
stage\international.lisp \
stage\savemem.lisp \
stage\functions.lisp \
stage\trace.lisp \
stage\cmacros.lisp \
stage\compiler.lisp \
stage\defs2.lisp \
stage\loop.lisp \
stage\clos.lisp \
stage\clos-stablehash2.lisp \
stage\clos-specializer2.lisp \
stage\clos-specializer3.lisp \
stage\clos-class4.lisp \
stage\clos-class5.lisp \
stage\clos-class6.lisp \
stage\clos-slotdef2.lisp \
stage\clos-slotdef3.lisp \
stage\clos-slots1.lisp \
stage\clos-slots2.lisp \
stage\clos-method1.lisp \
stage\clos-method2.lisp \
stage\clos-method3.lisp \
stage\clos-method4.lisp \
stage\clos-methcomb1.lisp \
stage\clos-methcomb2.lisp \
stage\clos-methcomb3.lisp \
stage\clos-methcomb4.lisp \
stage\clos-genfun1.lisp \
stage\clos-genfun2a.lisp \
stage\clos-genfun2b.lisp \
stage\clos-genfun3.lisp \
stage\clos-genfun4.lisp \
stage\clos-genfun5.lisp \
stage\clos-dependent.lisp \
stage\clos-print.lisp \
stage\clos-custom.lisp \
stage\documentation.lisp \
stage\fill-out.lisp \
stage\disassem.lisp \
stage\condition.lisp \
stage\loadform.lisp \
stage\gstream.lisp \
stage\xcharin.lisp \
stage\keyboard.lisp \
stage\screen.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\case-sensitive.lisp \
stage\foreign1.lisp \
stage\exporting.lisp \
stage\german.lisp \
stage\french.lisp \
stage\spanish.lisp \
stage\russian.lisp \
stage\danish.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\lambdalist.fas \
stage\places.fas \
stage\floatprint.fas \
stage\defpackage.fas \
stage\type.fas \
stage\subtypep.fas \
stage\clos-package.fas \
stage\clos-macros.fas \
stage\clos-class0.fas \
stage\clos-metaobject1.fas \
stage\clos-slotdef1.fas \
stage\clos-stablehash1.fas \
stage\clos-specializer1.fas \
stage\clos-class1.fas \
stage\clos-class2.fas \
stage\clos-class3.fas \
stage\defstruct.fas \
stage\format.fas \
stage\international.fas \
stage\savemem.fas \
stage\functions.fas \
stage\trace.fas \
stage\cmacros.fas \
stage\compiler.fas \
stage\defs2.fas \
stage\loop.fas \
stage\clos.fas \
stage\clos-stablehash2.fas \
stage\clos-specializer2.fas \
stage\clos-specializer3.fas \
stage\clos-class4.fas \
stage\clos-class5.fas \
stage\clos-class6.fas \
stage\clos-slotdef2.fas \
stage\clos-slotdef3.fas \
stage\clos-slots1.fas \
stage\clos-slots2.fas \
stage\clos-method1.fas \
stage\clos-method2.fas \
stage\clos-method3.fas \
stage\clos-method4.fas \
stage\clos-methcomb1.fas \
stage\clos-methcomb2.fas \
stage\clos-methcomb3.fas \
stage\clos-methcomb4.fas \
stage\clos-genfun1.fas \
stage\clos-genfun2a.fas \
stage\clos-genfun2b.fas \
stage\clos-genfun3.fas \
stage\clos-genfun4.fas \
stage\clos-genfun5.fas \
stage\clos-dependent.fas \
stage\clos-print.fas \
stage\clos-custom.fas \
stage\documentation.fas \
stage\fill-out.fas \
stage\disassem.fas \
stage\condition.fas \
stage\loadform.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\pprint.fas \
stage\describe.fas \
stage\room.fas \
stage\edit.fas \
stage\macros3.fas \
stage\clhs.fas \
stage\inspect.fas \
stage\gray.fas \
stage\case-sensitive.fas \
stage\foreign1.fas \
stage\exporting.fas \
stage\german.fas \
stage\french.fas \
stage\spanish.fas \
stage\russian.fas \
stage\danish.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
	sh config.status --file=makemake

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

Makefile : makemake
	./makemake --with-dynamic-ffi win32msvc msvc5 > Makefile.tmp
	$(MV) Makefile Makefile~
	$(MV) Makefile.tmp Makefile

config.status : configure
	$(RM) config.cache
	sh config.status --recheck

cflags.h : cflags.h.stamp

cflags.h.stamp : Makefile
	echo /* generated from Makefile */ > cflags.h.new
	echo #define CC "$(CC)" >> cflags.h.new
	echo #define CFLAGS "$(CFLAGS)" >> cflags.h.new
	echo #define CPP "$(CPP)" >> cflags.h.new
	echo #define CPPLAGS "$(CPPLAGS)" >> cflags.h.new
	echo #define CLFLAGS "$(CLFLAGS)" >> cflags.h.new
	echo #define LIBS "$(LIBS)" >> cflags.h.new
	echo #define X_LIBS "$(X_LIBS)" >> cflags.h.new
	$(RM) cflags.h
	$(MV) cflags.h.new cflags.h
	$(TOUCH) cflags.h.stamp

init : ../utils/gcc-cccp/cccp.exe comment5.exe gctrigger.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) tmp.c /Feintparam.exe
	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) tmp.c /Fefloatparam.exe
	floatparam.exe > floatparam.h
	$(RM) floatparam.exe tmp.c

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

UTILCC=$(CC)
comment5.exe : ..\utils\comment5.c
	$(UTILCC) $(CPPFLAGS) $(CFLAGS) $(CLFLAGS) ..\utils\comment5.c /Fecomment5.exe

gctrigger.exe : ..\utils\gctrigger.d comment5.exe
	$(COMMENT5) ..\utils\gctrigger.d > gctrigger.c
	$(UTILCC) $(CPPFLAGS) $(CFLAGS) $(CLFLAGS) gctrigger.c /Fegctrigger.exe
	$(RM) gctrigger.c

varbrace.exe : ..\utils\varbrace.d comment5.exe
	$(COMMENT5) ..\utils\varbrace.d > varbrace.c
	$(UTILCC) $(CPPFLAGS) $(CFLAGS) $(CLFLAGS) varbrace.c /Fevarbrace.exe
	$(RM) varbrace.c

txt2c.exe : ..\utils\txt2c.c
	$(UTILCC) $(CPPFLAGS) $(CFLAGS) $(CLFLAGS) ..\utils\txt2c.c /Fetxt2c.exe

ccmp2c.exe : ..\utils\ccmp2c.c
	$(UTILCC) $(CPPFLAGS) $(CFLAGS) $(CLFLAGS) ..\utils\ccmp2c.c /Feccmp2c.exe


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

stdint.h : stdint_.h
	sed -e s/@HAVE_LONG_64BIT@/0/g -e s/@HAVE_LONG_LONG_64BIT@/0/g < stdint_.h > stdint.h

allc : init $(CFILES)

spvw.c : spvw.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw.d | $(GCTRIGGER) | $(VARBRACE) > spvw.c

spvwtabf.c : spvwtabf.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvwtabf.d | $(GCTRIGGER) | $(VARBRACE) > spvwtabf.c

spvwtabs.c : spvwtabs.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvwtabs.d | $(GCTRIGGER) | $(VARBRACE) > spvwtabs.c

spvwtabo.c : spvwtabo.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvwtabo.d | $(GCTRIGGER) | $(VARBRACE) > spvwtabo.c

eval.c : eval.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) eval.d | $(GCTRIGGER) | $(VARBRACE) > eval.c

control.c : control.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) control.d | $(GCTRIGGER) | $(VARBRACE) > control.c

encoding.c : encoding.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) encoding.d | $(GCTRIGGER) | $(VARBRACE) > encoding.c

pathname.c : pathname.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) pathname.d | $(GCTRIGGER) | $(VARBRACE) > pathname.c

stream.c : stream.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) stream.d | $(GCTRIGGER) | $(VARBRACE) > stream.c

socket.c : socket.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) socket.d | $(GCTRIGGER) | $(VARBRACE) > socket.c

io.c : io.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) io.d | $(GCTRIGGER) | $(VARBRACE) > io.c

array.c : array.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) array.d | $(GCTRIGGER) | $(VARBRACE) > array.c

hashtabl.c : hashtabl.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) hashtabl.d | $(GCTRIGGER) | $(VARBRACE) > hashtabl.c

list.c : list.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) list.d | $(GCTRIGGER) | $(VARBRACE) > list.c

package.c : package.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) package.d | $(GCTRIGGER) | $(VARBRACE) > package.c

record.c : record.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) record.d | $(GCTRIGGER) | $(VARBRACE) > record.c

weak.c : weak.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) weak.d | $(GCTRIGGER) | $(VARBRACE) > weak.c

sequence.c : sequence.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) sequence.d | $(GCTRIGGER) | $(VARBRACE) > sequence.c

charstrg.c : charstrg.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) charstrg.d | $(GCTRIGGER) | $(VARBRACE) > charstrg.c

debug.c : debug.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) debug.d | $(GCTRIGGER) | $(VARBRACE) > debug.c

error.c : error.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) error.d | $(GCTRIGGER) | $(VARBRACE) > error.c

misc.c : misc.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) misc.d | $(GCTRIGGER) | $(VARBRACE) > misc.c

time.c : time.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) time.d | $(GCTRIGGER) | $(VARBRACE) > time.c

predtype.c : predtype.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) predtype.d | $(GCTRIGGER) | $(VARBRACE) > predtype.c

symbol.c : symbol.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) symbol.d | $(GCTRIGGER) | $(VARBRACE) > symbol.c

lisparit.c : lisparit.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) lisparit.d | $(GCTRIGGER) | $(VARBRACE) > lisparit.c

i18n.c : i18n.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) i18n.d | $(GCTRIGGER) | $(VARBRACE) > i18n.c

foreign.c : foreign.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) foreign.d | $(GCTRIGGER) | $(VARBRACE) > foreign.c

win32aux.c : win32aux.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) win32aux.d | $(GCTRIGGER) | $(VARBRACE) > win32aux.c

built.c : built.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) built.d | $(GCTRIGGER) | $(VARBRACE) > built.c

lispbibl.c : lispbibl.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) lispbibl.d | sed -e 's/^\(%%%% .*\)//' | $(GCTRIGGER) | $(VARBRACE) > lispbibl.c

fsubr.c : fsubr.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) fsubr.d | $(GCTRIGGER) | $(VARBRACE) > fsubr.c

subr.c : subr.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) subr.d | $(GCTRIGGER) | $(VARBRACE) > subr.c

pseudofun.c : pseudofun.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) pseudofun.d | $(GCTRIGGER) | $(VARBRACE) > pseudofun.c

constsym.c : constsym.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) constsym.d | $(GCTRIGGER) | $(VARBRACE) > constsym.c

constobj.c : constobj.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) constobj.d | $(GCTRIGGER) | $(VARBRACE) > constobj.c

win32.c : win32.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) win32.d | $(GCTRIGGER) | $(VARBRACE) > win32.c

xthread.c : xthread.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) xthread.d | $(GCTRIGGER) | $(VARBRACE) > xthread.c

constpack.c : constpack.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) constpack.d | $(GCTRIGGER) | $(VARBRACE) > constpack.c

avl.c : avl.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) avl.d | $(GCTRIGGER) | $(VARBRACE) > avl.c

sort.c : sort.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) sort.d | $(GCTRIGGER) | $(VARBRACE) > sort.c

subrkw.c : subrkw.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) subrkw.d | $(GCTRIGGER) | $(VARBRACE) > subrkw.c

bytecode.c : bytecode.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) bytecode.d | $(GCTRIGGER) | $(VARBRACE) > bytecode.c

spvw_module.c : spvw_module.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_module.d | $(GCTRIGGER) | $(VARBRACE) > spvw_module.c

spvw_debug.c : spvw_debug.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_debug.d | $(GCTRIGGER) | $(VARBRACE) > spvw_debug.c

spvw_alloca.c : spvw_alloca.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_alloca.d | $(GCTRIGGER) | $(VARBRACE) > spvw_alloca.c

spvw_mmap.c : spvw_mmap.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_mmap.d | $(GCTRIGGER) | $(VARBRACE) > spvw_mmap.c

spvw_multimap.c : spvw_multimap.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_multimap.d | $(GCTRIGGER) | $(VARBRACE) > spvw_multimap.c

spvw_singlemap.c : spvw_singlemap.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_singlemap.d | $(GCTRIGGER) | $(VARBRACE) > spvw_singlemap.c

spvw_page.c : spvw_page.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_page.d | $(GCTRIGGER) | $(VARBRACE) > spvw_page.c

spvw_heap.c : spvw_heap.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_heap.d | $(GCTRIGGER) | $(VARBRACE) > spvw_heap.c

spvw_global.c : spvw_global.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_global.d | $(GCTRIGGER) | $(VARBRACE) > spvw_global.c

spvw_gcstat.c : spvw_gcstat.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_gcstat.d | $(GCTRIGGER) | $(VARBRACE) > spvw_gcstat.c

spvw_space.c : spvw_space.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_space.d | $(GCTRIGGER) | $(VARBRACE) > spvw_space.c

spvw_mark.c : spvw_mark.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_mark.d | $(GCTRIGGER) | $(VARBRACE) > spvw_mark.c

spvw_objsize.c : spvw_objsize.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_objsize.d | $(GCTRIGGER) | $(VARBRACE) > spvw_objsize.c

spvw_update.c : spvw_update.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_update.d | $(GCTRIGGER) | $(VARBRACE) > spvw_update.c

spvw_fault.c : spvw_fault.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_fault.d | $(GCTRIGGER) | $(VARBRACE) > spvw_fault.c

spvw_sigsegv.c : spvw_sigsegv.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_sigsegv.d | $(GCTRIGGER) | $(VARBRACE) > spvw_sigsegv.c

spvw_sigcld.c : spvw_sigcld.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_sigcld.d | $(GCTRIGGER) | $(VARBRACE) > spvw_sigcld.c

spvw_sigpipe.c : spvw_sigpipe.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_sigpipe.d | $(GCTRIGGER) | $(VARBRACE) > spvw_sigpipe.c

spvw_sigint.c : spvw_sigint.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_sigint.d | $(GCTRIGGER) | $(VARBRACE) > spvw_sigint.c

spvw_sigwinch.c : spvw_sigwinch.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_sigwinch.d | $(GCTRIGGER) | $(VARBRACE) > spvw_sigwinch.c

spvw_sigterm.c : spvw_sigterm.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_sigterm.d | $(GCTRIGGER) | $(VARBRACE) > spvw_sigterm.c

spvw_garcol.c : spvw_garcol.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_garcol.d | $(GCTRIGGER) | $(VARBRACE) > spvw_garcol.c

spvw_genera1.c : spvw_genera1.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_genera1.d | $(GCTRIGGER) | $(VARBRACE) > spvw_genera1.c

spvw_gcmark.c : spvw_gcmark.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_gcmark.d | $(GCTRIGGER) | $(VARBRACE) > spvw_gcmark.c

spvw_genera2.c : spvw_genera2.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_genera2.d | $(GCTRIGGER) | $(VARBRACE) > spvw_genera2.c

spvw_weak.c : spvw_weak.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_weak.d | $(GCTRIGGER) | $(VARBRACE) > spvw_weak.c

spvw_genera3.c : spvw_genera3.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_genera3.d | $(GCTRIGGER) | $(VARBRACE) > spvw_genera3.c

spvw_allocate.c : spvw_allocate.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_allocate.d | $(GCTRIGGER) | $(VARBRACE) > spvw_allocate.c

spvw_typealloc.c : spvw_typealloc.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_typealloc.d | $(GCTRIGGER) | $(VARBRACE) > spvw_typealloc.c

spvw_circ.c : spvw_circ.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_circ.d | $(GCTRIGGER) | $(VARBRACE) > spvw_circ.c

spvw_walk.c : spvw_walk.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_walk.d | $(GCTRIGGER) | $(VARBRACE) > spvw_walk.c

spvw_ctype.c : spvw_ctype.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_ctype.d | $(GCTRIGGER) | $(VARBRACE) > spvw_ctype.c

spvw_language.c : spvw_language.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_language.d | $(GCTRIGGER) | $(VARBRACE) > spvw_language.c

spvw_memfile.c : spvw_memfile.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) spvw_memfile.d | $(GCTRIGGER) | $(VARBRACE) > spvw_memfile.c

errunix.c : errunix.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) errunix.d | $(GCTRIGGER) | $(VARBRACE) > errunix.c

errwin32.c : errwin32.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) errwin32.d | $(GCTRIGGER) | $(VARBRACE) > errwin32.c

aridecl.c : aridecl.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) aridecl.d | $(GCTRIGGER) | $(VARBRACE) > aridecl.c

arilev0.c : arilev0.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) arilev0.d | $(GCTRIGGER) | $(VARBRACE) > arilev0.c

arilev1.c : arilev1.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) arilev1.d | $(GCTRIGGER) | $(VARBRACE) > arilev1.c

intelem.c : intelem.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) intelem.d | $(GCTRIGGER) | $(VARBRACE) > intelem.c

intlog.c : intlog.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) intlog.d | $(GCTRIGGER) | $(VARBRACE) > intlog.c

intplus.c : intplus.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) intplus.d | $(GCTRIGGER) | $(VARBRACE) > intplus.c

intcomp.c : intcomp.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) intcomp.d | $(GCTRIGGER) | $(VARBRACE) > intcomp.c

intbyte.c : intbyte.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) intbyte.d | $(GCTRIGGER) | $(VARBRACE) > intbyte.c

intmal.c : intmal.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) intmal.d | $(GCTRIGGER) | $(VARBRACE) > intmal.c

intdiv.c : intdiv.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) intdiv.d | $(GCTRIGGER) | $(VARBRACE) > intdiv.c

intgcd.c : intgcd.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) intgcd.d | $(GCTRIGGER) | $(VARBRACE) > intgcd.c

int2adic.c : int2adic.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) int2adic.d | $(GCTRIGGER) | $(VARBRACE) > int2adic.c

intsqrt.c : intsqrt.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) intsqrt.d | $(GCTRIGGER) | $(VARBRACE) > intsqrt.c

intprint.c : intprint.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) intprint.d | $(GCTRIGGER) | $(VARBRACE) > intprint.c

intread.c : intread.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) intread.d | $(GCTRIGGER) | $(VARBRACE) > intread.c

intserial.c : intserial.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) intserial.d | $(GCTRIGGER) | $(VARBRACE) > intserial.c

rational.c : rational.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) rational.d | $(GCTRIGGER) | $(VARBRACE) > rational.c

sfloat.c : sfloat.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) sfloat.d | $(GCTRIGGER) | $(VARBRACE) > sfloat.c

ffloat.c : ffloat.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) ffloat.d | $(GCTRIGGER) | $(VARBRACE) > ffloat.c

dfloat.c : dfloat.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) dfloat.d | $(GCTRIGGER) | $(VARBRACE) > dfloat.c

lfloat.c : lfloat.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) lfloat.d | $(GCTRIGGER) | $(VARBRACE) > lfloat.c

flo_konv.c : flo_konv.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) flo_konv.d | $(GCTRIGGER) | $(VARBRACE) > flo_konv.c

flo_rest.c : flo_rest.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) flo_rest.d | $(GCTRIGGER) | $(VARBRACE) > flo_rest.c

realelem.c : realelem.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) realelem.d | $(GCTRIGGER) | $(VARBRACE) > realelem.c

realrand.c : realrand.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) realrand.d | $(GCTRIGGER) | $(VARBRACE) > realrand.c

realtran.c : realtran.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) realtran.d | $(GCTRIGGER) | $(VARBRACE) > realtran.c

compelem.c : compelem.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) compelem.d | $(GCTRIGGER) | $(VARBRACE) > compelem.c

comptran.c : comptran.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) comptran.d | $(GCTRIGGER) | $(VARBRACE) > comptran.c

arilev1c.c : arilev1c.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) arilev1c.d | $(GCTRIGGER) | $(VARBRACE) > arilev1c.c

arilev1e.c : arilev1e.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) arilev1e.d | $(GCTRIGGER) | $(VARBRACE) > arilev1e.c

arilev1i.c : arilev1i.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) arilev1i.d | $(GCTRIGGER) | $(VARBRACE) > arilev1i.c

genclisph.c : genclisph.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) genclisph.d | $(GCTRIGGER) | $(VARBRACE) > genclisph.c

modules.c : modules.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) modules.d | $(GCTRIGGER) | $(VARBRACE) > modules.c

noreadline.c : noreadline.d comment5.exe gctrigger.exe varbrace.exe
	$(COMMENT5) noreadline.d | $(GCTRIGGER) | $(VARBRACE) > noreadline.c

ari80386.c : ari80386.d comment5.exe 
	$(COMMENT5) ari80386.d > ari80386.c

sp80386.c : sp80386.d comment5.exe 
	$(COMMENT5) sp80386.d > sp80386.c

gen.lispbibl.c : lispbibl.d comment5.exe
	$(COMMENT5) lispbibl.d | sed -e '/^%%%% /{s///p;d;}' -e '/^#line /!s/.*//' > gen.lispbibl.c

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 weak.obj sequence.obj charstrg.obj debug.obj error.obj misc.obj time.obj predtype.obj symbol.obj lisparit.obj i18n.obj foreign.obj win32aux.obj built.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 weak.s sequence.s charstrg.s debug.s error.s misc.s time.s predtype.s symbol.s lisparit.s i18n.s foreign.s win32aux.s built.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 weak.i sequence.i charstrg.i debug.i error.i misc.i time.i predtype.i symbol.i lisparit.i i18n.i foreign.i win32aux.i built.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_sigterm.c spvw_garcol.c spvw_genera1.c spvw_gcmark.c spvw_genera2.c spvw_weak.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) $(CPPFLAGS) $(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_sigterm.c spvw_garcol.c spvw_genera1.c spvw_gcmark.c spvw_genera2.c spvw_weak.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) $(CPPFLAGS) $(CFLAGS) spvw.c > spvw.i.c
	$(CC) $(CPPFLAGS) $(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_sigterm.c spvw_garcol.c spvw_genera1.c spvw_gcmark.c spvw_genera2.c spvw_weak.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) $(CPPFLAGS) $(CFLAGS) spvw.c > spvw.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) spvwtabf.c > spvwtabf.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) spvwtabf.c > spvwtabf.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) spvwtabs.c > spvwtabs.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) spvwtabs.c > spvwtabs.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) spvwtabo.c > spvwtabo.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) spvwtabo.c > spvwtabo.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) eval.c > eval.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) eval.c > eval.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) control.c > control.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) control.c > control.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) encoding.c > encoding.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) encoding.c > encoding.i.c
	$(CC) $(CPPFLAGS) $(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 execname.c w32shell.c
	$(CPP) $(CPPFLAGS) $(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 execname.c w32shell.c
	$(CPP) $(CPPFLAGS) $(CFLAGS) pathname.c > pathname.i.c
	$(CC) $(CPPFLAGS) $(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 execname.c w32shell.c
	$(CPP) $(CPPFLAGS) $(CFLAGS) pathname.c > pathname.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) stream.c > stream.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) stream.c > stream.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) socket.c > socket.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) socket.c > socket.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) io.c > io.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) io.c > io.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) array.c > array.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) array.c > array.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) hashtabl.c > hashtabl.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) hashtabl.c > hashtabl.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) list.c > list.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) list.c > list.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) package.c > package.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) package.c > package.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) record.c > record.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) record.c > record.i.c
	$(CC) $(CPPFLAGS) $(CFLAGS) -c record.i.c
	$(RM) record.obj
	$(MV) record.i.obj record.obj
	$(RM) record.i.c

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

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

weak.obj : weak.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CPPFLAGS) $(CFLAGS) weak.c > weak.i.c
	$(CC) $(CPPFLAGS) $(CFLAGS) -c weak.i.c
	$(RM) weak.obj
	$(MV) weak.i.obj weak.obj
	$(RM) weak.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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) sequence.c > sequence.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) sequence.c > sequence.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) charstrg.c > charstrg.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) charstrg.c > charstrg.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) debug.c > debug.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) debug.c > debug.i.c
	$(CC) $(CPPFLAGS) $(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 errunix.c errwin32.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CPPFLAGS) $(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 errunix.c errwin32.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CPPFLAGS) $(CFLAGS) error.c > error.i.c
	$(CC) $(CPPFLAGS) $(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 errunix.c errwin32.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CPPFLAGS) $(CFLAGS) error.c > error.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) misc.c > misc.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) misc.c > misc.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) time.c > time.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) time.c > time.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) predtype.c > predtype.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) predtype.c > predtype.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) symbol.c > symbol.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) symbol.c > symbol.i.c
	$(CC) $(CPPFLAGS) $(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 intserial.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 ari80386.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CPPFLAGS) $(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 intserial.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 ari80386.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CPPFLAGS) $(CFLAGS) lisparit.c > lisparit.i.c
	$(CC) $(CPPFLAGS) $(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 intserial.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 ari80386.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CPPFLAGS) $(CFLAGS) lisparit.c > lisparit.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) i18n.c > i18n.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) i18n.c > i18n.i.c
	$(CC) $(CPPFLAGS) $(CFLAGS) -c i18n.i.c
	$(RM) i18n.obj
	$(MV) i18n.i.obj i18n.obj
	$(RM) i18n.i.c

foreign.i : foreign.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 avcall.h callback.h
	$(CPP) $(CPPFLAGS) $(CFLAGS) -I../ffcall foreign.c > foreign.i

foreign.s : foreign.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 avcall.h callback.h
	$(CPP) $(CPPFLAGS) $(CFLAGS) -I../ffcall foreign.c > foreign.i.c
	$(CC) $(CPPFLAGS) $(CFLAGS) -I../ffcall -c foreign.i.c /FAs /Faforeign.s
	$(RM) foreign.i.obj
	$(RM) foreign.i.c

foreign.obj : foreign.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 avcall.h callback.h
	$(CPP) $(CPPFLAGS) $(CFLAGS) -I../ffcall foreign.c > foreign.i.c
	$(CC) $(CPPFLAGS) $(CFLAGS) -I../ffcall -c foreign.i.c
	$(RM) foreign.obj
	$(MV) foreign.i.obj foreign.obj
	$(RM) foreign.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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) win32aux.c > win32aux.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) win32aux.c > win32aux.i.c
	$(CC) $(CPPFLAGS) $(CFLAGS) -c win32aux.i.c
	$(RM) win32aux.obj
	$(MV) win32aux.i.obj win32aux.obj
	$(RM) win32aux.i.c

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

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

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

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

genclisph.s : genclisph.c lispbibl.c fsubr.c subr.c pseudofun.c constsym.c constobj.c win32.c xthread.c gen.lispbibl.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CPPFLAGS) $(CFLAGS) -DCOMPILE_STANDALONE genclisph.c > genclisph.i.c
	$(CC) $(CPPFLAGS) $(CFLAGS) -DCOMPILE_STANDALONE -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 gen.lispbibl.c stdbool.h stdint.h libcharset.h
	$(CPP) $(CPPFLAGS) $(CFLAGS) -DCOMPILE_STANDALONE genclisph.c > genclisph.i.c
	$(CC) $(CPPFLAGS) $(CFLAGS) -DCOMPILE_STANDALONE -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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) -DNO_CLISP_H modules.c > modules.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) -DNO_CLISP_H modules.c > modules.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) noreadline.c > noreadline.i.c
	$(CC) $(CPPFLAGS) $(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) $(CPPFLAGS) $(CFLAGS) noreadline.c > noreadline.i.c
	$(CC) $(CPPFLAGS) $(CFLAGS) -c noreadline.i.c
	$(RM) noreadline.obj
	$(MV) noreadline.i.obj noreadline.obj
	$(RM) noreadline.i.c

ari80386.i : ari80386.msvc.c
	$(CPP) $(CPPFLAGS) $(CFLAGS) ari80386.msvc.c > ari80386.i

ari80386.s : ari80386.msvc.c
	$(CPP) $(CPPFLAGS) $(CFLAGS) ari80386.msvc.c > ari80386.i.c
	$(CC) $(CFLAGS) -c ari80386.i.c /FAs /Faari80386.s
	$(RM) ari80386.i.obj
	$(RM) ari80386.i.c

ari80386.obj : ari80386.msvc.c
	$(CPP) $(CPPFLAGS) $(CFLAGS) ari80386.msvc.c > ari80386.i.c
	$(CC) $(CFLAGS) -c ari80386.i.c
	$(RM) ari80386.obj
	$(MV) ari80386.i.obj ari80386.obj
	$(RM) ari80386.i.c

sp80386.i : sp80386.msvc.c
	$(CPP) $(CPPFLAGS) $(CFLAGS) sp80386.msvc.c > sp80386.i

sp80386.s : sp80386.msvc.c
	$(CPP) $(CPPFLAGS) $(CFLAGS) sp80386.msvc.c > sp80386.i.c
	$(CC) $(CFLAGS) -c sp80386.i.c /FAs /Fasp80386.s
	$(RM) sp80386.i.obj
	$(RM) sp80386.i.c

sp80386.obj : sp80386.msvc.c
	$(CPP) $(CPPFLAGS) $(CFLAGS) sp80386.msvc.c > sp80386.i.c
	$(CC) $(CFLAGS) -c sp80386.i.c
	$(RM) sp80386.obj
	$(MV) sp80386.i.obj sp80386.obj
	$(RM) sp80386.i.c

avcall.h : ..\ffcall\avcall\avcall.h
	-$(LN_S) ..\ffcall\avcall\avcall.h avcall.h

avcall.lib : ..\ffcall\avcall\avcall.lib
	-$(LN_S) ..\ffcall\avcall\avcall.lib avcall.lib

callback.h : ..\ffcall\callback\callback.h
	-$(LN_S) ..\ffcall\callback\callback.h callback.h
	-$(LN_S) ..\ffcall\callback\vacall_r.h vacall_r.h
	-$(LN_S) ..\ffcall\callback\trampoline_r.h trampoline_r.h

callback.lib : ..\ffcall\callback\callback.lib
	-$(LN_S) ..\ffcall\callback\callback.lib callback.lib

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

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

data : ..\utils\unicode\UnicodeDataFull.txt ..\doc\Symbol-Table.text
	$(RMRF) data
	mkdir data
	cd data && $(LN_S) ..\..\utils\unicode\UnicodeDataFull.txt .
	cd data && $(LN_S) ..\..\doc\Symbol-Table.text .

lisp.exe : $(OBJECTS) modules.obj avcall.lib callback.lib  charset.lib  data
	$(RM) lisp.ilk
	$(CC) $(CFLAGS) $(CLFLAGS) $(OBJECTS) modules.obj $(LIBS) /link /out:lisp.exe
	editbin /stack:3145728 lisp.exe

alllisp : $(LISPFILES)

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

RUN= lisp.exe -B . -E 1:1 -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 1800KW -x "(and (load \"init.lisp\") (sys::%%saveinitmem) (ext::exit)) (ext::exit t)"
	$(MV) lispimag.mem interpreted.mem

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

fill-out.fas : fill-out.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1800KW -M halfcompiled.mem -q -c fill-out.lisp

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

case-sensitive.fas : case-sensitive.lisp lisp.exe halfcompiled.mem
	$(RUN) -m 1800KW -M halfcompiled.mem -q -c case-sensitive.lisp

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

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

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

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

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

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

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

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

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

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

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

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


# 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.
check-recompile : 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\lambdalist.lisp : lambdalist.lisp
	$(LN_S) lambdalist.lisp stage

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

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

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

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

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

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

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

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

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

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

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

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

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

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

stage\clos-class3.lisp : clos-class3.lisp
	$(LN_S) clos-class3.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\functions.lisp : functions.lisp
	$(LN_S) functions.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\clos-stablehash2.lisp : clos-stablehash2.lisp
	$(LN_S) clos-stablehash2.lisp stage

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

stage\fill-out.lisp : fill-out.lisp
	$(LN_S) fill-out.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\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\case-sensitive.lisp : case-sensitive.lisp
	$(LN_S) case-sensitive.lisp stage

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

stage\exporting.lisp : exporting.lisp
	$(LN_S) exporting.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\danish.lisp : danish.lisp
	$(LN_S) danish.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 1000KW -M stage\testinit.mem -q -d -c stage\init.lisp

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

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

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

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

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

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

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

stage\lambdalist.fas : stage\lambdalist.lisp lisp.exe stage\testinit.mem
	$(RUN) -m 1000KW -M stage\testinit.mem -q -d -c stage\lambdalist.lisp

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

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

stage\defpackage.fas : stage\defpackage.lisp lisp.exe stage\testinit.mem
	$(RUN) -m 1000KW -M stage\testinit.mem -q -d -c stage\defpackage.lisp

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

stage\subtypep.fas : stage\subtypep.lisp lisp.exe stage\testinit.mem
	$(RUN) -m 1000KW -M stage\testinit.mem -q -d -c stage\subtypep.lisp

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

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

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

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

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

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

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

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

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

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

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

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

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

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

stage\functions.fas : stage\functions.lisp lisp.exe stage\testinit.mem
	$(RUN) -m 1000KW -M stage\testinit.mem -q -d -c stage\functions.lisp

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

stage\documentation.fas : stage\documentation.lisp lisp.exe stage\testinit.mem
	$(RUN) -m 1000KW -M stage\testinit.mem -q -d -c stage\documentation.lisp

stage\fill-out.fas : stage\fill-out.lisp lisp.exe stage\testinit.mem
	$(RUN) -m 1000KW -M stage\testinit.mem -q -d -c stage\fill-out.lisp

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

stage\case-sensitive.fas : stage\case-sensitive.lisp lisp.exe stage\testinit.mem
	$(RUN) -m 1000KW -M stage\testinit.mem -q -d -c stage\case-sensitive.lisp

stage\foreign1.fas : stage\foreign1.lisp lisp.exe stage\testinit.mem
	$(RUN) -m 1000KW -M stage\testinit.mem -q -d -c stage\foreign1.lisp

stage\exporting.fas : stage\exporting.lisp lisp.exe stage\testinit.mem
	$(RUN) -m 1000KW -M stage\testinit.mem -q -d -c stage\exporting.lisp

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

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

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

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

stage\danish.fas : stage\danish.lisp lisp.exe stage\testinit.mem
	$(RUN) -m 1000KW -M stage\testinit.mem -q -d -c stage\danish.lisp

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

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

stage\config.fas : stage\config.lisp lisp.exe stage\testinit.mem
	$(RUN) -m 1000KW -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)) (ext::exit t)"
	-$(RM) lispinit2.mem
	$(MV) lispimag.mem lispinit2.mem


check-fresh-line : lisp.exe lispinit.mem
	-$(RM) fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (dolist (s (quote (*terminal-io* *standard-output* *error-output* *query-io* *debug-io* *trace-output*))) (format t "~S = ~S~%%" s (symbol-value s))) (values))' 2>&1 > fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *terminal-io* "~&Line1 to *terminal-io*") (format *terminal-io* "~&Line2 to *terminal-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *terminal-io* "~&Line1 to *terminal-io*") (format *standard-output* "~&Line2 to *standard-output*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *terminal-io* "~&Line1 to *terminal-io*") (format *error-output* "~&Line2 to *error-output*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *terminal-io* "~&Line1 to *terminal-io*") (format *query-io* "~&Line2 to *query-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *terminal-io* "~&Line1 to *terminal-io*") (format *debug-io* "~&Line2 to *debug-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *terminal-io* "~&Line1 to *terminal-io*") (format *trace-output* "~&Line2 to *trace-output*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *standard-output* "~&Line1 to *standard-output*") (format *terminal-io* "~&Line2 to *terminal-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *standard-output* "~&Line1 to *standard-output*") (format *standard-output* "~&Line2 to *standard-output*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *standard-output* "~&Line1 to *standard-output*") (format *error-output* "~&Line2 to *error-output*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *standard-output* "~&Line1 to *standard-output*") (format *query-io* "~&Line2 to *query-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *standard-output* "~&Line1 to *standard-output*") (format *debug-io* "~&Line2 to *debug-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *standard-output* "~&Line1 to *standard-output*") (format *trace-output* "~&Line2 to *trace-output*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *error-output* "~&Line1 to *error-output*") (format *terminal-io* "~&Line2 to *terminal-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *error-output* "~&Line1 to *error-output*") (format *standard-output* "~&Line2 to *standard-output*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *error-output* "~&Line1 to *error-output*") (format *error-output* "~&Line2 to *error-output*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *error-output* "~&Line1 to *error-output*") (format *query-io* "~&Line2 to *query-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *error-output* "~&Line1 to *error-output*") (format *debug-io* "~&Line2 to *debug-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *error-output* "~&Line1 to *error-output*") (format *trace-output* "~&Line2 to *trace-output*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *query-io* "~&Line1 to *query-io*") (format *terminal-io* "~&Line2 to *terminal-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *query-io* "~&Line1 to *query-io*") (format *standard-output* "~&Line2 to *standard-output*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *query-io* "~&Line1 to *query-io*") (format *error-output* "~&Line2 to *error-output*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *query-io* "~&Line1 to *query-io*") (format *query-io* "~&Line2 to *query-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *query-io* "~&Line1 to *query-io*") (format *debug-io* "~&Line2 to *debug-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *query-io* "~&Line1 to *query-io*") (format *trace-output* "~&Line2 to *trace-output*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *debug-io* "~&Line1 to *debug-io*") (format *terminal-io* "~&Line2 to *terminal-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *debug-io* "~&Line1 to *debug-io*") (format *standard-output* "~&Line2 to *standard-output*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *debug-io* "~&Line1 to *debug-io*") (format *error-output* "~&Line2 to *error-output*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *debug-io* "~&Line1 to *debug-io*") (format *query-io* "~&Line2 to *query-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *debug-io* "~&Line1 to *debug-io*") (format *debug-io* "~&Line2 to *debug-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *debug-io* "~&Line1 to *debug-io*") (format *trace-output* "~&Line2 to *trace-output*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *trace-output* "~&Line1 to *trace-output*") (format *terminal-io* "~&Line2 to *terminal-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *trace-output* "~&Line1 to *trace-output*") (format *standard-output* "~&Line2 to *standard-output*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *trace-output* "~&Line1 to *trace-output*") (format *error-output* "~&Line2 to *error-output*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *trace-output* "~&Line1 to *trace-output*") (format *query-io* "~&Line2 to *query-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *trace-output* "~&Line1 to *trace-output*") (format *debug-io* "~&Line2 to *debug-io*") (values))' 2>&1 >> fresh-line.out
	$(RUN) -q -M lispinit.mem -x '(progn (format *trace-output* "~&Line1 to *trace-output*") (format *trace-output* "~&Line2 to *trace-output*") (values))' 2>&1 >> fresh-line.out
	if grep 'Line1.*Line2' fresh-line.out > /dev/null; then exit 1; fi
	$(RM) fresh-line.out

check-script : lisp.exe lispinit.mem
	test `echo '(print (+ 11 99))' | $(RUN) -q -M lispinit.mem -` = 110 || exit 1

check-exec-image: lisp.exe lispinit.mem
	$(RUN) -M lispinit.mem -x "(saveinitmem \"foo\" :executable t :norc t)"
	foo.exe -x "(setq zz 10) (saveinitmem \"foo\")"
	foo.exe -norc -M foo.mem -x zz
	-ls -l lisp.exe lispinit.mem foo.exe foo.mem
	$(RM) foo.exe foo.mem

check-tests : tests lisp.exe lispinit.mem
	cd tests && $(MAKE) SHELL='$(SHELL)' LEXE=.exe

check-tests-all : tests lisp.exe lispinit.mem
	cd tests && $(MAKE) SHELL='$(SHELL)' LEXE=.exe clean complete compare

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

# Perform self-tests.
check : check-recompile check-fresh-line check-script check-exec-image check-tests


clisp.h clisp-test.c : genclisph.o unixconf.h  intparam.h floatparam.h
	$(CC) $(CFLAGS) $(CLFLAGS) genclisph.o /Fegenclisph.exe
	(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) $(CPPFLAGS) $(CFLAGS) $(CLFLAGS) -DUSE_CLISP_H=1 -DCOMPILE_STANDALONE clisp-test.c /Feclisp-test-clisp.exe
	$(CC) $(CPPFLAGS) $(CFLAGS) $(CLFLAGS) -DUSE_CLISP_H=0 -DCOMPILE_STANDALONE clisp-test.c /Feclisp-test-lispbibl.exe
	clisp-test-clisp > clisp-test-clisp.out
	clisp-test-lispbibl > clisp-test-lispbibl.out
	comp clisp-test-clisp.out clisp-test-lispbibl.out
	if grep lispbibl.d clisp.h; then false; else true; fi
	$(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 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) ..\modprep.lisp modprep.lisp

modular : lisp.a libnoreadline.a avcall.lib callback.lib  clisp-link linkkit modules.h modules.o makevars

makevars : Makefile
	(echo 'CC='"'"'$(CC)'"'" ; echo 'CPPFLAGS='"'"'$(CPPFLAGS)'"'" ; echo 'CFLAGS='"'"'$(CFLAGS)'"'" ; echo 'CLFLAGS='"'"'$(CLFLAGS)'"'" ; echo 'LIBS='"'"'lisp.a $(LIBS)'"'" ; echo 'X_LIBS='"'"'$(X_LIBS)'"'" ; echo 'RANLIB='"'"'$(RANLIB)'"'" ; echo 'FILES='"'"'lisp.a libnoreadline.a avcall.lib callback.lib '"'") > makevars

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

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

anymodule $(BASE_MODULES) $(MODULES) : lisp.exe lispinit.mem force modprep.fas clisp.h
	lndir ..\modules/$@ $@
	m=`cd ..\modules\$@; pwd`; \
	if test -f $@/configure -a $@/configure -nt $@/config.status ; then cd $@ ; \
	  ( cache=`echo $@/ | sed -e 's,[^/][^/]*//*,../,g'`config.cache; \
	    if test -f $${cache} ; then . $${cache}; \
	      if test "$${ac_cv_env_CC_set}" = set; then CC="$${ac_cv_env_CC_value}"; export CC; fi; \
	      if test "$${ac_cv_env_CFLAGS_set}" = set; then CFLAGS="$${ac_cv_env_CFLAGS_value}"; export CFLAGS; fi; \
	      $(SHELL) ./configure --cache-file=$${cache} --srcdir=$$m $(MODULE_CONFIGURE_FLAGS);\
	    else $(SHELL) ./configure --srcdir=$$m $(MODULE_CONFIGURE_FLAGS); \
	    fi ) ;\
	fi
	CLISP="`pwd`\lisp.exe -M `pwd`\lispinit.mem -B `pwd` -E 1:1 -Efile UTF-8 -Eterminal UTF-8 -norc" ; cd $@ ; dots=`echo $@/ | sed -e 's,[^/][^/]*//*,../,g' -e 's,/$$,,g'` ; $(MAKE) clisp-module CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" INCLUDES="$$dots" CLFLAGS="$(CLFLAGS)" LIBS="$(LIBS)" RANLIB="$(RANLIB)" CLISP="$$CLISP -q"

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

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

base-mod-check : clisp.exe tests # base
	for m in $(BASE_MODULES); do $(RM) $$m/*.erg; done
	z=""; for m in $(BASE_MODULES); do z=$$z" \""$$m/\"; done; ./clisp  -E 1:1 -Efile UTF-8 -Eterminal UTF-8 -norc -C -i tests/tests -x "(ext:exit (plusp (or (run-some-tests :dirlist '($$z)) 0)))"

mod-check : base-mod-check # full
	for m in $(MODULES); do $(RM) $$m/*.erg; done
	z=""; for m in $(MODULES); do z=$$z" \""$$m/\"; done; ./clisp -K full  -E 1:1 -Efile UTF-8 -Eterminal UTF-8 -norc -C -i tests/tests -x "(ext:exit (plusp (or (run-some-tests :dirlist '($$z)) 0)))"

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 clisp.pdf

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) $(CPPFLAGS) $(CFLAGS) -DCOMPILE_STANDALONE txt.c > txt.i.c
	$(CC) $(CPPFLAGS) $(CFLAGS) $(CLFLAGS) txt.i.c /Fetxt.exe
	$(RM) txt.i.c
	$(RM) txt.i.obj
	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) $(CPPFLAGS) $(CFLAGS) -DCOMPILE_STANDALONE txt.c > txt.i.c
	$(CC) $(CPPFLAGS) $(CFLAGS) $(CLFLAGS) txt.i.c /Fetxt.exe
	$(RM) txt.i.c
	$(RM) txt.i.obj
	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) $(CPPFLAGS) $(CFLAGS) -DCOMPILE_STANDALONE txt.c > txt.i.c
	$(CC) $(CPPFLAGS) $(CFLAGS) $(CLFLAGS) txt.i.c /Fetxt.exe
	$(RM) txt.i.c
	$(RM) txt.i.obj
	txt > README.es
	$(RM) txt.c
	$(RM) txt.exe

clisp.1 : ../doc/_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) < ../doc/_clisp.1 > txt.c
	$(CPP) $(CPPFLAGS) $(CFLAGS) -DCOMPILE_STANDALONE txt.c > txt.i.c
	$(CC) $(CPPFLAGS) $(CFLAGS) $(CLFLAGS) txt.i.c /Fetxt.exe
	$(RM) txt.i.c
	$(RM) txt.i.obj
	txt | $(GREP) -v "^ *$$" | sed -e "s,@PLATFORM@,win32msvc,g" > clisp.1
	$(RM) txt.c
	$(RM) txt.exe

clisp.html : ../doc/_clisp.html 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) < ../doc/_clisp.html > txt.c
	$(CPP) $(CPPFLAGS) $(CFLAGS) -DCOMPILE_STANDALONE txt.c > txt.i.c
	$(CC) $(CPPFLAGS) $(CFLAGS) $(CLFLAGS) txt.i.c /Fetxt.exe
	$(RM) txt.i.c
	$(RM) txt.i.obj
	txt | sed -e "s,@PLATFORM@,win32msvc,g" > clisp.html
	$(RM) txt.c
	$(RM) txt.exe

clisp-1.html : ../doc/_clisp-1.html 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) < ../doc/_clisp-1.html > txt.c
	$(CPP) $(CPPFLAGS) $(CFLAGS) -DCOMPILE_STANDALONE txt.c > txt.i.c
	$(CC) $(CPPFLAGS) $(CFLAGS) $(CLFLAGS) txt.i.c /Fetxt.exe
	$(RM) txt.i.c
	$(RM) txt.i.obj
	txt | sed -e "s,@PLATFORM@,win32msvc,g" > clisp-1.html
	$(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) $(CPPFLAGS) $(CFLAGS) -DCOMPILE_STANDALONE txt.c > txt.i.c
	$(CC) $(CPPFLAGS) $(CFLAGS) $(CLFLAGS) txt.i.c /Fetxt.exe
	$(RM) txt.i.c
	$(RM) txt.i.obj
	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.pdf : clisp.dvi
	-$(DVIPDF) clisp.dvi clisp.pdf

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.obj : clisp.rc clisp.ico
	rc /v /foclisp.res clisp.rc
	cvtres /verbose /out:clispres.obj clisp.res
	-$(RM) clisp.res

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

clisp.exe : clisp.c clispres.obj w32shell.c execname.c
	$(CC) $(CPPFLAGS) $(CFLAGS) $(CLFLAGS) -DENABLE_RELOCATABLE clisp.c clispres.obj $(LIBS) /link /out:clisp.exe

# Distribution, to be executed on a Unix host or using Cygwin.
distrib : install.lisp install.bat clisp.man clisp.html force
	version=$(VERSION) ; \
	distdir=clisp-$$version ; \
	rm -rf $$distdir; \
	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-msvc-win32.zip ; \
	for f in lisp.exe lispinit.mem install.bat clisp.exe ; do \
	  cp -p $$f $$distdir/$$f ; \
	done ; \
	mkdir $$distdir/data ; \
	cp -p data/UnicodeDataFull.txt $$distdir/data/UnicodeDataFull.txt ; \
	cp -p data/Symbol-Table.text $$distdir/data/Symbol-Table.text ; \
	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/clhs.el $$distdir/emacs/clhs.el ; \
	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 ; \
	cp -p ../emacs/clisp-ffi.el $$distdir/emacs/clisp-ffi.el ; \
	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 *.core *.stackdump Makefile~ gctrigger.c varbrace.c fresh-line.out foo.exe foo.mem clisp-test.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 ansi-tests-log
	-$(RMRF) stage
	-$(RMRF) tests
	-$(RMRF) ansi-tests
	-$(RMRF) sacla-tests
	-$(RMRF) boot base full
	-$(RM) charset.lib avcall.lib callback.lib
	-$(RM) README README.de README.es clisp.1 clisp.man clisp.dvi clisp.ps clisp.pdf clisp.html clisp-1.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
	for m in $(BASE_MODULES) $(MODULES); do $(RM) $$m/*.fas $$m/*.lib; done

# 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) cflags.h cflags.h.stamp
	-$(RM) $(CFILES)
	-$(RM) avcall.h
	-$(RM) callback.h vacall_r.h trampoline_r.h
	-$(RM) libcharset.h localcharset.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 gctrigger.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:

