From 270c5df5dbaf93c19e2f66a27f4bb73c7e625629 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Wed, 17 Jul 2019 22:19:04 +1000 Subject: Makefile.inc: Add support for staged builds. - 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 -- cgit v1.2.3