On Wed, 2011-01-19 at 18:22 -0500, Gaetan Nadon wrote:

> > 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.
> > 
> 
> The last one wins. 
> 
> If one call is in configure.ac and the other call is buried, it is
> confusing to the reader.
> If neither is called in configure.ac, it's like any other statement
> that is buried in util-macros.
> 
> I guess it's like any reusable code you can't see from the calling
> program. You don't know what
> it does until you dig in.
> 
> There are pros and cons. The module developer can concentrate on the
> configuration that is unique
> to the module and not have to deal with dozens of details that are the
> same in all modules.
> 
> Some modules print a summary of the important configuration aspects of
> the module at the
> end of the configuration. That would be a nice feature.
> 

It may help to take a look at the libxkbcommon configuration.
I was able to finish it up completely, so it gives a more accurate
picture
than a diff one liner.

http://cgit.freedesktop.org/xorg/lib/libxkbcommon/tree/configure.ac

As a fun exercise, I inlined the code in XORG_DEFAULT_OPTIONS:

AC_REQUIRE([AC_PROG_INSTALL])
AC_REQUIRE([AC_PROG_CC_C99])
if  test "x$GCC" = xyes ; then
    CWARNFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \
-Wmissing-declarations -Wnested-externs -fno-strict-aliasing \
-Wbad-function-cast -Wformat=2"
    case `$CC -dumpversion` in
    3.4.* | 4.*)
        CWARNFLAGS="$CWARNFLAGS -Wold-style-definition 
-Wdeclaration-after-statement"
        ;;
    esac
else
    AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
    if test "x$SUNCC" = "xyes"; then
        CWARNFLAGS="-v"
    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,
                          AS_HELP_STRING([--enable-strict-compilation],
                          [Enable all warnings from compiler and make them 
errors (default: disabled)]),
                          [STRICT_COMPILE=$enableval], [STRICT_COMPILE=no])
if test "x$STRICT_COMPILE" = "xyes"; then
        AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
        AC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"])
        if test "x$GCC" = xyes ; then
                STRICT_CFLAGS="-pedantic -Werror"
        elif test "x$SUNCC" = "xyes"; then
                STRICT_CFLAGS="-errwarn"
    elif test "x$INTELCC" = "xyes"; then
                STRICT_CFLAGS="-Werror"
        fi
fi
CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS"
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 "x$PVM" = "x"; then
                PVM="0"
        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 "x$PVP" = "x"; then
                PVP="0"
        fi
        AC_DEFINE_UNQUOTED([PACKAGE_VERSION_PATCHLEVEL],
                [$PVP],
                [Patch version of this package])

CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > 
\$(top_srcdir)/.changelog.tmp && \
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.' >&2)"
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="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \
echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing 
possibly empty INSTALL.' >&2)"
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    ; then
    APP_MAN_SUFFIX=1
fi
if test x$APP_MAN_DIR = x    ; then
    APP_MAN_DIR='$(mandir)/man$(APP_MAN_SUFFIX)'
fi

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

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

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

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

if test x$ADMIN_MAN_SUFFIX = x    ; then
    case $host_os in
        solaris*)       ADMIN_MAN_SUFFIX=1m ;;
        *)              ADMIN_MAN_SUFFIX=8  ;;
    esac
fi
if test x$ADMIN_MAN_DIR = x    ; then
    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="X Version 11"
AC_SUBST([XORG_MAN_PAGE])
MAN_SUBSTS="\
        -e 's|__vendorversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \
        -e 's|__xorgversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \
        -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'"
AC_SUBST([MAN_SUBSTS])


m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
    [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])



Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to