[PATCH] Makefile.inc: Add support for staged builds.
chrisj at rtems.org
chrisj at rtems.org
Fri Jul 19 07:51:17 UTC 2019
From: Chris Johns <chrisj at rtems.org>
- Allow the RTEMS_ROOT to be conditionally supplied. This
can be a staging area before being moved to the final
install prefix location.
- Update the default.cfg to use RTEMS_ROOT and to not rely on
the exec_prefix so it's paths can be staged.
- Fix and add the needed configure subs.
Closes #3768
---
c/src/make/Makefile.am | 3 ++-
c/src/make/Makefile.inc.in | 13 ++++++++-----
make/custom/default.cfg | 6 ++++--
make/main.cfg | 8 ++++----
4 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/c/src/make/Makefile.am b/c/src/make/Makefile.am
index 44350e94fd..2c630d9a78 100644
--- a/c/src/make/Makefile.am
+++ b/c/src/make/Makefile.am
@@ -68,6 +68,8 @@ Makefile.inc: Makefile.inc.in Makefile
-e "s|[@]exec_prefix[@]|$(exec_prefix)|" \
-e "s|[@]pkgdatadir[@]|$(pkgdatadir)|" \
-e "s|[@]RTEMS_BSP[@]|$(RTEMS_BSP)|" \
+ -e "s|[@]RTEMS_CPU[@]|$(RTEMS_CPU)|" \
+ -e "s|[@]RTEMS_API[@]|$(RTEMS_API)|" \
-e "s|[@]CC[@]|$(CC)|" \
-e "s|[@]CXX[@]|$(CXX)|" \
-e "s|[@]AS[@]|$(AS)|" \
@@ -85,4 +87,3 @@ CLEANFILES += Makefile.inc
## use gcc-target-default.cfg only.
rtems_make_compilersdir = $(rtems_makedir)/compilers
dist_rtems_make_compilers_DATA = compilers/gcc-target-default.cfg
-
diff --git a/c/src/make/Makefile.inc.in b/c/src/make/Makefile.inc.in
index bb37676987..d3df7a3b98 100644
--- a/c/src/make/Makefile.inc.in
+++ b/c/src/make/Makefile.inc.in
@@ -1,7 +1,13 @@
#
# BSP specific settings. To be included in application Makefiles
#
+# This support will be removed from RTEMS. Please consider other
+# ways to build applications.
+#
+
+RTEMS_API = @RTEMS_API@
+RTEMS_CPU = @RTEMS_CPU@
RTEMS_BSP = @RTEMS_BSP@
prefix = @prefix@
@@ -16,8 +22,6 @@ LD_FOR_TARGET = @LD@
SIZE_FOR_TARGET = @SIZE@
OBJCOPY_FOR_TARGET = @OBJCOPY@
-RTEMS_API = @RTEMS_API@
-
CC= $(CC_FOR_TARGET)
CXX= $(CXX_FOR_TARGET)
AS= $(AS_FOR_TARGET)
@@ -36,10 +40,10 @@ export AR
export SIZE
export OBJCOPY
-RTEMS_ROOT = $(prefix)
+RTEMS_ROOT ?= $(prefix)
PROJECT_ROOT = $(RTEMS_ROOT)
RTEMS_CUSTOM = $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
-RTEMS_SHARE = $(RTEMS_ROOT)/share/rtems$(RTEMS_API)
+RTEMS_SHARE = $(RTEMS_ROOT)/share/rtems$(RTEMS_API)
RTEMS_USE_OWN_PDIR = no
RTEMS_HAS_POSIX_API = @RTEMS_HAS_POSIX_API@
@@ -49,4 +53,3 @@ RTEMS_HAS_CPLUSPLUS = @RTEMS_HAS_CPLUSPLUS@
export RTEMS_BSP
export RTEMS_CUSTOM
export PROJECT_ROOT
-
diff --git a/make/custom/default.cfg b/make/custom/default.cfg
index bbe8e05e07..96bb9afb5e 100644
--- a/make/custom/default.cfg
+++ b/make/custom/default.cfg
@@ -5,11 +5,13 @@
# Created by Jiri Gaisler, 16-03-97 (who is owed a debt of gratitude
# for the initial RTEMS autoconf support. Thanks. --joel)
-include $(exec_prefix)/$(RTEMS_BSP)/make/target.cfg
+RTEMS_TARGET = $(RTEMS_CPU)-rtems$(RTEMS_API)
+
+include $(RTEMS_ROOT)/$(RTEMS_TARGET)/$(RTEMS_BSP)/make/target.cfg
include $(RTEMS_SHARE)/make/host.cfg
include $(RTEMS_ROOT)/make/main.cfg
-include $(exec_prefix)/$(RTEMS_BSP)/make/bsp.cfg
+include $(RTEMS_ROOT)/$(RTEMS_TARGET)/$(RTEMS_BSP)/make/bsp.cfg
## Target compiler config file, if any
CONFIG.CC = $(RTEMS_SHARE)/make/compilers/gcc-target-default.cfg
diff --git a/make/main.cfg b/make/main.cfg
index 1a712deb3e..285e1b9a84 100644
--- a/make/main.cfg
+++ b/make/main.cfg
@@ -16,9 +16,9 @@ default_target: all
# but could be overridden in custom files.
#
-PROJECT_RELEASE=$(exec_prefix)/$(RTEMS_BSP)
-PROJECT_BIN=$(PROJECT_ROOT)/bin
-PROJECT_INCLUDE=$(PROJECT_RELEASE)/lib/include
+PROJECT_RELEASE ?= $(exec_prefix)/$(RTEMS_BSP)
+PROJECT_BIN = $(PROJECT_ROOT)/bin
+PROJECT_INCLUDE = $(PROJECT_RELEASE)/lib/include
PROJECT_TOOLS = $(PROJECT_RELEASE)/build-tools
## translate VARIANT into VARIANT_V
@@ -77,6 +77,6 @@ clean-generic:
-$(RM) -r $(CLEAN_ADDITIONS)
endif
-.PHONY: $(RECURSE_TARGETS)
+.PHONY: $(RECURSE_TARGETS)
.PHONY: clean-generic
.PHONY: distclean-generic
--
2.19.1
More information about the devel
mailing list