diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-09 16:09:08 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-09 16:09:08 -0400 |
commit | aa6e5b3edc83c5223199fc52e8d92f2f0f4c338e (patch) | |
tree | 3249d3aef1192d359450b73ac3a8339b6e05ddc3 /arm9/Makefile | |
parent | d23c7d311ba5f7b87ac111e4e66aec1674afc0ea (diff) |
Module 01 static initializer; split module 04 ro/data
Diffstat (limited to 'arm9/Makefile')
-rw-r--r-- | arm9/Makefile | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/arm9/Makefile b/arm9/Makefile index bc8c8491..16fd7371 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -23,9 +23,9 @@ endif ifeq ($(OS),Windows_NT) EXE := .exe -WINE := +WINE := else -EXE := +EXE := WINE := wine endif @@ -49,12 +49,16 @@ LD_TEMPLATE := ARM9-TS.lcf.template SRC_DIRS := src lib lib/src $(wildcard modules/*/src) ASM_DIRS := asm data files $(wildcard modules/*/asm) -C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) -S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s)) +C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) +CXX_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.cpp)) +S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s)) + +C_OBJS = $(C_FILES:%.c=$(BUILD_DIR)/%.o) +CXX_OBJS = $(CXX_FILES:%.cpp=$(BUILD_DIR)/%.o) +S_OBJS = $(S_FILES:%.s=$(BUILD_DIR)/%.o) # Object files -O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \ - $(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o)) \ +O_FILES := $(C_OBJS) $(CXX_OBJS) $(S_OBJS) # Overlay modules # FIXME: lcf doesn't like this @@ -83,6 +87,7 @@ MAKELSF_FLAGS := -DCONST_34=0x34 -DCONST_3F=0x3F AS = $(WINE) $(MWASMARM) CC = $(WINE) $(MWCCARM) +CXX = $(WINE) $(MWCCARM) CPP := cpp -P LD = $(WINE) $(MWLDARM) AR := $(CROSS)ar @@ -92,6 +97,7 @@ OBJCOPY := $(CROSS)objcopy # ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o ASFLAGS = -proc arm5te -i .. CFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -ir ../include -ir ../include-mw -ir lib/include -interworking -DFS_IMPLEMENT -enum int +CXXFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -ir ../include -ir ../include-mw -ir lib/include -interworking -DFS_IMPLEMENT -enum int LDFLAGS = -map -nodead -w off -proc v5te -interworking -map -symtab -m _start ####################### Other Tools ######################### @@ -157,15 +163,18 @@ build/src/FUN_020910A4.o: MWCCVERSION = 1.2/sp2p3 ####################### Everything Else ###################### ifeq (,$(NODEP)) -$(BUILD_DIR)/%.o: dep = $(shell $(SCANINC) -I ../include -I ../include-mw -I lib/include $*.[cs]) +$(BUILD_DIR)/%.o: dep = $(shell $(SCANINC) -I ../include -I ../include-mw -I lib/include $(filter $*.c,$(C_FILES)) $(filter $*.cpp,$(CXX_FILES)) $(filter $*.s,$(S_FILES))) else $(BUILD_DIR)/%.o: dep := endif -$(BUILD_DIR)/%.o: %.c $$(dep) +$(C_OBJS): $(BUILD_DIR)/%.o: %.c $$(dep) $(CC) -c $(CFLAGS) -o $@ $< -$(BUILD_DIR)/%.o: %.s $$(dep) +$(CXX_OBJS): $(BUILD_DIR)/%.o: %.cpp $$(dep) + $(CXX) -c $(CXXFLAGS) -o $@ $< + +$(S_OBJS): $(BUILD_DIR)/%.o: %.s $$(dep) $(AS) $(ASFLAGS) -o $@ $< $(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) $(LD_TEMPLATE) undefined_syms.txt macros.lcf.inc |