[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