summaryrefslogtreecommitdiff
path: root/wscript
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2015-01-18 18:12:18 +1100
committerChris Johns <chrisj@rtems.org>2015-01-18 18:12:18 +1100
commit3badbb06227a0f42bb2b23b2f287bd8d403ad2d7 (patch)
tree4708fa8531a83f4ada01e71b53433eb7ade65372 /wscript
parent3f4717852dddcf8ba56478ba98b9dbda32d87182 (diff)
Add support to cross-compile. Use --hosti=.
On FreeBSD use --host=mingw32 for Windows. If you use another OS you might need to add the specific windows host to the top level wscript file.
Diffstat (limited to 'wscript')
-rw-r--r--wscript27
1 files changed, 27 insertions, 0 deletions
diff --git a/wscript b/wscript
index edfa91f..e289858 100644
--- a/wscript
+++ b/wscript
@@ -46,8 +46,24 @@ def options(ctx):
default = '-O2',
dest='c_opts',
help = 'Set build options, default: -O2.')
+ ctx.add_option('--host',
+ default = 'native',
+ dest='host',
+ help = 'Set host to build for, default: none.')
recurse(ctx)
+def init(ctx):
+ try:
+ import waflib.Options
+ import waflib.ConfigSet
+ env = waflib.ConfigSet.ConfigSet()
+ env.load(waflib.Options.lockfile)
+ check_options(ctx, env.options['host'])
+ for sd in subdirs:
+ ctx.recurse(sd)
+ except:
+ pass
+
def configure(ctx):
try:
ctx.load("doxygen", tooldir = 'waf-tools')
@@ -55,6 +71,7 @@ def configure(ctx):
pass
ctx.env.C_OPTS = ctx.options.c_opts.split(',')
ctx.env.RTEMS_VERSION = ctx.options.rtems_version
+ check_options(ctx, ctx.options.host)
recurse(ctx)
def build(ctx):
@@ -70,6 +87,16 @@ def rebuild(ctx):
import waflib.Options
waflib.Options.commands.extend(['clean', 'build'])
+def check_options(ctx, host):
+ if host in ['mingw32']:
+ ctx.env.HOST = host
+ ctx.env.CC = '%s-gcc' % (host)
+ ctx.env.CXX = '%s-g++' % (host)
+ ctx.env.AR = '%s-ar' % (host)
+ ctx.env.PYTHON = 'python'
+ elif host is not 'native':
+ ctx.fatal('unknown host: %s' % (host));
+
#
# The doxy command.
#