Search parent directories for default*.do.
Previously, we would only search for default*.do in the same directory in the target; now we search parent directories as well. Let's say we're in a/b/ and trying to build foo.o. If we find ../../default.o.do, then we'll run cd ../..; sh default.o.do a/b/foo .o $TMPNAME In other words, we still always chdir to the same directory as the .do file. But now $1 might have a path in it, not just a basename.
This commit is contained in:
parent
e207b723b4
commit
0dcc3f61b6
16 changed files with 117 additions and 32 deletions
6
t/.gitignore
vendored
6
t/.gitignore
vendored
|
|
@ -1,9 +1,3 @@
|
|||
c
|
||||
c.c
|
||||
c.c.c
|
||||
c.c.c.b
|
||||
c.c.c.b.b
|
||||
d
|
||||
test.args
|
||||
test2.args
|
||||
/passfail
|
||||
|
|
|
|||
4
t/all.do
4
t/all.do
|
|
@ -1,2 +1,2 @@
|
|||
redo-ifchange hello yellow bellow defaults-flat/all example/all
|
||||
|
||||
redo-ifchange hello yellow bellow defaults-flat/all defaults-nested/all \
|
||||
example/all
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
redo example/clean curse/clean deps/clean "space dir/clean" stamp/clean \
|
||||
defaults-flat/clean
|
||||
defaults-flat/clean defaults-nested/clean
|
||||
rm -f mode1 makedir.log chdir1 deltest2 \
|
||||
hello [by]ellow *.o *~ .*~ *.log CC LD passfail silence silence.do \
|
||||
touch1 touch1.do always1 ifcreate[12].dep ifcreate[12]
|
||||
|
|
|
|||
6
t/defaults-flat/.gitignore
vendored
Normal file
6
t/defaults-flat/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
c
|
||||
c.c
|
||||
c.c.c
|
||||
c.c.c.b
|
||||
c.c.c.b.b
|
||||
d
|
||||
15
t/defaults-nested/.gitignore
vendored
Normal file
15
t/defaults-nested/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
/a/b/file
|
||||
/a/b/file.x.y.z
|
||||
/a/b/file.y.z
|
||||
/a/b/file.z
|
||||
/a/d/file
|
||||
/a/d/file.x.y.z
|
||||
/a/d/file.y.z
|
||||
/a/d/file.z
|
||||
/a/file
|
||||
/a/file.x.y.z
|
||||
/a/file.y.z
|
||||
/a/file.z
|
||||
/file.x.y.z
|
||||
/file.z
|
||||
/file
|
||||
1
t/defaults-nested/a/b/default.y.z.do
Normal file
1
t/defaults-nested/a/b/default.y.z.do
Normal file
|
|
@ -0,0 +1 @@
|
|||
echo default.y.z $1 $2
|
||||
1
t/defaults-nested/a/b/file.x.y.z.do
Normal file
1
t/defaults-nested/a/b/file.x.y.z.do
Normal file
|
|
@ -0,0 +1 @@
|
|||
echo file $1 $2
|
||||
1
t/defaults-nested/a/d/default.do
Normal file
1
t/defaults-nested/a/d/default.do
Normal file
|
|
@ -0,0 +1 @@
|
|||
echo default $1 $2
|
||||
2
t/defaults-nested/a/default.x.y.z.do
Normal file
2
t/defaults-nested/a/default.x.y.z.do
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
echo default.x.y.z $1 $2
|
||||
|
||||
1
t/defaults-nested/a/default.z.do
Normal file
1
t/defaults-nested/a/default.z.do
Normal file
|
|
@ -0,0 +1 @@
|
|||
echo default.z $1 $2
|
||||
1
t/defaults-nested/all.do
Normal file
1
t/defaults-nested/all.do
Normal file
|
|
@ -0,0 +1 @@
|
|||
redo test
|
||||
6
t/defaults-nested/clean.do
Normal file
6
t/defaults-nested/clean.do
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
exec >&2
|
||||
find -name '*~' -exec rm -f {} \;
|
||||
rm -f a/b/file a/b/file.x.y.z a/b/file.y.z a/b/file.z \
|
||||
a/d/file a/d/file.x.y.z a/d/file.y.z a/d/file.z \
|
||||
a/file a/file.x.y.z a/file.y.z a/file.z \
|
||||
file.x.y.z file.z file
|
||||
2
t/defaults-nested/default.do
Normal file
2
t/defaults-nested/default.do
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
echo root $1 $2
|
||||
|
||||
36
t/defaults-nested/test.do
Normal file
36
t/defaults-nested/test.do
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
exec >&2
|
||||
redo-ifchange \
|
||||
file.x.y.z file.z file \
|
||||
a/b/file.x.y.z a/b/file.y.z a/b/file.z a/b/file \
|
||||
a/d/file.x.y.z a/d/file.y.z a/d/file.z a/d/file
|
||||
|
||||
(cd a/b && redo-ifchange ../file.x.y.z ../file.y.z ../file.z ../file)
|
||||
|
||||
check()
|
||||
{
|
||||
if [ "$(cat $1)" != "$2" ]; then
|
||||
echo "$1 should contain '$2'"
|
||||
echo " ...got '$(cat $1)'"
|
||||
exit 44
|
||||
fi
|
||||
}
|
||||
|
||||
check file.x.y.z "root file.x.y.z"
|
||||
check file.z "root file.z"
|
||||
check file "root file"
|
||||
|
||||
check a/file.x.y.z "default.x.y.z file .x.y.z"
|
||||
check a/file.y.z "default.z file.y .z"
|
||||
check a/file.z "default.z file .z"
|
||||
check a/file "root a/file"
|
||||
|
||||
check a/b/file.x.y.z "file file.x.y.z"
|
||||
check a/b/file.y.z "default.y.z file .y.z"
|
||||
check a/b/file.z "default.z b/file .z"
|
||||
check a/b/file "root a/b/file"
|
||||
|
||||
check a/d/file.x.y.z "default file.x.y.z"
|
||||
check a/d/file.y.z "default file.y.z"
|
||||
check a/d/file.z "default file.z"
|
||||
check a/d/file "default file"
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue