marrub
/
Lithia
Archived
1
0
Fork 0
This repository has been archived on 2023-06-17. You can view files and clone it, but cannot push or open issues/pull-requests.
Lithia/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