summaryrefslogtreecommitdiff
path: root/README.waf
diff options
context:
space:
mode:
authorGedare Bloom <gedare@rtems.org>2013-11-21 16:58:11 -0500
committerGedare Bloom <gedare@rtems.org>2013-12-12 14:55:54 -0500
commitace2e322299759bae8d365ea0d305cbbe0da2746 (patch)
treede30127a6e5d58cb2974cf8d987dc26ba27afd22 /README.waf
parent3a9c7d6862f85d06faa504b4761888e7bbf31abf (diff)
Waf: Add top-level wscript and rtems_waf module to support waf builds.
Diffstat (limited to 'README.waf')
-rw-r--r--README.waf53
1 files changed, 53 insertions, 0 deletions
diff --git a/README.waf b/README.waf
new file mode 100644
index 0000000..623e1c2
--- /dev/null
+++ b/README.waf
@@ -0,0 +1,53 @@
+RTEMS Waf
+~~~~~~~~~
+
+You can find the Waf project here:
+
+ http://code.google.com/p/waf/
+
+Simple instructions on How to set up Waf is here:
+
+ http://www.rtems.org/ftp/pub/rtems/people/chrisj/rtl/rtems-linker/waf.html
+
+Steps
+-----
+
+1. Build or install the tools. In this example the path is
+ $HOME/Development/rtems/4.11.
+
+2. Build and install the RTEMS Board Support Packages you want to use. In this
+ example the path is $HOME/Development/rtems/build/4.11.
+
+3. Unpack this package somewhere, anywhere on your disk and change into the top
+ level directory.
+
+4. Configure with your specific settings. In this case the path to the tools
+ and RTEMS and provided on the command line and so do not need to be in your
+ path or environment [1] and we limit the build to 'sparc/sis' BSP:
+
+ $ waf configure --rtems=$HOME/Development/rtems/build/4.11 \
+ --rtems-tools=$HOME/Development/rtems/4.11 \
+ --rtems-bsps=sparc/sis
+
+ You can use '--rtems-archs=sparc,i386' or
+ '--rtems-bsps=sparc/sis,i386/pc586' to build for more than BSP at a time.
+
+5. Build:
+
+ $ waf
+
+6. Run the executable using the simulator:
+
+ $ $HOME/Development/rtems/4.11/bin/sparc-rtems4.11-run \
+ ./build/sparc-rtems4.11-sis/hello
+
+[1] It is good practice to keep your environment as empty as possible. Setting
+ paths to tools or specific values to configure or control builds is
+ dangerous because settings can leak between different builds and change
+ what you expect a build to do. The waf tool used here lets you specify on
+ the command line the tools and RTEMS paths and this is embedded in waf's
+ configuration information. If you have a few source trees working at any
+ one time with different tool sets or configurations you can easly move
+ between them safe in the knowledge that one build will not infect another.
+
+