summaryrefslogtreecommitdiff
path: root/scripts/libmetal.mk
diff options
context:
space:
mode:
authorNathaniel Graff <nathaniel.graff@sifive.com>2019-03-12 10:09:10 -0700
committerNathaniel Graff <nathaniel.graff@sifive.com>2019-03-12 15:37:07 -0700
commit1b72ca73835d6064b467a126a392f4539fa2f10a (patch)
tree2cadf4a3e7d05df28a8f8cbeb5cf386456f8e0f4 /scripts/libmetal.mk
parentebe73c01fbdf73b3b4c6beaf089edb7ee394aa0b (diff)
Build metal libs into install/lib/CONFIGURATION
Removes the INCLUDE_METAL_SOURCES option. If we want to be able to support multiple build configurations for standalone projects, the Metal library must be rebuilt to take into account those options. An alternative is to put back the prebuilt library option and just remove the configuration option from standalone projects without the Metal library sources. Signed-off-by: Nathaniel Graff <nathaniel.graff@sifive.com>
Diffstat (limited to 'scripts/libmetal.mk')
-rw-r--r--scripts/libmetal.mk23
1 files changed, 14 insertions, 9 deletions
diff --git a/scripts/libmetal.mk b/scripts/libmetal.mk
index 97ce543..b443ca7 100644
--- a/scripts/libmetal.mk
+++ b/scripts/libmetal.mk
@@ -6,17 +6,22 @@ METAL_SOURCE_PATH ?= freedom-metal
METAL_LDSCRIPT = $(BSP_DIR)/metal.lds
METAL_HEADER = $(BSP_DIR)/metal.h
+METAL_PREFIX = $(abspath $(BSP_DIR)/install)
+METAL_BUILD_DIR = $(abspath $(BSP_DIR)/build/$(CONFIGURATION))
+METAL_LIB_DIR = $(abspath $(BSP_DIR)/install/lib/$(CONFIGURATION))
+
.PHONY: metal
-metal: $(BSP_DIR)/install/stamp
+metal: $(METAL_LIB_DIR)/stamp
-$(BSP_DIR)/build/Makefile:
+$(METAL_BUILD_DIR)/Makefile:
@rm -rf $(dir $@)
@mkdir -p $(dir $@)
cd $(dir $@) && \
CFLAGS="$(RISCV_CFLAGS)" \
$(abspath $(METAL_SOURCE_PATH)/configure) \
--host=$(CROSS_COMPILE) \
- --prefix=$(abspath $(BSP_DIR)/install) \
+ --prefix=$(METAL_PREFIX) \
+ --libdir=$(METAL_LIB_DIR) \
--disable-maintainer-mode \
--with-preconfigured \
--with-machine-name=$(TARGET) \
@@ -25,21 +30,21 @@ $(BSP_DIR)/build/Makefile:
--with-builtin-libgloss
touch -c $@
-$(BSP_DIR)/install/stamp: $(BSP_DIR)/build/Makefile
- $(MAKE) -C $(abspath $(BSP_DIR)/build) install
+$(METAL_LIB_DIR)/stamp: $(BSP_DIR)/build/$(CONFIGURATION)/Makefile
+ $(MAKE) -C $(abspath $(BSP_DIR)/build/$(CONFIGURATION)) install
date > $@
-$(BSP_DIR)/install/lib/libriscv%.a: $(BSP_DIR)/install/stamp ;@:
+$(METAL_LIB_DIR)/libriscv%.a: $(METAL_LIB_DIR)/stamp ;@:
-$(BSP_DIR)/install/lib/libmetal.a: $(BSP_DIR)/install/lib/libriscv__mmachine__$(TARGET).a
+$(METAL_LIB_DIR)/libmetal.a: $(METAL_LIB_DIR)/libriscv__mmachine__$(TARGET).a
cp $< $@
-$(BSP_DIR)/install/lib/libmetal-gloss.a: $(BSP_DIR)/install/lib/libriscv__menv__metal.a
+$(METAL_LIB_DIR)/libmetal-gloss.a: $(METAL_LIB_DIR)/libriscv__menv__metal.a
cp $< $@
.PHONY: clean-metal
clean-metal:
- rm -rf $(BSP_DIR)/install
+ rm -rf $(METAL_PREFIX)
rm -rf $(BSP_DIR)/build
clean: clean-metal