diff options
| author | Michael Forney <mforney@mforney.org> | 2016-04-10 02:58:52 -0700 |
|---|---|---|
| committer | Michael Forney <mforney@mforney.org> | 2016-04-15 02:10:08 -0700 |
| commit | dbb513d4572e2eed5e540b7b7fb7e9c8f544cb04 (patch) | |
| tree | 2260140732591d6ca455e493305884c21f063b3f /core/libfirm | |
| parent | 5f753e71fa37011b9bf7bcec482fe4a4a904dc9e (diff) | |
Add some initial packages
Diffstat (limited to 'core/libfirm')
| -rw-r--r-- | core/libfirm/gen.rc | 60 | ||||
| m--------- | core/libfirm/src | 0 |
2 files changed, 60 insertions, 0 deletions
diff --git a/core/libfirm/gen.rc b/core/libfirm/gen.rc new file mode 100644 index 00000000..bbfcbee4 --- /dev/null +++ b/core/libfirm/gen.rc @@ -0,0 +1,60 @@ +cflags\ + -I '$outdir' \ + -I '$srcdir'/src/include/libfirm/adt\ + -I '$srcdir'/src/include/libfirm\ + -I '$srcdir'/src/ir/adt\ + -I '$srcdir'/src/ir/ana\ + -I '$srcdir'/src/ir/be/ia32\ + -I '$srcdir'/src/ir/be\ + -I '$srcdir'/src/ir/common\ + -I '$srcdir'/src/ir/ident\ + -I '$srcdir'/src/ir/ir\ + -I '$srcdir'/src/ir/kaps\ + -I '$srcdir'/src/ir/libcore\ + -I '$srcdir'/src/ir/lower\ + -I '$srcdir'/src/ir/lpp\ + -I '$srcdir'/src/ir/opt\ + -I '$srcdir'/src/ir/stat\ + -I '$srcdir'/src/ir/tr\ + -I '$srcdir'/src/ir/tv + +backends=( amd64 arm ia32 sparc TEMPLATE ) + +rule irspec '$python $srcdir/src/scripts/gen_ir.py $srcdir/src/scripts/ir_spec.py $in >$out.tmp && mv $out.tmp $out' +rule new_nodes '$perl $srcdir/src/ir/be/scripts/generate_new_opcodes.pl $in $outdir' +rule regalloc_if '$perl $srcdir/src/ir/be/scripts/generate_regalloc_if.pl $in $outdir' +rule emitter '$perl $srcdir/src/ir/be/scripts/generate_emitter.pl $in $outdir' + +cd src + +genhdrs=( nodes.h gen_irnode.h gen_proj_names.h ) +gensrcs=( gen_irnode.c gen_irio.c ) +for(gensrc in $genhdrs $gensrcs) { + build '$outdir'/$gensrc irspec '$srcdir'/src/scripts/templates/$gensrc +} + +srcs=( ir/*/*.c '$outdir'/$gensrcs ) +objs=$srcs.o +for(src in $srcs) cc $src '||' '$outdir/stamp' + +stampdeps=( $genhdrs ) + +for(backend in $backends) { + types=( emitter regalloc_if new_nodes ) + srcs=( ir/be/$backend/*.c '$outdir'/gen_$backend^_$types.c ) + objs=( $objs $srcs.o ) + stampdeps=( $stampdeps gen_$backend^_$types.h ) + { + cflags -I '$srcdir'/src/ir/be/$backend + for(type in $types) { + outs=( '$outdir'/gen_$backend^_$type.^(c h) )\ + build $"outs $type '$srcdir'/src/ir/be/$backend/$backend^_spec.pl + } + for(src in $srcs) cc $src '||' '$outdir/stamp' + } >$outdir/$backend.ninja + echo 'subninja $outdir'/$backend.ninja +} + +ar libfirm.a $objs + +stamp $stampdeps diff --git a/core/libfirm/src b/core/libfirm/src new file mode 160000 +Subproject 03dcab7e4809422fd8c7ccf1802cd715242ef0b |
