# Compilers and options:

CC = wcc386
CL = wlink
RM = rm			# this rm is from DJGPP (ie. unix rm)

# Include directories:
INCCD= include\c
INCAD= include\asm

INCC = -I$(INCCD) -dUAE_FILESYS -Iuae -ei
INCA = -i=$(INCAD) -dUAE_FILESYS


# Compiler flags:
CCOPTS1 = $(INCC) -oxt -d__WC32__ -s      # was -oxs
CCOPTS2 = $(INCC) -oxt -d__WC32__ -s
CCOPTS3 = $(INCC) -oxt -ou -d__WC32__ -s
CLOPTS = $(CCOPTS)

ASM = wasm
ASMOPTS = $(INCA) -d__WC32__

# OS

OS = dos
UAE = uae

all:          fellow.exe

clean:
              $(RM) -rf *.obj *.bak *.exe include\*.bak include\c\*.bak
              $(RM) -rf include\asm\*.bak include\asm\mac\*.bak include\asm\func\*.bak include\asm\data\*.bak

fellow.exe:   68000.obj 68000dis.obj 68000ini.obj 68030.obj 68030ini.obj 68kcopr.obj bus.obj busa.obj blit.obj blita.obj BMP.obj cianew.obj $(OS)\console.obj copper.obj coppera.obj draw.obj drawa.obj fellow.obj fgui.obj fhfile.obj floppy.obj graphem.obj graphema.obj gui.obj inout.obj joymouse.obj keyboard.obj led.obj listtree.obj memory.obj memorya.obj $(OS)\sblast.obj $(OS)\sblasta.obj sound.obj sounda.obj $(OS)\various.obj $(UAE)\filesys.obj $(UAE)\expansio.obj $(UAE)\autoconf.obj $(UAE)\uaesupp.obj $(UAE)\hardfile.obj $(UAE)\vfs.obj wav.obj
              $(CL) @fellow.lnk

68000.obj:    68000.asm $(INCAD)\defs.inc $(INCAD)\func\memory.inc $(INCAD)\func\inout.inc $(INCAD)\func\sound.inc $(INCAD)\func\floppy.inc $(INCAD)\eventid.inc $(INCAD)\mac\drawmode.mac $(INCAD)\mac\memory.mac $(INCAD)\data\memory.inc $(INCAD)\data\log.inc $(INCAD)\data\inout.inc $(INCAD)\data\floppy.inc $(INCAD)\data\sound.inc $(INCAD)\data\68000.inc $(INCAD)\data\bus.inc
              $(ASM) 68000.asm $(ASMOPTS)

68000dis.obj: 68000dis.c $(INCCD)\defs.h $(INCCD)\memory.h $(INCCD)\68000dis.h $(INCCD)\68000.h
              $(CC) 68000dis.c $(CCOPTS1)

68000ini.obj: 68000ini.c $(INCCD)\defs.h $(INCCD)\68000ini.h $(INCCD)\memory.h $(INCCD)\inout.h
              $(CC) 68000ini.c $(CCOPTS1)

68030.obj:    68030.asm $(INCAD)\defs.inc $(INCAD)\func\memory.inc $(INCAD)\func\68000.inc $(INCAD)\mac\memory.mac $(INCAD)\data\memory.inc $(INCAD)\data\68000.inc $(INCAD)\data\68030.inc $(INCAD)\data\68kcopr.inc
              $(ASM) 68030.asm $(ASMOPTS)

68030ini.obj: 68030ini.c $(INCCD)\defs.h $(INCCD)\68000ini.h $(INCCD)\68030ini.h $(INCCD)\68000.h $(INCCD)\memory.h
              $(CC) 68030ini.c $(CCOPTS1)

68kcopr.obj:  68kcopr.c $(INCCD)\defs.h
              $(CC) 68kcopr.c $(CCOPTS1)

bus.obj:      bus.c $(INCCD)\defs.h $(INCCD)\68000.h
              $(CC) bus.c $(CCOPTS1)

busa.obj:     busa.asm $(INCAD)\defs.inc $(INCAD)\func\fellow.inc $(INCAD)\func\memory.inc $(INCAD)\func\68000.inc $(INCAD)\func\floppy.inc $(INCAD)\func\sound.inc $(INCAD)\func\inout.inc $(INCAD)\func\joymouse.inc $(INCAD)\func\copper.inc $(INCAD)\mac\memory.mac $(INCAD)\mac\drawmode.mac $(INCAD)\mac\keyboard.mac $(INCAD)\data\fellow.inc $(INCAD)\data\68000.inc $(INCAD)\data\bus.inc $(INCAD)\data\memory.inc $(INCAD)\data\draw.inc $(INCAD)\data\floppy.inc $(INCAD)\data\sound.inc $(INCAD)\data\inout.inc $(INCAD)\data\graphem.inc $(INCAD)\data\sblast.inc $(INCAD)\data\keyboard.inc
              $(ASM) busa.asm $(ASMOPTS)

blita.obj:    blita.asm $(INCAD)\defs.inc $(INCAD)\func\memory.inc $(INCAD)\func\68000.inc $(INCAD)\func\inout.inc $(INCAD)\func\sound.inc $(INCAD)\func\floppy.inc $(INCAD)\func\joymouse.inc $(INCAD)\func\draw.inc $(INCAD)\mac\memory.mac $(INCAD)\mac\drawmode.mac $(INCAD)\data\fellow.inc $(INCAD)\data\memory.inc $(INCAD)\data\inout.inc $(INCAD)\data\sound.inc $(INCAD)\data\floppy.inc $(INCAD)\data\graphem.inc
              $(ASM) blita.asm $(ASMOPTS)

blit.obj:     blit.c $(INCCD)\defs.h $(INCCD)\fellow.h $(INCCD)\inout.h $(INCCD)\68000.h $(INCCD)\memory.h $(INCCD)\graphem.h
              $(CC) blit.c $(CCOPTS2)

BMP.obj:	BMP.c $(INCCD)\defs.h
              $(CC) BMP.c $(CCOPTS2)

cianew.obj:   cianew.c $(INCCD)\defs.h $(INCCD)\memorya.h
              $(CC) cianew.c $(CCOPTS3)

$(OS)\console.obj:	$(OS)\console.c $(INCCD)\defs.h
		$(CC) $(OS)\console.c -fo=$(OS)\console.obj $(CCOPTS2)

copper.obj:   copper.c $(INCCD)\defs.h 
              $(CC) copper.c $(CCOPTS3)

coppera.obj:  coppera.asm $(INCAD)\defs.inc $(INCAD)\data\memory.inc $(INCAD)\data\bus.inc
              $(ASM) coppera.asm $(ASMOPTS)

draw.obj:     draw.c $(INCCD)\defs.h $(INCCD)\fellow.h $(INCCD)\inout.h $(INCCD)\68000.h $(INCCD)\memory.h $(INCCD)\draw.h $(INCCD)\graphem.h
              $(CC) draw.c $(CCOPTS3)

drawa.obj:    drawa.asm $(INCAD)\defs.inc $(INCAD)\data\memory.inc $(INCAD)\data\inout.inc $(INCAD)\data\fellow.inc $(INCAD)\data\graphem.inc
              $(ASM) drawa.asm $(ASMOPTS)

encodeam.obj: encodeam.c $(INCCD)\defs.h
              $(CC) encodeam.c $(CCOPTS1)

fellow.obj:   fellow.c $(INCCD)\defs.h $(INCCD)\inout.h $(INCCD)\68000.h $(INCCD)\memory.h $(INCCD)\eventid.h $(INCCD)\floppy.h $(INCCD)\sblast.h $(INCCD)\sound.h $(INCCD)\joymouse.h $(INCCD)\keyboard.h $(INCCD)\draw.h $(INCCD)\graphem.h $(INCCD)\fhfile.h $(INCCD)\bus.h $(INCCD)\gui.h
              $(CC) fellow.c $(CCOPTS1)

fgui.obj:     fgui.c $(INCCD)\defs.h $(INCCD)\fellow.h $(INCCD)\gui.h $(INCCD)\floppy.h $(INCCD)\memory.h $(INCCD)\sound.h $(INCCD)\graphem.h $(INCCD)\inout.h $(INCCD)\68000.h $(INCCD)\joymouse.h $(INCCD)\fhfile.h $(INCCD)\wav.h
              $(CC) fgui.c $(CCOPTS3)

fhfile.obj:   fhfile.c $(INCCD)\defs.h $(INCCD)\memory.h $(INCCD)\inout.h $(INCCD)\68000.h
              $(CC) fhfile.c $(CCOPTS2)

floppy.obj:   floppy.c $(INCCD)\defs.h $(INCCD)\fellow.h $(INCCD)\memory.h $(INCCD)\68000.h
              $(CC) floppy.c $(CCOPTS3)

graphem.obj:  graphem.c $(INCCD)\defs.h $(INCCD)\fellow.h $(INCCD)\inout.h $(INCCD)\68000.h $(INCCD)\memory.h $(INCCD)\keyboard.h $(INCCD)\graphemm.h $(INCCD)\graphem.h
              $(CC) graphem.c $(CCOPTS3)

graphema.obj: graphema.asm $(INCAD)\defs.inc $(INCAD)\mac\plan2c.mac $(INCAD)\data\memory.inc $(INCAD)\data\inout.inc $(INCAD)\data\fellow.inc $(INCAD)\data\graphem.inc
              $(ASM) graphema.asm $(ASMOPTS)

gui.obj:      gui.c $(INCCD)\defs.h $(INCCD)\gui.h
              $(CC) gui.c $(CCOPTS3)

inout.obj:    inout.c $(INCCD)\defs.h $(INCCD)\fellow.h $(INCCD)\memory.h $(INCCD)\sblast.h $(INCCD)\sound.h $(INCCD)\fonts.h $(INCCD)\graphem.h
              $(CC) inout.c $(CCOPTS2)

joymouse.obj: joymouse.c $(INCCD)\defs.h $(INCCD)\fellow.h $(INCCD)\inout.h
              $(CC) joymouse.c $(CCOPTS3)

keyboard.obj: keyboard.c $(INCCD)\defs.h $(INCCD)\fellow.h $(INCCD)\keycodes.h $(INCCD)\inout.h $(INCCD)\joymouse.h $(INCCD)\graphem.h
              $(CC) keyboard.c $(CCOPTS3)

$(OS)\keyboard.obj:   $(OS)\keyboard.c $(INCCD)\defs.h 
                $(CC) $(OS)\keyboard.c -fo=$(OS)\keyboard.obj $(CCOPTS2)

led.obj:      led.asm $(INCAD)\defs.inc
              $(ASM) led.asm $(ASMOPTS)

listtree.obj: listtree.c $(INCCD)\defs.h
              $(CC) listtree.c $(CCOPTS3)

memory.obj:   memory.c $(INCCD)\defs.h $(INCCD)\fellow.h $(INCCD)\inout.h $(INCCD)\68000.h $(INCCD)\draw.h $(INCCD)\memorya.h $(INCCD)\fhfile.h $(INCCD)\graphem.h
              $(CC) memory.c $(CCOPTS1)

memorya.obj:  memorya.asm $(INCAD)\defs.inc $(INCAD)\func\68000.inc $(INCAD)\func\inout.inc $(INCAD)\func\sound.inc $(INCAD)\func\draw.inc $(INCAD)\func\graphem.inc $(INCAD)\func\copper.inc $(INCAD)\eventid.inc $(INCAD)\data\floppy.inc $(INCAD)\data\log.inc $(INCAD)\data\sound.inc $(INCAD)\data\memory.inc
              $(ASM) memorya.asm $(ASMOPTS)

$(OS)\sblast.obj:   $(OS)\sblast.c $(INCCD)\defs.h $(INCCD)\sound.h $(INCCD)\memory.h $(INCCD)\keyboard.h $(INCCD)\sblasta.h
                $(CC) $(OS)\sblast.c -fo=$(OS)\sblast.obj $(CCOPTS2)

$(OS)\sblasta.obj:  $(OS)\sblasta.asm $(INCAD)\defs.inc $(INCAD)\data\sound.inc $(INCAD)\data\sblast.inc
		$(ASM) $(OS)\sblasta.asm -fo=$(OS)\sblasta.obj $(ASMOPTS)


sound.obj:    sound.c $(INCCD)\defs.h $(INCCD)\memory.h $(INCCD)\sounda.h
              $(CC) sound.c $(CCOPTS1)

sounda.obj:   sounda.asm $(INCAD)\defs.inc $(INCAD)\func\memory.inc $(INCAD)\func\inout.inc $(INCAD)\data\sound.inc $(INCAD)\data\memory.inc
              $(ASM) sounda.asm $(ASMOPTS) -fp5

$(OS)\various.obj:	$(OS)\various.c $(INCCD)\defs.h
	$(CC) $(OS)\various.c -fo=$(OS)\various.obj $(CCOPTS1)

$(UAE)\filesys.obj:	$(UAE)\filesys.c $(INCCD)\defs.h
	$(CC) $(UAE)\filesys.c -fo=$(UAE)\filesys.obj $(CCOPTS1)

$(UAE)\expansio.obj:	$(UAE)\expansio.c $(INCCD)\defs.h
	$(CC) $(UAE)\expansio.c -fo=$(UAE)\expansio.obj $(CCOPTS1)

$(UAE)\autoconf.obj:	$(UAE)\autoconf.c $(INCCD)\defs.h
	$(CC) $(UAE)\autoconf.c -fo=$(UAE)\autoconf.obj $(CCOPTS1)

$(UAE)\uaesupp.obj:	$(UAE)\uaesupp.c $(INCCD)\defs.h
	$(CC) $(UAE)\uaesupp.c -fo=$(UAE)\uaesupp.obj $(CCOPTS1)

$(UAE)\hardfile.obj:	$(UAE)\hardfile.c $(INCCD)\defs.h
	$(CC) $(UAE)\hardfile.c -fo=$(UAE)\hardfile.obj $(CCOPTS1)

$(UAE)\vfs.obj:	$(UAE)\vfs.c $(INCCD)\defs.h
	$(CC) $(UAE)\vfs.c -fo=$(UAE)\vfs.obj $(CCOPTS1)

wav.obj:      wav.c $(INCCD)\defs.h $(INCCD)\fellow.h
              $(CC) wav.c $(CCOPTS1)

