# Undefine this next line for release build
!define RELEASE

# Undefine this next line to use Causeway in all EXEs
#!define USE_CAUSEWAY

SRCDIR = SRC
OBJDIR = OBJ
LIBDIR = LIB
BINDIR = BIN


.cpp.obj: .AUTODEPEND
!ifdef RELEASE
       	wpp386 -we -wx -4r -mf -d1 -s -oimrt -oe=3 -dRELEASE $[@ /fo=$(OBJDIR)\$^&
!else
       wpp386 -we -wx -4r -mf -d2 $[@ /fo=$(OBJDIR)\$^&
!endif


.c.obj: .AUTODEPEND
!ifdef RELEASE
       	wcc386 -we -wx -4r -mf -d1 -oimrt -oe=3 -dRELEASE $[@ /fo=$(OBJDIR)\$^&
!else
	wcc386 -we -wx -4r -mf -d2 $[@ /fo=$(OBJDIR)\$^&
!endif


.asm.obj: .AUTODEPEND
!ifdef RELEASE
	tasm -mx -m2 -q $[@ $(OBJDIR)\$^&
!else
       tasm -mx -m2 -zi $[@ $(OBJDIR)\$^&
!endif


# Specify the location of dependencies
.exe : 	$(BINDIR)
.obj : 	$(OBJDIR)
.lib :	$(LIBDIR)
.c : 	$(SRCDIR)
.cpp : 	$(SRCDIR)
.h : 	$(SRCDIR)
.asm :	$(SRCDIR)


TOOLOBJS = &
	crc32.obj &
	debug4g.obj &
	encrypt.obj &
	error.obj &
	getopt.obj &
	inifile.obj &
	iob.obj &
	lbm.obj &
	misc.obj &
	mouse.obj &
	pcx.obj &
	pqueue.obj &
	protect.obj &
	qheap.obj &
	resource.obj &
	textio.obj &
	timer.obj &
	trig.obj &
	key.obj &
	gfx.obj &
	dosread.obj &


BARFOBJS = &
	barf.obj &


QBRANDOBJS = &
	qbrand.obj &

3DBRANDOBJS = &
	3dbrand.obj &

GRABQBM = &
	grabqbm.obj &

GRABFONT = &
	grabfont.obj &

PTEST = &
	ptest.obj &


dummy : qtools.lib barf.exe qbrand.exe 3dbrand.exe grabqbm.exe grabfont.exe ptest.exe


qtools.lib : $(TOOLOBJS) qtools.lnk
	wlib $(LIBDIR)\$^. @$^&.lnk


qtools.lnk : makefile
	%create $^@
        for %i in ($(TOOLOBJS)) do %append $^@ +-$(OBJDIR)\%i


barf.exe : $(BARFOBJS) qtools.lib barf.lnk
	wlink @$^&

qbrand.exe : $(QBRANDOBJS) qtools.lib qbrand.lnk
	wlink @$^&

3dbrand.exe : $(3DBRANDOBJS) qtools.lib 3dbrand.lnk
	wlink @$^&

grabqbm.exe : $(GRABQBM) qtools.lib grabqbm.lnk
	wlink @$^&

grabfont.exe: $(GRABFONT) qtools.lib grabfont.lnk
	wlink @$^&

ptest.exe: $(PTEST) qtools.lib ptest.lnk
	wlink @$^&


barf.lnk : makefile
	%create $^@
	%append $^@ NAME $(BINDIR)\$^&.EXE
        %append $^@ DEBUG ALL
        for %i in ($(BARFOBJS)) do %append $^@ FILE $(OBJDIR)\%i
        %append $^@ FILE $(LIBDIR)\qtools.lib
!ifdef USE_CAUSEWAY
        %append $^@ SYSTEM CAUSEWAY
!endif
        %append $^@ OPTION
	%append $^@   VERBOSE,
	%append $^@   REDEFSOK,
	%append $^@   STACK=8K,
	%append $^@   MAP=$(OBJDIR)\$^&.map,


qbrand.lnk : makefile
	%create $^@
	%append $^@ NAME $(BINDIR)\$^&.EXE
        %append $^@ DEBUG ALL
        for %i in ($(QBRANDOBJS)) do %append $^@ FILE $(OBJDIR)\%i
        %append $^@ FILE $(LIBDIR)\qtools.lib
!ifdef USE_CAUSEWAY
        %append $^@ SYSTEM CAUSEWAY
!endif
        %append $^@ OPTION
	%append $^@   VERBOSE,
	%append $^@   REDEFSOK,
	%append $^@   STACK=8K,
	%append $^@   MAP=$(OBJDIR)\$^&.map,

3dbrand.lnk : makefile
	%create $^@
	%append $^@ NAME $(BINDIR)\$^&.EXE
        %append $^@ DEBUG ALL
        for %i in ($(3DBRANDOBJS)) do %append $^@ FILE $(OBJDIR)\%i
        %append $^@ FILE $(LIBDIR)\qtools.lib
!ifdef USE_CAUSEWAY
        %append $^@ SYSTEM CAUSEWAY
!endif
        %append $^@ OPTION
	%append $^@   VERBOSE,
	%append $^@   REDEFSOK,
	%append $^@   STACK=8K,
	%append $^@   MAP=$(OBJDIR)\$^&.map,

grabqbm.lnk : makefile
	%create $^@
	%append $^@ NAME $(BINDIR)\$^&
        %append $^@ DEBUG ALL
        for %i in ($(GRABQBM)) do %append $^@ FILE $(OBJDIR)\%i
	%append $^@ FILE \helix32\hgd13.obj
	%append $^@ LIB qtools.lib
	%append $^@ LIB engine.lib

!ifdef USE_CAUSEWAY
        %append $^@ SYSTEM CAUSEWAY
!endif
        %append $^@ OPTION
	%append $^@   VERBOSE,
	%append $^@   REDEFSOK,
	%append $^@   STACK=8K,
	%append $^@   MAP=$(OBJDIR)\$^&.map,

grabfont.lnk : makefile
	%create $^@
	%append $^@ NAME $(BINDIR)\$^&
        %append $^@ DEBUG ALL
        for %i in ($(GRABFONT)) do %append $^@ FILE $(OBJDIR)\%i
	%append $^@ LIB qtools.lib
!ifdef USE_CAUSEWAY
        %append $^@ SYSTEM CAUSEWAY
!endif
        %append $^@ OPTION
	%append $^@   VERBOSE,
	%append $^@   REDEFSOK,
	%append $^@   STACK=8K,
	%append $^@   MAP=$(OBJDIR)\$^&.map,

ptest.lnk : makefile
	%create $^@
	%append $^@ NAME $(BINDIR)\$^&
        %append $^@ DEBUG ALL
        for %i in ($(PTEST)) do %append $^@ FILE $(OBJDIR)\%i
	%append $^@ LIB qtools.lib
!ifdef USE_CAUSEWAY
        %append $^@ SYSTEM CAUSEWAY
!endif
        %append $^@ OPTION
	%append $^@   VERBOSE,
	%append $^@   REDEFSOK,
	%append $^@   STACK=8K,
	%append $^@   MAP=$(OBJDIR)\$^&.map,

























