summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorNathan Lee <me@nwlee.tech>2026-07-27 14:51:10 -0500
committerNathan Lee <me@nwlee.tech>2026-07-27 14:51:10 -0500
commit9d970286fc93c03acbe465faf97a9bd559ab6f1b (patch)
tree4319eb91ff1168a07dbed41a38ae09a98bec5f23 /Makefile
parent7458694ea666ab108105dc24fe4ca197d634a3a8 (diff)
separate module ld from objcopy
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile6
1 files changed, 4 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index c19fe9f..e493643 100644
--- a/Makefile
+++ b/Makefile
@@ -75,6 +75,7 @@ MODULE_$(1)_ASM_SRCS = $$(wildcard $(1)/*.S)
MODULE_$(1)_C_OBJS = $$(addprefix $(OBJ_DIR)/$(1)/, $$(notdir $$(MODULE_$(1)_C_SRCS:.c=.o)))
MODULE_$(1)_ASM_OBJS = $$(addprefix $(OBJ_DIR)/$(1)/, $$(notdir $$(MODULE_$(1)_ASM_SRCS:.S=.o)))
MODULE_$(1)_OBJS = $$(MODULE_$(1)_C_OBJS) $$(MODULE_$(1)_ASM_OBJS)
+MODULE_$(1)_ELF = $(MODULE_BIN_DIR)/$(1).elf
MODULE_$(1)_KO = $(MODULE_BIN_DIR)/$(1).ko
endef
@@ -124,11 +125,12 @@ $(OBJ_DIR)/%.o: %.S# | $(OBJ_DIR)/%
$(CC) $(MODULE_CFLAGS) -c $< -o $@
define module_link_rule
-$(MODULE_BIN_DIR)/$(1).ko: $$(MODULE_$(1)_OBJS) | $(MODULE_BIN_DIR)
+$(MODULE_BIN_DIR)/$(1).elf: $$(MODULE_$(1)_OBJS) | $(MODULE_BIN_DIR)
@echo " LD $$@"
$$(LD) $$(MODULE_LD_FLAG) $$^ -o $$@
+$(MODULE_BIN_DIR)/$(1).ko: $$(MODULE_$(1)_ELF) | $(MODULE_BIN_DIR)
@echo " OBJCOPY $$@"
- $$(OBJCOPY) $$(MODULE_OBJCOPY_FLAG) $$@ $$@
+ $$(OBJCOPY) $$(MODULE_OBJCOPY_FLAG) $$^ $$@
endef
$(foreach module,$(MODULES),$(eval $(call module_link_rule,$(module))))