@
@ Reduce 3.7 "makebase". Copyright (C) 1995-99, Codemist Ltd
@
@
@ This data file is used to create the makefile for REDUCE 3.7 based on
@ CSL. It is processed by the Codemist "makemake" utility, which should
@ be called as
@ makemake cpu opsys compiler debug -f <this-file> -o <destination>
@ where cpu, opsys, compiler and debug are options taken from the menu
@ given below.
@
@ MOST users will just be able to adopt one of the pre-built "Makefile"s
@ that have already been created from this master version.
@
@ The following apply at the start of lines...
@ "@ " introduces a comment (note the blank after the "@")
@ "@set(word) sets a new keyword as if it had been defined.
@ "@if" etc conditional inclusion within generated file.
@ "@error" marks trouble
@
@ Through the bulk of a file (even in the middle of lines) the following
@ are converted:
@
@ "@@" expands to a single "@"
@ "@~" expands to blank if "blank" has been set, or to nothing
@ "@=" expands to blank if "blank1" has been set, or to nothing
@ "@"" expands to " or \" depending on "quote" (needed for
@ the Unix shell, in places).
@ "@" marks the start of a file-name, which is written in the
@ master file using "/" as a directory separator, but
@ DOS-like extensions .exe and Unix like .o
@ "@?" queries the user for a value
@ "@!" re-uses input from previous "@!" but maps input as filename
@ "\" at the end of a line is a "make" continuation marker,
@ interpreted as & if "watcom" is set.
@
@menu
@
@ First I will have a list of the target architectures that are supported
@
@item(80x86>machine_known) 80386, 80486, Pentium
@item(sparc>machine_known) Sparc
@item(ultrasparc>sparc>machine_known) any Sparc with 64-bit support
@item(hp9000>machine_known) Hewlett Packard PA systems
@item(apollo>machine_known) Apollo Domain
@item(sgi>machine_known) Silicon Graphics Indi and compatibles
@item(clipper>machine_known) Intergraph Clipper
@item(88000>machine_known) Motorola 88000
@item(alpha>machine_known) DEC Alpha
@item(sr2201>machine_known) Hitachi SR2201 supercomputer
@
@ Next the associated operating systems
@
@item(unix>os_known) Unix (BSD, SYS-V, OSF etc)
@item(solaris>unix>os_known) Sun Solaris
@item(sunos>unix>os_known) Sun's older operating system
@item(linux>unix>os_known) Linux
@item(dos>os_known) DOS with suitable extender
@item(win95>os_known) Windows 95, win32s, win32
@item(win32>winnt>os_known) Windows 95, win32s, win32
@item(winnt>os_known) Windows NT in case I want that specifically (not 95)
@item(cygwin>gcc>os_known) Cygwin environment, using bash and gcc
@item(next>os_known) NeXT
@
@ Select a C compiler from the following list
@
@item(gcc>compiler_known) The GNU C compiler
@item(cc>compiler_known) default Unix C compiler
@item(microsoft>compiler_known>backslash) Microsoft Visual C++, version 5.0
@item(borland>compiler_known>backslash) Borland C/C++ version 4.0 etc
@item(watcom>compiler_known>backslash) Watcom C 10.5, 10.6, 11.0
@item(zortech>compiler_known>backslash) Zortech C++ (now Symantec)
@item(ncc>compiler_known) Norcroft C compiler
@
@ Optionally specify DEBUG for a version for use during testing
@
@item(noopt) Disable C compiler optimisation in case compiler bugs
@item(debug) Compile and link for debugging
@item(profile) Set C compiler profile options
@
@ Possible enabling of mpi (parallel computation) interface
@item(mpi)
@
@ Now a few convenient abbreviations for combinations I will use
@ more often than others...
@
@item(win>80x86>win95>watcom>machine_known>os_known>compiler_known) Windows 95, Watcom C
@item(gccunix>gcc>unix>os_known>compiler_known) GNU C with generic Unix
@item(ccunix>cc>unix>os_known>compiler_known) Generic Unix using "cc"
@
@endmenu
@
@
@if(sparc)
@if(compiler_known)
@ifnot(gcc)
@ifnot(cc)
@error Unknown compiler for Sparc system (need gcc or cc)
@endif
@endif
@else
@set(cc)
@set(compiler_known)
@endif
@if(os_known)
@ifnot(unix)
@error Unix (sunos or solaris) needed for sparc
@ Windows NT on a sparc is not supported at this stage...
@endif
@else
@ I default to a solaris version here.
@set(solaris)
@set(unix)
@set(os_known)
@endif
@endif
@
@if(sr2201)
@if(compiler_known)
@ifnot(cc)
@error Unknown compiler for sr2201
@endif
@else
@set(cc)
@set(compiler_known)
@endif
@if(os_known)
@ifnot(unix)
@error Unix needed for sr2201
@endif
@else
@set(unix)
@set(os_known)
@endif
@
@ifnot(compiler_known)
@set(gcc)
@set(compiler_known)
@endif
@endif
@
@if(hp9000)
@if(os_known)
@ifnot(unix)
@error Unix needed for HP9000
@endif
@else
@set(unix)
@set(os_known)
@endif
@endif
@
@if(apollo)
@if(os_known)
@ifnot(unix)
@error Unix needed for Apollo
@endif
@else
@set(unix)
@set(os_known)
@endif
@endif
@
@if(sgi)
@if(os_known)
@ifnot(unix)
@error Unix needed for SGI
@endif
@else
@set(unix)
@set(os_known)
@endif
@endif
@
@if(clipper)
@if(os_known)
@ifnot(unix)
@error Unix needed for Clipper
@endif
@else
@set(unix)
@set(os_known)
@endif
@endif
@
@if(88000)
@if(os_known)
@ifnot(unix)
@error Unix needed for 88000
@endif
@else
@set(unix)
@set(os_known)
@endif
@endif
@
@if(alpha)
@if(os_known)
@ifnot(unix)
@ifnot(winnt)
@error Unix or Windows NT needed for Alpha
@endif
@endif
@else
@set(unix)
@set(os_known)
@endif
@endif
@
@if(linux)
@if(compiler_known)
@ifnot(gcc)
@error Linux uses GCC
@endif
@else
@set(gcc)
@set(compiler_known)
@endif
@endif
@
###########################################################################
# #
# makefile for REDUCE 3.7 using CSL #
# #
###########################################################################
# The following lines indicates the place on your disc where the "cslbase"
# directory exists. This is the place where the C sources files for CSL
# live. There are two versions here, the first should use Unix-like
# file name conventions (in particular "/" as a directory separator) while
# the second will (in some cases) be a host-specific translation.
@
@ I *must* have asserted "@set(backslash)" above here in the makebase
@ file if that is needed, otherwise file-name conversion will not apply
@ properly here.
@
UCSLBASE = @?(The directory where the main CSL sources are, eg c:/xxx/cslbase)
CSLBASE = @!
@
@
@ GCC can be run on many different sorts of machines and with several
@ different operating systems. I collect together all the options here.
@
@
@if(gcc)
@ifnot(cygwin)
@
@if(dos)
@set(80x86)
@endif
@
@if(80x86)
@set(escapequote)
@set(blank)
@
###########################################################################
# This is for GCC for DOS #
# NB using GNU "make" all filenames must use "/" rather than "\" #
###########################################################################
@
CC = gcc
@if(debug)
OPTFLAGS = -g -DDEBUG=1
@elif(noopt)
OPTFLAGS =
@else
#
# The GCC versions I have tried (recently) support -O3 (which does
# some in-lining). If you have trouble please revert to -O2 or even -O0
OPTFLAGS = -O3
@endif
@if(mpi)
MPIFLAGS = -DUSE_MPI=1
@else
MPIFLAGS =
@endif
CFLAGS = -c $(OPTFLAGS) -ansi -I$(CSLBASE) -DGCC386=1 $(MPIFLAGS)
ASM = gcc
ASMFLAGS = -c
LINK = $(CC)
LFLAGS =
LIBS = -lm -lcurses
ASMSRC = igcc386.s
ASMOBJ = igcc386.o
ASMOBJDEP = igcc386.o
STORE = -k8000
XSTORE = -k8000
OUT = -o
@set(blank1)
OUTOBJ = -o
SYS = sysdos
WX = go32
RM = del
MKDIR = mkdir
COPY = copy
@if(debug)
STRIP = echo
@else
STRIP = strip
@endif
###########################################################################
@
@elif(sparc)
@set(unix)
###########################################################################
# Sun SPARC, using GCC
@if(mpi)
CC = mpicc
@else
CC = gcc
@endif
@if(debug)
OPTFLAGS = -g -DDEBUG=1
@elif(noopt)
OPTFLAGS =
@else
OPTFLAGS = -O3
@endif
@if(profile)
# It appears that to use the profile option properly I need to make all
# my function names external (not static) for otherwise the "prof" program
# can not find their names with Sun. Furthermore I possibly have to avoid use
# if a shared library, hence the -static flag.
PROFFLAGS = -p -static -Dstatic=
@else
PROFFLAGS =
@endif
SPARCFLAGS =
@if(sunos)
SUNOSFLAGS = -I/usr/5include
@else
SUNOSFLAGS =
@endif
@if(mpi)
MPIFLAGS = -DUSE_MPI=1
@else
MPIFLAGS =
@endif
CFLAGS = -ansi -c $(PROFFLAGS) $(OPTFLAGS) $(SPARCFLAGS) $(SUNOSFLAGS) -I$(CSLBASE) $(MPIFLAGS)
@if(sunos)
SUNOSLIBS = -L/usr/5lib -lresolv
@else
SUNOSLIBS = -lsocket -lnsl
@endif
SUNOSLIBS1 = -lm -lc
@if(profile)
LIBS = $(SUNOSLIBS) $(SUNOSLIBS1) -lcurses -static -p
@else
LIBS = $(SUNOSLIBS) $(SUNOSLIBS1) -lcurses
@endif
@set(unixoptions)
###########################################################################
###########################################################################
@else
@set(unix)
###########################################################################
# Generic Unix with GCC. Note that if you use this you should review
# the file "machine.h" to ensure that CSL knows what name to report for
# your system. Also if the system you are running on needs more libraries
# scanned in the link-phase.
@if(mpi)
CC = mpicc
@else
CC = gcc
@endif
@if(debug)
OPTFLAGS = -g -DDEBUG=1
@elif(noopt)
OPTFLAGS =
@else
OPTFLAGS = -O3
@endif
@if(mpi)
MPIFLAGS = -DUSE_MPI=1
@else
MPIFLAGS =
@endif
CFLAGS = -c $(OPTFLAGS) -ansi -I$(CSLBASE) $(MPIFLAGS)
LIBS = -lm -lc -lcurses
@set(unixoptions)
###########################################################################
@endif
@endif
@endif
@if(cc)
@ifnot(sparc)
@set(unix)
###########################################################################
# Generic Unix with "cc". Note that if you use this you should review
# the file "machine.h" to ensure that CSL knows what name to report for
# your system. Also if the system you are running on needs more libraries
# scanned during the link phase. The Makefile create here will VERY
# probably need to be adjusted by hand.
@if(mpi)
CC = mpicc
@else
CC = cc
@endif
@if(debug)
OPTFLAGS = -g -DDEBUG=1
@elif(noopt)
OPTFLAGS =
@else
OPTFLAGS = -O
@endif
@if(mpi)
MPIFLAGS = -DUSE_MPI=1
@else
MPIFLAGS =
@endif
CFLAGS = -c $(OPTFLAGS) -I$(CSLBASE) $(MPIFLAGS)
LIBS = -lm -lcurses
@set(unixoptions)
###########################################################################
@endif
@endif
@
@ I will use Watcom C for DOS and for Windows 95 and NT
@
@
@if(watcom)
@
@if(machine_known)
@ifnot(80x86)
@error Watcom C is for use with 80x86 only
@endif
@else
@set(80x86)
@set(machine_known)
@endif
@
@if(os_known)
@ifnot(win95)
@ifnot(winnt)
@ifnot(dos)
@error Watcom C is for DOS, Windows 95 or Windows NT
@endif
@endif
@endif
@else
@set(win95)
@set(os_known)
@endif
@
@set(obj)
@set(blank)
@set(linkcomma)
###########################################################################
# This is for 32-bit operation with Watcom C version 10.5, 10.6, 11.0 #
# Note that other release of Watcom C need command line options changed #
###########################################################################
@if(win95)
@set(cwin)
@elif(winnt)
@set(cwin)
@endif
CC = *wcc386
@if(debug)
OPTFLAGS = -d2 -d_DEBUG -DDEBUG=1
@elif(noopt)
OPTFLAGS =
@else
!ifeq __VERSION__ 11
OPTFLAGS = -oneatx -oh
!else
OPTFLAGS = -oatx
!endif
@endif
@if(mpi)
MPIFLAGS = -DUSE_MPI=1
@else
MPIFLAGS =
@endif
@if(win95)
CCFLAGS = -d_MBCS=1 -d_WINDOWS=1 -dWINDOWS_NT=1 -bt=nt -DCWIN=1
CCFLAGS1 = -d_MBCS=1 -d_WINDOWS=1 -dWINDOWS_NT=1 -bt=nt -DCOMMAND_LINE_VERSION=1
@elif(winnt)
CCFLAGS = -d_MBCS=1 -d_WINDOWS=1 -dWINDOWS_NT=1 -bt=nt -DCWIN=1
CCFLAGS1 = -d_MBCS=1 -d_WINDOWS=1 -dWINDOWS_NT=1 -bt=nt -DCOMMAND_LINE_VERSION=1
@else
CCFLAGS = -d_MBCS=1 -bt=dos4g
@endif
CFLAGS = $(OPTFLAGS) $(CCFLAGS) -i=$(CSLBASE) $(MPIFLAGS) -5r-zp4-ei-w3-bm-fhq
CFLAGS1 = $(OPTFLAGS) $(CCFLAGS1) -i=$(CSLBASE) $(MPIFLAGS) -5r-zp4-ei-w3-bm-fhq
CPP = *wpp386
!ifeq __VERSION__ 11
CPPFLAGS = $(CFLAGS) -xs
!else
CPPFLAGS = $(CFLAGS) -xs-zo
!endif
ASM = *wasm
ASMFLAGS = -mf -5r -w4 -zq
LINK = *wlink
@if(debug)
LDEBUG = debug all
@else
LDEBUG =
@endif
@if(dos)
LSYS = dos4g
LIBS =
LFLAGS = system $(LSYS) option eliminate,stack=256K $(LDEBUG) file
@else
LSYS = nt_win
LSYSX = nt
@if(debug)
LIBS = REFERENCE _wstart2_
LIBSX =
LFLAGS = system $(LSYS) option eliminate,stack=256K $(LDEBUG) file
LFLAGSX = system $(LSYSX) option eliminate,stack=256K $(LDEBUG) file
@else
LIBS = REFERENCE _wstart2_
LIBSX =
LFLAGS = system $(LSYS) option eliminate,stack=256K $(LDEBUG) file
LFLAGSX = system $(LSYSX) option eliminate,stack=256K $(LDEBUG) file
@endif
@endif
ASMSRC = imulwat.asm
ASMOBJ = imulwat.obj
ASMOBJDEP = imulwat.obj
STORE = -k8000
XSTORE = -k8000
# The .SYMBOLIC directive tells Watcom "wmake" not to fuss when a
# target in the makefile does not correspond to a file that will get
# create by activating it.
SYMBOLIC = .SYMBOLIC
OUT = name
OUTOBJ = -fo=
@if(win95)
SYS = syscwin
@set(dos_too)
SYS1 = sysdos
# With SOME releases of Windows 95 and Watcom C it was important to
# use "start /w" when launching windowed applications from a makefile
# because otherwise make just started the task and continued with its
# work without waiting for the job to complete. But with the versions
# I have tried most recently the use of "start /w" forces exactly the
# effect it was supposed to avoid. Oh Dear! Adjust your makefile if you
# have trouble, please. I am not certain if this is a Watcom 10.6 vs 11.0
# issue of a Windows 95 vs. NT one.
!ifeq __VERSION__ 11
WX =
!else
WX = start /w
!endif
@elif(winnt)
SYS = syscwin
@set(dos_too)
SYS1 = sysdos
WX =
@else
SYS = sysdos
WX =
@endif
RM = del
MKDIR = mkdir
COPY = copy
STRIP = -echo
###########################################################################
@endif
@
@
@
@ By "microsoft" I mean Microsoft Visual C++, for use with Windows 95
@ and Windows NT. I will NOT use this compiler for DOS
@
@
@if(microsoft)
@
@if(machine_known)
@ifnot(80x86)
@error Microsoft C is for use with 80x86 only
@endif
@else
@set(80x86)
@set(machine_known)
@endif
@
@if(os_known)
@ifnot(win95)
@ifnot(winnt)
@error Microsoft C is for Windows 95 or Windows NT
@endif
@endif
@else
@set(win95)
@set(os_known)
@endif
@
@set(obj)
###########################################################################
# #
# This "makefile" is for Win32 and Win32s (using Visual C++ 5.0). #
# #
###########################################################################
CC = cl
@if(debug)
OPTFLAGS = -Od -Zi -DDEBUG=1
@elif(slow)
OPTFLAGS =
@else
OPTFLAGS = -Ox2 -G5r
@endif
@if(mpi)
MPIFLAGS = -DUSE_MPI=1
@else
MPIFLAGS =
@endif
CFLAGS = $(OPTFLAGS) -c -W3 -DWINDOWS_NT=1 -I$(CSLBASE) -DCWIN=1 $(MPIFLAGS)
CFLAGS1 = $(OPTFLAGS) -c -W3 -DWINDOWS_NT=1 -I$(CSLBASE) -DCOMMAND_LINE_VERSION=1 $(MPIFLAGS)
CPP = cl
CPPFLAGS = $(CFLAGS)
LINK = cl
@if(debug)
LFLAGS =
@else
LFLAGS =
@endif
LIBS = nafxcw.lib libc.lib msvcrt.lib kernel32.lib shell32.lib wsock32.lib \
user32.lib gdi32.lib winspool.lib libcmt.lib \
comdlg32.lib comctl32.lib winmm.lib advapi32.lib
LIBSX = kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib \
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib \
odbc32.lib odbccp32.lib wsock32.lib libc.lib
@if(debug)
TAIL = -link -debug -nodefaultlib -subsystem:windows
TAILX = -link -debug -nodefaultlib -subsystem:console
@else
TAIL = -link -nodefaultlib -subsystem:windows
TAILX = -link -nodefaultlib -subsystem:console
@endif
CSLRES = csl.res
R37RES = r37.res
DEMORES = demored.res
FRONTRES = r37front.res
@set(ressym)
OUT = -o
@set(blank1)
OUTOBJ = -Fo
ASM = $(CC)
ASMFLAGS = $(CFLAGS)
ASMSRC = imulvc.c
ASMOBJ = imulvc.obj
ASMOBJDEP = imulvc.obj
@if(win95)
SYS = syscwin
@set(dos_too)
SYS1 = sysdos
WX = start /w
@elif(winnt)
SYS = syscwin
@set(dos_too)
SYS1 = sysdos
WX =
@else
SYS = sysdos
WX =
@endif
STORE = -k8000
XSTORE = -k8000
RM = del
MKDIR = mkdir
COPY = copy
STRIP = -echo
@endif
@
@
@if(borland)
@
@if(machine_known)
@ifnot(80x86)
@error Borland C is for use with 80x86 only
@endif
@else
@set(80x86)
@set(machine_known)
@endif
@
@if(os_known)
@ifnot(dos)
@ifnot(dos)
@error Borland C is set up for Win32 console apps (ie DOS) only at present
@endif
@endif
@else
@set(dos)
@set(os_known)
@endif
@
@set(obj)
###########################################################################
# #
# This "makefile" is for console applications (95 & NT) with Borland 4.0 #
# #
###########################################################################
CC = bcc32
@if(debug)
OPTFLAGS =
@elif(slow)
OPTFLAGS =
@else
# Borland C 4.0 (I know that is an old release but it is the newest one I have
# tried) refuses to compile my code if it is asked to optimise. So I
# will not press the matter.
OPTFLAGS =
@endif
@if(mpi)
MPIFLAGS = -DUSE_MPI=1
@else
MPIFLAGS =
@endif
CFLAGS = $(OPTFLAGS) -c -4 -N -I$(CSLBASE) $(MPIFLAGS)
CPP = bcc32
CPPFLAGS = $(CFLAGS)
LINK = bcc32
@if(debug)
LFLAGS =
@else
LFLAGS =
@endif
LIBS =
TAIL =
CSLRES = csl.res
R37RES = r37.res
DEMORES = demored.res
FRONTRES = r37front.res
OUT = -e
@set(blank1)
OUTOBJ = -o
ASM = $(CC)
ASMFLAGS = $(CFLAGS)
ASMSRC =
ASMOBJ =
ASMOBJDEP = notused.obj
SYS = sysdos
WX =
STORE = -k8000
XSTORE = -k8000
RM = del
MKDIR = mkdir
COPY = copy
STRIP = -echo
@endif
@
@
@ I will only use Zortech for DOS and 80x86 systems in 32 bit mode.
@
@
@if(zortech)
@
@if(machine_known)
@ifnot(80x86)
@error Zortech C++ is only for use with 80x86
@endif
@else
@set(80x86)
@set(machine_known)
@endif
@
@if(os_known)
@ifnot(dos)
@error Zortech C++ is only for use with DOS
@endif
@else
@set(dos)
@set(os_known)
@endif
@
###########################################################################
# This is for 32-bit operation with Zortech C++ version 3.0 #
# #
# This is set up for use with Zortech C++ release 3.0r4 (well, that #
# is the release of the compiler that I have at present, and earlier #
# versions had a few bugs left). To provide for virtual memory on a #
# 386, 486 or Pentium I use the FlashTek extension of the DOS extender #
# used with Zortech C, and the linker commands scan a few object files #
# relating to that. If you are rebuilding this system and do not have #
# the Flashtek code then all you lose is virtual memory support and #
# the changes to this makefile are pretty small. #
# Now somewhat out of date... but start here if you have Symantec C++. #
###########################################################################
CC = ztc
@if(mpi)
MPIFLAGS = -DUSE_MPI=1
@else
MPIFLAGS =
@endif
CFLAGS = -c -A -mx -o -I$(CSLBASE) $(MPIFLAGS)
ASM = ztc
ASMFLAGS = -mx -c
LINK = $(CC)
LFLAGS = -mx
LIBS = x32v.lib
ASMSRC = imuldos.asm
ASMOBJ = imuldos.obj
ASMOBJDEP = imuldos.obj
STORE = -k8000
XSTORE = -k8000
@endif
@
@if(hp9000)
###########################################################################
# HP workstations (eg HP/9000/735)
@if(mpi)
CC = mpicc
@else
CC = c89
@endif
@if(mpi)
MPIFLAGS = -DUSE_MPI=1
@else
MPIFLAGS =
@endif
CFLAGS = -c +Obb3000 +O3 -Wl,-a,archive -I$(CSLBASE) $(MPIFLAGS)
LIBS = -lm -lc -lcurses -lresolv
@set(unixoptions)
###########################################################################
@endif
@
@if(sr2201)
###########################################################################
# Hitachi SR2201 supercomputer
@if(mpi)
CC = mpicc
@else
CC = cc +BTLN1
@endif
@if(mpi)
MPIFLAGS = -DUSE_MPI=1
@else
MPIFLAGS =
@endif
CFLAGS = -c +O4 +ESlit +Ol +Oprefetch -I$(CSLBASE) $(MPIFLAGS)
LIBS = -lm -lc -lcurses
@set(unixoptions)
###########################################################################
@endif
@
@if(sparc)
@if(cc)
###########################################################################
# Sun Super SPARC, using the Sun C compiler.
@if(mpi)
CC = mpicc
@else
# I get conflicting reports about where to find the C compiler...
# please adjust this file by hand if you need to.
CC = /opt/EA/SUNWspro/bin/cc
@endif
@if(ultrasparc)
@if(debug)
SPARCOPTS = -g -dalign -xtarget=ultra1/170 -DLONG_LONG_64=1 -DMULDIV64=1 -DDEBUG=1
SPARCLIBS = -lfast -lm
@else
SPARCOPTS = -xO5 -xdepend -dalign -xtarget=ultra1/170 -DLONG_LONG_64=1 -DMULDIV64=1
SPARCLIBS = -lfast -lm
@endif
@else
@if(debug)
SPARCOPTS = -g -DDEBUG=1
SPARCLIBS = -lm -lc
@else
SPARCOPTS = -xO4
SPARCLIBS = -lm -lc
@endif
@endif
@if(mpi)
MPIFLAGS = -DUSE_MPI=1
@else
MPIFLAGS =
@endif
CFLAGS = -c $(SPARCOPTS) -DBSD_LIB=1 -I$(CSLBASE) $(MPIFLAGS)
LIBS = $(SPARCLIBS) -lcurses
@set(unixoptions)
###########################################################################
@endif
@endif
@
@if(alpha)
###########################################################################
# DEC Alpha, with OSF (tested on 1.3) and the DEC C compiler. Note that
# this is a 64-bit machine, but I use it with the "-taso" linker option
# so that I run in a 32-bit address space.
@if(mpi)
CC = mpicc
@else
CC = cc
@endif
@if(debug)
OPTFLAGS = -g -DDEBUG=1
@elif(noopt)
OPTFLAGS =
@else
OPTFLAGS = -O2
@endif
@if(mpi)
MPIFLAGS = -DUSE_MPI=1
@else
MPIFLAGS =
@endif
CFLAGS = -c $(OPTFLAGS) -std1 -Olimit 3000 -I$(CSLBASE) $(MPIFLAGS)
LIBS = -lm -lcurses -taso
@set(unixoptions)
###########################################################################
@endif
@
@if(next)
###########################################################################
# NeXT, tested on a Pentium Pro installation
CC = cc
OPTFLAGS = -O2
@if(mpi)
MPIFLAGS = -DUSE_MPI=1
@else
MPIFLAGS =
@endif
CFLAGS = -c $(OPTFLAGS) -I$(CSLBASE) $(MPIFLAGS)
LIBS = -lm -lcurses -ltermcap
@set(unixoptions)
###########################################################################
@endif
@
@
@if(apollo)
###########################################################################
# Apollo
CC = cc
@if(mpi)
MPIFLAGS = -DUSE_MPI=1
@else
MPIFLAGS =
@endif
CFLAGS = -c -A ansi -D__APOLLO__=1 -I$(CSLBASE) $(MPIFLAGS)
LIBS = -lcurses
# Also note that in 1Q 1993 the -O flag must not be used for char.c or
# gc.c as the Apollo C compiler optimiser is buggy.
# It seems OK for the other sections. Presumably a later release of the
# compiler will fix the difficulty. Please hand-compile that section
# using "make -n char.o" to guide you.
@set(unixoptions)
###########################################################################
@endif
@
@if(sgi)
###########################################################################
# Silicon Graphics, using the SGI C compiler
# I have not yet worked out how to exploit -O3 or -O4 optimisation
# but see sketches later down this file where I have tried same for
# the DEC Alpha.
CC = cc
@if(debug)
OPTFLAGS = -g -DDEBUG=1
@elif(noopt)
OPTFLAGS =
@else
OPTFLAGS = -O2
@endif
@if(mpi)
MPIFLAGS = -DUSE_MPI=1
@else
MPIFLAGS =
@endif
CFLAGS = -c -ansi -DSGICC=1 $(OPTFLAGS) -Olimit 3000 -I$(CSLBASE) $(MPIFLAGS)
LIBS = -lm -lc -lcurses
###########################################################################
@set(unixoptions)
@endif
@
@if(clipper)
###########################################################################
# Intergraph Clipper, using the Norcroft C compiler
CC = ncc
@if(mpi)
MPIFLAGS = -DUSE_MPI=1
@else
MPIFLAGS =
@endif
CFLAGS = -c -I$(CSLBASE) $(MPIFLAGS)
LIBS = -lcurses
###########################################################################
@set(unixoptions)
@endif
@
@if(unixoptions)
###########################################################################
@set(blank)
@set(escapequote)
SHELL = /bin/sh
LINK = $(CC)
@if(profile)
@if(debug)
LFLAGS = -p -g
@else
LFLAGS = -p
@endif
@else
@if(debug)
LFLAGS = -g
@else
LFLAGS =
@endif
@endif
OUT = -o
@set(blank1)
OUTOBJ = -o
ASM = $(CC)
ASMFLAGS = $(CFLAGS)
ASMSRC =
ASMOBJ =
ASMOBJDEP = notused.obj
SYS = sysunix
STORE = -k8000
XSTORE = -k8000
RM = rm
MKDIR = mkdir
COPY = cp
@if(debug)
STRIP = echo
@else
STRIP = strip
@endif
WX =
###########################################################################
@endif
@if(cygwin)
###########################################################################
# Cygwin32 running on Windows 95, 98 or NT. First tested with
# Cygnus beta 19.1, but current
# This is also going to be tested with EGCS installed rather than the
# earlier version of gcc, and soon it will require ncurses to have been
# installed too.
#
# This will produce a command-line-only version of REDUCE.
CC = gcc
@if(mpi)
MPIFLAGS = -DUSE_MPI=1
@else
MPIFLAGS =
@endif
OPTFLAGS = -O3
# define NO_HELP_SYSTEM because curses is not yet part of standard
# cygnus release
CFLAGS = -c -ansi $(OPTFLAGS) -I$(CSLBASE) $(MPIFLAGS) -DNO_HELP_SYSTEM=1
#LIBS = -lcurses
LIBS =
###########################################################################
@set(blank)
@set(escapequote)
# For the following line to behave properly you MUST put a copy of
# the shell in what a Windows user would call C:\bin
SHELL = /bin/sh
LINK = $(CC)
@if(profile)
@if(debug)
LFLAGS = -p -g
@else
LFLAGS = -p
@endif
@else
@if(debug)
LFLAGS = -g
@else
LFLAGS =
@endif
@endif
OUT = -o
@set(blank1)
OUTOBJ = -o
ASM = $(CC)
ASMFLAGS = $(CFLAGS)
ASMSRC =
ASMOBJ =
ASMOBJDEP = notused.obj
SYS = syscyg
STORE = -k8000
XSTORE = -k8000
RM = rm
MKDIR = mkdir
COPY = cp
@if(debug)
STRIP = echo
@else
STRIP = strip
@endif
WX =
###########################################################################
@endif
@
@
@if(win95)
@set(cwin)
@set(resourcefile)
@endif
@
@if(winnt)
@set(cwin)
@set(resourcefile)
@endif
###########################################################################
###########################################################################
# #
# This is the main bulk of the "makefile" for building Reduce 3.7 and CSL #
# on MSDOS, Windows and Unix. This part of the file expects a number of #
# symbols to have been defined: #
# #
# CSLBASE = file-path for CSLBASE directory #
# CC = The C compiler to use #
# CFLAGS = Flags for C compiler when compiling CSL #
# LINK = Linker to use #
# LFLAGS = Flags for linker #
# LIBS = Libraries to quote to linker #
# OUT = "-o" or "-out:" See link commands #
# OUTOBJ = "-o" often : where to put object code from C compilation #
# ASM = The assembler to use #
# ASMFLAGS = Flags for the assembler #
# ASMSRC = Assembly code source file to use #
# ASMOBJ = Object file for above (or NULL if no assembly used) #
# ASMOBJDEP = Ditto, but may not be NULL #
# SYS = name of system-specific file (sysdos or sysnt etc) #
# STORE = Memory option to pass to CSL (-k2500 is minimum) #
# XSTORE = Memory for the rebuild job that generates C code #
# RM = del for DOS, = rm for Unix #
# MKDIR = mkdir #
# COPY = copy for DOS, = cp for Unix #
# STRIP = echo for DOS, = strip for Unix #
# SYMBOLIC = .SYMBOLIC is using Watcom's "make" utility #
# WX = wx for Windows 3.1, null in all other cases #
# #
# The master version of this file is called "makebase" and is used to #
# create both DOS and Unix makefiles. Use the Codemist "makemake" #
# program to perform the conversion - eg #
# makemake -f makebase -o makemake.386 watcom dos #
# makemake -f makebase -o Makefile.sgi sgi #
# Just "makemake -f makebase" gives list of systems supported #
###########################################################################
###########################################################################
###########################################################################
###########################################################################
#
# The main final target is @r37.img, the image file for full REDUCE.
# If you want to rebuild stage-by-stage (eg while testing), try the
# sequence
# make @slowr37.exe compiles and links C coded kernel
# make @slowr37.img makes bootstrap REDUCE
# (roughly twice as slow as final one)
# only used for system recompilation.
# make profile runs tests, collects profile information.
# This takes a long time!
# make prof-inst installs profile data
# make c-code Create files u*.c and u*.lsp
# out of hot-spot parts of REDUCE.
###########################################################################
# Note that only the steps from here downwards are usually needed
#
# make @r37.exe final compilation of most of REDUCE
# make @r37.img build final image file
# make testall runs test files, output to log directory
# make checkall creates @log/checkall.log
#
# (for Windows 95/98/NT only)
# make r37c.exe command-line version
#
###########################################################################
###########################################################################
#
# C is another name for CSLBASE, the directory that CSL source files live
# in. I introduce it here mainly because $(C) is so much more compact
# then $(CSLBASE).
#
C = $(CSLBASE)
#
# DOBJS is a list of all the object files that are common to all variants
# on the system built here
#
DOBJS = @arith01.o @arith02.o @arith03.o @arith04.o \
@arith05.o @arith06.o @arith07.o @arith08.o \
@arith09.o @arith10.o @arith11.o @arith12.o \
@char.o @csl.o @cslmpi.o @eval1.o @eval2.o \
@eval3.o @eval4.o @fns1.o @fns2.o @fns3.o \
@print.o @read.o @restart.o $(ASMOBJ) \
@if(cwin)
@$(SYS).o @c_applic.o @c_text.o \
@c_graph.o @c_render.o @c_viewpt.o
@else
@$(SYS).o
@endif
CDOBJS = @arith01.o,@arith02.o,@arith03.o,@arith04.o,\
@arith05.o,@arith06.o,@arith07.o,@arith08.o,\
@arith09.o,@arith10.o,@arith11.o,@arith12.o,\
@char.o,@csl.o,@cslmpi.o,@eval1.o,@eval2.o,\
@eval3.o,@eval4.o,@fns1.o,@fns2.o,@fns3.o,\
@print.o,@read.o,@restart.o,$(ASMOBJ),\
@if(cwin)
@$(SYS).o,@c_applic.o,@c_text.o,\
@c_graph.o,@c_render.o,@c_viewpt.o
@else
@$(SYS).o
@endif
#
# OBJS adds in the files used when I am not building a demonstration-mode CSL
#
OBJS = $(DOBJS) @fasl.o @gc.o @preserve.o
COBJS = $(CDOBJS),@fasl.o,@gc.o,@preserve.o
#
# UOBJS come from that code that is compiled from Lisp into C
#
UOBJS = @u01.o @u02.o @u03.o @u04.o @u05.o \
@u06.o @u07.o @u08.o @u09.o @u10.o \
@u11.o @u12.o
CUOBJS = @u01.o,@u02.o,@u03.o,@u04.o,@u05.o,\
@u06.o,@u07.o,@u08.o,@u09.o,@u10.o,\
@u11.o,@u12.o
###########################################################################
###########################################################################
# This default target may be a dangerous one to use
# since it supposes that all the C code is up to date already.
default: $(SYMBOLIC) \
@if(dos_too)
@r37c.exe \
@endif
@r37.exe @r37.img
###########################################################################
###########################################################################
@r37.img: @r37.exe
@../util/full37
@r37.exe: @bytes.o $(OBJS) \
@if(microsoft)
$(R37RES) \
@endif
$(UOBJS)
@if(borland)
$(LINK) -er37.exe @@@../cslsrc/borr37.lnk
@else
@if(linkcomma)
$(LINK) $(LFLAGS) @bytes.o,$(COBJS),$(CUOBJS) $(LIBS) $(OUT)@~@r37.exe $(TAIL)
@else
@if(ressym)
$(LINK) $(LFLAGS) @bytes.o $(OBJS) $(UOBJS) $(R37RES) $(LIBS) $(OUT)@~@r37.exe $(TAIL)
@else
$(LINK) $(LFLAGS) @bytes.o $(OBJS) $(UOBJS) $(LIBS) $(OUT)@~@r37.exe $(TAIL)
@endif
@endif
@endif
@if(resourcefile)
@if(watcom)
wrc -i@../util -i@$(C) -bt=nt @../util/r37.rc @r37.exe
@endif
@endif
$(STRIP) @r37.exe
-$(MKDIR) log
@if(resourcefile)
@if(microsoft)
csl.res: @../util/csl.rc @$(C)/cwin.rc
rc -i@../cslsrc -i@$(C) -focsl.res @../util/csl.rc
r37.res: @../util/r37.rc @$(C)/cwin.rc
rc -i@../cslsrc -i@$(C) -for37.res @../util/r37.rc
#demored.res: @../util/demored.rc @$(C)/cwin.rc
# rc -i@../cslsrc -i@$(C) -fodemored.res @../util/demored.rc
@endif
@endif
#
# A few targets here may help me tidy up my filespace from time to time
#
clean: $(SYMBOLIC)
-$(RM) @slowr37.exe
-$(RM) @slowr37.img
-$(RM) @r37.exe
-$(RM) @r37.img
-$(RM) @csl.exe
-$(RM) @csl.img
@if(dos_too)
-$(RM) @slowr37c.exe
-$(RM) @r37c.exe
-$(RM) @cslc.exe
@endif
-$(RM) @*.o
-$(MKDIR) log
-$(RM) @log/*.log
###########################################################################
@csl.exe: @bytes.o $(OBJS) \
@if(microsoft)
$(CSLRES) \
@endif
@stubs.o
@if(borland)
$(LINK) -ecsl.exe @@@../cslsrc/borcsl.lnk
@else
@if(watcom)
$(LINK) $(LFLAGS) @bytes.o,$(COBJS),@stubs.o $(LIBS) $(OUT)@~@csl.exe $(TAIL)
@else
@if(ressym)
$(LINK) $(LFLAGS) @bytes.o $(OBJS) @stubs.o $(CSLRES) $(LIBS) $(OUT)@~@csl.exe $(TAIL)
@else
$(LINK) $(LFLAGS) @bytes.o $(OBJS) @stubs.o $(LIBS) $(OUT)@~@csl.exe $(TAIL)
@endif
@endif
@endif
@if(resourcefile)
@if(watcom)
wrc -i@$(C) -i@$(C) -bt=nt @$(C)/csl.rc @csl.exe
@endif
@endif
$(STRIP) @csl.exe
@slowr37.exe: @bytes1.o $(OBJS) \
@if(microsoft)
$(CSLRES) \
@endif
@stubs.o
@if(borland)
$(LINK) -eslowr37.exe @@@../cslsrc/borcsl.lnk
@else
@if(watcom)
$(LINK) $(LFLAGS) @bytes1.o,$(COBJS),@stubs.o $(LIBS) $(OUT)@~@slowr37.exe $(TAIL)
@else
@if(ressym)
$(LINK) $(LFLAGS) @bytes1.o $(OBJS) @stubs.o $(CSLRES) $(LIBS) $(OUT)@~@slowr37.exe $(TAIL)
@else
$(LINK) $(LFLAGS) @bytes1.o $(OBJS) @stubs.o $(LIBS) $(OUT)@~@slowr37.exe $(TAIL)
@endif
@endif
@endif
@if(resourcefile)
@if(watcom)
wrc -i@$(C) -i@$(C) -bt=nt @$(C)/csl.rc @slowr37.exe
@endif
@endif
$(STRIP) @slowr37.exe
-$(MKDIR) log
@slowr37.img: @slowr37.exe
@../util/boot37
profile: @slowr37.img $(SYMBOLIC)
@../util/profile
prof-inst: profile.dat $(SYMBOLIC)
$(COPY) profile.dat @../csl-c
-$(RM) profile.dat
c-code: @slowr37.img $(SYMBOLIC)
@../util/c-code37
testslow: @slowr37.img $(SYMBOLIC)
@../util/testslow
testall: @r37.img $(SYMBOLIC)
@../util/testrest
checkall: @r37.img $(SYMBOLIC)
@../util/checkall
patchup: @r37.img $(SYMBOLIC)
@../util/patchup
cleanlog: $(SYMBOLIC)
-$(RM) ../../../log/*.rlg
@csl.img: @csl.exe @$(C)/compat.lsp @$(C)/compiler.lsp \
@$(C)/ccomp.lsp @$(C)/extras.lsp
-$(RM) @csl.img
$(WX) @./csl $(STORE) -v -z @$(C)/build0.lsp \
-D@@cslbase="$(C)" -- @log/cslimg.log
#
# "make lispfile"
# recreates compiler.lsp, extras.lsp and ccomp.lsp from
# the corresponding master sources which are held in RLISP
# form. Temporarily builds an RLISP parser on the way.
# NB: only for system maintainance use.
lispfile: @csl.exe @csl.img @$(C)/lispfile.lsp $(SYMBOLIC)
$(WX) @./csl $(STORE) -v -z @$(C)/lispfile.lsp \
-D@@cslbase="$(C)" -- @log/lispfile.log
signature: @$(C)/version.hhh register.key $(SYMBOLIC)
filesign -u @$(C)/version.hhh @$(C)/version.h Developer or tester
############################################################################
# Now rules for re-compiling the main collection of CSL source files. I
# write each case out individually since that makes the makefile less
# delicate than one that relies on setting up general rules - and I want this
# file to work on several different systems.
#
@if(watcom)
# There is a special nasty with the Watcom assembler (at least version
# 10.5) in that tab characters on the command line upset it, so I MUST
# have the command given here all on one line in that case.
@endif
$(ASMOBJDEP): @$(C)/$(ASMSRC)
@if(gcc)
$(ASM) $(ASMFLAGS) -o @$(ASMOBJ).o @$(C)/$(ASMSRC)
@else
$(ASM) $(ASMFLAGS) @$(C)/$(ASMSRC)
@endif
@arith01.o: @$(C)/arith01.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @arith01.o \
@endif
@$(C)/arith01.c
@arith02.o: @$(C)/arith02.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @arith02.o \
@endif
@$(C)/arith02.c
@arith03.o: @$(C)/arith03.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @arith03.o \
@endif
@$(C)/arith03.c
@arith04.o: @$(C)/arith04.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @arith04.o \
@endif
@$(C)/arith04.c
@arith05.o: @$(C)/arith05.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h @$(C)/stream.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @arith05.o \
@endif
@$(C)/arith05.c
@arith06.o: @$(C)/arith06.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @arith06.o \
@endif
@$(C)/arith06.c
@arith07.o: @$(C)/arith07.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @arith07.o \
@endif
@$(C)/arith07.c
@arith08.o: @$(C)/arith08.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @arith08.o \
@endif
@$(C)/arith08.c
@arith09.o: @$(C)/arith09.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @arith09.o \
@endif
@$(C)/arith09.c
@arith10.o: @$(C)/arith10.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @arith10.o \
@endif
@$(C)/arith10.c
@arith11.o: @$(C)/arith11.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @arith11.o \
@endif
@$(C)/arith11.c
@arith12.o: @$(C)/arith12.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @arith12.o \
@endif
@$(C)/arith12.c
@bytes.o: @$(C)/bytes1.c @$(C)/bytes.c @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h \
@$(C)/bytes.h @$(C)/arith.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @bytes.o \
@endif
@$(C)/bytes.c
@bytes1.o: @$(C)/bytes1.c @$(C)/bytes.c @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h \
@$(C)/bytes.h @$(C)/arith.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @bytes1.o \
@endif
@$(C)/bytes1.c
#
# The target "@bytes1a.o" recompiles bytes1.c, but with the flag set that
# arranges that the number of GET operations performed and the associated
# indicators will be recorded, so that (bytecounts) will display statistics
# about it. This slows things down considerably, but can help when you are in
# the process of deciding which indicators are specified as "fast" ones.
#
@bytes1a.o: @$(C)/bytes1.c @$(C)/bytes.c @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h \
@$(C)/bytes.h @$(C)/arith.h
$(CC) $(CFLAGS) -DRECORD_GET=1 \
@if(gcc)
-o @bytes1.o \
@endif
@$(C)/bytes1.c
@char.o: @$(C)/char.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @char.o \
@endif
@$(C)/char.c
@csl.o: @$(C)/csl.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h @$(C)/version.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/entries.h @$(C)/stream.h @$(C)/sockhdr.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @csl.o \
@endif
@$(C)/csl.c
@if(win32)
@r37front.o: @$(C)/r37front.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h @$(C)/version.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/entries.h @$(C)/stream.h @$(C)/sockhdr.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @r37front.o \
@endif
@$(C)/r37front.c
@endif
@if(cwin)
# the cwin window manager package is for use with Watcom C only (at present)
@c_applic.o: @$(C)/c_applic.cpp @$(C)/cwin.h @$(C)/cwin.hpp @$(C)/cwinres.h
$(CPP) $(CPPFLAGS) \
@if(gcc)
-o @c_applic.o \
@endif
@$(C)/c_applic.cpp
@c_applic1.o: @$(C)/c_applic.cpp @$(C)/cwin.h @$(C)/cwin.hpp @$(C)/cwinres.h
$(CPP) $(CPPFLAGS) -DDEMOVERSION=1 \
@if(gcc)
-o @c_applic1.o \
@else
$(OUTOBJ)@=@c_applic1.o
@endif
@$(C)/c_applic.cpp
@c_text.o: @$(C)/c_text.cpp @$(C)/cwin.h @$(C)/cwin.hpp @$(C)/cwinres.h
$(CPP) $(CPPFLAGS) \
@if(gcc)
-o @c_text.o \
@endif
@$(C)/c_text.cpp
@c_graph.o: @$(C)/c_graph.cpp @$(C)/cwin.h @$(C)/cwin.hpp @$(C)/cwinres.h
$(CPP) $(CPPFLAGS) \
@if(gcc)
-o @c_graph.o \
@endif
@$(C)/c_graph.cpp
@c_render.o: @$(C)/c_render.cpp @$(C)/cwin.h @$(C)/cwin.hpp @$(C)/cwinres.h
$(CPP) $(CPPFLAGS) \
@if(gcc)
-o @c_render.o \
@endif
@$(C)/c_render.cpp
@c_viewpt.o: @$(C)/c_viewpt.cpp @$(C)/cwin.h @$(C)/cwin.hpp @$(C)/cwinres.h
$(CPP) $(CPPFLAGS) \
@if(gcc)
-o @c_viewpt.o \
@endif
@$(C)/c_viewpt.cpp
@endif
@eval1.o: @$(C)/eval1.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/arith.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @eval1.o \
@endif
@$(C)/eval1.c
@eval2.o: @$(C)/eval2.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/arith.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @eval2.o \
@endif
@$(C)/eval2.c
@eval3.o: @$(C)/eval3.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @eval3.o \
@endif
@$(C)/eval3.c
@eval4.o: @$(C)/eval4.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/arith.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @eval4.o \
@endif
@$(C)/eval4.c
@fasl.o: @$(C)/fasl.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/arith.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @fasl.o \
@endif
@$(C)/fasl.c
@fns1.o: @$(C)/fns1.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @fns1.o \
@endif
@$(C)/fns1.c
@fns2.o: @$(C)/fns2.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/read.h @$(C)/entries.h \
@$(C)/sockhdr.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @fns2.o \
@endif
@$(C)/fns2.c
@fns3.o: @$(C)/fns3.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/read.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @fns3.o \
@endif
@$(C)/fns3.c
@gc.o: @$(C)/gc.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @gc.o \
@endif
@$(C)/gc.c
#
# For each major target I have one file that is system specific - eg
# sysdos.c, sysunix.c, ...
#
@$(SYS).o: @$(C)/$(SYS).c @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/fileops.c @$(C)/scandir.c @$(C)/version.h \
@$(C)/filename.c
$(CC) $(CFLAGS) \
@if(gcc)
-o @$(SYS).o \
@endif
@$(C)/$(SYS).c
@preserve.o: @$(C)/preserve.c @$(C)/tags.h @$(C)/machine.h @$(C)/stream.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h @$(C)/read.h @$(C)/version.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @preserve.o \
@endif
@$(C)/preserve.c
@print.o: @$(C)/print.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/read.h \
@$(C)/arith.h @$(C)/entries.h @$(C)/stream.h @$(C)/sockhdr.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @print.o \
@endif
@$(C)/print.c
@read.o: @$(C)/read.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/read.h \
@$(C)/arith.h @$(C)/entries.h @$(C)/stream.h @$(C)/sockhdr.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @read.o \
@endif
@$(C)/read.c
@restart.o: @$(C)/restart.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/read.h @$(C)/version.h \
@$(C)/arith.h @$(C)/entries.h @$(C)/stream.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @restart.o \
@endif
@$(C)/restart.c
@stubs.o: @$(C)/stubs.c @$(C)/machine.h @$(C)/externs.h @$(C)/sys.h \
@$(C)/tags.h @$(C)/cslerror.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @stubs.o \
@endif
@$(C)/stubs.c
@cslmpi.o: @$(C)/cslmpi.c @$(C)/machine.h @$(C)/externs.h @$(C)/sys.h \
@$(C)/mpipack.c @$(C)/tags.h @$(C)/cslerror.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @cslmpi.o \
@endif
@$(C)/cslmpi.c
###########################################################################
@u01.o: @../csl-c/u01.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @u01.o \
@endif
@../csl-c/u01.c
@u02.o: @../csl-c/u02.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @u02.o \
@endif
@../csl-c/u02.c
@u03.o: @../csl-c/u03.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @u03.o \
@endif
@../csl-c/u03.c
@u04.o: @../csl-c/u04.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @u04.o \
@endif
@../csl-c/u04.c
@u05.o: @../csl-c/u05.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @u05.o \
@endif
@../csl-c/u05.c
@u06.o: @../csl-c/u06.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @u06.o \
@endif
@../csl-c/u06.c
@u07.o: @../csl-c/u07.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @u07.o \
@endif
@../csl-c/u07.c
@u08.o: @../csl-c/u08.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @u08.o \
@endif
@../csl-c/u08.c
@u09.o: @../csl-c/u09.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @u09.o \
@endif
@../csl-c/u09.c
@u10.o: @../csl-c/u10.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @u10.o \
@endif
@../csl-c/u10.c
@u11.o: @../csl-c/u11.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @u11.o \
@endif
@../csl-c/u11.c
@u12.o: @../csl-c/u12.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS) \
@if(gcc)
-o @u12.o \
@endif
@../csl-c/u12.c
@if(dos_too)
#
# I also arrange to be able to make a command-line version of the system.
#
DOBJSX = @arith01x.o @arith02x.o @arith03x.o @arith04x.o \
@arith05x.o @arith06x.o @arith07x.o @arith08x.o \
@arith09x.o @arith10x.o @arith11x.o @arith12x.o \
@charx.o @cslx.o @cslmpix.o @eval1x.o @eval2x.o \
@eval3x.o @eval4x.o @fns1x.o @fns2x.o @fns3x.o \
@printx.o @readx.o @restartx.o $(ASMOBJ) \
@$(SYS1)x.o
CDOBJSX = @arith01x.o,@arith02x.o,@arith03x.o,@arith04x.o,\
@arith05x.o,@arith06x.o,@arith07x.o,@arith08x.o,\
@arith09x.o,@arith10x.o,@arith11x.o,@arith12x.o,\
@charx.o,@cslx.o,@cslmpix.o,@eval1x.o,@eval2x.o,\
@eval3x.o,@eval4x.o,@fns1x.o,@fns2x.o,@fns3x.o,\
@printx.o,@readx.o,@restartx.o,$(ASMOBJ),\
@$(SYS1)x.o
#
# OBJSX adds in the files used when I am not building a demonstration-mode CSL
#
OBJSX = $(DOBJSX) @faslx.o @gcx.o @preservex.o
COBJSX = $(CDOBJSX),@faslx.o,@gcx.o,@preservex.o
#
# UOBJSX come from that code that is compiled from Lisp into C
#
UOBJSX = @u01x.o @u02x.o @u03x.o @u04x.o @u05x.o \
@u06x.o @u07x.o @u08x.o @u09x.o @u10x.o \
@u11x.o @u12x.o
CUOBJSX = @u01x.o,@u02x.o,@u03x.o,@u04x.o,@u05x.o,\
@u06x.o,@u07x.o,@u08x.o,@u09x.o,@u10x.o,\
@u11x.o,@u12x.o
@cslc.exe: @bytesx.o $(OBJSX) \
@if(microsoft)
$(CSLRES) \
@endif
@stubsx.o
@if(borland)
$(LINK) -ecslc.exe @@@../cslsrc/borcsl.lnk
@else
@if(watcom)
$(LINK) $(LFLAGSX) @bytesx.o,$(COBJSX),@stubsx.o $(LIBSX) $(OUT)@~@cslc.exe $(TAILX)
@else
@if(ressym)
$(LINK) $(LFLAGSX) @bytesx.o $(OBJSX) @stubsx.o $(CSLRES) $(LIBSX) $(OUT)@~@cslc.exe $(TAILX)
@else
$(LINK) $(LFLAGSX) @bytesx.o $(OBJSX) @stubsx.o $(LIBSX) $(OUT)@~@cslc.exe $(TAILX)
@endif
@endif
@endif
@if(resourcefile)
@if(watcom)
wrc -i@$(C) -i@$(C) -bt=nt @$(C)/csl.rc @cslc.exe
@endif
@endif
$(STRIP) @cslc.exe
@slowr37c.exe: @bytes1x.o $(OBJSX) \
@if(microsoft)
$(CSLRES) \
@endif
@stubsx.o
@if(borland)
$(LINK) -eslowr37c.exe @@@../cslsrc/borcsl.lnk
@else
@if(watcom)
$(LINK) $(LFLAGSX) @bytes1x.o,$(COBJSX),@stubsx.o $(LIBSX) $(OUT)@~@slowr37c.exe $(TAILX)
@else
@if(ressym)
$(LINK) $(LFLAGSX) @bytes1x.o $(OBJSX) @stubsx.o $(CSLRES) $(LIBSX) $(OUT)@~@slowr37c.exe $(TAILX)
@else
$(LINK) $(LFLAGSX) @bytes1x.o $(OBJSX) @stubsx.o $(LIBSX) $(OUT)@~@slowr37c.exe $(TAILX)
@endif
@endif
@endif
@if(resourcefile)
@if(watcom)
wrc -i@$(C) -i@$(C) -bt=nt @$(C)/csl.rc @slowr37c.exe
@endif
@endif
$(STRIP) @slowr37c.exe
-$(MKDIR) log
r37c.exe: @bytesx.o $(OBJSX) \
@if(microsoft)
$(R37RES) \
@endif
$(UOBJSX)
@if(borland)
$(LINK) -er37c.exe @@@../cslsrc/borr37.lnk
@else
@if(linkcomma)
$(LINK) $(LFLAGSX) @bytesx.o,$(COBJSX),$(CUOBJSX) $(LIBSX) $(OUT)@~@r37c.exe $(TAILX)
@else
@if(ressym)
$(LINK) $(LFLAGSX) @bytesx.o $(OBJSX) $(UOBJSX) $(R37RES) $(LIBSX) $(OUT)@~@r37c.exe $(TAILX)
@else
$(LINK) $(LFLAGSX) @bytesx.o $(OBJSX) $(UOBJSX) $(LIBSX) $(OUT)@~@r37c.exe $(TAILX)
@endif
@endif
@endif
@if(resourcefile)
@if(watcom)
wrc -i@../util -i@$(C) -bt=nt @../util/r37.rc @r37c.exe
@endif
@endif
$(STRIP) @r37c.exe
-$(MKDIR) log
@arith01x.o: @$(C)/arith01.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@arith01x.o \
@$(C)/arith01.c
@arith02x.o: @$(C)/arith02.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@arith02x.o \
@$(C)/arith02.c
@arith03x.o: @$(C)/arith03.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@arith03x.o \
@$(C)/arith03.c
@arith04x.o: @$(C)/arith04.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@arith04x.o \
@$(C)/arith04.c
@arith05x.o: @$(C)/arith05.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h @$(C)/stream.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@arith05x.o \
@$(C)/arith05.c
@arith06x.o: @$(C)/arith06.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@arith06x.o \
@$(C)/arith06.c
@arith07x.o: @$(C)/arith07.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@arith07x.o \
@$(C)/arith07.c
@arith08x.o: @$(C)/arith08.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@arith08x.o \
@$(C)/arith08.c
@arith09x.o: @$(C)/arith09.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@arith09x.o \
@$(C)/arith09.c
@arith10x.o: @$(C)/arith10.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@arith10x.o \
@$(C)/arith10.c
@arith11x.o: @$(C)/arith11.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@arith11x.o \
@$(C)/arith11.c
@arith12x.o: @$(C)/arith12.c @$(C)/arith.h @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@arith12x.o \
@$(C)/arith12.c
@bytesx.o: @$(C)/bytes1.c @$(C)/bytes.c @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h \
@$(C)/bytes.h @$(C)/arith.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@bytesx.o \
@$(C)/bytes.c
@bytes1x.o: @$(C)/bytes1.c @$(C)/bytes.c @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h \
@$(C)/bytes.h @$(C)/arith.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@bytes1x.o \
@$(C)/bytes1.c
#
# The target "@bytes1ax.o" recompiles bytes1.c, but with the flag set that
# arranges that the number of GET operations performed and the associated
# indicators will be recorded, so that (bytecounts) will display statistics
# about it. This slows things down considerably, but can help when you are in
# the process of deciding which indicators are specified as "fast" ones.
#
@bytes1ax.o: @$(C)/bytes1.c @$(C)/bytes.c @$(C)/tags.h @$(C)/machine.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h \
@$(C)/bytes.h @$(C)/arith.h
$(CC) $(CFLAGS1) -DRECORD_GET=1 \
$(OUTOBJ)@=@bytes1x.o \
@$(C)/bytes1.c
@charx.o: @$(C)/char.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@charx.o \
@$(C)/char.c
@cslx.o: @$(C)/csl.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h @$(C)/version.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/entries.h @$(C)/stream.h @$(C)/sockhdr.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@cslx.o \
@$(C)/csl.c
@eval1x.o: @$(C)/eval1.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/arith.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@eval1x.o \
@$(C)/eval1.c
@eval2x.o: @$(C)/eval2.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/arith.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@eval2x.o \
@$(C)/eval2.c
@eval3x.o: @$(C)/eval3.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@eval3x.o \
@$(C)/eval3.c
@eval4x.o: @$(C)/eval4.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/arith.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@eval4x.o \
@$(C)/eval4.c
@faslx.o: @$(C)/fasl.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/arith.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@faslx.o \
@$(C)/fasl.c
@fns1x.o: @$(C)/fns1.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@fns1x.o \
@$(C)/fns1.c
@fns2x.o: @$(C)/fns2.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/read.h @$(C)/entries.h \
@$(C)/sockhdr.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@fns2x.o \
@$(C)/fns2.c
@fns3x.o: @$(C)/fns3.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/read.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@fns3x.o \
@$(C)/fns3.c
@gcx.o: @$(C)/gc.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@gcx.o \
@$(C)/gc.c
#
# For each major target I have one file that is system specific - eg
# sysdos.c, sysunix.c, ...
#
@$(SYS1)x.o: @$(C)/$(SYS1).c @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/fileops.c @$(C)/scandir.c @$(C)/version.h \
@$(C)/filename.c
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@$(SYS1)x.o \
@$(C)/$(SYS1).c
@preservex.o: @$(C)/preserve.c @$(C)/tags.h @$(C)/machine.h @$(C)/stream.h \
@$(C)/externs.h @$(C)/sys.h @$(C)/cslerror.h @$(C)/read.h @$(C)/version.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@preservex.o \
@$(C)/preserve.c
@printx.o: @$(C)/print.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/read.h \
@$(C)/arith.h @$(C)/entries.h @$(C)/stream.h @$(C)/sockhdr.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@printx.o \
@$(C)/print.c
@readx.o: @$(C)/read.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/read.h \
@$(C)/arith.h @$(C)/entries.h @$(C)/stream.h @$(C)/sockhdr.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@readx.o \
@$(C)/read.c
@restartx.o: @$(C)/restart.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/sys.h @$(C)/cslerror.h @$(C)/read.h @$(C)/version.h \
@$(C)/arith.h @$(C)/entries.h @$(C)/stream.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@restartx.o \
@$(C)/restart.c
@stubsx.o: @$(C)/stubs.c @$(C)/machine.h @$(C)/externs.h @$(C)/sys.h \
@$(C)/tags.h @$(C)/cslerror.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@stubsx.o \
@$(C)/stubs.c
@cslmpix.o: @$(C)/cslmpi.c @$(C)/machine.h @$(C)/externs.h @$(C)/sys.h \
@$(C)/mpipack.c @$(C)/tags.h @$(C)/cslerror.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@cslmpix.o \
@$(C)/cslmpi.c
###########################################################################
@u01x.o: @../csl-c/u01.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@u01x.o \
@../csl-c/u01.c
@u02x.o: @../csl-c/u02.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@u02x.o \
@../csl-c/u02.c
@u03x.o: @../csl-c/u03.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@u03x.o \
@../csl-c/u03.c
@u04x.o: @../csl-c/u04.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@u04x.o \
@../csl-c/u04.c
@u05x.o: @../csl-c/u05.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@u05x.o \
@../csl-c/u05.c
@u06x.o: @../csl-c/u06.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@u06x.o \
@../csl-c/u06.c
@u07x.o: @../csl-c/u07.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@u07x.o \
@../csl-c/u07.c
@u08x.o: @../csl-c/u08.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@u08x.o \
@../csl-c/u08.c
@u09x.o: @../csl-c/u09.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@u09x.o \
@../csl-c/u09.c
@u10x.o: @../csl-c/u10.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@u10x.o \
@../csl-c/u10.c
@u11x.o: @../csl-c/u11.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@u11x.o \
@../csl-c/u11.c
@u12x.o: @../csl-c/u12.c @$(C)/tags.h @$(C)/machine.h @$(C)/externs.h \
@$(C)/cslerror.h @$(C)/entries.h
$(CC) $(CFLAGS1) \
$(OUTOBJ)@=@u12x.o \
@../csl-c/u12.c
@endif
# end of makefile