On 03/31/12 01:34, Stefano Lattarini wrote:
Is this a known problem or do I need to investigate further?
The issue you're facing sounds new to me, so I say some more investigations
are warranted. Could you maybe post a minimal reproducer of the issue here,
so that we can decide whether it is a user error, a documentation weakness,
or an automake bug?
By the time I have a "minimal reproducer", I'll likely know the cause.
Below is the invocation that causes the disappearance of xml2ag/Makefile.
After the successful completion of the command, the file was, indeed, gone.
So I've done verbose output:
Invoking recipe from Makefile:420 to update target `installcheck-recursive'.
So that has me closer. The top level installcheck-am causes the problem.
I modified the $(RECURSIVE_TARGETS) rule:
$(RECURSIVE_TARGETS):
PS4='>$@> ' ; test -f xml2ag/Makefile ; set -x ; \
fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
test -f xml2ag/Makefile ; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
test -f xml2ag/Makefile ; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
<<<aside: shouldn't that "|| exit 1" actually be "|| eval $$failcom" ??
and, why is failcom conditionally set to "yes" instead of "true" or ":"?
"yes" produces a lot of unnecessary output..... >>>
And the tail end of the output from "make --debug=v installcheck":
>installcheck-recursive> test -f xml2ag/Makefile
>installcheck-recursive> test no = no
>installcheck-recursive> make installcheck-am
GNU Make 3.82
[....]
Reading makefiles...
Reading makefile `Makefile'...
Updating goal targets....
Considering target file `installcheck-am'.
File `installcheck-am' does not exist.
Finished prerequisites of target file `installcheck-am'.
Must remake target `installcheck-am'.
Successfully remade target file `installcheck-am'.
make[1]: Entering directory `/old-home/bkorb/ag/ag/autogen-5.16pre11/_build'
make[1]: Nothing to be done for `installcheck-am'.
make[1]: Leaving directory `/old-home/bkorb/ag/ag/autogen-5.16pre11/_build'
>installcheck-recursive> test -z ''
Successfully remade target file `installcheck-recursive'.
Finished prerequisites of target file `installcheck'.
Must remake target `installcheck'.
Successfully remade target file `installcheck'.
$ ls xml2ag/Make*
ls: cannot access xml2ag/Make*: No such file or directory