summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--linkers/wscript3
-rw-r--r--rtemstoolkit/wscript3
-rw-r--r--tester/covoar/wscript3
-rw-r--r--tester/wscript3
-rw-r--r--tools/gdb/python/wscript3
-rw-r--r--wafwindows.py59
-rw-r--r--wscript10
7 files changed, 82 insertions, 2 deletions
diff --git a/linkers/wscript b/linkers/wscript
index 8f56752..70a1571 100644
--- a/linkers/wscript
+++ b/linkers/wscript
@@ -33,6 +33,9 @@
#
import sys
+def init(ctx):
+ pass
+
def options(opt):
opt.load('compiler_c')
opt.load('compiler_cxx')
diff --git a/rtemstoolkit/wscript b/rtemstoolkit/wscript
index c7cea36..71eadfa 100644
--- a/rtemstoolkit/wscript
+++ b/rtemstoolkit/wscript
@@ -39,6 +39,9 @@ import sys
top = '.'
out = 'build-' + sys.platform
+def init(ctx):
+ pass
+
def options(opt):
opt.load('compiler_c')
opt.load('compiler_cxx')
diff --git a/tester/covoar/wscript b/tester/covoar/wscript
index f8311d2..68184a7 100644
--- a/tester/covoar/wscript
+++ b/tester/covoar/wscript
@@ -46,6 +46,9 @@ APPNAME='covoar'
top = '.'
out = 'build'
+def init(ctx):
+ pass
+
def options(opt):
opt.load('compiler_cxx')
diff --git a/tester/wscript b/tester/wscript
index 2f6857f..5bcc37f 100644
--- a/tester/wscript
+++ b/tester/wscript
@@ -34,6 +34,9 @@ def recurse(ctx):
for sd in subdirs:
ctx.recurse(sd)
+def init(ctx):
+ pass
+
def options(opt):
recurse(opt)
opt.load('python')
diff --git a/tools/gdb/python/wscript b/tools/gdb/python/wscript
index 1882e1f..a421268 100644
--- a/tools/gdb/python/wscript
+++ b/tools/gdb/python/wscript
@@ -2,6 +2,9 @@
# Install the RTEMS gdb python
#
+def init(ctx):
+ pass
+
def options(opt):
opt.load('python')
diff --git a/wafwindows.py b/wafwindows.py
new file mode 100644
index 0000000..5b5cab0
--- /dev/null
+++ b/wafwindows.py
@@ -0,0 +1,59 @@
+#
+# RTEMS Tools Project (http://www.rtems.org/)
+# Copyright 2015 Chris Johns (chrisj@rtems.org)
+# All rights reserved.
+#
+# This file is part of the RTEMS Tools package in 'rtems-tools'.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+import os
+
+windows = os.name == 'nt'
+_os_sep = os.sep
+
+def set_compilers():
+ if windows:
+ #
+ # MSVC is not supported so ignore it on Windows.
+ #
+ import waflib.Tools.compiler_c
+ waflib.Tools.compiler_c.c_compiler['win32'] = ['gcc', 'clang']
+ import waflib.Tools.compiler_cxx
+ waflib.Tools.compiler_cxx.cxx_compiler['win32'] = ['g++', 'clang++']
+
+def set_os_sep():
+ if windows:
+ #
+ # MSYS2 changes the standard definition of os.sep to '/'. Change it
+ # back because the change is wrong as it breaks the interface to parts
+ # of Windows, eg cmd.exe, which require '\\'.
+ #
+ if os.sep != '\\':
+ os.sep = '\\'
+
+def reset_os_sep():
+ if windows:
+ if os.sep != _os_sep:
+ os.sep = _os_sep
diff --git a/wscript b/wscript
index 5b79cd8..08fcb47 100644
--- a/wscript
+++ b/wscript
@@ -30,6 +30,8 @@
import os.path
+import wafwindows
+
subdirs = ['rtemstoolkit',
'linkers',
'tester',
@@ -79,17 +81,20 @@ def options(ctx):
recurse(ctx)
def init(ctx):
+ wafwindows.set_compilers()
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)
+ recurse(ctx)
except:
pass
+def shutdown(ctx):
+ pass
+
def configure(ctx):
try:
ctx.load("doxygen", tooldir = 'waf-tools')
@@ -113,6 +118,7 @@ def configure(ctx):
recurse(ctx)
def build(ctx):
+ wafwindows.set_os_sep()
if os.path.exists('VERSION'):
ctx.install_files('${PREFIX}/share/rtems/rtemstoolkit', ['VERSION'])
recurse(ctx)