summaryrefslogtreecommitdiff
path: root/devel
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2016-06-07 00:02:23 -0700
committerMichael Forney <mforney@mforney.org>2016-06-07 00:02:23 -0700
commit324efa470ddc619882b520e7865583c3bc503778 (patch)
treec33ad0c782b663619528cfcfe2c1bd0ecc529606 /devel
parenta5ff3a8819777940e02481abcba1086282f4ce6f (diff)
Move cparser and libfirm to devel
Diffstat (limited to 'devel')
-rw-r--r--devel/cparser/gen.rc14
m---------devel/cparser/src0
-rw-r--r--devel/gen.rc2
-rw-r--r--devel/libfirm/.gitignore5
-rw-r--r--devel/libfirm/gen.rc59
m---------devel/libfirm/src0
6 files changed, 80 insertions, 0 deletions
diff --git a/devel/cparser/gen.rc b/devel/cparser/gen.rc
new file mode 100644
index 00000000..302c011a
--- /dev/null
+++ b/devel/cparser/gen.rc
@@ -0,0 +1,14 @@
+cflags\
+ -I devel/libfirm/src/include\
+ -I '$builddir'/devel/libfirm/include\
+ -I '$srcdir'/src\
+ -I '$outdir'
+
+rule revision_hdr 'echo ''#define cparser_REVISION ""'' >$out.tmp && mv $out.tmp $out'
+build '$outdir'/revision.h revision_hdr
+
+srcs=src/^(main.c */*.c)
+for(src in $srcs) cc $src '||' '$outdir'/revision.h phony/devel/libfirm/headers
+link cparser $srcs.o '$builddir'/devel/libfirm/libfirm.a
+file bin/cparser '$outdir'/cparser 755
+file share/man/man1/cparser.1 '$srcdir'/cparser.1 644
diff --git a/devel/cparser/src b/devel/cparser/src
new file mode 160000
+Subproject d2a926c5f3b2c475650cb6d66eeed45ab7e31bd
diff --git a/devel/gen.rc b/devel/gen.rc
index 0447eb34..19f36303 100644
--- a/devel/gen.rc
+++ b/devel/gen.rc
@@ -1 +1,3 @@
+subgen cparser
+subgen libfirm
subgen make
diff --git a/devel/libfirm/.gitignore b/devel/libfirm/.gitignore
new file mode 100644
index 00000000..afd86171
--- /dev/null
+++ b/devel/libfirm/.gitignore
@@ -0,0 +1,5 @@
+/TEMPLATE.ninja
+/amd64.ninja
+/arm.ninja
+/ia32.ninja
+/sparc.ninja
diff --git a/devel/libfirm/gen.rc b/devel/libfirm/gen.rc
new file mode 100644
index 00000000..159d24a4
--- /dev/null
+++ b/devel/libfirm/gen.rc
@@ -0,0 +1,59 @@
+cflags\
+ -I '$outdir' \
+ -I '$outdir'/include\
+ -I '$srcdir'/include/libfirm/adt\
+ -I '$srcdir'/include/libfirm\
+ -I '$srcdir'/ir/adt\
+ -I '$srcdir'/ir/ana\
+ -I '$srcdir'/ir/be/ia32\
+ -I '$srcdir'/ir/be\
+ -I '$srcdir'/ir/common\
+ -I '$srcdir'/ir/ident\
+ -I '$srcdir'/ir/ir\
+ -I '$srcdir'/ir/kaps\
+ -I '$srcdir'/ir/libcore\
+ -I '$srcdir'/ir/lower\
+ -I '$srcdir'/ir/lpp\
+ -I '$srcdir'/ir/opt\
+ -I '$srcdir'/ir/stat\
+ -I '$srcdir'/ir/tr\
+ -I '$srcdir'/ir/tv
+
+backends=(amd64 arm ia32 sparc TEMPLATE)
+
+rule irspec '$python $srcdir/scripts/gen_ir.py $srcdir/scripts/ir_spec.py $in >$out.tmp && mv $out.tmp $out'
+rule new_nodes '$perl $srcdir/ir/be/scripts/generate_new_opcodes.pl $in $outdir'
+rule regalloc_if '$perl $srcdir/ir/be/scripts/generate_regalloc_if.pl $in $outdir'
+rule emitter '$perl $srcdir/ir/be/scripts/generate_emitter.pl $in $outdir'
+
+genhdrs=(gen_irnode.h gen_proj_names.h)
+gensrcs=(gen_irnode.c gen_irio.c)
+for(gensrc in $genhdrs $gensrcs) {
+ build '$outdir'/$gensrc irspec '$srcdir'/scripts/templates/$gensrc
+}
+
+build '$outdir'/include/nodes.h irspec '$srcdir'/scripts/templates/nodes.h
+phony headers include/nodes.h
+
+srcs=(ir/*/*.c '$outdir'/$gensrcs)
+objs=$srcs.o
+for(src in $srcs) cc $src '||' 'phony/$dir/internal_headers'
+
+for(backend in $backends) {
+ types=(emitter regalloc_if new_nodes)
+ srcs=(ir/be/$backend/*.c '$outdir'/gen_$backend^_$types.c)
+ objs=($objs $srcs.o)
+ genhdrs=($genhdrs gen_$backend^_$types.h)
+ {
+ cflags -I '$srcdir'/ir/be/$backend
+ for(type in $types) {
+ outs=('$outdir'/gen_$backend^_$type.^(c h))\
+ build $"outs $type '$srcdir'/ir/be/$backend/$backend^_spec.pl
+ }
+ for(src in $srcs) cc $src '||' 'phony/$dir/internal_headers'
+ } >../$backend.ninja
+ subninja '$dir'/$backend.ninja
+}
+phony internal_headers $genhdrs 'phony/$dir/headers'
+
+ar libfirm.a $objs
diff --git a/devel/libfirm/src b/devel/libfirm/src
new file mode 160000
+Subproject 1dfae908f3acf65d0a396ea12333af6c2bca81e