pcs/pcspro.mak

443 lines
14 KiB
Makefile
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# PC Scheme 4.0 make file: Protected Memory Scheme
#
# command-line macro variables
#
redo= # if nonempty, force make to do everything here
debug= # if nonempty, generate symbol file
#
# directories
#
tools=\tools # read-only
lib=\lib # read-only
src=\build # read-only
obj=\objectp # read-write
exec=\exec # read-write
#
# rules
#
.asm.obj:
$(tools)\masm /DPROMEM $*,$@;
.c.obj:
$(tools)\lc -dPROMEM -ms -ccdswum -o$@ $*
#
# make-specific initialization
#
# if redo on command line specified, build the entire system
:
if not "$(redo)"=="" del $(obj)\*.obj
if not "$(redo)"=="" del $(exec)\pcspro.*
#
# application-specific initialization
#
:
cd $(src)
path $(tools)
#
# assembly language files
#
$(src)\schemed.equ: $(src)\memtype.equ
$(tools)\touch schemed.equ
$(src)\scheme.equ: $(src)\schemed.equ $(src)\schemed.ref $(src)\schemed.mac \
$(src)\smmu.mac
$(tools)\touch scheme.equ
$(obj)\alink.obj: $(src)\alink.asm
$(tools)\masm /DPROMEM $*,$@;
$(obj)\block.obj: $(src)\block.asm $(src)\scheme.equ $(src)\memtype.equ
$(tools)\masm /DPROMEM $*,$@;
$(obj)\flo2hex.obj: $(src)\flo2hex.asm
$(tools)\masm /DPROMEM $*,$@;
$(obj)\get_path.obj: $(src)\get_path.asm $(src)\scheme.equ
$(tools)\masm /DPROMEM $*,$@;
$(obj)\prointrp.obj: $(src)\prointrp.asm $(src)\dos.mac $(src)\pcmake.equ
$(tools)\masm /DPROMEM $*,$@;
REM **** REMEMBER TO CHECK INTRUP.ASM FOR REAL MODE UPDATES ALSO ****
$(obj)\msdos.obj: $(src)\msdos.asm
$(tools)\masm /DPROMEM $*,$@;
$(obj)\saprop.obj: $(src)\saprop.asm $(src)\scheme.equ
$(tools)\masm /DPROMEM $*,$@;
$(obj)\probid.obj: $(src)\probid.asm
$(tools)\masm /DPROMEM $*,$@;
REM **** REMEMBER TO CHECK SBID.ASM FOR REAL MODE UPDATES ALSO ****
$(obj)\sbigmath.obj: $(src)\sbigmath.asm $(src)\scheme.equ
$(tools)\masm /DPROMEM $*,$@;
$(obj)\sc.obj: $(src)\sc.asm $(src)\dos.mac
$(tools)\masm /DPROMEM $*,$@;
$(obj)\scannum.obj: $(src)\scannum.asm
$(tools)\masm /DPROMEM $*,$@;
$(obj)\scar_cdr.obj: $(src)\scar_cdr.asm $(src)\scheme.equ $(src)\sinterp.mac \
$(src)\sinterp.arg
$(tools)\masm /DPROMEM $*,$@;
$(obj)\schemed.obj: $(src)\schemed.asm $(src)\schemed.equ $(src)\sasm.mac
$(tools)\masm /DPROMEM $*,$@;
$(obj)\senv.obj: $(src)\senv.asm $(src)\scheme.equ $(src)\sinterp.mac \
$(src)\sinterp.arg $(src)\stackf.equ
$(tools)\masm /DPROMEM $*,$@;
$(obj)\sexec.obj: $(src)\sexec.asm $(src)\scheme.equ
$(tools)\masm /DPROMEM $*,$@;
$(obj)\sgcmark.obj: $(src)\sgcmark.asm $(src)\scheme.equ
$(tools)\masm /DPROMEM $*,$@;
$(obj)\sgcsweep.obj: $(src)\sgcsweep.asm $(src)\scheme.equ
$(tools)\masm /DPROMEM $*,$@;
$(obj)\sinterp.obj: $(src)\sinterp.asm $(src)\schemed.equ $(src)\schemed.ref \
$(src)\schemed.mac $(src)\pcmake.equ $(src)\stackf.equ \
$(src)\smmu.mac $(src)\sinterp.mac $(src)\sinterp.arg
$(tools)\masm /DPROMEM $*,$@;
$(obj)\prosmmu.obj: $(src)\prosmmu.asm $(src)\schemed.equ $(src)\schemed.ref
$(tools)\masm /DPROMEM $*,$@;
$(obj)\sobjhash.obj: $(src)\sobjhash.asm $(src)\scheme.equ
$(tools)\masm /DPROMEM $*,$@;
$(obj)\squish.obj: $(src)\squish.asm $(src)\scheme.equ
$(tools)\masm /DPROMEM $*,$@;
$(obj)\srch_str.obj: $(src)\srch_str.asm $(src)\scheme.equ $(src)\pcmake.equ \
$(src)\sinterp.arg
$(tools)\masm /DPROMEM $*,$@;
$(obj)\srelocat.obj: $(src)\srelocat.asm $(src)\scheme.equ
$(tools)\masm /DPROMEM $*,$@;
$(obj)\sstack.obj: $(src)\sstack.asm $(src)\scheme.equ $(src)\sinterp.mac \
$(src)\sinterp.arg $(src)\stackf.equ
$(tools)\masm /DPROMEM $*,$@;
$(obj)\sstring.obj: $(src)\sstring.asm $(src)\scheme.equ $(src)\sinterp.mac \
$(src)\sinterp.arg
$(tools)\masm /DPROMEM $*,$@;
# stimer exists within sinterp.asm for protected mode
#(obj)\stimer.obj: $(src)\stimer.asm $(src)\scheme.equ
# $(tools)\masm /DPROMEM $*,$@;
$(obj)\strmlnrs.obj: $(src)\strmlnrs.asm $(src)\scheme.equ
$(tools)\masm /DPROMEM $*,$@;
$(obj)\sutil.obj: $(src)\sutil.asm $(src)\scheme.equ
$(tools)\masm /DPROMEM $*,$@;
REM **** REMEMBER TO CHECK FOR REAL MODE UPDATES ALSO ****
$(obj)\svars.obj: $(src)\svars.asm $(src)\scheme.equ $(src)\sinterp.mac \
$(src)\sinterp.arg
$(tools)\masm /DPROMEM $*,$@;
# sw_int now exists within PRO2REAL.ASM
#$(obj)\sw_int.obj: $(src)\sw_int.asm
# $(tools)\masm /DPROMEM $*,$@;
$(obj)\pro2real.obj: $(src)\pro2real.asm $(src)\scheme.equ $(src)\xli.equ \
$(src)\xli_pro.mac $(src)\rpc.equ $(src)\sinterp.arg
$(tools)\masm /DPROMEM $*,$@;
REM **** REMEMBER TO CHECK XLI.ASM FOR REAL MODE UPDATES ALSO ****
#
# C source files
#
$(src)\scheme.h: $(src)\memtype.h $(src)\schmdefs.h
$(tools)\touch scheme.h
$(obj)\asm_link.obj: $(src)\asm_link.c $(src)\scheme.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\freesp.obj: $(src)\freesp.c $(src)\scheme.h $(src)\ctype.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\sarith.obj: $(src)\sarith.c $(src)\scheme.h $(src)\slist.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\sbigmem.obj: $(src)\sbigmem.c $(src)\scheme.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\sdebug.obj: $(src)\sdebug.c $(src)\scheme.h $(src)\ctype.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\sdump.obj: $(src)\sdump.c $(src)\scheme.h $(src)\ctype.h \
$(src)\schars.h $(src)\slist.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\serrmsg.obj: $(src)\serrmsg.c $(src)\scheme.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\serror.obj: $(src)\serror.c $(src)\scheme.h $(src)\ctype.h \
$(src)\slist.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\sfasl.obj: $(src)\sfasl.c $(src)\scheme.h $(src)\stdio.h \
$(src)\slist.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\shash.obj: $(src)\shash.c $(src)\scheme.h $(src)\ctype.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\slink.obj: $(src)\slink.c $(src)\ctype.h $(src)\slink.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\smain.obj: $(src)\smain.c $(src)\version.h $(src)\scheme.h \
$(src)\sport.h $(src)\pcmake.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\smemory.obj: $(src)\smemory.c $(src)\scheme.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\sprintf.obj: $(src)\sprintf.c $(src)\scheme.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\sprop.obj: $(src)\sprop.c $(src)\scheme.h $(src)\ctype.h \
$(src)\slist.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\sreify.obj: $(src)\sreify.c $(src)\scheme.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\sreset.obj: $(src)\sreset.c $(src)\scheme.h $(src)\ctype.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\strace.obj: $(src)\strace.c $(src)\scheme.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
$(obj)\support.obj: $(src)\support.c $(src)\scheme.h $(src)\slist.h
# $(tools)\lc -ms -ccdswum -o$@ $*
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
#
# I/O source files - All of protected mode scheme's I/O files have been
# grouped together in one place so they can be easily recognized from
# Real Mode Scheme's I/O files. There wasn't enough time to get all the I/O
# code merged, so there may be duplicate code between regular scheme and
# protected mode scheme. This means that if any code is modified in the
# following files, you should check the corresponding real mode files also
#
# Assembly language I/O files
$(obj)\proio.obj: $(src)\proio.asm $(src)\scheme.equ $(src)\sinterp.arg
$(tools)\masm /DPROMEM $*,$@;
REM **** REMEMBER TO CHECK REAL MODE I/O FILES FOR UPDATES ALSO ****
$(obj)\proiosup.obj: $(src)\proiosup.asm $(src)\scheme.equ $(src)\xli.equ \
$(src)\xli_pro.mac
$(tools)\masm /DPROMEM $*,$@;
REM **** REMEMBER TO CHECK REAL MODE I/O FILES FOR UPDATES ALSO ****
$(obj)\proread.obj: $(src)\proread.asm $(src)\scheme.equ $(src)\sinterp.arg
$(tools)\masm /DPROMEM $*,$@;
REM **** REMEMBER TO CHECK REAL MODE I/O FILES FOR UPDATES ALSO ****
$(obj)\prosprin.obj: $(src)\prosprin.asm $(src)\scheme.equ $(src)\sinterp.arg
$(tools)\masm /DPROMEM $*,$@;
REM **** REMEMBER TO CHECK REAL MODE I/O FILES FOR UPDATES ALSO ****
$(obj)\prosread.obj: $(src)\prosread.asm $(src)\scheme.equ $(src)\sinterp.arg
$(tools)\masm /DPROMEM $*,$@;
REM **** REMEMBER TO CHECK REAL MODE I/O FILES FOR UPDATES ALSO ****
$(obj)\prowin.obj: $(src)\prowin.asm $(src)\scheme.equ $(src)\xli.equ \
$(src)\xli_pro.mac
$(tools)\masm /DPROMEM $*,$@;
REM **** REMEMBER TO CHECK REAL MODE I/O FILES FOR UPDATES ALSO ****
# Lattice C I/O routines
$(obj)\prociosp.obj: $(src)\prociosp.c $(src)\scheme.h $(src)\sport.h \
$(src)\slist.h
$(tools)\lc1 -dPROMEM -ms -ccdswum -o$(obj)\$*.q $*
$(tools)\lc2 -o -v$@ $(obj)\$*.q
REM **** REMEMBER TO CHECK REAL MODE I/O FILES FOR UPDATES ALSO ****
# Real Mode Exe Files
$(obj)\realschm.obj: $(src)\realschm.asm $(src)\xli.equ $(src)\xli.ref \
$(src)\xli_pro.mac
$(tools)\masm /DPROMEM $*,$@;
REM **** REMEMBER TO CHECK REAL MODE I/O FILES FOR UPDATES ALSO ****
$(obj)\realio.obj: $(src)\realio.asm $(src)\schemed.equ
$(tools)\masm /DPROMEM $*,$@;
REM **** REMEMBER TO CHECK REAL MODE I/O FILES FOR UPDATES ALSO ****
$(obj)\graphics.obj: $(src)\graphics.asm $(src)\pcmake.equ
$(tools)\masm /DPROMEM $*,$@;
REM **** REMEMBER TO CHECK REAL MODE I/O FILES FOR UPDATES ALSO ****
#
# Generate PCSPRO.EXE file
#
$(exec)\pcs.exe: $(obj)\sc.obj \
$(obj)\schemed.obj \
$(obj)\sinterp.obj \
$(obj)\smain.obj \
$(obj)\sstring.obj \
$(obj)\sgcmark.obj \
$(obj)\sgcsweep.obj \
$(obj)\sbigmem.obj \
$(obj)\sexec.obj \
$(obj)\support.obj \
$(obj)\shash.obj \
$(obj)\sstack.obj \
$(obj)\sarith.obj \
$(obj)\sutil.obj \
$(obj)\serror.obj \
$(obj)\sdebug.obj \
$(obj)\sdump.obj \
$(obj)\strace.obj \
$(obj)\serrmsg.obj \
$(obj)\sbigmath.obj \
$(obj)\scar_cdr.obj \
$(obj)\svars.obj \
$(obj)\saprop.obj \
$(obj)\sprop.obj \
$(obj)\msdos.obj \
$(obj)\sreset.obj \
$(obj)\sfasl.obj \
$(obj)\sreify.obj \
$(obj)\senv.obj \
$(obj)\sprintf.obj \
$(obj)\scannum.obj \
$(obj)\get_path.obj \
$(obj)\sobjhash.obj \
$(obj)\asm_link.obj \
$(obj)\slink.obj \
$(obj)\alink.obj \
$(obj)\probid.obj \
$(obj)\strmlnrs.obj \
$(obj)\srch_str.obj \
$(obj)\squish.obj \
$(obj)\srelocat.obj \
$(obj)\freesp.obj \
$(obj)\flo2hex.obj \
$(obj)\block.obj \
$(obj)\prociosp.obj \
$(obj)\prointrp.obj \
$(obj)\proio.obj \
$(obj)\proiosup.obj \
$(obj)\proread.obj \
$(obj)\prosmmu.obj \
$(obj)\prosread.obj \
$(obj)\prowin.obj \
$(obj)\pro2real.obj \
$(obj)\prosprin.obj
cd $(obj)
$(tools)\link @$(src)\pcspro.lnk,$(exec)\pcspro.exe,$(exec)\pcspro.map/map,$(lib)\lcm+$(lib)\lc;
cd $(exec)
if not "$(debug)"=="" $(tools)\mapsym $(exec)\pcspro.map
$(tools)\express -msl pcspro
$(tools)\bind -o $(exec)\pcspro.exe -i $(exec)\pcspro.exp -l $(tools)\tinyup.exe
cd $(src)
#
# Generate REALSCHM.EXE file
#
$(exec)\realschm.exe: $(obj)\realschm.obj
cd $(obj)
$(tools)\link $(obj)\realschm.obj,$(exec)\realschm.exe,$(exec)\realschm.map/map;
cd $(src)
#
# Generate REALIO.EXE file
#
$(exec)\realio.exe: $(obj)\realio.obj
cd $(obj)
$(tools)\link $(obj)\realio.obj,$(exec)\realio.exe,$(exec)\realio.map/map;
cd $(src)
#
# Generate GRAPHICS.EXE file
#
$(exec)\graphics.exe: $(obj)\graphics.obj
cd $(obj)
$(tools)\link $(obj)\graphics.obj,$(exec)\graphics.exe,$(exec)\graphics.map/map;
cd $(src)
:
cd $(src)
#
# make-specific wrapup
#
:
echo MAKE is done.