summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/libmetal.mk23
-rw-r--r--scripts/standalone.mk4
2 files changed, 16 insertions, 11 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
diff --git a/scripts/standalone.mk b/scripts/standalone.mk
index ac5635f..73b9776 100644
--- a/scripts/standalone.mk
+++ b/scripts/standalone.mk
@@ -132,8 +132,8 @@ PROGRAM_SRCS = $(wildcard $(SRC_DIR)/*.c) $(wildcard $(SRC_DIR)/*.h) $(wildcard
$(PROGRAM_ELF): \
$(PROGRAM_SRCS) \
- $(BSP_DIR)/install/lib/libmetal.a \
- $(BSP_DIR)/install/lib/libmetal-gloss.a \
+ $(BSP_DIR)/install/lib/$(CONFIGURATION)/libmetal.a \
+ $(BSP_DIR)/install/lib/$(CONFIGURATION)/libmetal-gloss.a \
$(BSP_DIR)/metal.lds
$(MAKE) -C $(dir $@) $(basename $(notdir $@)) \
AR=$(RISCV_AR) \