[multiio commit] add support for building with waf

Joel Sherrill joel at rtems.org
Sun Jan 5 17:31:10 UTC 2014


Module:    multiio
Branch:    master
Commit:    dc256a455be7910f1b9e84fd51f47ae623a42509
Changeset: http://git.rtems.org/multiio/commit/?id=dc256a455be7910f1b9e84fd51f47ae623a42509

Author:    Chirayu Desai <cdesai at cyanogenmod.org>
Date:      Fri Jan  3 14:37:45 2014 +0530

add support for building with waf

---

 commands/wscript      |   16 +++++++++++++++
 pcmmio/wscript        |   52 +++++++++++++++++++++++++++++++++++++++++++++++++
 rtd6425/wscript       |   16 +++++++++++++++
 rtd6425_shell/wscript |   52 +++++++++++++++++++++++++++++++++++++++++++++++++
 wscript               |   44 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 180 insertions(+), 0 deletions(-)

diff --git a/commands/wscript b/commands/wscript
new file mode 100644
index 0000000..6287b4e
--- /dev/null
+++ b/commands/wscript
@@ -0,0 +1,16 @@
+# Copyright 2014 Chirayu Desai (chirayudesai1 at gmail.com)
+#
+# This file's license is 2-clause BSD as in this distribution's LICENSE.2 file.
+#
+
+# Waf build script for an RTEMS Hello
+import rtems_waf.rtems as rtems
+
+def build(bld):
+    rtems.build(bld)
+
+    bld.set_group('libraries')
+    bld(features = 'c cstlib',
+        target = 'miocmds',
+        includes = '../include',
+        source = ['main_multiio_adc.c', 'main_multiio_dac.c', 'main_multiio_dout.c', 'main_multiio_din.c', 'main_multiio_benchmark.c', 'main_multiio_irq.c'])
diff --git a/pcmmio/wscript b/pcmmio/wscript
new file mode 100644
index 0000000..4d4116e
--- /dev/null
+++ b/pcmmio/wscript
@@ -0,0 +1,52 @@
+# Copyright 2013 Gedare Bloom (gedare at rtems.org)
+# Copyright 2014 Chirayu Desai (chirayudesai1 at gmail.com)
+#
+# This file's license is 2-clause BSD as in this distribution's LICENSE.2 file.
+#
+
+import os
+
+import rtems_waf.rtems as rtems
+version = "1.0.0"
+
+## FilesystemImage processing
+from waflib.Task import Task
+from waflib.TaskGen import extension
+class bin2c(Task):
+  run_str = '${RTEMS_BIN2C} ${SRC} ${TGT[0].abspath()} && ' + \
+            'touch ${TGT[1].abspath()}'
+  ext_out = ['.h']
+
+ at extension('FilesystemImage')
+def process_FilesystemImage(self, node):
+  c_node = node.change_ext('.c')
+  h_node = node.change_ext('.h')
+  self.create_task('bin2c', node, [c_node, h_node])
+  self.source.append(c_node)
+
+def build(bld):
+    rtems.build(bld)
+
+    bld.set_group('programs')
+    arch_bsp = bld.get_env()['RTEMS_ARCH_BSP']
+    arch = bld.get_env()['RTEMS_ARCH']
+    bsp = bld.get_env()['RTEMS_BSP']
+    cflags = bld.get_env()['CFLAGS']
+
+    #
+    # The include paths and defines.
+    #
+    bld.includes = ['.', '../include',  '../commands']
+    bld.defines = ['PACKAGE_VERSION="' + version + '"']
+    bld(rule='tar -C ' + bld.path.find_dir('rootfs').abspath() + \
+              ' -cf ${TGT} .',
+        target='FilesystemImage')
+
+    bld(features = 'c cprogram',
+        target = 'pcmmio_shell.exe',
+        includes = bld.includes,
+        defines = bld.defines,
+        cflags = cflags,
+        stlib = 'miocmds',
+        stlibpath= [os.path.join(bld.path.get_bld().abspath(), '../commands')],
+        source = 'pcmmio_shell.c mio_io.c mio_io_rtems.c multiio_pcmmio.c FilesystemImage')
diff --git a/rtd6425/wscript b/rtd6425/wscript
new file mode 100644
index 0000000..0ab826a
--- /dev/null
+++ b/rtd6425/wscript
@@ -0,0 +1,16 @@
+# Copyright 2014 Chirayu Desai (chirayudesai1 at gmail.com)
+#
+# This file's license is 2-clause BSD as in this distribution's LICENSE.2 file.
+#
+
+# Waf build script for an RTEMS Hello
+import rtems_waf.rtems as rtems
+
+def build(bld):
+    rtems.build(bld)
+
+    bld.set_group('libraries')
+    bld(features = 'c cstlib',
+        target = 'rtd6425',
+        includes = '../include',
+        source = ['multiio_rtd6425.c', 'rtd6425.c'])
diff --git a/rtd6425_shell/wscript b/rtd6425_shell/wscript
new file mode 100644
index 0000000..6fcc4f8
--- /dev/null
+++ b/rtd6425_shell/wscript
@@ -0,0 +1,52 @@
+# Copyright 2013 Gedare Bloom (gedare at rtems.org)
+# Copyright 2014 Chirayu Desai (chirayudesai1 at gmail.com)
+#
+# This file's license is 2-clause BSD as in this distribution's LICENSE.2 file.
+#
+
+import os
+
+import rtems_waf.rtems as rtems
+version = "1.0.0"
+
+## FilesystemImage processing
+from waflib.Task import Task
+from waflib.TaskGen import extension
+class bin2c(Task):
+  run_str = '${RTEMS_BIN2C} ${SRC} ${TGT[0].abspath()} && ' + \
+            'touch ${TGT[1].abspath()}'
+  ext_out = ['.h']
+
+ at extension('FilesystemImage')
+def process_FilesystemImage(self, node):
+  c_node = node.change_ext('.c')
+  h_node = node.change_ext('.h')
+  self.create_task('bin2c', node, [c_node, h_node])
+  self.source.append(c_node)
+
+def build(bld):
+    rtems.build(bld)
+
+    bld.set_group('programs')
+    arch_bsp = bld.get_env()['RTEMS_ARCH_BSP']
+    arch = bld.get_env()['RTEMS_ARCH']
+    bsp = bld.get_env()['RTEMS_BSP']
+    cflags = bld.get_env()['CFLAGS']
+
+    #
+    # The include paths and defines.
+    #
+    bld.includes = ['.', '../include', '../commands', '../rtd6425']
+    bld.defines = ['PACKAGE_VERSION="' + version + '"']
+    bld(rule='tar -C ' + bld.path.find_dir('rootfs').abspath() + \
+              ' -cf ${TGT} .',
+        target='FilesystemImage')
+
+    bld(features = 'c cprogram',
+        target = 'rtd6425_shell.exe',
+        includes = bld.includes,
+        defines = bld.defines,
+        cflags = cflags,
+        stlib = 'miocmds rtd6425',
+        stlibpath= [os.path.join(bld.path.get_bld().abspath(), '../commands'), os.path.join(bld.path.get_bld().abspath(), '../rtd6425')],
+        source = 'rtd6425_shell.c FilesystemImage')
diff --git a/wscript b/wscript
new file mode 100644
index 0000000..f70fc7e
--- /dev/null
+++ b/wscript
@@ -0,0 +1,44 @@
+# Copyright 2013 Chris Johns (chrisj at rtems.org)
+# Copyright 2014 Chirayu Desai (chirayudesai1 at gmail.com)
+#
+# This file's license is 2-clause BSD as in this distribution's LICENSE.2 file.
+#
+
+# Waf build script for RTEMS examples
+#
+# To configure, build and run do:
+#
+# $ waf configure --rtems=/Users/chris/Development/rtems/build/4.11 \
+#                 --rtems-tools=/Users/chris/Development/rtems/4.11 \
+#                 --rtems-bsps=sparc/sis
+# $ waf
+# $ /Users/chris/Development/rtems/4.11/bin/sparc-rtems4.11-run ./build/sparc-rtems4.11-sis/hello
+#
+# You can use '--rtems-archs=sparc,i386' or '--rtems-bsps=sparc/sis,i386/pc586'
+# to build for more than BSP at a time.
+#
+
+try:
+    import rtems_waf.rtems as rtems
+except:
+    print 'error: no rtems_waf git submodule; see README.waf'
+    import sys
+    sys.exit(1)
+
+def init(ctx):
+    rtems.init(ctx)
+
+def options(opt):
+    rtems.options(opt)
+
+def configure(conf):
+    rtems.configure(conf)
+
+def build(bld):
+    rtems.build(bld)
+    bld.add_group('libraries')
+    bld.add_group('programs')
+    bld.recurse('commands')
+    bld.recurse('pcmmio')
+    bld.recurse('rtd6425')
+    bld.recurse('rtd6425_shell')




More information about the vc mailing list