Adding the automake list, since that is the impacted project: On 2/21/19 1:05 PM, Carlo Wood wrote: > Hi, > > I'm using a Makefile.am that has an include, like so: > > ---begin of Makefile.am--- > include $(srcdir)/cwm4/root_makefile_top.am > > SUBDIRS = googletest @CW_SUBDIRS@ src > > include $(srcdir)/cwm4/root_makefile_bottom.am ---end of Makefile.am > ---end of Makefile.am > > I do this because every project that I have is the same, except for > SUBDIRS :p. > > This works fine with all autotools except autoreconf; > for example > > sean:~/projects/aicxx/ai-evio-testsuite/ai-evio-testsuite>autoreconf -v -i -s > --no-recursive > autoreconf: Entering directory `.' > autoreconf: configure.ac: not using Gettext > autoreconf: running: aclocal > > which is wrong because autoreconf ignores the line > > ACLOCAL_AMFLAGS = -I cwm4/aclocal -I m4/aclocal > > in $(srcdir)/cwm4/root_makefile_top.am > > See https://www.gnu.org/software/automake/manual/html_node/Include.html > why this is legal usage of automake.
Makefile fragments are valid, but it is not immediately obvious if makefile fragments are allowed to have ACLOCAL_AMFLAGS that affect the overall file, or if it is better to put ACLOCAL_AMFLAGS directly in the primary file rather than hidden in an include file. At any rate, if automake is happy finding that definition after chasing through includes, I'm happy to accept a patch to autoreconf to do similar chasing when building the command line to pass to automake, but I'm not sure how easy it would be for me to write the patch myself. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org