autotools_get_subdirs and autotools_get_auxdir do no evaluate the arguments of AC_CONFIG_SUBDIRS and AC_CONFIG_AUX_DIR. In net-misc/asterisk-1.8.6.0 AC_CONFIG_AUX_DIR (in configure.ac) is set to AC_CONFIG_AUX_DIR(`pwd`). The result is that a directory called `pwd` (literally) is created in the top level build directory. That may or may not be a good/correct way of defining AC_CONFIG_AUX_DIR. I could imagine more reasonable examples, such as setting it to $tools/autotools, where $tools is defined elsewhere. autoconf would generate correct code in configure but the eclass would not create the directory correctly. It probably won't break anything as it is, but I spent an hour trying to figure out what was wrong and if I should worry about it. I'm not sure what the best way to fix this is, but something like an eval echo "$result" ought to produce the same thing as the configure script does. Where result is what these functions output as they are written now. Reproducible: Always
"AC_CONFIG_AUX_DIR(`pwd`)" is invalid. autotools itself shows this broken logic. so autotools.eclass is fine. simple example: rm -rf d && mkdir d && cd d touch NEWS README AUTHORS INSTALL ChangeLog COPYING Makefile.am cat <<\EOF > configure.ac AC_INIT(d,1) AC_CONFIG_AUX_DIR(`pwd`) AM_INIT_AUTOMAKE AC_OUTPUT(Makefile) EOF autoreconf -f -i which shows the output: configure.ac:3: installing ``pwd`/install-sh' configure.ac:3: installing ``pwd`/missing' and if you do `ls -l`: drwxr-xr-x 2 vapier users 4096 Sep 11 16:59 `pwd`