97 lines
2.3 KiB
Makefile
97 lines
2.3 KiB
Makefile
## 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
|