From 0d76cc9f0449f7d57ecb93a2cd2a118b89df93e9 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 2 Aug 2023 07:36:45 +0200 Subject: build: Add PROGRAM_PREFIX option Replace --rtems-version with a PROGRAM_PREFIX option. This allows also the use of vendor tools. --- spec/build/bsps/makeinc.yml | 16 ++++++++-------- spec/build/bsps/maketarget.yml | 22 +++++++++++----------- spec/build/bsps/optobjcopy.yml | 2 +- spec/build/cpukit/cpuopts.yml | 2 ++ spec/build/cpukit/optgcc.yml | 8 ++++---- spec/build/cpukit/optprogramprefix.yml | 18 ++++++++++++++++++ spec/build/testsuites/ada/optgnat.yml | 2 +- wscript | 24 ++---------------------- 8 files changed, 47 insertions(+), 47 deletions(-) create mode 100644 spec/build/cpukit/optprogramprefix.yml diff --git a/spec/build/bsps/makeinc.yml b/spec/build/bsps/makeinc.yml index ac395f2f02..08fc75a8b9 100644 --- a/spec/build/bsps/makeinc.yml +++ b/spec/build/bsps/makeinc.yml @@ -16,14 +16,14 @@ content: | prefix = ${PREFIX} exec_prefix = $${prefix}/${ARCH}-rtems${__RTEMS_MAJOR__} - CC_FOR_TARGET = ${ARCH}-rtems${__RTEMS_MAJOR__}-gcc - CXX_FOR_TARGET = ${ARCH}-rtems${__RTEMS_MAJOR__}-g++ - AS_FOR_TARGET = ${ARCH}-rtems${__RTEMS_MAJOR__}-as - AR_FOR_TARGET = ${ARCH}-rtems${__RTEMS_MAJOR__}-ar - NM_FOR_TARGET = ${ARCH}-rtems${__RTEMS_MAJOR__}-nm - LD_FOR_TARGET = ${ARCH}-rtems${__RTEMS_MAJOR__}-ld - SIZE_FOR_TARGET = ${ARCH}-rtems${__RTEMS_MAJOR__}-size - OBJCOPY_FOR_TARGET = ${ARCH}-rtems${__RTEMS_MAJOR__}-objcopy + CC_FOR_TARGET = ${PROGRAM_PREFIX}gcc + CXX_FOR_TARGET = ${PROGRAM_PREFIX}g++ + AS_FOR_TARGET = ${PROGRAM_PREFIX}as + AR_FOR_TARGET = ${PROGRAM_PREFIX}ar + NM_FOR_TARGET = ${PROGRAM_PREFIX}nm + LD_FOR_TARGET = ${PROGRAM_PREFIX}ld + SIZE_FOR_TARGET = ${PROGRAM_PREFIX}size + OBJCOPY_FOR_TARGET = ${PROGRAM_PREFIX}objcopy CC= $$(CC_FOR_TARGET) CXX= $$(CXX_FOR_TARGET) diff --git a/spec/build/bsps/maketarget.yml b/spec/build/bsps/maketarget.yml index 798b64fa22..7a7b0c3d35 100644 --- a/spec/build/bsps/maketarget.yml +++ b/spec/build/bsps/maketarget.yml @@ -11,17 +11,17 @@ content: | LIBS = RTEMS_API = ${__RTEMS_MAJOR__} - CC = ${ARCH}-rtems${__RTEMS_MAJOR__}-gcc --pipe - AS = ${ARCH}-rtems${__RTEMS_MAJOR__}-as - AR = ${ARCH}-rtems${__RTEMS_MAJOR__}-ar - NM = ${ARCH}-rtems${__RTEMS_MAJOR__}-nm - LD = ${ARCH}-rtems${__RTEMS_MAJOR__}-ld - SIZE = ${ARCH}-rtems${__RTEMS_MAJOR__}-size - STRIP = ${ARCH}-rtems${__RTEMS_MAJOR__}-strip - OBJCOPY = ${ARCH}-rtems${__RTEMS_MAJOR__}-objcopy - RANLIB = ${ARCH}-rtems${__RTEMS_MAJOR__}-ranlib - - CXX = ${ARCH}-rtems${__RTEMS_MAJOR__}-g++ + CC = ${PROGRAM_PREFIX}gcc --pipe + AS = ${PROGRAM_PREFIX}as + AR = ${PROGRAM_PREFIX}ar + NM = ${PROGRAM_PREFIX}nm + LD = ${PROGRAM_PREFIX}ld + SIZE = ${PROGRAM_PREFIX}size + STRIP = ${PROGRAM_PREFIX}strip + OBJCOPY = ${PROGRAM_PREFIX}objcopy + RANLIB = ${PROGRAM_PREFIX}ranlib + + CXX = ${PROGRAM_PREFIX}g++ export CC export AS diff --git a/spec/build/bsps/optobjcopy.yml b/spec/build/bsps/optobjcopy.yml index 3387e23794..63fab08ac6 100644 --- a/spec/build/bsps/optobjcopy.yml +++ b/spec/build/bsps/optobjcopy.yml @@ -1,6 +1,6 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause actions: -- set-value: ${ARCH}-rtems${__RTEMS_MAJOR__}-objcopy +- set-value: ${PROGRAM_PREFIX}objcopy - substitute: null - find-program: null - env-assign: OBJCOPY diff --git a/spec/build/cpukit/cpuopts.yml b/spec/build/cpukit/cpuopts.yml index f1b30eec55..1d28ace552 100644 --- a/spec/build/cpukit/cpuopts.yml +++ b/spec/build/cpukit/cpuopts.yml @@ -7,6 +7,8 @@ guard: _RTEMS_SCORE_CPUOPTS_H include-headers: [] install-path: ${BSP_INCLUDEDIR}/rtems/score links: +- role: build-dependency + uid: optprogramprefix - role: build-dependency uid: optgcc - role: build-dependency diff --git a/spec/build/cpukit/optgcc.yml b/spec/build/cpukit/optgcc.yml index 3afb909444..94af494af4 100644 --- a/spec/build/cpukit/optgcc.yml +++ b/spec/build/cpukit/optgcc.yml @@ -1,21 +1,21 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause actions: -- set-value: ${ARCH}-rtems${__RTEMS_MAJOR__}-gcc +- set-value: ${PROGRAM_PREFIX}gcc - substitute: null - find-program: null - env-assign: AS - env-assign: CC - env-assign: LINK_CC -- set-value: ${ARCH}-rtems${__RTEMS_MAJOR__}-g++ +- set-value: ${PROGRAM_PREFIX}g++ - substitute: null - find-program: null - env-assign: CXX - env-assign: LINK_CXX -- set-value: ${ARCH}-rtems${__RTEMS_MAJOR__}-ar +- set-value: ${PROGRAM_PREFIX}ar - substitute: null - find-program: null - env-assign: AR -- set-value: ${ARCH}-rtems${__RTEMS_MAJOR__}-ld +- set-value: ${PROGRAM_PREFIX}ld - substitute: null - find-program: null - env-assign: LD diff --git a/spec/build/cpukit/optprogramprefix.yml b/spec/build/cpukit/optprogramprefix.yml new file mode 100644 index 0000000000..73deef79d1 --- /dev/null +++ b/spec/build/cpukit/optprogramprefix.yml @@ -0,0 +1,18 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +actions: +- get-string: null +- substitute: null +- env-assign: null +build-type: option +copyrights: +- Copyright (C) 2023 embedded brains GmbH & Co. KG +default: +- enabled-by: true + value: ${ARCH}-rtems${__RTEMS_MAJOR__}- +description: | + Defines the program prefix of tools (compiler, assembler, linker). +enabled-by: true +format: '{}' +links: [] +name: PROGRAM_PREFIX +type: build diff --git a/spec/build/testsuites/ada/optgnat.yml b/spec/build/testsuites/ada/optgnat.yml index 6d84f64845..449859bde0 100644 --- a/spec/build/testsuites/ada/optgnat.yml +++ b/spec/build/testsuites/ada/optgnat.yml @@ -1,6 +1,6 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause actions: -- set-value: ${ARCH}-rtems${__RTEMS_MAJOR__}-gnatmake +- set-value: ${PROGRAM_PREFIX}gnatmake - substitute: null - find-program: null - env-assign: GNATMAKE diff --git a/wscript b/wscript index 85600b9e05..a8fca88dcb 100755 --- a/wscript +++ b/wscript @@ -1306,12 +1306,6 @@ def options(ctx): help= "the UID of the top-level group [default: '/grp']; it may be used in the bspdefaults and configure commands", ) - rg.add_option( - "--rtems-version", - metavar="VALUE", - help= - "sets the RTEMS major version number; it is intended for RTEMS maintainers and may be used in the bspdefaults and configure commands", - ) def check_environment(conf): @@ -1351,12 +1345,6 @@ def configure_version(conf): version[key] = no_unicode(value) except configparser.NoOptionError: pass - major = conf.options.rtems_version - if major is not None: - conf.msg("Set __RTEMS_MAJOR__ via command line to:", - major, - color="YELLOW") - version["__RTEMS_MAJOR__"] = major def load_config_files(ctx): @@ -1566,14 +1554,7 @@ def build(bld): if not bld.variant: check_forbidden_options( bld, - [ - "compiler", - "config", - "specs", - "tools", - "top_group", - "version", - ], + ["compiler", "config", "specs", "tools", "top_group"], ) load_items(bld, bld.env.SPECS) append_variant_builds(bld) @@ -1662,8 +1643,7 @@ COMPILER = {}""".format(variant, compiler)) def bsplist(ctx): """lists base BSP variants""" - check_forbidden_options( - ctx, ["compiler", "config", "tools", "top_group", "version"]) + check_forbidden_options(ctx, ["compiler", "config", "tools", "top_group"]) add_log_filter(ctx.cmd) load_items_from_options(ctx) white_list = get_white_list(ctx) -- cgit v1.2.3