summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/cparser/gen.rc4
-rw-r--r--core/file/gen.rc4
-rw-r--r--core/libfirm/gen.rc17
-rw-r--r--core/plan9port/gen.rc11
-rw-r--r--core/sbase/gen.rc12
-rw-r--r--core/sinit/gen.rc3
-rw-r--r--core/ubase/gen.rc4
-rw-r--r--core/zlib/gen.rc2
-rw-r--r--ninja.rc11
-rw-r--r--rules.ninja2
-rwxr-xr-xsetup.rc4
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
diff --git a/ninja.rc b/ninja.rc
index 863cd8fd..48ac6860 100644
--- a/ninja.rc
+++ b/ninja.rc
@@ -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
diff --git a/setup.rc b/setup.rc
index 265cedfd..a20ed4f4 100755
--- a/setup.rc
+++ b/setup.rc
@@ -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)