[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