[Buildroot] autotools, autorefconf, libtoolize and non-existing m4 directory
Michael Walle
michael at walle.cc
Tue Dec 10 10:34:51 UTC 2019
Hi Thomas, Hi Peter,
we have a package [1] where:
- we have AC_CONFIG_MACRO_DIR([m4]) in configure.ac
- we have ACLOCAL_AMFLAGS = -I m4 in Makefile.am
- we do *not* have an m4/ subdirectory (there is actually a commit
that introduces an empty m4/ directory, but that should not be
necessary)
We now do trigger a bug where autoreconf from the host works perfectly
and the autoreconf of busybox do not. Here is our first analysis:
- originating from [2], there was an upstream patch which degrades the
absence of a local m4 directory from fatal to just a warning in the
aclocal step.
- the current aclocal script treats just the _first_ include directory
that way. Ie. it assumes, that the local m4/ is the first one in
@user_includes, see [3]
- buildroot sets the first one by its own in the automake package,
see [4], because it supplies the first include already in the
"$(ACLOCAL)"
Is this behaviour intended? There is also an install option to aclocal
which uses first directory in the list.
Unfortunately, I cannot come up with a solution other than:
ACLOCAL_AMFLAGS = -I m4 $(SOME_OTHER_FLAGS)
and buildroot would set its own include path in SOME_OTHER_FLAGS. But
I'd guess that will break many packages. So maybe the current behaviour
is the lesser evil. But it does not really work like on the host system.
-michael
[1] https://github.com/kontron/keapi
[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=565663#50
[3]
http://git.savannah.gnu.org/cgit/automake.git/tree/bin/aclocal.in?id=5ae02cc829c8efe8afcf72467d0147444feab651#n439
[4]
https://git.buildroot.net/buildroot/tree/package/automake/automake.mk?id=c699f5ab5a9d86d4416647a3ba9405476bf6bb9b#n35
More information about the buildroot
mailing list