## Copyright © 2016-2017 Graham Sanderson ## Compiler CC=gdcc-cc LD=gdcc-ld MAKELIB=gdcc-makelib ## Compiler flags TARGET=--bc-target=Zandronum LFLAGS=$(TARGET) --bc-zdacs-init-delay CFLAGS=$(TARGET) LIB_STA =3000000000 MAIN_STA=3500000000 ## Sources IR=ir SRCDIR=source PK_BIN=pk/acs LIB_OUTPUTS=$(IR)/libc.ir $(IR)/libGDCC.ir LIB_BINARY=$(PK_BIN)/lithlib.bin LIB_CFLAGS=$(LIB_INIT) LIB_LFLAGS=$(LIB_INIT) --alloc-minimum Sta "" $(LIB_STA) MAIN_IR=$(IR)/main MAIN_SRC=$(SRCDIR)/Main MAIN_INC=$(SRCDIR)/Headers MAIN_SOURCES=$(wildcard $(MAIN_SRC)/*.c) MAIN_HEADERS=$(wildcard $(MAIN_INC)/*.h) MAIN_OUTPUTS=$(MAIN_SOURCES:$(MAIN_SRC)/%.c=$(MAIN_IR)/%.ir) MAIN_BINARY=$(PK_BIN)/lithmain.bin MAIN_CFLAGS=-i$(MAIN_INC) $(MAIN_INIT) -Dnull=NULL --alloc-Aut 2150 MAIN_LFLAGS=-llithlib $(MAIN_INIT) --alloc-minimum Sta "" $(MAIN_STA) DECOMPAT_INPUTS=$(MAIN_INC)/lith_weapons.h \ $(MAIN_INC)/lith_pdata.h \ $(MAIN_INC)/lith_wdata.h \ $(MAIN_INC)/lith_lognames.h \ $(MAIN_INC)/lith_upgradenames.h \ $(MAIN_INC)/lith_scorenums.h 7Z_ARGS=-xr!.gitignore -xr!*.bat -xr!*.dbs -xr!*.wad.b* -xr!dummy.txt -tzip ## Targets .PHONY: bin dec clean text pkg all: dec text bin bin: $(LIB_BINARY) $(MAIN_BINARY) source/Headers/lith_weapons.h source/Main/p_weaponinfo.c: wepc.rb source/Weapons.txt @echo WEPC @./wepc.rb source/Weapons.txt,source/Headers/lith_weapons.h,source/Main/p_weaponinfo.c dec: decompat.rb $(DECOMPAT_INPUTS) @echo DEC @./decompat.rb $(DECOMPAT_INPUTS) text: compilefs.rb @echo TEXT @cd filedata; ../compilefs.rb _Directory.txt clean: @echo CLEAN @rm -f $(MAIN_OUTPUTS) $(LIB_OUTPUTS) pkg: Lithium.pk3 Lithium.pk3: $(wildcard pk/* pkdata/* pksrc/*) 7za u $(7Z_ARGS) -- $@ "./pk/*" 7za u $(7Z_ARGS) -- $@ "./pkdata/*" 7za u $(7Z_ARGS) -- $@ "./pksrc/*" ## .ir -> .bin $(LIB_BINARY): $(LIB_OUTPUTS) @echo LD $@ @$(LD) $(LFLAGS) $(LIB_LFLAGS) $^ -o $@ $(MAIN_BINARY): $(MAIN_OUTPUTS) @echo LD $@ @$(LD) $(LFLAGS) $(MAIN_LFLAGS) $^ -o $@ ## .c -> .ir $(MAIN_IR)/%.ir: $(MAIN_SRC)/%.c $(MAIN_HEADERS) @echo CC $< @$(CC) $(CFLAGS) $(MAIN_CFLAGS) -DFileHash=$(shell ./strh.rb $<) -c $< -o $@ $(IR)/libc.ir: @echo MAKELIB $@ @$(MAKELIB) $(TARGET) $(LIB_CFLAGS) -c libc -o $@ $(IR)/libGDCC.ir: @echo MAKELIB $@ @$(MAKELIB) $(TARGET) $(LIB_CFLAGS) -c libGDCC -o $@ ## EOF