hostile-takeover/game/makefile
2014-07-06 17:47:28 -07:00

149 lines
4.4 KiB
Makefile

OUTDIR=
PRC=Warfare.prc
CC = m68k-palmos-gcc
CPP_DEFINES_GLOBAL=-fcheck-new -D__CPU_68K
CPP_INCS=-I ../inc -I palm
TOOLDIR=../bin
TARGETDEFINED=0
PRC_VERSION=12
BUILD-PRC-FLAGS=
ifdef MAP
MAPFLAGS=-Xlinker -Map -Xlinker ht.map
endif
# Debug is default
ifdef REL
CPP_DEBUG=
else
CPP_DEBUG=-DDEBUG -g
BUILD-PRC-FLAGS=
endif
ifdef ESD_BUILD
ifdef MERGE
BUILD-PRC-FLAGS=--backup --copy-prevention --version-number $(PRC_VERSION)
else
BUILD-PRC-FLAGS=--backup --version-number $(PRC_VERSION)
endif
CPP_DEFINES=$(CPP_DEFINES_GLOBAL) -DESD_BUILD
ifdef REL
OUTDIR=Palm_ESD_Release
else
OUTDIR=Palm_ESD_Debug
endif
TARGETDEFINED=1
endif
ifdef RETAIL_BUILD
BUILD-PRC-FLAGS=--backup --copy-prevention --version-number $(PRC_VERSION)
CPP_DEFINES=$(CPP_DEFINES_GLOBAL) -DRETAIL_BUILD
ifdef REL
OUTDIR=Palm_Retail_Release
else
OUTDIR=Palm_Retail_Debug
endif
TARGETDEFINED=1
endif
ifdef PROFILE
CPP_DEFINES=$(CPP_DEFINES_GLOBAL) -DDEV_BUILD
CPP_DEBUG=-mdebug-labels
OUTDIR=Palm_Profile
TARGETDEFINED=1
endif
# DEV_BUILD is default
ifeq ($(TARGETDEFINED),0)
DEV_BUILD=1
endif
ifdef DEV_BUILD
CPP_DEFINES=$(CPP_DEFINES_GLOBAL) -DDEV_BUILD
ifdef REL
OUTDIR=Palm_Release
else
OUTDIR=Palm_Debug
endif
TARGETDEFINED=1
endif
# Composite the flags together
CFLAGS=-fvtable-thunks -Os -DPIL $(CPP_DEFINES) $(CPP_DEBUG) $(CPP_INCS) -fno-rtti -fno-exceptions
CFLAGSARM=-Os -DPIL $(CPP_DEFINES) $(CPP_INCS) -fno-rtti -fno-exceptions
OBJS=game.o main.o host.o misc.o bitmap.o packfile.o rip.o form.o ini.o \
misccontrols.o tests.o timer.o event.o font.o ht-sections.o 68k.o display.o mqdisplay.o \
GameObjects.o Level.o Simulation.o tilemap.o StateMachine.o Animation.o \
fogmap.o SRInfantry.o LRInfantry.o terrainmap.o HRC.o \
Reactor.o Processor.o Miner.o Headquarters.o Research.o Radar.o VTS.o \
MobileBuilder.o Tank.o SpInfantry.o Overmind.o Builder.o MobileUnit.o \
memmgr.o tbitmap.o tbltcode.o compression.o decompress.o \
cachemgr.o copybits.o Multiplayer.o comm.o Player.o \
TransportMgr.o Warehouse.o Tower.o MobileHQ.o Unit.o Struct.o SimUI.o \
pwm2.o soundmgr.o pwmsounddev.o sounddev.o pa1lib.o pa1sounddev.o pa1encode.o \
os5sounddev.o updatemap.o mapdraw824.o mapdraw816.o updatescreen824.o updatescreen816.o blt.o \
GameOptions.o InputUI.o formmgr.o updatescreen416.o fill.o thunks.o armthunks.o loadsave.o savegame.o \
triggermgr.o TriggerConditions.o TriggerActions.o UnitGroupMgr.o BuildMgr.o \
RawBitmap.o Shell.o Ecom.o alertcontrol.o stringtable.o selection.o Andy.o \
Artillery.o Replicator.o Help.o CutScene.o drm.o PalmPins.o twdisplay.o
all:
make $(OUTDIR)/$(PRC)
clean:
rm -f $(OUTDIR)/*
$(OUTDIR)/$(PRC): $(OUTDIR)/ht palm/ht.def palm/ht.rcp $(OUTDIR)/tAIB03e8.bin $(OUTDIR)/armcode
cp -f palm/ht.def $(OUTDIR)/ht.def
cd $(OUTDIR) && build-prc $(BUILD-PRC-FLAGS) -o $(PRC) ht.def ht armcode *.bin && cp $(PRC) "Warfare Incorporated.prc" && cd ..
ifdef MERGE
cd $(OUTDIR) && ../$(TOOLDIR)/packpdb2 -m foo.prc $(PRC) ..\\$(MERGE) ..\\htsfx.pdb && mv foo.prc "Warfare Incorporated_merged.prc" && cd ..
endif
$(OUTDIR)/tAIB03e8.bin: palm/ht.rcp palm/resource.h
rm -f $(OUTDIR)/*.bin
ifdef MERGE
echo $(MERGE) > $(OUTDIR)/FILR0000.bin
endif
pilrc $(CPP_INCS) -V palm/ht.rcp $(OUTDIR)
$(OUTDIR)/ht-sections.o: $(OUTDIR)/ht-sections.s
$(CC) -c $(OUTDIR)/ht-sections.s -o $(OUTDIR)/ht-sections.o
$(OUTDIR)/ht-sections.s $(OUTDIR)/ht-sections.ld: palm/ht.def
cd $(OUTDIR) && m68k-palmos-multigen ../palm/ht.def
$(OUTDIR)/ht: $(OBJS:%=$(OUTDIR)/%) $(OUTDIR)/ht-sections.ld
$(CC) $(CFLAGS) -lnoexcept -o $(OUTDIR)/ht $(OBJS:%=$(OUTDIR)/%) libgcc.a $(OUTDIR)/ht-sections.ld $(MAPFLAGS)
$(OUTDIR)/%.o: palm/%.s
$(CC) -c palm/$(*F).s -o $@
$(OUTDIR)/packfile.o: packfile.cpp packfile.h
$(CC) $(CFLAGS) -c packfile.cpp -o $(OUTDIR)/packfile.o
$(OUTDIR)/misc.o: misc.cpp ht.h res.h palm/htplatform.h license.h
$(CC) $(CFLAGS) -c misc.cpp -o $(OUTDIR)/misc.o
$(OUTDIR)/%.o: %.cpp ht.h res.h palm/htplatform.h
$(CC) $(CFLAGS) -c $(*F).cpp -o $@
$(OUTDIR)/armcode: palm/armcode.cpp palm/arm.h res.h miscgraphics.cpp
arm-palmos-gcc $(CFLAGSARM) -c palm/armcode.cpp -o $(OUTDIR)/armcode.o
arm-palmos-gcc -nostartfiles -o $(OUTDIR)/armcode $(OUTDIR)/armcode.o
$(OUTDIR)/%.o: palm/%.cpp ht.h res.h palm/htplatform.h
$(CC) $(CFLAGS) -c palm/$(*F).cpp -o $@
$(OUTDIR)/%.o: palm/%.c ht.h res.h palm/htplatform.h
$(CC) $(CFLAGS) -c palm/$(*F).c -o $@
$(OUTDIR)/rip.o: ../inc/rip.cpp
$(CC) $(CFLAGS) -c ../inc/rip.cpp -o $(OUTDIR)/rip.o