mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-25 07:00:39 +01:00
make: Improve dependency tracking for exe targets
- Add wildcarded linker scripts to dependencies - Run flash-push only on current hex file Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
9c773838c7
commit
5210ba2acf
4 changed files with 23 additions and 19 deletions
|
|
@ -280,7 +280,8 @@ ifeq ($(TARGET_TRIPLET),arm-none-eabi)
|
||||||
PROJECT_LDFLAGS += -nostartfiles
|
PROJECT_LDFLAGS += -nostartfiles
|
||||||
|
|
||||||
# garbage collect unused input sections
|
# garbage collect unused input sections
|
||||||
PROJECT_LDFLAGS += -Xlinker --gc-sections
|
PROJECT_LDFLAGS += -Xlinker --gc-sections
|
||||||
|
PROJECT_LDFLAGS += -Xlinker --print-gc-sections
|
||||||
|
|
||||||
# create map file
|
# create map file
|
||||||
PROJECT_LDFLAGS += -Wl,-Map,"$(EXE_MAP)"
|
PROJECT_LDFLAGS += -Wl,-Map,"$(EXE_MAP)"
|
||||||
|
|
@ -367,16 +368,6 @@ ifeq ($(TARGET_TRIPLET),arm-none-eabi)
|
||||||
LD_DEFINE_SYMBOLS += _sbrk
|
LD_DEFINE_SYMBOLS += _sbrk
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# ----- tagged templates
|
|
||||||
#MCU_LD_DIR = $(wildcard $(firstword $(call $(TAGGED_TMPL_DIRS),ld)))
|
|
||||||
#MCU_LD_DIR = $(firstword $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(MODDIR)/tmpl/tagged,$(wildcard $(repo)/$(tag)/ld))))
|
|
||||||
#MCU_LD_DIR = $(firstword $(wildcard $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(MODDIR)/tmpl/tagged,$(repo)/$(tag)/ld))))
|
|
||||||
MCU_LD_CHECK_DIRS = $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(MODDIR)/tmpl/tagged,$(repo)/$(tag)/ld))
|
|
||||||
MCU_LD_DIRS = $(wildcard $(MCU_LD_CHECK_DIRS))
|
|
||||||
MCU_LD_DIR = $(firstword $(MCU_LD_DIRS))
|
|
||||||
|
|
||||||
PROJECT_LDFLAGS += -L$(MCU_LD_DIR) $(addprefix -T ,$(sort $(notdir $(wildcard $(MCU_LD_DIR)/*.ld))))
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PROJECT_LDFLAGS += $(addprefix -u ,$(LD_DEFINE_SYMBOLS))
|
PROJECT_LDFLAGS += $(addprefix -u ,$(LD_DEFINE_SYMBOLS))
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,9 @@ flash-clean-hex:
|
||||||
%.hex: %.bin
|
%.hex: %.bin
|
||||||
$(OBJCOPY) $(MCU_OBJCOPY_FETCH_OPTS) -I binary -O ihex $< $@.tmp
|
$(OBJCOPY) $(MCU_OBJCOPY_FETCH_OPTS) -I binary -O ihex $< $@.tmp
|
||||||
mv $@.tmp $@
|
mv $@.tmp $@
|
||||||
flash-push:
|
flash-push: $(MCU_FLASH_PUSH_FILE_HEX)
|
||||||
# see http://openocd.org/doc/html/Flash-Programming.html
|
# see http://openocd.org/doc/html/Flash-Programming.html
|
||||||
$(MCU_OPENOCD) -c "program $(MCU_FLASH_PUSH_FILE_HEX) verify reset exit $(MCU_FLASH_PUSH_OFFSET)"
|
$(MCU_OPENOCD) -c "program $< verify reset exit $(MCU_FLASH_PUSH_OFFSET)"
|
||||||
%-flash-push:
|
%-flash-push:
|
||||||
MCU_FLASH_PUSH_FILE_HEX=$* make flash-push
|
MCU_FLASH_PUSH_FILE_HEX=$* make flash-push
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -334,15 +334,15 @@ endif
|
||||||
|
|
||||||
ifeq ($(USE_PROJECT_LIB),true)
|
ifeq ($(USE_PROJECT_LIB),true)
|
||||||
ifeq ($(LIBTYPE),shared)
|
ifeq ($(LIBTYPE),shared)
|
||||||
$(EXE) $(EXE_BIN): $(OBJ) $(LIB_SO)
|
$(EXE) $(EXE_BIN): $(OBJ) $(LD_SCRIPTS) $(LIB_SO)
|
||||||
$(PLUGIN) $(PLUGIN_LIB): $(OBJ) $(LIB_SO)
|
$(PLUGIN) $(PLUGIN_LIB): $(OBJ) $(LD_SCRIPTS) $(LIB_SO)
|
||||||
else
|
else
|
||||||
$(EXE) $(EXE_BIN): $(OBJ) $(LIB_A)
|
$(EXE) $(EXE_BIN): $(OBJ) $(LD_SCRIPTS) $(LIB_A)
|
||||||
$(PLUGIN) $(PLUGIN_LIB): $(OBJ) $(LIB_A)
|
$(PLUGIN) $(PLUGIN_LIB): $(OBJ) $(LD_SCRIPTS) $(LIB_A)
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
$(EXE) $(EXE_BIN): $(OBJ)
|
$(EXE) $(EXE_BIN): $(OBJ) $(LD_SCRIPTS)
|
||||||
$(PLUGIN) $(PLUGIN_LIB): $(OBJ)
|
$(PLUGIN) $(PLUGIN_LIB): $(OBJ) $(LD_SCRIPTS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(EXE) $(EXE_BIN):
|
$(EXE) $(EXE_BIN):
|
||||||
|
|
|
||||||
13
make/run.mk
13
make/run.mk
|
|
@ -36,6 +36,19 @@ CHECK_CONF_EXE ?= $(firstword $(wildcard $(PROJECTS_DIR)/valdi/bin/
|
||||||
LOCAL_CFLAGS += -DEXE_NAME=\"$(EXE)\"
|
LOCAL_CFLAGS += -DEXE_NAME=\"$(EXE)\"
|
||||||
LOCAL_CXXFLAGS += -DEXE_NAME=\"$(EXE)\"
|
LOCAL_CXXFLAGS += -DEXE_NAME=\"$(EXE)\"
|
||||||
|
|
||||||
|
# ----- linker scripts from tagged templates
|
||||||
|
#BUILD_LD_DIR = $(wildcard $(firstword $(call $(TAGGED_TMPL_DIRS),ld)))
|
||||||
|
#BUILD_LD_DIR = $(firstword $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(MODDIR)/tmpl/tagged,$(wildcard $(repo)/$(tag)/ld))))
|
||||||
|
#BUILD_LD_DIR = $(firstword $(wildcard $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(MODDIR)/tmpl/tagged,$(repo)/$(tag)/ld))))
|
||||||
|
|
||||||
|
#BUILD_LD_TMPL_DIRS ?= $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(MODDIR)/tmpl/tagged,$(repo)/$(tag)/ld))
|
||||||
|
#BUILD_LD_DIRS += $(wildcard $(BUILD_LD_TMPL_DIRS))
|
||||||
|
#PROJECT_LDFLAGS += $(foreach d,$(BUILD_LD_DIRS),-L$(d) $(addprefix -T ,$(sort $(notdir $(wildcard $(d)/*.ld)))))
|
||||||
|
|
||||||
|
BUILD_LD_DIRS = $(call uniq,$(dir $(foreach d,$(BUILD_LD_CHECK_DIRS),$(wildcard $(d)/*.ld))))
|
||||||
|
LD_SCRIPTS = $(foreach d,$(BUILD_LD_DIRS),$(wildcard $(d)/*.ld))
|
||||||
|
PROJECT_LDFLAGS += $(foreach d,$(BUILD_LD_DIRS),-L$(d) $(addprefix -T ,$(sort $(notdir $(wildcard $(d)/*.ld)))))
|
||||||
|
|
||||||
include $(MODDIR)/make/profiler.mk
|
include $(MODDIR)/make/profiler.mk
|
||||||
BUILD_HDR =
|
BUILD_HDR =
|
||||||
include $(MODDIR)/make/rules.mk
|
include $(MODDIR)/make/rules.mk
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue