## Makefile for AOK Trigger Studio by David Tombs

#Check build parameters (CFG and GAME)

!IF "$(CFG)" == ""
!MESSAGE No configuration specified. Defaulting to Debug.
!MESSAGE
CFG=Debug
!ENDIF

!IF "$(GAME)" == ""
!MESSAGE No game specified. Defaulting to aok.
!MESSAGE
GAME=aok
!ENDIF

INTDIR=.\build

ZDLL=zdll.lib

#Release build
!IF  "$(CFG)" == "Release"

OUTDIR=.
CPPFLAGS_OPT = -MD -O2
LINK32_FLAGS = /release /incremental:no

#Debug build
!ELSEIF  "$(CFG)" == "Debug"

OUTDIR=.\Debug
CPPFLAGS_DEBUG = -MDd -D "_DEBUG" -FAs -Fa"asm/" -Zi -Fd"$(OUTDIR)\\"
LINK32_FLAGS = /debug /pdbtype:sept /pdb:"$(OUTDIR)\vc60.pdb"
RFLAGS_DEBUG = /D "_DEBUG"
#ZDLL=zlib1d.lib

!ELSE

!ERROR Invalid configuration "$(CFG)" specified.

!ENDIF

## Game switch
!IF "$(GAME)" == "aok"

EXENAME = $(OUTDIR)\aokts.exe
GAME_FLAGS = -D "GAME=1"

!ELSEIF "$(GAME)" == "swgb"

EXENAME = $(OUTDIR)\swgbts.exe
GAME_FLAGS = -D "GAME=2"

!ENDIF

LINK_LIBS = $(ZDLL) user32.lib comdlg32.lib comctl32.lib advapi32.lib gdi32.lib libexpat.lib
CPPFLAGS = -c $(CPPFLAGS_DEBUG) $(CPPFLAGS_OPT) $(GAME_FLAGS) \
	-Fo"$(INTDIR)\\" -D WINVER=0x0400 -EHsc -W3
RFLAGS = $(RFLAGS_DEBUG)

LINK_OBJS = \
	$(INTDIR)/aokts.obj \
	$(INTDIR)/datatypes.obj \
	$(INTDIR)/editors.obj \
	$(INTDIR)/scen.obj \
	$(INTDIR)/scen_const.obj \
	$(INTDIR)/trigedit.obj \
	$(INTDIR)/ecedit.obj \
	$(INTDIR)/utilui.obj \
	$(INTDIR)/zlibfile.obj \
	$(INTDIR)/unitedit.obj \
	$(INTDIR)/trigger.obj \
	$(INTDIR)/utilio.obj \
	$(INTDIR)/settings.obj \
	$(INTDIR)/utilunit.obj \
	$(INTDIR)/mapview.obj \
	$(INTDIR)/esdata.obj

#Targets

all: $(EXENAME)
	@echo Build complete.

#Build targets

$(OUTDIR)\aokts.exe: $(LINK_OBJS) $(INTDIR)\aokts.res
	link.exe $(LINK32_FLAGS) /out:"$@" $(LINK_LIBS) $(LINK_OBJS) $(INTDIR)\aokts.res

$(OUTDIR)\swgbts.exe: $(LINK_OBJS) $(INTDIR)\swgbts.res
	link.exe $(LINK32_FLAGS) /out:"$@" $(LINK_LIBS) $(LINK_OBJS) $(INTDIR)\swgbts.res

clean:
	del build\*.* /q

#Source targets: yes, this is a stupid version of a batch file.

source.zip: *.cpp *.h *.rc src_notes.txt MAKEFILE makefile.dep res\aokts_big.bmp res\aokts.ico
	"C:\Program Files\7-zip\7z" u $@ $**

!INCLUDE makefile.dep

#Inference Rules

.cpp{$(INTDIR)}.obj:
	$(CPP) $(CPPFLAGS) $<

.rc{$(INTDIR)}.res:
	$(RC) $(RFLAGS) /fo $@ $<
