summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAetias <aetias@outlook.com>2024-06-20 18:47:12 +0200
committerAetias <aetias@outlook.com>2024-06-20 18:47:12 +0200
commitfa44ec1ca44569869e67cc3559a1b1658bf0de78 (patch)
tree42e81e9e44560ed967cbd38bba87fd382eb185a8
parent536e7af2cbd9edd54abde545c1e86e6ff304fc8b (diff)
Build context files alongside objects
-rw-r--r--Makefile20
1 files changed, 13 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index 90624309..bf37505a 100644
--- a/Makefile
+++ b/Makefile
@@ -27,11 +27,13 @@ ASSETS_TXT := assets.txt
ASM_FILES := $(shell find asm -name *.s)
CXX_FILES := $(shell find src -name *.cpp) $(shell find libs -name *.cpp)
-C_FILES := $(shell find src -name *.c) $(shell find libs -name *.c)
-ASM_OBJS = $(ASM_FILES:%.s=$(TARGET_DIR)/%.s.o)
-ASM_INCS = $(ASM_FILES:%.s=%.inc)
-CXX_OBJS = $(CXX_FILES:%.cpp=$(TARGET_DIR)/%.cpp.o)
-C_OBJS = $(C_FILES:%.c=$(TARGET_DIR)/%.c.o)
+C_FILES := $(shell find src -name *.c) $(shell find libs -name *.c)
+ASM_OBJS = $(ASM_FILES:%.s=$(TARGET_DIR)/%.s.o)
+ASM_INCS = $(ASM_FILES:%.s=%.inc)
+CXX_OBJS = $(CXX_FILES:%.cpp=$(TARGET_DIR)/%.cpp.o)
+C_OBJS = $(C_FILES:%.c=$(TARGET_DIR)/%.c.o)
+CXX_CTXS = $(CXX_FILES:%.cpp=$(TARGET_DIR)/%.cpp.ctx)
+C_CTXS = $(C_FILES:%.c=$(TARGET_DIR)/%.c.ctx)
OV_BINS := $(wildcard $(TARGET_DIR)/overlays/*.bin)
OV_LZS = $(OV_BINS:%.bin=%.lz)
@@ -124,16 +126,20 @@ $(ASM_OBJS): $(TARGET_DIR)/%.o: %
mkdir -p $(dir $@)
LM_LICENSE_FILE=$(MW_LICENSE) $(WINE) $(MW_ASM) $(ASM_FLAGS) $< -o $@
-$(CXX_OBJS): $(TARGET_DIR)/%.o: %
+$(CXX_OBJS): $(TARGET_DIR)/%.o: % $(TARGET_DIR)/%.ctx
mkdir -p $(dir $@)
LM_LICENSE_FILE=$(MW_LICENSE) $(WINE) $(MW_CC) $(CC_FLAGS) $(CXX_FLAGS) $< -o $@
$(TOOLS_DIR)/elf/elfkill -s $< -e $@
-$(C_OBJS): $(TARGET_DIR)/%.o: %
+$(C_OBJS): $(TARGET_DIR)/%.o: % $(TARGET_DIR)/%.ctx
mkdir -p $(dir $@)
LM_LICENSE_FILE=$(MW_LICENSE) $(WINE) $(MW_CC) $(CC_FLAGS) $(C_FLAGS) $< -o $@
$(TOOLS_DIR)/elf/elfkill -s $< -e $@
+$(CXX_CTXS) $(C_CTXS): $(TARGET_DIR)/%.ctx: %
+ mkdir -p $(dir $@)
+ $(PYTHON) $(TOOLS_DIR)/m2ctx.py -f $@ $<
+
.PHONY: link
link: lcf $(ASM_OBJS) $(CXX_OBJS) $(C_OBJS)
cd $(TARGET_DIR) && LM_LICENSE_FILE=$(MW_LICENSE) $(WINE) $(MW_LD) $(LD_FLAGS) $(LCF_FILE) @$(OBJS_FILE)