## Copyright © 2017 Project Golan, all rights reserved. GDCC_CC=gdcc-cc GDCC_LD=gdcc-ld GDCC_MAKELIB=gdcc-makelib SRC=src INC=inc CODEDEFS=data/codedefs BIN=bin IR=ir MAPSRC=maps MAPBIN=data/maps FOLDERS=$(CODEDEFS) $(BIN) $(IR) $(MAPBIN) CFLAGS += -O2 -g -c LFLAGS += -O2 -g -lm GDCC_TARGET=--bc-target=Doominati GDCC_LFLAGS += $(GDCC_TARGET) GDCC_CFLAGS += $(GDCC_TARGET) --alloc-Aut=4194304 -c MAPS_SOURCES=$(wildcard $(MAPSRC)/*.gmf9) MAPS_OUTPUTS=$(MAPS_SOURCES:$(MAPSRC)/%.gmf9=$(MAPBIN)/%.gmf0) GAME_SOURCES=$(wildcard $(SRC)/g_*.c) GAME_HEADERS=$(wildcard $(SRC)/g_*.h) GAME_OUTPUTS=$(GAME_SOURCES:$(SRC)/g_%.c=$(IR)/g_%.ir) GAME_BINARYS=$(CODEDEFS)/eikyo-game.bin MAIN_SOURCES=$(SRC)/main.c MAIN_OUTPUTS=$(MAIN_SOURCES:$(SRC)/%.c=$(IR)/%.ir) MAIN_BINARYS=$(CODEDEFS)/eikyo-main.bin MISC_SOURCES=$(wildcard $(SRC)/m_*.c) MISC_HEADERS=$(wildcard $(SRC)/m_*.h) MISC_OUTPUTS=$(MISC_SOURCES:$(SRC)/m_%.c=$(IR)/m_%.ir) MISC_BINARYS=$(CODEDEFS)/eikyo-misc.bin MISC_LIBOUTS=$(MISC_SOURCES:$(SRC)/%.c=$(BIN)/%.o) MISC_LIBRARY=$(BIN)/eikyo-misc.o RNDR_SOURCES=$(wildcard $(SRC)/r_*.c) RNDR_HEADERS=$(wildcard $(SRC)/r_*.h) RNDR_OUTPUTS=$(RNDR_SOURCES:$(SRC)/r_%.c=$(IR)/r_%.ir) RNDR_BINARYS=$(CODEDEFS)/eikyo-render.bin GOL5_SOURCES=$(SRC)/golan5.c GOL5_OUTPUTS=$(GOL5_SOURCES:$(SRC)/%.c=$(BIN)/%.o) GOL5_BINARYS=$(BIN)/golan5 LIBC_OUTPUTS=$(IR)/libc.ir $(IR)/libGDCC.ir LIBC_BINARYS=$(CODEDEFS)/stdlib.bin .PHONY: clean .SECONDARY: $(MISC_LIBOUTS) all: $(FOLDERS) $(LIBC_BINARYS) $(GAME_BINARYS) $(MAIN_BINARYS) $(MISC_BINARYS) $(RNDR_BINARYS) $(MAPS_OUTPUTS) $(GOL5_BINARYS): $(GOL5_OUTPUTS) $(GAME_BINARYS): $(GAME_OUTPUTS) $(MAIN_BINARYS): $(MAIN_OUTPUTS) $(MISC_BINARYS): $(MISC_OUTPUTS) $(RNDR_BINARYS): $(RNDR_OUTPUTS) $(LIBC_BINARYS): $(LIBC_OUTPUTS) $(FOLDERS): mkdir -p $@ clean: rm -f $(addsuffix /*,$(FOLDERS)) $(MAPBIN)/%.gmf0: $(MAPSRC)/%.gmf9 $(GOL5_BINARYS) $(GOL5_BINARYS) $< $@ $(BIN)/%: $(MISC_LIBOUTS) $(CC) $(LFLAGS) -o $@ $^ $(BIN)/%.o: $(SRC)/%.c $(MISC_HEADERS) $(CC) $(CFLAGS) -o $@ $< $(CODEDEFS)/%.bin: $(GDCC_LD) $(GDCC_LFLAGS) -o $@ $^ $(IR)/%.ir: $(SRC)/%.c $(GAME_HEADERS) $(MISC_HEADERS) $(RNDR_HEADERS) $(GDCC_CC) $(GDCC_CFLAGS) -o $@ $< $(LIBC_OUTPUTS): $(GDCC_MAKELIB) $(GDCC_CFLAGS) -o $@ $(basename $(@F)) ## EOF