diff options
| author | Michael Forney <mforney@mforney.org> | 2016-07-15 19:17:48 -0700 |
|---|---|---|
| committer | Michael Forney <mforney@mforney.org> | 2016-07-16 14:23:20 -0700 |
| commit | 78c4cc0023cd0e9e6df03a07f396017da48e336c (patch) | |
| tree | 1d1e77577e197608136d9867e16ca1bbd2cdec7e | |
| parent | b6392fac15793878df45a57d049a063b4e781e2c (diff) | |
Don't list git repository files as outputs
This way, ninja -t clean will work as expected.
| -rw-r--r-- | core/tz/gen.rc | 4 | ||||
| -rw-r--r-- | extra/man-pages-posix/gen.rc | 4 | ||||
| -rw-r--r-- | gen.rc | 8 | ||||
| -rw-r--r-- | ninja.rc | 4 | ||||
| -rw-r--r-- | rules.ninja | 4 | ||||
| -rw-r--r-- | scripts/commit.rc | 3 | ||||
| -rw-r--r-- | scripts/tree.rc | 6 | ||||
| -rwxr-xr-x | setup.rc | 8 |
8 files changed, 23 insertions, 18 deletions
diff --git a/core/tz/gen.rc b/core/tz/gen.rc index 838de404..b2a9377e 100644 --- a/core/tz/gen.rc +++ b/core/tz/gen.rc @@ -19,8 +19,8 @@ tzdata=(\ systemv\ factory\ ) -build '$outdir'/tzdata.tree awk '$srcdir'/$tzdata '|' scripts/hash.rc '$dir/tzdata.awk' ; with\ +build '$outdir'/tzdata.index awk '$srcdir'/$tzdata '|' scripts/hash.rc '$dir/tzdata.awk' ; with\ expr '-f $dir/tzdata.awk out=$outdir/zoneinfo repo=$builddir/$repo.git' -tree_inputs=($tree_inputs '$outdir'/tzdata.tree) +index_inputs=($index_inputs '$outdir'/tzdata.index) fetch git diff --git a/extra/man-pages-posix/gen.rc b/extra/man-pages-posix/gen.rc index 0d893091..55892923 100644 --- a/extra/man-pages-posix/gen.rc +++ b/extra/man-pages-posix/gen.rc @@ -1,7 +1,7 @@ rule manpages 'rc ./$dir/manpages.rc $builddir/$repo.git $out $srcdir' ; with\ deps gcc\ depfile '$out.d' -build '$outdir'/manpages.tree manpages '|' '$dir'/manpages.rc config.rc '||' '$outdir'/fetch.stamp -tree_inputs=($tree_inputs '$outdir'/manpages.tree) +build '$outdir'/manpages.index manpages '|' '$dir'/manpages.rc config.rc '||' '$outdir'/fetch.stamp +index_inputs=($index_inputs '$outdir'/manpages.index) fetch curl @@ -9,8 +9,8 @@ subgen util file .perms '$outdir'/root.perms 644 build '$builddir/$repo.stamp' gitinit -build '$builddir/$repo.git/refs/tags/$repo_tag' gittree '$outdir/root.tree' '|' '$builddir/$repo.stamp' ./scripts/tree.rc -build '$builddir/$repo.tar' gitarchive '|' '$builddir/$repo.git/refs/tags/$repo_tag' -build '$builddir/$repo.git/refs/heads/master' gitcommit '|' '$builddir/$repo.git/refs/tags/$repo_tag' +build '$builddir/$repo.tree' gittree '$outdir/root.index' '|' '$builddir/$repo.stamp' ./scripts/tree.rc +build '$builddir/$repo.tar' gitarchive '|' '$builddir/$repo.tree' +build '$builddir/$repo.commit' gitcommit '|' '$builddir/$repo.tree' -echo default '$builddir/$repo.git/refs/heads/master' +echo default '$builddir/$repo.commit' @@ -142,7 +142,7 @@ fn file { mode=`{printf %4s $3 | tr ' ' 0 | tail -c 4} build $out githash $2 '|' '$builddir/$repo.stamp' scripts/hash.rc ; with\ args 10$mode' '$1 - tree_inputs=($tree_inputs $out) + index_inputs=($index_inputs $out) if(! ~ $mode 0755 0644) tree_perms=($tree_perms 10$mode' '$1) } @@ -161,7 +161,7 @@ fn sym { out='$builddir/$repo.hash'/$1 build $out githash '|' '$builddir/$repo.stamp' scripts/hash.rc ; with\ args 120000' '$1' '$2 - tree_inputs=($tree_inputs $out) + index_inputs=($index_inputs $out) } status=() } diff --git a/rules.ninja b/rules.ninja index 0baf0e60..45821074 100644 --- a/rules.ninja +++ b/rules.ninja @@ -52,11 +52,11 @@ rule githash command = rc ./scripts/hash.rc $builddir/$repo.git $args $in >$out.tmp && mv $out.tmp $out rule gittree - command = rc ./scripts/tree.rc $builddir/$repo.git $repo_tag $in + command = rc ./scripts/tree.rc $builddir/$repo.git $repo_tag $in $out restat = 1 rule gitcommit - command = rc ./scripts/commit.rc $builddir/$repo.git $repo_branch $repo_tag + command = rc ./scripts/commit.rc $builddir/$repo.git $repo_branch $repo_tag $out rule gitarchive command = git -C $builddir/$repo.git archive -o $$PWD/$out $repo_tag diff --git a/scripts/commit.rc b/scripts/commit.rc index feb0f4ac..e7b5d468 100644 --- a/scripts/commit.rc +++ b/scripts/commit.rc @@ -5,9 +5,11 @@ flag e + repo=$1 branch=$2 tag=$3 +out=$4 fn checkstatus {} +wd=`{pwd} cd $repo if([ -f refs/heads/$branch ]) parent=(-p $branch) @@ -16,3 +18,4 @@ if not parent=() message='oasis built by '`{id -un} commit=`{echo $message | git commit-tree $tag $parent} ; checkstatus git update-ref refs/heads/$branch $commit +ln -f refs/heads/$branch $wd/$out diff --git a/scripts/tree.rc b/scripts/tree.rc index d42f5bd6..81f641c6 100644 --- a/scripts/tree.rc +++ b/scripts/tree.rc @@ -5,13 +5,15 @@ flag e + repo=$1 tag=$2 index=$3 +out=$4 fn checkstatus {} -oldcwd=`{pwd} +wd=`{pwd} cd $repo git read-tree --empty -git update-index --index-info <$oldcwd/$index +git update-index --index-info <$wd/$index tree=`{git write-tree} ; checkstatus git update-ref refs/tags/$tag $tree +ln -f refs/tags/$tag $wd/$out @@ -22,7 +22,7 @@ ifs=' fn subgen { subninja '$dir'/$1/local.ninja ninja_inputs=($ninja_inputs phony/'$dir'/$1/ninja) - tree_inputs=($tree_inputs '$outdir'/$1/root.tree) + index_inputs=($index_inputs '$outdir'/$1/root.index) perms_inputs=($perms_inputs '$outdir'/$1/root.perms) if(~ $recurse 1 || ! [ -f $1/local.ninja ]) @ gen $1 & status=() @@ -37,7 +37,7 @@ fn gen { allsrcs=() tree_perms=() perms_inputs=() - tree_inputs=() + index_inputs=() gen_inputs=() ninja_inputs=() @@ -60,8 +60,8 @@ fn gen { } if(~ $#perms_inputs 0) build '$outdir/root.perms' empty if not build '$outdir/root.perms' mergeperms $perms_inputs - if(~ $#tree_inputs 0) build '$outdir/root.tree' empty - if not build '$outdir/root.tree' cat $tree_inputs + if(~ $#index_inputs 0) build '$outdir/root.index' empty + if not build '$outdir/root.index' cat $index_inputs } >local.ninja.tmp mv $absdir/^(local.ninja.tmp local.ninja) |
