summaryrefslogtreecommitdiff
path: root/wscript
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2012-04-25 10:12:19 +1000
committerChris Johns <chrisj@rtems.org>2012-04-25 10:12:19 +1000
commit673b40c95705127635af12bda15694fd6ab5a96b (patch)
tree5c243823cf495ba3702773f94b275a442ac218de /wscript
Import the current project to git.
Diffstat (limited to 'wscript')
-rw-r--r--wscript142
1 files changed, 142 insertions, 0 deletions
diff --git a/wscript b/wscript
new file mode 100644
index 0000000..fb85ada
--- /dev/null
+++ b/wscript
@@ -0,0 +1,142 @@
+#
+# Waf build script for the Run Time Link editor development project.
+#
+import rtems
+
+version = "1.0.0"
+
+def init(ctx):
+ rtems.init(ctx)
+
+def options(opt):
+ rtems.options(opt)
+
+def configure(conf):
+ rtems.configure(conf)
+
+ conf.env.ASCIIDOC = conf.find_program(['asciidoc.py'], mandatory = False)
+ conf.env.ASCIIDOC_FLAGS = ['-b', 'html5', '-a', 'data-uri', '-a', 'icons', '-a', 'max-width=55em-a']
+
+def build(bld):
+ bld.add_post_fun(rtl_post_build)
+
+ rtems.build(bld)
+
+ arch = bld.get_env()['RTEMS_ARCH']
+
+ bld.includes = ['.',
+ 'libbsd/include',
+ 'libbsd/include/arch/' + arch]
+
+ rtl_source(bld, arch)
+ rtl_liba(bld, arch)
+ rtl_root_fs(bld)
+ rtl_gsyms(bld)
+
+ bld(target = 'rtld',
+ features = 'c cprogram',
+ source = ['init.c',
+ 'main.c',
+ 'fs-root-tarfile.o'],
+ includes = bld.includes,
+ defines = ['PACKAGE_VERSION="' + version + '"'],
+ use = ['rtl', 'rootfs', 'rtld-gsyms'],
+ depends_on = 'gsyms')
+
+ if bld.env.ASCIIDOC:
+ bld(target = 'rtems-rtl.html', source = 'rtems-rtl.txt')
+
+def rtl_source(bld, arch):
+ bld(target = 'rtl',
+ features = 'c',
+ includes = bld.includes,
+ source = ['dlfcn.c',
+ 'dlfcn-shell.c',
+ 'rtl.c',
+ 'rtl-chain-iterator.c',
+ 'rtl-debugger.c',
+ 'rtl-elf.c',
+ 'rtl-error.c',
+ 'rtl-obj.c',
+ 'rtl-obj-cache.c',
+ 'rtl-shell.c',
+ 'rtl-sym.c',
+ 'rtl-trace.c',
+ 'rtl-mdreloc-' + arch + '.c'])
+
+def rtl_liba(bld, arch):
+ bld(target = 'x',
+ features = 'c cstlib',
+ includes = bld.includes,
+ source = ['xa.c',
+ 'x-long-name-to-create-gnu-extension-in-archive.c'])
+
+def mmap_source(bld, includes):
+ bld(target = 'mmap',
+ features = 'c',
+ includes = includes,
+ source = ['mmap.c',
+ 'munmap.c'])
+
+def rtl_root_fs(bld):
+ bld(target = 'fs-root.tar',
+ source = ['shell-init', 'libx.a', 'a.out'],
+ rule = 'tar cf - ${SRC} > ${TGT}')
+ bld.objects(name = 'rootfs',
+ target = 'fs-root-tarfile.o',
+ source = 'fs-root.tar',
+ rule = '${OBJCOPY} -I binary -B ${RTEMS_ARCH} ${OBJCOPY_FLAGS} ${SRC} ${TGT}')
+
+def rtl_pre_build(bld):
+ pass
+
+def rtl_post_build(bld):
+ rtl_gsyms(bld)
+
+def rtl_gsyms(bld):
+ import os.path
+ src = os.path.join(bld.get_variant_dir(), 'gsyms.c')
+ if os.path.exists(src):
+ if os.path.exists(os.path.join(bld.get_variant_dir(), 'rtld')):
+ import os
+ sb = os.stat(src)
+ if sb.st_size == 0:
+ bld(name = 'gsyms',
+ target = 'gsyms.c',
+ always = True,
+ rule = '${NM} -g rtld | awk -f ../../mksyms.awk - > ${TGT}')
+ else:
+ open(src, 'a').close()
+ bld(target = 'rtld-gsyms',
+ features = 'c',
+ includes = bld.includes,
+ source = ['rtld-gsyms.c'],
+ depends_on = 'gsyms')
+
+def x_rtl_gsyms(bld):
+ import os.path
+ src = os.path.join(bld.get_variant_dir(), 'gsyms.c')
+ if os.path.exists(src):
+ if os.path.exists(os.path.join(bld.get_variant_dir(), 'rtld')):
+ import os
+ sb = os.stat(src)
+ if sb.st_size == 0:
+ bld(name = 'gsyms',
+ target = 'gsyms.c',
+ always = True,
+ rule = '${NM} -g rtld | awk -f ../../mksyms.awk - > ${TGT}')
+ else:
+ open(src, 'a').close()
+ bld(target = 'rtld-gsyms',
+ features = 'c',
+ includes = bld.includes,
+ source = ['rtld-gsyms.c'],
+ depends_on = 'gsyms')
+
+import TaskGen
+TaskGen.declare_chain(name = 'html',
+ rule = '${ASCIIDOC} ${ASCIIDOC_FLAGS} -o ${TGT} ${SRC}',
+ shell = False,
+ ext_in = '.txt',
+ ext_out = '.html',
+ reentrant = False)