Running autogen.sh gives the following output when it gets to doxygen/Makefile.am: doxygen/Makefile.am:3: warning: shell find $(top_srcdir: non-POSIX variable name doxygen/Makefile.am:3: (probably a GNU make extension) Automake doesn't understand the GNU make $(shell ...) function and tries to interpret it as an Automake variable. The Automake people would probably say we shouldn't do that 'cause it's not portable: https://www.gnu.org/software/automake/manual/automake.html#Wildcards However, if we accept that we are targetting GNU make, but we want to get rid of the warning, I believe there are two ways to do so. We can tell Automake not to warn about non-portable constructions: diff --git a/configure.ac b/configure.ac index 4721eebbab1f..7cd34d079e67 100644 --- a/configure.ac +++ b/configure.ac @@ -6,7 +6,7 @@ AC_CANONICAL_HOST AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS([config.h]) -AM_INIT_AUTOMAKE([-Wall foreign subdir-objects +AM_INIT_AUTOMAKE([-Wall -Wno-portability foreign subdir-objects tar-pax no-dist-gzip dist-bzip2 1.6]) m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) On the other hand, if we want to suppress the warning for just this one GNU-ism, we can hide it from automake: diff --git a/configure.ac b/configure.ac index 4721eebbab1f..b2b54d3168ad 100644 --- a/configure.ac +++ b/configure.ac @@ -56,6 +56,19 @@ AS_IF([test "x$DOXYGEN" = x], [ with_doxygen=no ]) ]) +# +# Putting $(shell ... ) directly into the doyxgen Makefile.am confuses automake, +# which tries to interpret it as an automake variable: +# +# doxygen/Makefile.am:3: warning: shell find $(top_srcdir: non-POSIX variable name +# doxygen/Makefile.am:3: (probably a GNU make extension) +# +# Instead, we use autoconf to substitute it into place after automake has run. +# +AS_IF([test "x$with_doxygen" != no], [ + AC_SUBST([DOC_SRCS], ['$(shell find $(top_srcdir)/src -name '"'"'*.c'"'"')']) +]) + AC_OUTPUT echo " diff --git a/doxygen/Makefile.am b/doxygen/Makefile.am index f38009b24114..6ed30e21ff75 100644 --- a/doxygen/Makefile.am +++ b/doxygen/Makefile.am @@ -1,6 +1,6 @@ if HAVE_DOXYGEN -doc_srcs = $(shell find $(top_srcdir)/src -name '*.c') +doc_srcs = @DOC_SRCS@ doxyfile.stamp: $(doc_srcs) Makefile.am rm -rf html man J.
Attachment:
signature.asc
Description: PGP signature