summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorNicolas Schodet2015-06-17 11:15:06 +0200
committerNicolas Schodet2019-10-07 00:44:50 +0200
commit6f9f99c05a436de2241aaeda63aca237c071800d (patch)
tree5d16e1f6caf04f8f40d5c9a862771c83679321ad /build
parent74c19264c348cbfb06696f9c0b3999dc00109efa (diff)
build: add out of tree targets support
Diffstat (limited to 'build')
-rw-r--r--build/stm32.mk10
-rw-r--r--build/top.mk2
2 files changed, 6 insertions, 6 deletions
diff --git a/build/stm32.mk b/build/stm32.mk
index 0bc43a1..cd2f549 100644
--- a/build/stm32.mk
+++ b/build/stm32.mk
@@ -10,7 +10,7 @@ stm32_once := 1
LIBOPENCM3_PATH ?= $(UCOO_BASE)/lib/libopencm3
define stm32_libopencm3
ifneq ($$(LIBOPENCM3_PATH),)
- $1_LIBOPENCM3_LIB := $$(LIBOPENCM3_PATH)/lib/libopencm3_$1.a
+ $1_LIBOPENCM3_LIB := $$(LIBOPENCM3_PATH)/lib/libopencm3_$(if $2,$2,$1).a
ifeq ($$(wildcard $$($1_LIBOPENCM3_LIB)),)
$$(error Can not find libopencm3 library, please run "make lib" in \
$$(LIBOPENCM3_PATH) or change LIBOPENCM3_PATH (you can set it to \
@@ -35,12 +35,12 @@ $1_CFLAGS := $$(CFLAGS) \
-Wl,--gc-sections -ffunction-sections
$1_CXXFLAGS := $$(sort $$($1_CFLAGS) $$(CXXFLAGS))
$1_ASFLAGS := $$(ASFLAGS)
-$1_LDSCRIPT := $1.ld
-$1_LDFLAGS := $$(LDFLAGS) -T$$($1_LDSCRIPT) \
- -L$$(UCOO_BASE)/ucoo/arch/$1 \
+$1_LDSCRIPT ?= $(if $2,$2,$1).ld
+$1_LDSCRIPT_PATH ?= $$(UCOO_BASE)/ucoo/arch/$(if $2,$2,$1)
+$1_LDFLAGS := $$(LDFLAGS) -T$$($1_LDSCRIPT) -L$$($1_LDSCRIPT_PATH) \
$$($1_LIBOPENCM3_LDFLAGS)
$1_LDLIBS := -nostartfiles $$(LDLIBS) $$($1_LIBS) \
- -lopencm3_$1
+ -lopencm3_$(if $2,$2,$1)
endef
diff --git a/build/top.mk b/build/top.mk
index 72e80f4..24f17bb 100644
--- a/build/top.mk
+++ b/build/top.mk
@@ -65,7 +65,7 @@ $(OBJDIR):
include $(UCOO_BASE)/build/arch.mk
define TARGETS_template
-include $$(UCOO_BASE)/build/$1.mk
+include $$(firstword $$(wildcard $$(BASE)/build/$1.mk) $$(UCOO_BASE)/build/$1.mk)
endef
$(foreach target,$(TARGETS),$(eval $(call TARGETS_template,$(target))))