Here's an example makefile:
cat <<_EOF > Makefile
test.out: ./script.sh
$< > $@
_EOF
Now when I run make, it executes
`script.sh > test.out`
instead of
`./script.sh > test.out`
This is all fine when 'PATH=.:<stuff>', and sometimes acceptable when
'PATH=<stuff>:.'; but in the general case, its very bad.
I'm working around this by changing my makefiles to
cat <<_EOF > Makefile
test.out: ./script.sh
./$< > $@
_EOF
but that doesn't seem too good either; maybe it should always be
cat <<_EOF > Makefile
test.out: $(srcdir)/script.sh
$(srcdir)/$< > $@
_EOF
??
Bug reports #15338 and #17230 cover this same issue, but I haven't seen
any followup, neither on Savannah nor on these lists.
The closest discussion I could find was #10708, mentioned in
http://lists.gnu.org/archive/html/help-make/2006-03/msg00231.html
What's the official scoop? Are there plans to fix/change this behavior?
In the meantime, how should I code the above Makefile (where an output
file should be rebuilt whenever its script changes)?
Thanks,
Daniel
_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make