<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.26.0">
</HEAD>
<BODY>
On Wed, 2011-01-19 at 18:22 -0500, Gaetan Nadon wrote:
<BLOCKQUOTE TYPE=CITE>
    <BLOCKQUOTE TYPE=CITE>
<PRE>
So, if we AC_REQUIRE([AC_PROG_CC]) before
AC_REQUIRE([AC_PROG_CC_C99]) in XORG_STRICT_OPTION, then it should
ensure the ordering, right? Or can you just keep calling them and the
last one wins? I haven't checked.

</PRE>
    </BLOCKQUOTE>
    The last one wins. <BR>
    <BR>
    If one call is in configure.ac and the other call is buried, it is confusing to the reader.<BR>
    If neither is called in configure.ac, it's like any other statement that is buried in util-macros.<BR>
    <BR>
    I guess it's like any reusable code you can't see from the calling program. You don't know what<BR>
    it does until you dig in.<BR>
    <BR>
    There are pros and cons. The module developer can concentrate on the configuration that is unique<BR>
    to the module and not have to deal with dozens of details that are the same in all modules.<BR>
    <BR>
    Some modules print a summary of the important configuration aspects of the module at the<BR>
    end of the configuration. That would be a nice feature.<BR>
    <BR>
</BLOCKQUOTE>
It may help to take a look at the libxkbcommon configuration.<BR>
I was able to finish it up completely, so it gives a more accurate picture<BR>
than a diff one liner.<BR>
<BR>
<A HREF="http://cgit.freedesktop.org/xorg/lib/libxkbcommon/tree/configure.ac">http://cgit.freedesktop.org/xorg/lib/libxkbcommon/tree/configure.ac</A><BR>
<BR>
As a fun exercise, I inlined the code in XORG_DEFAULT_OPTIONS:
<PRE>
AC_REQUIRE([AC_PROG_INSTALL])
AC_REQUIRE([AC_PROG_CC_C99])
if&nbsp; test &quot;x$GCC&quot; = xyes ; then
&nbsp;&nbsp;&nbsp; CWARNFLAGS=&quot;-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \
-Wmissing-declarations -Wnested-externs -fno-strict-aliasing \
-Wbad-function-cast -Wformat=2&quot;
&nbsp;&nbsp;&nbsp; case `$CC -dumpversion` in
&nbsp;&nbsp;&nbsp; 3.4.* | 4.*)
        CWARNFLAGS=&quot;$CWARNFLAGS -Wold-style-definition -Wdeclaration-after-statement&quot;
        ;
&nbsp;&nbsp;&nbsp; esac
else
&nbsp;&nbsp;&nbsp; AC_CHECK_DECL([__SUNPRO_C], [SUNCC=&quot;yes&quot;], [SUNCC=&quot;no&quot;])
&nbsp;&nbsp;&nbsp; if test &quot;x$SUNCC&quot; = &quot;xyes&quot;; then
        CWARNFLAGS=&quot;-v&quot;
&nbsp;&nbsp;&nbsp; fi
fi
AC_SUBST(CWARNFLAGS)

# If the module's configure.ac calls AC_PROG_CC later on, CC gets set to C89
AC_REQUIRE([AC_PROG_CC_C99])
AC_REQUIRE([XORG_CWARNFLAGS])

AC_ARG_ENABLE(strict-compilation,
                        &nbsp; AS_HELP_STRING([--enable-strict-compilation],
                        &nbsp; [Enable all warnings from compiler and make them errors (default: disabled)]),
                        &nbsp; [STRICT_COMPILE=$enableval], [STRICT_COMPILE=no])
if test &quot;x$STRICT_COMPILE&quot; = &quot;xyes&quot;; then
        AC_CHECK_DECL([__SUNPRO_C], [SUNCC=&quot;yes&quot;], [SUNCC=&quot;no&quot;])
        AC_CHECK_DECL([__INTEL_COMPILER], [INTELCC=&quot;yes&quot;], [INTELCC=&quot;no&quot;])
        if test &quot;x$GCC&quot; = xyes ; then
                STRICT_CFLAGS=&quot;-pedantic -Werror&quot;
        elif test &quot;x$SUNCC&quot; = &quot;xyes&quot;; then
                STRICT_CFLAGS=&quot;-errwarn&quot;
&nbsp;&nbsp;&nbsp; elif test &quot;x$INTELCC&quot; = &quot;xyes&quot;; then
                STRICT_CFLAGS=&quot;-Werror&quot;
        fi
fi
CWARNFLAGS=&quot;$CWARNFLAGS $STRICT_CFLAGS&quot;
AC_SUBST([CWARNFLAGS])

        AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR],
                [`echo $PACKAGE_VERSION | cut -d . -f 1`],
                [Major version of this package])
        PVM=`echo $PACKAGE_VERSION | cut -d . -f 2 | cut -d - -f 1`
        if test &quot;x$PVM&quot; = &quot;x&quot;; then
                PVM=&quot;0&quot;
        fi
        AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR],
                [$PVM],
                [Minor version of this package])
        PVP=`echo $PACKAGE_VERSION | cut -d . -f 3 | cut -d - -f 1`
        if test &quot;x$PVP&quot; = &quot;x&quot;; then
                PVP=&quot;0&quot;
        fi
        AC_DEFINE_UNQUOTED([PACKAGE_VERSION_PATCHLEVEL],
                [$PVP],
                [Patch version of this package])

CHANGELOG_CMD=&quot;(GIT_DIR=\$(top_srcdir)/.git git log &gt; \$(top_srcdir)/.changelog.tmp &amp;&amp; \
mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \
echo 'git directory not found: installing possibly empty changelog.' &gt;&amp;2)&quot;
AC_SUBST([CHANGELOG_CMD])

AC_DEFUN([XORG_INSTALL], [
AC_REQUIRE([PKG_PROG_PKG_CONFIG])
macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
INSTALL_CMD=&quot;(cp -f &quot;$macros_datadir/INSTALL&quot; \$(top_srcdir)/.INSTALL.tmp &amp;&amp; \
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \
echo 'util-macros \&quot;pkgdatadir\&quot; from xorg-macros.pc not found: installing possibly empty INSTALL.' &gt;&amp;2)&quot;
AC_SUBST([INSTALL_CMD])

AC_DEFUN([XORG_MANPAGE_SECTIONS],[
AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([AC_PROG_SED])

if test x$APP_MAN_SUFFIX = x&nbsp;&nbsp;&nbsp; ; then
&nbsp;&nbsp;&nbsp; APP_MAN_SUFFIX=1
fi
if test x$APP_MAN_DIR = x&nbsp;&nbsp;&nbsp; ; then
&nbsp;&nbsp;&nbsp; APP_MAN_DIR='$(mandir)/man$(APP_MAN_SUFFIX)'
fi

if test x$LIB_MAN_SUFFIX = x&nbsp;&nbsp;&nbsp; ; then
&nbsp;&nbsp;&nbsp; LIB_MAN_SUFFIX=3
fi
if test x$LIB_MAN_DIR = x&nbsp;&nbsp;&nbsp; ; then
&nbsp;&nbsp;&nbsp; LIB_MAN_DIR='$(mandir)/man$(LIB_MAN_SUFFIX)'
fi

if test x$FILE_MAN_SUFFIX = x&nbsp;&nbsp;&nbsp; ; then
&nbsp;&nbsp;&nbsp; case $host_os in
        solaris*)        FILE_MAN_SUFFIX=4&nbsp; ;;
        *)                FILE_MAN_SUFFIX=5&nbsp; ;;
&nbsp;&nbsp;&nbsp; esac
fi
if test x$FILE_MAN_DIR = x&nbsp;&nbsp;&nbsp; ; then
&nbsp;&nbsp;&nbsp; FILE_MAN_DIR='$(mandir)/man$(FILE_MAN_SUFFIX)'
fi

if test x$MISC_MAN_SUFFIX = x&nbsp;&nbsp;&nbsp; ; then
&nbsp;&nbsp;&nbsp; case $host_os in
        solaris*)        MISC_MAN_SUFFIX=5&nbsp; ;;
        *)                MISC_MAN_SUFFIX=7&nbsp; ;;
&nbsp;&nbsp;&nbsp; esac
fi
if test x$MISC_MAN_DIR = x&nbsp;&nbsp;&nbsp; ; then
&nbsp;&nbsp;&nbsp; MISC_MAN_DIR='$(mandir)/man$(MISC_MAN_SUFFIX)'
fi

if test x$DRIVER_MAN_SUFFIX = x&nbsp;&nbsp;&nbsp; ; then
&nbsp;&nbsp;&nbsp; case $host_os in
        solaris*)        DRIVER_MAN_SUFFIX=7&nbsp; ;;
        *)                DRIVER_MAN_SUFFIX=4&nbsp; ;;
&nbsp;&nbsp;&nbsp; esac
fi
if test x$DRIVER_MAN_DIR = x&nbsp;&nbsp;&nbsp; ; then
&nbsp;&nbsp;&nbsp; DRIVER_MAN_DIR='$(mandir)/man$(DRIVER_MAN_SUFFIX)'
fi

if test x$ADMIN_MAN_SUFFIX = x&nbsp;&nbsp;&nbsp; ; then
&nbsp;&nbsp;&nbsp; case $host_os in
        solaris*)        ADMIN_MAN_SUFFIX=1m ;;
        *)                ADMIN_MAN_SUFFIX=8&nbsp; ;;
&nbsp;&nbsp;&nbsp; esac
fi
if test x$ADMIN_MAN_DIR = x&nbsp;&nbsp;&nbsp; ; then
&nbsp;&nbsp;&nbsp; ADMIN_MAN_DIR='$(mandir)/man$(ADMIN_MAN_SUFFIX)'
fi


AC_SUBST([APP_MAN_SUFFIX])
AC_SUBST([LIB_MAN_SUFFIX])
AC_SUBST([FILE_MAN_SUFFIX])
AC_SUBST([MISC_MAN_SUFFIX])
AC_SUBST([DRIVER_MAN_SUFFIX])
AC_SUBST([ADMIN_MAN_SUFFIX])
AC_SUBST([APP_MAN_DIR])
AC_SUBST([LIB_MAN_DIR])
AC_SUBST([FILE_MAN_DIR])
AC_SUBST([MISC_MAN_DIR])
AC_SUBST([DRIVER_MAN_DIR])
AC_SUBST([ADMIN_MAN_DIR])

XORG_MAN_PAGE=&quot;X Version 11&quot;
AC_SUBST([XORG_MAN_PAGE])
MAN_SUBSTS=&quot;\
        -e 's|__vendorversion__|\&quot;\$(PACKAGE_STRING)\&quot; \&quot;\$(XORG_MAN_PAGE)\&quot;|' \
        -e 's|__xorgversion__|\&quot;\$(PACKAGE_STRING)\&quot; \&quot;\$(XORG_MAN_PAGE)\&quot;|' \
        -e 's|__xservername__|Xorg|g' \
        -e 's|__xconfigfile__|xorg.conf|g' \
        -e 's|__projectroot__|\$(prefix)|g' \
        -e 's|__apploaddir__|\$(appdefaultdir)|g' \
        -e 's|__appmansuffix__|\$(APP_MAN_SUFFIX)|g' \
        -e 's|__drivermansuffix__|\$(DRIVER_MAN_SUFFIX)|g' \
        -e 's|__adminmansuffix__|\$(ADMIN_MAN_SUFFIX)|g' \
        -e 's|__libmansuffix__|\$(LIB_MAN_SUFFIX)|g' \
        -e 's|__miscmansuffix__|\$(MISC_MAN_SUFFIX)|g' \
        -e 's|__filemansuffix__|\$(FILE_MAN_SUFFIX)|g'&quot;
AC_SUBST([MAN_SUBSTS])


m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
&nbsp;&nbsp;&nbsp; [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])



</PRE>
</BODY>
</HTML>