diff options
| -rw-r--r-- | core/cparser/gen.rc | 4 | ||||
| -rw-r--r-- | core/file/gen.rc | 4 | ||||
| -rw-r--r-- | core/libfirm/gen.rc | 17 | ||||
| -rw-r--r-- | core/plan9port/gen.rc | 11 | ||||
| -rw-r--r-- | core/sbase/gen.rc | 12 | ||||
| -rw-r--r-- | core/sinit/gen.rc | 3 | ||||
| -rw-r--r-- | core/ubase/gen.rc | 4 | ||||
| -rw-r--r-- | core/zlib/gen.rc | 2 | ||||
| -rw-r--r-- | ninja.rc | 11 | ||||
| -rw-r--r-- | rules.ninja | 2 | ||||
| -rwxr-xr-x | setup.rc | 4 |
11 files changed, 38 insertions, 36 deletions
diff --git a/core/cparser/gen.rc b/core/cparser/gen.rc index b5d17338..5bb5634d 100644 --- a/core/cparser/gen.rc +++ b/core/cparser/gen.rc @@ -1,6 +1,6 @@ cflags\ -I core/libfirm/src/include\ - -I '$builddir'/core/libfirm\ + -I '$builddir'/core/libfirm/include\ -I '$srcdir'/src\ -I '$outdir' @@ -8,7 +8,7 @@ rule revision_hdr 'echo ''#define cparser_REVISION ""'' >$out.tmp && mv $out.tmp build '$outdir'/revision.h revision_hdr srcs=src/^(main.c */*.c) -for(src in $srcs) cc $src '|' '$outdir'/revision.h '||' '$builddir/core/libfirm/stamp' +for(src in $srcs) cc $src '||' '$outdir'/revision.h phony/core/libfirm/headers link cparser $srcs.o '$builddir'/core/libfirm/libfirm.a file bin/cparser '$outdir'/cparser 755 file share/man/man1/cparser.1 '$srcdir'/cparser.1 644 diff --git a/core/file/gen.rc b/core/file/gen.rc index 0634fcfa..d6205cd9 100644 --- a/core/file/gen.rc +++ b/core/file/gen.rc @@ -81,6 +81,8 @@ build '$outdir'/magic.mgc magic '|' '$outdir'/$magic_outs let expr s@X.YY@`{echo $version | tr -d .}^@ --\ build '$outdir'/include/magic.h sed '$srcdir'/src/magic.h.in +phony headers include/magic.h + let expr '-e s@__CSECTION__@1@g -e s@__FSECTION__@5@g -e s@__VERSION__@'$version'@g -e s@__MAGIC__@/share/file/magic@g' --\ build '$outdir'/file.1 sed '$srcdir'/doc/file.man @@ -103,7 +105,7 @@ srcs=(\ \ src/fmtcheck.c\ ) { - for(src in $srcs) cc $src '|' '$outdir/include/magic.h' '||' '$builddir/core/zlib/stamp' + for(src in $srcs) cc $src '||' 'phony/$dir/headers' phony/core/zlib/headers ar libmagic.a $srcs.o } diff --git a/core/libfirm/gen.rc b/core/libfirm/gen.rc index aeb9ff14..159d24a4 100644 --- a/core/libfirm/gen.rc +++ b/core/libfirm/gen.rc @@ -1,5 +1,6 @@ cflags\ -I '$outdir' \ + -I '$outdir'/include\ -I '$srcdir'/include/libfirm/adt\ -I '$srcdir'/include/libfirm\ -I '$srcdir'/ir/adt\ @@ -25,34 +26,34 @@ 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=(nodes.h gen_irnode.h gen_proj_names.h) +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 '||' '$outdir/stamp' - -stampdeps=($genhdrs) +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) - stampdeps=($stampdeps gen_$backend^_$types.h) + 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 '||' '$outdir/stamp' + 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 - -stamp $stampdeps diff --git a/core/plan9port/gen.rc b/core/plan9port/gen.rc index d2f3e497..01c3ea99 100644 --- a/core/plan9port/gen.rc +++ b/core/plan9port/gen.rc @@ -83,14 +83,11 @@ srcs=(\ var.c\ plan9ish.c\ havefork.c\ -) { - for(src in $srcs) cc src/cmd/rc/$src '||' '$outdir/stamp' - cc '$outdir'/x.tab.c - link rc src/cmd/rc/$srcs.o x.tab.c.o lib9.a -} +) +for(src in $srcs) cc src/cmd/rc/$src '||' '$outdir'/x.tab.h +cc '$outdir'/x.tab.c +link rc src/cmd/rc/$srcs.o x.tab.c.o lib9.a file bin/rc '$outdir'/rc 755 file share/man/man1/rc.1 '$srcdir'/man/man1/rc.1 644 file lib/rcmain '$srcdir'/rcmain 644 - -stamp x.tab.h diff --git a/core/sbase/gen.rc b/core/sbase/gen.rc index 558c59e0..ee72cce9 100644 --- a/core/sbase/gen.rc +++ b/core/sbase/gen.rc @@ -106,20 +106,18 @@ executables=(\ yes\ ) -getconf_hdrs=(confstr limits sysconf pathconf)^_l.h -getconf_outs='$outdir'/$getconf_hdrs -rule getconf_headers 'getconf=$$PWD/$srcdir/getconf.sh && cd $outdir && $$getconf' -build $"getconf_outs getconf_headers '|' '$srcdir/getconf.sh' +getconf_outs='$outdir'/^(confstr limits sysconf pathconf)^_l.h +rule getconf 'getconf=$$PWD/$srcdir/getconf.sh && cd $outdir && $$getconf' +build $"getconf_outs getconf '|' '$srcdir/getconf.sh' +phony internal_headers $getconf_outs for(exe in $executables) { if(~ $exe install) src=x$exe if not src=$exe - cc $src.c '||' '$outdir/stamp' + cc $src.c '||' 'phony/$dir/internal_headers' link $exe $src.c.o libutil.a libutf.a file bin/$exe '$outdir'/$exe 755 file share/man/man1/$exe.1 '$srcdir'/$src.1 644 } - -stamp $getconf_hdrs diff --git a/core/sinit/gen.rc b/core/sinit/gen.rc index 556d5564..66d904fc 100644 --- a/core/sinit/gen.rc +++ b/core/sinit/gen.rc @@ -1,9 +1,8 @@ cflags -Wall -Wextra -I '$outdir' build '$outdir'/config.h copy '$srcdir'/config.def.h -cc sinit.c '||' '$outdir'/stamp +cc sinit.c '||' '$outdir'/config.h link sinit sinit.c.o file bin/sinit '$outdir'/sinit 755 file share/man/man8/sinit.8 '$srcdir'/sinit.8 644 -stamp config.h diff --git a/core/ubase/gen.rc b/core/ubase/gen.rc index 80c91fdd..493bfa8d 100644 --- a/core/ubase/gen.rc +++ b/core/ubase/gen.rc @@ -29,7 +29,7 @@ static_lib libutil.a\ fn myexe { exe=$1 shift 1 - cc $exe.c '||' '$outdir/stamp' + cc $exe.c '||' '$outdir/config.h' exe $exe '$outdir'/$exe.c.o '$outdir/libutil.a' file bin/$exe '$outdir'/$exe 755 if(~ $#* 1) file share/man/man$1/$exe.$1 '$srcdir'/$exe.$1 644 @@ -86,5 +86,3 @@ myexe uptime 1 myexe vtallow 1 myexe watch 1 myexe who 1 - -stamp config.h diff --git a/core/zlib/gen.rc b/core/zlib/gen.rc index 90c903d7..c52c1a32 100644 --- a/core/zlib/gen.rc +++ b/core/zlib/gen.rc @@ -22,4 +22,4 @@ static_lib libz.a\ gzwrite.c build '$outdir'/include/zlib.h copy '$srcdir'/zlib.h -stamp include/zlib.h +phony headers include/zlib.h @@ -43,8 +43,15 @@ fn build { # higher-level rules -fn stamp { - build '$outdir/stamp' stamp '$outdir'/$* +fn phony { + name=$1 deps=() { + shift + for(dep) { + if(! ~ $dep '$'* phony/*) dep='$outdir'/$dep + deps=($deps $dep) + } + build phony/'$dir'/$name phony $deps + } } fn cflags { diff --git a/rules.ninja b/rules.ninja index cae07e47..55cd3fc2 100644 --- a/rules.ninja +++ b/rules.ninja @@ -15,7 +15,7 @@ rule ar command = $ar crsD $out $in # misc tools -rule stamp +rule touch command = touch $out rule copy @@ -59,9 +59,9 @@ fn gen { printf '%s\n' $tree_perms >$absdir/local.perms perms_inputs=($perms_inputs '$dir'/local.perms) } - if(~ $#perms_inputs 0) build '$outdir/root.perms' stamp + if(~ $#perms_inputs 0) build '$outdir/root.perms' touch if not build '$outdir/root.perms' cat $perms_inputs - if(~ $#tree_inputs 0) build '$outdir/root.tree' stamp + if(~ $#tree_inputs 0) build '$outdir/root.tree' touch if not build '$outdir/root.tree' cat $tree_inputs } >local.ninja.tmp mv $absdir/^(local.ninja.tmp local.ninja) |
