summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2015-01-18 11:24:11 +1100
committerChris Johns <chrisj@rtems.org>2015-01-18 11:24:11 +1100
commit3963ac4aaef67cf51deefff558325d98fdeef2b0 (patch)
tree4bd35223345791626b00dafe76d79d9c5e9a58de
parentProvide flags and include paths for the host when building a Cxc. (diff)
downloadrtems-source-builder-3963ac4aaef67cf51deefff558325d98fdeef2b0.tar.bz2
Detect a Cxc build from the options and automatically disabled installing.
This is similar to always providing --no-install on the command when building a Cxc package.
-rw-r--r--source-builder/sb/options.py13
-rw-r--r--source-builder/sb/setbuilder.py6
2 files changed, 17 insertions, 2 deletions
diff --git a/source-builder/sb/options.py b/source-builder/sb/options.py
index cbdcfa3..a468694 100644
--- a/source-builder/sb/options.py
+++ b/source-builder/sb/options.py
@@ -297,6 +297,10 @@ class command_line:
rsb_macros = path.join(os.environ['HOME'], '.rsb_macros')
if path.exists(rsb_macros):
self.defaults.load(rsb_macros)
+ # If a Cxc build disable installing.
+ if self.canadian_cross():
+ self.opts['no-install'] = '1'
+ self.defaults['_no_install'] = '1'
def sb_git(self):
repo = git.repo(self.defaults.expand('%{_sbdir}'), self)
@@ -360,6 +364,15 @@ class command_line:
def no_install(self):
return self.opts['no-install'] != '0'
+ def canadian_cross(self):
+ _host = self.defaults.expand('%{_host}')
+ _build = self.defaults.expand('%{_build}')
+ _target = self.defaults.expand('%{_target}')
+ if len(_target):
+ return len(_host) and len(_build) and (_target) and \
+ _host != _build and _host != _target
+ return len(_host) and len(_build) and _host != _build
+
def user_macros(self):
#
# Return something even if it does not exist.
diff --git a/source-builder/sb/setbuilder.py b/source-builder/sb/setbuilder.py
index 1cdb094..34fe8b8 100644
--- a/source-builder/sb/setbuilder.py
+++ b/source-builder/sb/setbuilder.py
@@ -458,8 +458,10 @@ def run():
deps = None
if not list_bset_cfg_files(opts, configs):
prefix = opts.defaults.expand('%{_prefix}')
- if not opts.dry_run() and not opts.no_install() and \
- not path.ispathwritable(prefix):
+ if not opts.dry_run() and \
+ not not opts.canadian_cross() and \
+ not opts.no_install() and \
+ not path.ispathwritable(prefix):
raise error.general('prefix is not writable: %s' % (path.host(prefix)))
for bset in opts.params():
setbuilder_error = True