$(foreach prog,$(bin_PROGRAMS),$(eval $(call ELF_template,$(prog),$(USER_BIN_DIR))))
$(foreach prog,$(test_PROGRAMS),$(eval $(call ELF_template,$(prog),$(USER_TESTS_DIR))))
+ifneq ($(ELF_FILE_LDSCRIPT),)
binary-pass-local: $(bin_PROGRAMS:%=$(USER_BIN_DIR)/%.elf) $(test_PROGRAMS:%=$(USER_TESTS_DIR)/%.elf)
+binary-pass-local: $(kernel_MODULES:%=$(KERN_MODULES_DIR)/%$(KERN_LINK_SUFFIX))
+endif
-binary-pass-local: $(kernel_MODULES:%=$(KERN_MODULES_DIR)/%$(KERN_LINK_SUFFIX)) $(kernel_MODULES:%=$(KERN_MODULES_DIR)/lib%.ka)
+binary-pass-local: $(kernel_MODULES:%=$(KERN_MODULES_DIR)/lib%.ka)
$(foreach prog,$(bin_PROGRAMS),$(eval $(call PROGBUILTIN_template,$(prog),$(USER_REGISTRY_DIR),$(USER_REGISTRY_DIR))))
CFLAGS += -I$(SOURCES_DIR)
CFLAGS += -I$(INCLUDE_DIR)
+ELF_FILE_LDSCRIPT?=$(wildcard $(NUTTX_EXPORT)/build/gnu-elf.ld)
+
LOADLIBES += -L$(LIB_DIR)
LOADLIBES += $(lib_LOADLIBES:%=-l%)
$(2)/$(1).elf: $$($(1)_OBJS)
@$(QUIET_CMD_ECHO) " ELF $$@"
$(Q) $(LINK) \
- -r -e main -T $(NUTTX_EXPORT)/build/gnu-elf.ld \
+ -r -e main -T $(ELF_FILE_LDSCRIPT) \
-Map $(1).elf.map \
$$($(1)_OBJS) $$($(1)_MOREOBJS) $$(LOADLIBES) $$($(1)_LIBS:%=-l%) \
-o $$@
@echo "$(2)/$(1).elf: \\" >$(OBJS_DIR)/$(1).elf.d
- @echo " $(NUTTX_EXPORT)/build/gnu-elf.ld \\" >>$(OBJS_DIR)/$(1).elf.d
+ @echo " $(ELF_FILE_LDSCRIPT) \\" >>$(OBJS_DIR)/$(1).elf.d
@$(SED4OMK) -n -e 's|^LOAD \(.*\)$$$$| \1 \&|p' $(OBJS_DIR)/$(1).elf.map|tr '&' '\134' >>$(OBJS_DIR)/$(1).elf.d
@echo >>$(OBJS_DIR)/$(1).elf.d
endef
$(2)/$(1)$(KERN_LINK_SUFFIX): $$($(1)_OBJS)
@$(QUIET_CMD_ECHO) " LD [K] $$@"
$(Q) $(LINK) \
- -r -e module_initialize -T $(NUTTX_EXPORT)/build/gnu-elf.ld \
+ -r -e module_initialize -T $(ELF_FILE_LDSCRIPT) \
-Map $(1)$(KERN_LINK_SUFFIX).map \
$$($(1)_OBJS) $$($(1)_MOREOBJS) $$(LOADLIBES) $$($(1)_LIBS:%=-l%) \
-o $$@
@echo "$(2)/$(1)$(KERN_LINK_SUFFIX): \\" >$(OBJS_DIR)/$(1)$(KERN_LINK_SUFFIX).d
- @echo " $(NUTTX_EXPORT)/build/gnu-elf.ld \\" >>$(OBJS_DIR)/$(1)$(KERN_LINK_SUFFIX).d
+ @echo " $(ELF_FILE_LDSCRIPT) \\" >>$(OBJS_DIR)/$(1)$(KERN_LINK_SUFFIX).d
@$(SED4OMK) -n -e 's|^LOAD \(.*\)$$$$| \1 \&|p' $(OBJS_DIR)/$(1)$(KERN_LINK_SUFFIX).map|tr '&' '\134' >>$(OBJS_DIR)/$(1)$(KERN_LINK_SUFFIX).d
@echo >>$(OBJS_DIR)/$(1)$(KERN_LINK_SUFFIX).d