.ERASE

##### DEFAULT BUILD MODE IS RELEASE #####

VERSION="2.00"

######### DIRECTORIES ##########

# remember to change the paths below to your settings


INCLUDES=/im:\watcom\scitech\include /il:\chris\include /im:\seal\audio\include
SVGALIB_DIR=m:\watcom\SCITECH\LIB\DOS32\WC
SEALLIB_DIR=m:\seal\AUDIO\LIB\DOS
TOOLLIB_DIR=l:\chris\tool
SRC_DIR = ..\source
OBJ_DIR = ..\object

.obj: $(OBJ_DIR)
.exe: $(OBJ_DIR)

######## NAMES OF EXECUTABLES ##########

CCEXE   =  WCC386
ASMEXE  =  WASM
LINKEXE =  WLINK

######## COMPILER FLAGS ##########
#CFLAGS    = /oneatx /zp4 /5 /fp5 /5r /DDVE_VERSION=$(VERSION) /DVECTREX /DPATCH_OFFSET
CFLAGS    = /zq /w4 /s /5r /ol+ /ot /DDVE_VERSION=$(VERSION) /DVECTREX /DPATCH_OFFSET
#CFLAGS    = /d2 /zq /w4 /5r /DDVE_VERSION=$(VERSION) /DVECTREX /DPATCH_OFFSET
#/DANALOG_CYCLE_PATCH
#/DPATCH_OFFSET
#define PATCH_OFFSET
# /ox spike abszrt
# /or
#/DTRYING
#/d2 debug         mutual exclusive !       /ot  /oi /or /oa           /ol+ /ox
#/DTRYING
#/DDEBUG_MSG /DDEBUG_MON
#/DCLAY_ONLY
# /p preprocess /fo=name
# /oi expand intrinsic functions inline
# /ot optimize for execution time
# /or reorder for best pipeline usage
# /oe=10000000 /ol+ /ox /zps /as /et
# /oa   no alias checking
# /oe=1000000 expand to inline
# /ol loop optimize
# /ol+ loop + unroll
# /ox no stack overflowchecking
# /et
# /zqs /as don't work ?
# quiet /zq
# /zps structure align qword
# /as integers are align even
# /et pentium profiling

ASMFLAGS  = /4 /mf /zq

LINKMODE= DEBUG ALL
#LINKMODE= $#

######## NAME OF FINAL EXECUTABLE ########

EXENAME  = VECTREX.EXE

######## LIST OF OBJECTS ########

OBJECTS  = analog0.obj &
           analog1.obj &
           analog2.obj &
           cart_rom.obj &
           dis6809.obj &
           display.obj &
           emu6522.obj &
           emu6809.obj &
           verror.obj &
           io.obj &
           mon_cmds.obj &
           monitor.obj &
           seq0.obj &
           seq1.obj &
           seq2.obj &
           seq3.obj &
           seq4.obj &
           seq5.obj &
           seq6.obj &
           seq7.obj &
           seq8.obj &
           seq9.obj &
           seq10.obj &
           seq11.obj &
           seq12.obj &
           adlibsnd.obj &
           sealsnd.obj &
           nonesnd.obj &
           sound.obj &
           sys_ram.obj &
           sys_rom.obj &
           util.obj &
           joystick.obj &
           vdebug.obj &
           vpalette.obj &
           vectrex.obj &
           cod6809.obj &
           exg6809.obj &
           idx6809.obj &
           pshs6809.obj &
           pshu6809.obj &
           puls6809.obj &
           pulu6809.obj &
           tfr6809.obj

LIBS       =$(SVGALIB_DIR)\svga.lib &
            $(SVGALIB_DIR)\DOS4GW\pmode.lib &
            $(SEALLIB_DIR)\audiowcf.lib &
            $(TOOLLIB_DIR)\tools.lib


######## LIST OF DEPENDENCES ########

$(EXENAME): $(OBJECTS) tools.lib $(OBJ_DIR)\__link__.tmp
        @ECHO Linking $(EXENAME) ...
        @cd $(OBJ_DIR)
        @$(LINKEXE) @__link__.tmp
        @echo Done.
        @copy *.exe ..
        @cd $(SRC_DIR)

# I don't believe in automation in  s...
$(OBJ_DIR)\__link__.tmp: makefile
             @%create $(OBJ_DIR)\__link__.tmp
             @%append $(OBJ_DIR)\__link__.tmp $(LINKMODE)
             @%append $(OBJ_DIR)\__link__.tmp SYSTEM PMODEW
#             @%append $(OBJ_DIR)\__link__.tmp SYSTEM DOS4G
             @%append $(OBJ_DIR)\__link__.tmp OPTION MAP
             @%append $(OBJ_DIR)\__link__.tmp OPTION QUIET
             @%append $(OBJ_DIR)\__link__.tmp OPTION STACK=512K
             @%append $(OBJ_DIR)\__link__.tmp NAME $(EXENAME)
             @for %i in ($(OBJECTS)) do @%append $(OBJ_DIR)\__link__.tmp FILE %i
             @for %i in ($(LIBS)) do @%append $(OBJ_DIR)\__link__.tmp LIBRARY %i

$(OBJ_DIR)\__comp__.tmp: makefile
             @%create $(OBJ_DIR)\__comp__.tmp
             @for %i in ($(CFLAGS)) do @%append $(OBJ_DIR)\__comp__.tmp %i
             @for %i in ($(INCLUDES)) do @%append $(OBJ_DIR)\__comp__.tmp %i

analog0.obj: $(OBJ_DIR)\__comp__.tmp analog.xxx analog0.c analog.h anatick.cc dline.cc vectrex.h .autodepend
        @echo Compiling analog0.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\analog0.obj analog.xxx @$(OBJ_DIR)\__comp__.tmp

analog1.obj: $(OBJ_DIR)\__comp__.tmp analog1.xxx analog1.c analog1.h anatick.cc dline.cc vectrex.h .autodepend
        @echo Compiling analog1.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\analog1.obj analog1.xxx @$(OBJ_DIR)\__comp__.tmp

analog2.obj: $(OBJ_DIR)\__comp__.tmp analog2.xxx analog2.c analog2.h anatick.cc dline.cc vectrex.h .autodepend
        @echo Compiling analog2.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\analog2.obj analog2.xxx @$(OBJ_DIR)\__comp__.tmp

cart_rom.obj: $(OBJ_DIR)\__comp__.tmp cart_rom.c cart_rom.xxx cart_rom.h vectrex.h .autodepend
        @echo Compiling cart_rom.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\cart_rom.obj cart_rom.xxx  @$(OBJ_DIR)\__comp__.tmp

dis6809.obj: $(OBJ_DIR)\__comp__.tmp dis6809.c cnt6809.h dis6809.h cod6809.h ins6809.h tab6809.h vectrex.h .autodepend
        @echo Compiling dis6809.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\dis6809.obj dis6809.c @$(OBJ_DIR)\__comp__.tmp

emu6522.obj: $(OBJ_DIR)\__comp__.tmp emu6522.xxx emu6522.c emu6522.h pia.cc vectrex.h .autodepend
        @echo Compiling emu6522.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\emu6522.obj emu6522.xxx @$(OBJ_DIR)\__comp__.tmp

emu6809.obj: $(OBJ_DIR)\__comp__.tmp emu6809.xxx emu6809.c emu6809.h msnglcpu.cc mshftcpu.cc multicpu.cc singlcpu.cc &
             cnt6809.h dis6809.h cod6809.h ins6809.h tab6809.h &
             vectrex.h .autodepend
        @echo Compiling emu6809.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\emu6809.obj emu6809.xxx @$(OBJ_DIR)\__comp__.tmp

verror.obj: $(OBJ_DIR)\__comp__.tmp verror.c verror.h vectrex.h .autodepend
        @echo Compiling verror.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\verror.obj verror.c @$(OBJ_DIR)\__comp__.tmp

display.obj: $(OBJ_DIR)\__comp__.tmp display.c display.h line.cc &
             mline.cc &
             dtick.cc vectrex.h .autodepend
        @echo Compiling display.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\display.obj display.c @$(OBJ_DIR)\__comp__.tmp

io.obj: $(OBJ_DIR)\__comp__.tmp io.c io.h vectrex.h .autodepend
        @echo Compiling io.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\io.obj io.c @$(OBJ_DIR)\__comp__.tmp

mon_cmds.obj: $(OBJ_DIR)\__comp__.tmp mon_cmds.c mon_cmds.h vectrex.h .autodepend
        @echo Compiling mon_cmds.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\mon_cmds.obj mon_cmds.c @$(OBJ_DIR)\__comp__.tmp

monitor.obj: $(OBJ_DIR)\__comp__.tmp monitor.c monitor.h vectrex.h .autodepend
        @echo Compiling monitor.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\monitor.obj monitor.c @$(OBJ_DIR)\__comp__.tmp

seq0.obj: $(OBJ_DIR)\__comp__.tmp seq0.xxx seq0.c sequence.h dtick.cc pia.cc seq.cc &
              msnglcpu.cc mshftcpu.cc multicpu.cc singlcpu.cc jfctgcpu.cc &
              line.cc &
              mline.cc &
              vectrex.h .autodepend
        @echo Compiling seq0.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\seq0.obj seq0.xxx @$(OBJ_DIR)\__comp__.tmp

seq1.obj: $(OBJ_DIR)\__comp__.tmp seq1.xxx seq1.h seq1.c sequence.h dtick.cc pia.cc seq.cc &
              msnglcpu.cc mshftcpu.cc multicpu.cc singlcpu.cc jfctgcpu.cc dline.cc &
              line.cc &
              mline.cc &
              vectrex.h .autodepend
        @echo Compiling seq1.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\seq1.obj seq1.xxx @$(OBJ_DIR)\__comp__.tmp

seq2.obj: $(OBJ_DIR)\__comp__.tmp seq2.xxx seq2.h seq2.c sequence.h dtick.cc pia.cc seq.cc &
              msnglcpu.cc mshftcpu.cc multicpu.cc singlcpu.cc jfctgcpu.cc dline.cc &
              line.cc &
              mline.cc &
              vectrex.h .autodepend
        @echo Compiling seq2.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\seq2.obj seq2.xxx @$(OBJ_DIR)\__comp__.tmp

seq3.obj: $(OBJ_DIR)\__comp__.tmp seq3.xxx seq3.h seq3.c sequence.h dtick.cc pia.cc seq.cc &
              msnglcpu.cc mshftcpu.cc multicpu.cc singlcpu.cc jfctgcpu.cc dline.cc &
              line.cc &
              mline.cc &
              vectrex.h .autodepend
        @echo Compiling seq3.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\seq3.obj seq3.xxx @$(OBJ_DIR)\__comp__.tmp

seq4.obj: $(OBJ_DIR)\__comp__.tmp seq4.xxx seq4.h seq4.c sequence.h dtick.cc pia.cc seq.cc &
              msnglcpu.cc mshftcpu.cc multicpu.cc singlcpu.cc jfctgcpu.cc dline.cc &
              line.cc &
              mline.cc &
              vectrex.h .autodepend
        @echo Compiling seq4.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\seq4.obj seq4.xxx @$(OBJ_DIR)\__comp__.tmp

seq5.obj: $(OBJ_DIR)\__comp__.tmp seq5.xxx seq5.h seq5.c sequence.h dtick.cc pia.cc seq.cc &
              msnglcpu.cc mshftcpu.cc multicpu.cc singlcpu.cc jfctgcpu.cc dline.cc &
              line.cc &
              mline.cc &
              vectrex.h .autodepend
        @echo Compiling seq5.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\seq5.obj seq5.xxx @$(OBJ_DIR)\__comp__.tmp

seq6.obj: $(OBJ_DIR)\__comp__.tmp seq6.xxx seq6.h seq6.c sequence.h dtick.cc pia.cc seq.cc &
              msnglcpu.cc mshftcpu.cc multicpu.cc singlcpu.cc jfctgcpu.cc dline.cc &
              line.cc &
              mline.cc &
              vectrex.h .autodepend
        @echo Compiling seq6.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\seq6.obj seq6.xxx @$(OBJ_DIR)\__comp__.tmp

seq7.obj: $(OBJ_DIR)\__comp__.tmp seq7.xxx seq7.h seq7.c sequence.h dtick.cc pia.cc seq.cc &
              msnglcpu.cc mshftcpu.cc multicpu.cc singlcpu.cc jfctgcpu.cc dline.cc &
              line.cc &
              mline.cc &
              vectrex.h .autodepend
        @echo Compiling seq7.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\seq7.obj seq7.xxx @$(OBJ_DIR)\__comp__.tmp

seq8.obj: $(OBJ_DIR)\__comp__.tmp seq8.xxx seq8.h seq8.c sequence.h dtick.cc pia.cc seq.cc &
              msnglcpu.cc mshftcpu.cc multicpu.cc singlcpu.cc jfctgcpu.cc dline.cc &
              line.cc &
              mline.cc &
              vectrex.h .autodepend
        @echo Compiling seq8.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\seq8.obj seq8.xxx @$(OBJ_DIR)\__comp__.tmp

seq9.obj: $(OBJ_DIR)\__comp__.tmp seq9.xxx seq9.h seq9.c sequence.h dtick.cc pia.cc seq.cc &
              msnglcpu.cc mshftcpu.cc multicpu.cc singlcpu.cc jfctgcpu.cc dline.cc &
              line.cc &
              mline.cc &
              vectrex.h .autodepend
        @echo Compiling seq9.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\seq9.obj seq9.xxx @$(OBJ_DIR)\__comp__.tmp

seq10.obj: $(OBJ_DIR)\__comp__.tmp seq10.xxx seq10.h seq10.c sequence.h dtick.cc pia.cc seq.cc &
              msnglcpu.cc mshftcpu.cc multicpu.cc singlcpu.cc jfctgcpu.cc dline.cc &
              line.cc &
              mline.cc &
              vectrex.h .autodepend
        @echo Compiling seq10.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\seq10.obj seq10.xxx @$(OBJ_DIR)\__comp__.tmp

seq11.obj: $(OBJ_DIR)\__comp__.tmp seq11.xxx seq11.h seq11.c sequence.h dtick.cc pia.cc seq.cc &
              msnglcpu.cc mshftcpu.cc multicpu.cc singlcpu.cc jfctgcpu.cc dline.cc &
              line.cc &
              mline.cc &
              vectrex.h .autodepend
        @echo Compiling seq11.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\seq11.obj seq11.xxx @$(OBJ_DIR)\__comp__.tmp

seq12.obj: $(OBJ_DIR)\__comp__.tmp seq12.xxx seq12.h seq12.c sequence.h dtick.cc pia.cc seq.cc &
              msnglcpu.cc mshftcpu.cc multicpu.cc singlcpu.cc jfctgcpu.cc dline.cc &
              line.cc &
              mline.cc &
              vectrex.h .autodepend
        @echo Compiling seq12.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\seq12.obj seq12.xxx @$(OBJ_DIR)\__comp__.tmp

adlibsnd.obj: $(OBJ_DIR)\__comp__.tmp adlibsnd.xxx adlibsnd.c adlibsnd.h vectrex.h fmfreqs.h sound.h .autodepend
        @echo Compiling adlibsnd.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\adlibsnd.obj adlibsnd.xxx @$(OBJ_DIR)\__comp__.tmp

sealsnd.obj: $(OBJ_DIR)\__comp__.tmp sealsnd.xxx sealsnd.c sealsnd.h psg.h sound.h vectrex.h .autodepend
        @echo Compiling sealsnd.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\sealsnd.obj sealsnd.xxx @$(OBJ_DIR)\__comp__.tmp

nonesnd.obj: $(OBJ_DIR)\__comp__.tmp nonesnd.xxx nonesnd.c nonesnd.h sound.h .autodepend
        @echo Compiling nonesnd.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\nonesnd.obj nonesnd.xxx @$(OBJ_DIR)\__comp__.tmp

sound.obj: $(OBJ_DIR)\__comp__.tmp sound.c sound.h .autodepend
        @echo Compiling sound.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\sound.obj sound.c @$(OBJ_DIR)\__comp__.tmp

vpalette.obj: $(OBJ_DIR)\__comp__.tmp vpalette.c vpalette.h .autodepend
        @echo Compiling vpalette.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\vpalette.obj vpalette.c @$(OBJ_DIR)\__comp__.tmp

sys_ram.obj: $(OBJ_DIR)\__comp__.tmp sys_ram.xxx sys_ram.c sys_ram.h vectrex.h .autodepend
        @echo Compiling sys_ram.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\sys_ram.obj sys_ram.xxx @$(OBJ_DIR)\__comp__.tmp

sys_rom.obj: $(OBJ_DIR)\__comp__.tmp sys_rom.xxx sys_rom.c sys_rom.h vectrex.h .autodepend
        @echo Compiling sys_rom.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\sys_rom.obj sys_rom.xxx @$(OBJ_DIR)\__comp__.tmp

util.obj: $(OBJ_DIR)\__comp__.tmp util.c util.h vectrex.h .autodepend
        @echo Compiling util.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\util.obj util.c @$(OBJ_DIR)\__comp__.tmp

vdebug.obj: $(OBJ_DIR)\__comp__.tmp vdebug.c vdebug.h vectrex.h .autodepend
        @echo Compiling vdebug.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\vdebug.obj vdebug.c @$(OBJ_DIR)\__comp__.tmp

joystick.obj: $(OBJ_DIR)\__comp__.tmp joystick.c joystick.h .autodepend
        @echo Compiling joystick.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\joystick.obj joystick.c @$(OBJ_DIR)\__comp__.tmp

vectrex.obj: $(OBJ_DIR)\__comp__.tmp vectrex.c vectrex.h sound.h .autodepend
        @echo Compiling vectrex.obj
        @$(CCEXE) -fo=$(OBJ_DIR)\vectrex.obj vectrex.c @$(OBJ_DIR)\__comp__.tmp

idx6809.obj: idx6809.asm mac6809.h reg6809.h
        @echo Assembling idx6809.obj
        @$(ASMEXE) $(ASMFLAGS) -fo=$(OBJ_DIR)\idx6809.obj -fe=$(SRC_DIR)\idx6809.err idx6809.asm

tfr6809.obj: tfr6809.asm mac6809.h reg6809.h
        @echo Assembling tfr6809.obj
        @$(ASMEXE) $(ASMFLAGS) -fo=$(OBJ_DIR)\tfr6809.obj -fe=$(SRC_DIR)\tfr6809.err tfr6809.asm

pshs6809.obj: pshs6809.asm mac6809.h reg6809.h
        @echo Assembling pshs6809.obj
        @$(ASMEXE) $(ASMFLAGS) -fo=$(OBJ_DIR)\pshs6809.obj -fe=$(SRC_DIR)\pshs6809.err pshs6809.asm

puls6809.obj: puls6809.asm mac6809.h reg6809.h
        @echo Assembling puls6809.obj
        @$(ASMEXE) $(ASMFLAGS) -fo=$(OBJ_DIR)\puls6809.obj -fe=$(SRC_DIR)\puls6809.err puls6809.asm

pshu6809.obj: pshu6809.asm mac6809.h reg6809.h
        @echo Assembling pshu6809.obj
        @$(ASMEXE) $(ASMFLAGS) -fo=$(OBJ_DIR)\pshu6809.obj -fe=$(SRC_DIR)\pshu6809.err pshu6809.asm

pulu6809.obj: pulu6809.asm mac6809.h reg6809.h
        @echo Assembling pulu6809.obj
        @$(ASMEXE) $(ASMFLAGS) -fo=$(OBJ_DIR)\pulu6809.obj -fe=$(SRC_DIR)\pulu6809.err pulu6809.asm

cod6809.obj: cod6809.asm mac6809.h reg6809.h
        @echo Assembling cod6809.obj
        @$(ASMEXE) $(ASMFLAGS) -fo=$(OBJ_DIR)\cod6809.obj -fe=$(SRC_DIR)\cod6809.err cod6809.asm

exg6809.obj: exg6809.asm mac6809.h reg6809.h
        @echo Assembling exg6809.obj
        @$(ASMEXE) $(ASMFLAGS) -fo=$(OBJ_DIR)\exg6809.obj -fe=$(SRC_DIR)\exg6809.err exg6809.asm

tools.lib: .symbolic #$(TOOLLIB_DIR)\tools.lib
        @cd ..\..\tool
        wmake.exe -f makefile.vec tools.lib
        @cd ..\vectrex\source

clean: .symbolic
    del *.err >NUL
    @cd ..\object
    del *.obj >NUL
    del *.exe >NUL
    del *.map >NUL
    del *.tmp >NUL
    @cd ..\source
        @cd ..\..\tool
        wmake.exe -f makefile.vec clean
        @cd ..\vectrex\source
