1ffe57424Smrg# generated automatically by aclocal 1.16.5 -*- Autoconf -*-
217ca54c3Smrg
3ffe57424Smrg# Copyright (C) 1996-2021 Free Software Foundation, Inc.
417ca54c3Smrg
517ca54c3Smrg# This file is free software; the Free Software Foundation
617ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
717ca54c3Smrg# with or without modifications, as long as this notice is preserved.
817ca54c3Smrg
917ca54c3Smrg# This program is distributed in the hope that it will be useful,
1017ca54c3Smrg# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
1117ca54c3Smrg# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
1217ca54c3Smrg# PARTICULAR PURPOSE.
1317ca54c3Smrg
1417ca54c3Smrgm4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
1517ca54c3Smrgm4_ifndef([AC_AUTOCONF_VERSION],
1617ca54c3Smrg  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
17ffe57424Smrgm4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
18ffe57424Smrg[m4_warning([this file was generated for autoconf 2.71.
1917ca54c3SmrgYou have another version of autoconf.  It may work, but is not guaranteed to.
2017ca54c3SmrgIf you have problems, you may need to regenerate the build system entirely.
2117ca54c3SmrgTo do so, use the procedure documented by the package, typically 'autoreconf'.])])
2217ca54c3Smrg
23635a5eb8Smrg# pkg.m4 - Macros to locate and use pkg-config.   -*- Autoconf -*-
24635a5eb8Smrg# serial 12 (pkg-config-0.29.2)
2517ca54c3Smrg
2617ca54c3Smrgdnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
2717ca54c3Smrgdnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
2817ca54c3Smrgdnl
2917ca54c3Smrgdnl This program is free software; you can redistribute it and/or modify
3017ca54c3Smrgdnl it under the terms of the GNU General Public License as published by
3117ca54c3Smrgdnl the Free Software Foundation; either version 2 of the License, or
3217ca54c3Smrgdnl (at your option) any later version.
3317ca54c3Smrgdnl
3417ca54c3Smrgdnl This program is distributed in the hope that it will be useful, but
3517ca54c3Smrgdnl WITHOUT ANY WARRANTY; without even the implied warranty of
3617ca54c3Smrgdnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3717ca54c3Smrgdnl General Public License for more details.
3817ca54c3Smrgdnl
3917ca54c3Smrgdnl You should have received a copy of the GNU General Public License
4017ca54c3Smrgdnl along with this program; if not, write to the Free Software
4117ca54c3Smrgdnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
4217ca54c3Smrgdnl 02111-1307, USA.
4317ca54c3Smrgdnl
4417ca54c3Smrgdnl As a special exception to the GNU General Public License, if you
4517ca54c3Smrgdnl distribute this file as part of a program that contains a
4617ca54c3Smrgdnl configuration script generated by Autoconf, you may include it under
4717ca54c3Smrgdnl the same distribution terms that you use for the rest of that
4817ca54c3Smrgdnl program.
4917ca54c3Smrg
5017ca54c3Smrgdnl PKG_PREREQ(MIN-VERSION)
5117ca54c3Smrgdnl -----------------------
5217ca54c3Smrgdnl Since: 0.29
5317ca54c3Smrgdnl
5417ca54c3Smrgdnl Verify that the version of the pkg-config macros are at least
5517ca54c3Smrgdnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
5617ca54c3Smrgdnl installed version of pkg-config, this checks the developer's version
5717ca54c3Smrgdnl of pkg.m4 when generating configure.
5817ca54c3Smrgdnl
5917ca54c3Smrgdnl To ensure that this macro is defined, also add:
6017ca54c3Smrgdnl m4_ifndef([PKG_PREREQ],
6117ca54c3Smrgdnl     [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
6217ca54c3Smrgdnl
6317ca54c3Smrgdnl See the "Since" comment for each macro you use to see what version
6417ca54c3Smrgdnl of the macros you require.
6517ca54c3Smrgm4_defun([PKG_PREREQ],
66635a5eb8Smrg[m4_define([PKG_MACROS_VERSION], [0.29.2])
6717ca54c3Smrgm4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
6817ca54c3Smrg    [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
6917ca54c3Smrg])dnl PKG_PREREQ
7017ca54c3Smrg
7117ca54c3Smrgdnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
7217ca54c3Smrgdnl ----------------------------------
7317ca54c3Smrgdnl Since: 0.16
7417ca54c3Smrgdnl
7517ca54c3Smrgdnl Search for the pkg-config tool and set the PKG_CONFIG variable to
7617ca54c3Smrgdnl first found in the path. Checks that the version of pkg-config found
7717ca54c3Smrgdnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
7817ca54c3Smrgdnl used since that's the first version where most current features of
7917ca54c3Smrgdnl pkg-config existed.
8017ca54c3SmrgAC_DEFUN([PKG_PROG_PKG_CONFIG],
8117ca54c3Smrg[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
8217ca54c3Smrgm4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
8317ca54c3Smrgm4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
8417ca54c3SmrgAC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
8517ca54c3SmrgAC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
8617ca54c3SmrgAC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
8717ca54c3Smrg
8817ca54c3Smrgif test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
8917ca54c3Smrg	AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
9017ca54c3Smrgfi
9117ca54c3Smrgif test -n "$PKG_CONFIG"; then
9217ca54c3Smrg	_pkg_min_version=m4_default([$1], [0.9.0])
9317ca54c3Smrg	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
9417ca54c3Smrg	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
9517ca54c3Smrg		AC_MSG_RESULT([yes])
9617ca54c3Smrg	else
9717ca54c3Smrg		AC_MSG_RESULT([no])
9817ca54c3Smrg		PKG_CONFIG=""
9917ca54c3Smrg	fi
10017ca54c3Smrgfi[]dnl
10117ca54c3Smrg])dnl PKG_PROG_PKG_CONFIG
10217ca54c3Smrg
10317ca54c3Smrgdnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
10417ca54c3Smrgdnl -------------------------------------------------------------------
10517ca54c3Smrgdnl Since: 0.18
10617ca54c3Smrgdnl
10717ca54c3Smrgdnl Check to see whether a particular set of modules exists. Similar to
10817ca54c3Smrgdnl PKG_CHECK_MODULES(), but does not set variables or print errors.
10917ca54c3Smrgdnl
11017ca54c3Smrgdnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
111635a5eb8Smrgdnl only at the first occurrence in configure.ac, so if the first place
11217ca54c3Smrgdnl it's called might be skipped (such as if it is within an "if", you
11317ca54c3Smrgdnl have to call PKG_CHECK_EXISTS manually
11417ca54c3SmrgAC_DEFUN([PKG_CHECK_EXISTS],
11517ca54c3Smrg[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
11617ca54c3Smrgif test -n "$PKG_CONFIG" && \
11717ca54c3Smrg    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
11817ca54c3Smrg  m4_default([$2], [:])
11917ca54c3Smrgm4_ifvaln([$3], [else
12017ca54c3Smrg  $3])dnl
12117ca54c3Smrgfi])
12217ca54c3Smrg
12317ca54c3Smrgdnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
12417ca54c3Smrgdnl ---------------------------------------------
12517ca54c3Smrgdnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
12617ca54c3Smrgdnl pkg_failed based on the result.
12717ca54c3Smrgm4_define([_PKG_CONFIG],
12817ca54c3Smrg[if test -n "$$1"; then
12917ca54c3Smrg    pkg_cv_[]$1="$$1"
13017ca54c3Smrg elif test -n "$PKG_CONFIG"; then
13117ca54c3Smrg    PKG_CHECK_EXISTS([$3],
13217ca54c3Smrg                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
13317ca54c3Smrg		      test "x$?" != "x0" && pkg_failed=yes ],
13417ca54c3Smrg		     [pkg_failed=yes])
13517ca54c3Smrg else
13617ca54c3Smrg    pkg_failed=untried
13717ca54c3Smrgfi[]dnl
13817ca54c3Smrg])dnl _PKG_CONFIG
13917ca54c3Smrg
14017ca54c3Smrgdnl _PKG_SHORT_ERRORS_SUPPORTED
14117ca54c3Smrgdnl ---------------------------
14217ca54c3Smrgdnl Internal check to see if pkg-config supports short errors.
14317ca54c3SmrgAC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
14417ca54c3Smrg[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
14517ca54c3Smrgif $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
14617ca54c3Smrg        _pkg_short_errors_supported=yes
14717ca54c3Smrgelse
14817ca54c3Smrg        _pkg_short_errors_supported=no
14917ca54c3Smrgfi[]dnl
15017ca54c3Smrg])dnl _PKG_SHORT_ERRORS_SUPPORTED
15117ca54c3Smrg
15217ca54c3Smrg
15317ca54c3Smrgdnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
15417ca54c3Smrgdnl   [ACTION-IF-NOT-FOUND])
15517ca54c3Smrgdnl --------------------------------------------------------------
15617ca54c3Smrgdnl Since: 0.4.0
15717ca54c3Smrgdnl
15817ca54c3Smrgdnl Note that if there is a possibility the first call to
15917ca54c3Smrgdnl PKG_CHECK_MODULES might not happen, you should be sure to include an
16017ca54c3Smrgdnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
16117ca54c3SmrgAC_DEFUN([PKG_CHECK_MODULES],
16217ca54c3Smrg[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
16317ca54c3SmrgAC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
16417ca54c3SmrgAC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
16517ca54c3Smrg
16617ca54c3Smrgpkg_failed=no
167635a5eb8SmrgAC_MSG_CHECKING([for $2])
16817ca54c3Smrg
16917ca54c3Smrg_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
17017ca54c3Smrg_PKG_CONFIG([$1][_LIBS], [libs], [$2])
17117ca54c3Smrg
17217ca54c3Smrgm4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
17317ca54c3Smrgand $1[]_LIBS to avoid the need to call pkg-config.
17417ca54c3SmrgSee the pkg-config man page for more details.])
17517ca54c3Smrg
17617ca54c3Smrgif test $pkg_failed = yes; then
177635a5eb8Smrg        AC_MSG_RESULT([no])
17817ca54c3Smrg        _PKG_SHORT_ERRORS_SUPPORTED
17917ca54c3Smrg        if test $_pkg_short_errors_supported = yes; then
180635a5eb8Smrg                $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
181635a5eb8Smrg        else
182635a5eb8Smrg                $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
18317ca54c3Smrg        fi
184635a5eb8Smrg        # Put the nasty error message in config.log where it belongs
185635a5eb8Smrg        echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
18617ca54c3Smrg
187635a5eb8Smrg        m4_default([$4], [AC_MSG_ERROR(
18817ca54c3Smrg[Package requirements ($2) were not met:
18917ca54c3Smrg
19017ca54c3Smrg$$1_PKG_ERRORS
19117ca54c3Smrg
19217ca54c3SmrgConsider adjusting the PKG_CONFIG_PATH environment variable if you
19317ca54c3Smrginstalled software in a non-standard prefix.
19417ca54c3Smrg
19517ca54c3Smrg_PKG_TEXT])[]dnl
19617ca54c3Smrg        ])
19717ca54c3Smrgelif test $pkg_failed = untried; then
198635a5eb8Smrg        AC_MSG_RESULT([no])
199635a5eb8Smrg        m4_default([$4], [AC_MSG_FAILURE(
20017ca54c3Smrg[The pkg-config script could not be found or is too old.  Make sure it
20117ca54c3Smrgis in your PATH or set the PKG_CONFIG environment variable to the full
20217ca54c3Smrgpath to pkg-config.
20317ca54c3Smrg
20417ca54c3Smrg_PKG_TEXT
20517ca54c3Smrg
20617ca54c3SmrgTo get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
20717ca54c3Smrg        ])
20817ca54c3Smrgelse
209635a5eb8Smrg        $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
210635a5eb8Smrg        $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
21117ca54c3Smrg        AC_MSG_RESULT([yes])
212635a5eb8Smrg        $3
21317ca54c3Smrgfi[]dnl
21417ca54c3Smrg])dnl PKG_CHECK_MODULES
21517ca54c3Smrg
21617ca54c3Smrg
21717ca54c3Smrgdnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
21817ca54c3Smrgdnl   [ACTION-IF-NOT-FOUND])
21917ca54c3Smrgdnl ---------------------------------------------------------------------
22017ca54c3Smrgdnl Since: 0.29
22117ca54c3Smrgdnl
22217ca54c3Smrgdnl Checks for existence of MODULES and gathers its build flags with
22317ca54c3Smrgdnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
22417ca54c3Smrgdnl and VARIABLE-PREFIX_LIBS from --libs.
22517ca54c3Smrgdnl
22617ca54c3Smrgdnl Note that if there is a possibility the first call to
22717ca54c3Smrgdnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
22817ca54c3Smrgdnl include an explicit call to PKG_PROG_PKG_CONFIG in your
22917ca54c3Smrgdnl configure.ac.
23017ca54c3SmrgAC_DEFUN([PKG_CHECK_MODULES_STATIC],
23117ca54c3Smrg[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
23217ca54c3Smrg_save_PKG_CONFIG=$PKG_CONFIG
23317ca54c3SmrgPKG_CONFIG="$PKG_CONFIG --static"
23417ca54c3SmrgPKG_CHECK_MODULES($@)
23517ca54c3SmrgPKG_CONFIG=$_save_PKG_CONFIG[]dnl
23617ca54c3Smrg])dnl PKG_CHECK_MODULES_STATIC
23717ca54c3Smrg
23817ca54c3Smrg
23917ca54c3Smrgdnl PKG_INSTALLDIR([DIRECTORY])
24017ca54c3Smrgdnl -------------------------
24117ca54c3Smrgdnl Since: 0.27
24217ca54c3Smrgdnl
24317ca54c3Smrgdnl Substitutes the variable pkgconfigdir as the location where a module
24417ca54c3Smrgdnl should install pkg-config .pc files. By default the directory is
24517ca54c3Smrgdnl $libdir/pkgconfig, but the default can be changed by passing
24617ca54c3Smrgdnl DIRECTORY. The user can override through the --with-pkgconfigdir
24717ca54c3Smrgdnl parameter.
24817ca54c3SmrgAC_DEFUN([PKG_INSTALLDIR],
24917ca54c3Smrg[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
25017ca54c3Smrgm4_pushdef([pkg_description],
25117ca54c3Smrg    [pkg-config installation directory @<:@]pkg_default[@:>@])
25217ca54c3SmrgAC_ARG_WITH([pkgconfigdir],
25317ca54c3Smrg    [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
25417ca54c3Smrg    [with_pkgconfigdir=]pkg_default)
25517ca54c3SmrgAC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
25617ca54c3Smrgm4_popdef([pkg_default])
25717ca54c3Smrgm4_popdef([pkg_description])
25817ca54c3Smrg])dnl PKG_INSTALLDIR
25917ca54c3Smrg
26017ca54c3Smrg
26117ca54c3Smrgdnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
26217ca54c3Smrgdnl --------------------------------
26317ca54c3Smrgdnl Since: 0.27
26417ca54c3Smrgdnl
26517ca54c3Smrgdnl Substitutes the variable noarch_pkgconfigdir as the location where a
26617ca54c3Smrgdnl module should install arch-independent pkg-config .pc files. By
26717ca54c3Smrgdnl default the directory is $datadir/pkgconfig, but the default can be
26817ca54c3Smrgdnl changed by passing DIRECTORY. The user can override through the
26917ca54c3Smrgdnl --with-noarch-pkgconfigdir parameter.
27017ca54c3SmrgAC_DEFUN([PKG_NOARCH_INSTALLDIR],
27117ca54c3Smrg[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
27217ca54c3Smrgm4_pushdef([pkg_description],
27317ca54c3Smrg    [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
27417ca54c3SmrgAC_ARG_WITH([noarch-pkgconfigdir],
27517ca54c3Smrg    [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
27617ca54c3Smrg    [with_noarch_pkgconfigdir=]pkg_default)
27717ca54c3SmrgAC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
27817ca54c3Smrgm4_popdef([pkg_default])
27917ca54c3Smrgm4_popdef([pkg_description])
28017ca54c3Smrg])dnl PKG_NOARCH_INSTALLDIR
28117ca54c3Smrg
28217ca54c3Smrg
28317ca54c3Smrgdnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
28417ca54c3Smrgdnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
28517ca54c3Smrgdnl -------------------------------------------
28617ca54c3Smrgdnl Since: 0.28
28717ca54c3Smrgdnl
28817ca54c3Smrgdnl Retrieves the value of the pkg-config variable for the given module.
28917ca54c3SmrgAC_DEFUN([PKG_CHECK_VAR],
29017ca54c3Smrg[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
29117ca54c3SmrgAC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
29217ca54c3Smrg
29317ca54c3Smrg_PKG_CONFIG([$1], [variable="][$3]["], [$2])
29417ca54c3SmrgAS_VAR_COPY([$1], [pkg_cv_][$1])
29517ca54c3Smrg
29617ca54c3SmrgAS_VAR_IF([$1], [""], [$5], [$4])dnl
29717ca54c3Smrg])dnl PKG_CHECK_VAR
29817ca54c3Smrg
29917ca54c3Smrgdnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
30017ca54c3Smrgdnl   [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
30117ca54c3Smrgdnl   [DESCRIPTION], [DEFAULT])
30217ca54c3Smrgdnl ------------------------------------------
30317ca54c3Smrgdnl
30417ca54c3Smrgdnl Prepare a "--with-" configure option using the lowercase
30517ca54c3Smrgdnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and
30617ca54c3Smrgdnl PKG_CHECK_MODULES in a single macro.
30717ca54c3SmrgAC_DEFUN([PKG_WITH_MODULES],
30817ca54c3Smrg[
30917ca54c3Smrgm4_pushdef([with_arg], m4_tolower([$1]))
31017ca54c3Smrg
31117ca54c3Smrgm4_pushdef([description],
31217ca54c3Smrg           [m4_default([$5], [build with ]with_arg[ support])])
31317ca54c3Smrg
31417ca54c3Smrgm4_pushdef([def_arg], [m4_default([$6], [auto])])
31517ca54c3Smrgm4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes])
31617ca54c3Smrgm4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no])
31717ca54c3Smrg
31817ca54c3Smrgm4_case(def_arg,
31917ca54c3Smrg            [yes],[m4_pushdef([with_without], [--without-]with_arg)],
32017ca54c3Smrg            [m4_pushdef([with_without],[--with-]with_arg)])
32117ca54c3Smrg
32217ca54c3SmrgAC_ARG_WITH(with_arg,
32317ca54c3Smrg     AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
32417ca54c3Smrg    [AS_TR_SH([with_]with_arg)=def_arg])
32517ca54c3Smrg
32617ca54c3SmrgAS_CASE([$AS_TR_SH([with_]with_arg)],
32717ca54c3Smrg            [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
32817ca54c3Smrg            [auto],[PKG_CHECK_MODULES([$1],[$2],
32917ca54c3Smrg                                        [m4_n([def_action_if_found]) $3],
33017ca54c3Smrg                                        [m4_n([def_action_if_not_found]) $4])])
33117ca54c3Smrg
33217ca54c3Smrgm4_popdef([with_arg])
33317ca54c3Smrgm4_popdef([description])
33417ca54c3Smrgm4_popdef([def_arg])
33517ca54c3Smrg
33617ca54c3Smrg])dnl PKG_WITH_MODULES
33717ca54c3Smrg
33817ca54c3Smrgdnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
33917ca54c3Smrgdnl   [DESCRIPTION], [DEFAULT])
34017ca54c3Smrgdnl -----------------------------------------------
34117ca54c3Smrgdnl
34217ca54c3Smrgdnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES
34317ca54c3Smrgdnl check._[VARIABLE-PREFIX] is exported as make variable.
34417ca54c3SmrgAC_DEFUN([PKG_HAVE_WITH_MODULES],
34517ca54c3Smrg[
34617ca54c3SmrgPKG_WITH_MODULES([$1],[$2],,,[$3],[$4])
34717ca54c3Smrg
34817ca54c3SmrgAM_CONDITIONAL([HAVE_][$1],
34917ca54c3Smrg               [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
35017ca54c3Smrg])dnl PKG_HAVE_WITH_MODULES
35117ca54c3Smrg
35217ca54c3Smrgdnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
35317ca54c3Smrgdnl   [DESCRIPTION], [DEFAULT])
35417ca54c3Smrgdnl ------------------------------------------------------
35517ca54c3Smrgdnl
35617ca54c3Smrgdnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after
35717ca54c3Smrgdnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make
35817ca54c3Smrgdnl and preprocessor variable.
35917ca54c3SmrgAC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES],
36017ca54c3Smrg[
36117ca54c3SmrgPKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4])
36217ca54c3Smrg
36317ca54c3SmrgAS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
36417ca54c3Smrg        [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
36517ca54c3Smrg])dnl PKG_HAVE_DEFINE_WITH_MODULES
36617ca54c3Smrg
36717ca54c3Smrgdnl xorg-macros.m4.  Generated from xorg-macros.m4.in xorgversion.m4 by configure.
36817ca54c3Smrgdnl
369635a5eb8Smrgdnl Copyright (c) 2005, 2023, Oracle and/or its affiliates.
37017ca54c3Smrgdnl
37117ca54c3Smrgdnl Permission is hereby granted, free of charge, to any person obtaining a
37217ca54c3Smrgdnl copy of this software and associated documentation files (the "Software"),
37317ca54c3Smrgdnl to deal in the Software without restriction, including without limitation
37417ca54c3Smrgdnl the rights to use, copy, modify, merge, publish, distribute, sublicense,
37517ca54c3Smrgdnl and/or sell copies of the Software, and to permit persons to whom the
37617ca54c3Smrgdnl Software is furnished to do so, subject to the following conditions:
37717ca54c3Smrgdnl
37817ca54c3Smrgdnl The above copyright notice and this permission notice (including the next
37917ca54c3Smrgdnl paragraph) shall be included in all copies or substantial portions of the
38017ca54c3Smrgdnl Software.
38117ca54c3Smrgdnl
38217ca54c3Smrgdnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
38317ca54c3Smrgdnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
38417ca54c3Smrgdnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
38517ca54c3Smrgdnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
38617ca54c3Smrgdnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38717ca54c3Smrgdnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
38817ca54c3Smrgdnl DEALINGS IN THE SOFTWARE.
38917ca54c3Smrg
39017ca54c3Smrg# XORG_MACROS_VERSION(required-version)
39117ca54c3Smrg# -------------------------------------
39217ca54c3Smrg# Minimum version: 1.1.0
39317ca54c3Smrg#
39417ca54c3Smrg# If you're using a macro added in Version 1.1 or newer, include this in
39517ca54c3Smrg# your configure.ac with the minimum required version, such as:
39617ca54c3Smrg# XORG_MACROS_VERSION(1.1)
39717ca54c3Smrg#
39817ca54c3Smrg# To ensure that this macro is defined, also add:
39917ca54c3Smrg# m4_ifndef([XORG_MACROS_VERSION],
40017ca54c3Smrg#     [m4_fatal([must install xorg-macros 1.1 or later before running autoconf/autogen])])
40117ca54c3Smrg#
40217ca54c3Smrg#
40317ca54c3Smrg# See the "minimum version" comment for each macro you use to see what
40417ca54c3Smrg# version you require.
40517ca54c3Smrgm4_defun([XORG_MACROS_VERSION],[
406635a5eb8Smrgm4_define([vers_have], [1.20.0])
40717ca54c3Smrgm4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.])))
40817ca54c3Smrgm4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
40917ca54c3Smrgm4_if(m4_cmp(maj_have, maj_needed), 0,,
41017ca54c3Smrg    [m4_fatal([xorg-macros major version ]maj_needed[ is required but ]vers_have[ found])])
41117ca54c3Smrgm4_if(m4_version_compare(vers_have, [$1]), -1,
41217ca54c3Smrg    [m4_fatal([xorg-macros version $1 or higher is required but ]vers_have[ found])])
41317ca54c3Smrgm4_undefine([vers_have])
41417ca54c3Smrgm4_undefine([maj_have])
41517ca54c3Smrgm4_undefine([maj_needed])
41617ca54c3Smrg]) # XORG_MACROS_VERSION
41717ca54c3Smrg
41817ca54c3Smrg# XORG_PROG_RAWCPP()
41917ca54c3Smrg# ------------------
42017ca54c3Smrg# Minimum version: 1.0.0
42117ca54c3Smrg#
42217ca54c3Smrg# Find cpp program and necessary flags for use in pre-processing text files
42317ca54c3Smrg# such as man pages and config files
42417ca54c3SmrgAC_DEFUN([XORG_PROG_RAWCPP],[
42517ca54c3SmrgAC_REQUIRE([AC_PROG_CPP])
426ffe57424SmrgAC_PATH_TOOL(RAWCPP, [cpp], [${CPP}],
42717ca54c3Smrg   [$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/ccs/lib:/usr/ccs/lbin:/lib])
42817ca54c3Smrg
42917ca54c3Smrg# Check for flag to avoid builtin definitions - assumes unix is predefined,
43017ca54c3Smrg# which is not the best choice for supporting other OS'es, but covers most
43117ca54c3Smrg# of the ones we need for now.
43217ca54c3SmrgAC_MSG_CHECKING([if $RAWCPP requires -undef])
43317ca54c3SmrgAC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp redefine unix ?]])])
43417ca54c3Smrgif test `${RAWCPP} < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then
43517ca54c3Smrg	AC_MSG_RESULT([no])
43617ca54c3Smrgelse
43717ca54c3Smrg	if test `${RAWCPP} -undef < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then
43817ca54c3Smrg		RAWCPPFLAGS=-undef
43917ca54c3Smrg		AC_MSG_RESULT([yes])
44017ca54c3Smrg	# under Cygwin unix is still defined even with -undef
44117ca54c3Smrg	elif test `${RAWCPP} -undef -ansi < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then
44217ca54c3Smrg		RAWCPPFLAGS="-undef -ansi"
44317ca54c3Smrg		AC_MSG_RESULT([yes, with -ansi])
44417ca54c3Smrg	else
44517ca54c3Smrg		AC_MSG_ERROR([${RAWCPP} defines unix with or without -undef.  I don't know what to do.])
44617ca54c3Smrg	fi
44717ca54c3Smrgfi
44817ca54c3Smrgrm -f conftest.$ac_ext
44917ca54c3Smrg
45017ca54c3SmrgAC_MSG_CHECKING([if $RAWCPP requires -traditional])
45117ca54c3SmrgAC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp preserve   "whitespace"?]])])
45217ca54c3Smrgif test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve   \"'` -eq 1 ; then
45317ca54c3Smrg	AC_MSG_RESULT([no])
45417ca54c3Smrgelse
45517ca54c3Smrg	if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve   \"'` -eq 1 ; then
45617ca54c3Smrg		TRADITIONALCPPFLAGS="-traditional"
45717ca54c3Smrg		RAWCPPFLAGS="${RAWCPPFLAGS} -traditional"
45817ca54c3Smrg		AC_MSG_RESULT([yes])
45917ca54c3Smrg	else
46017ca54c3Smrg		AC_MSG_ERROR([${RAWCPP} does not preserve whitespace with or without -traditional.  I don't know what to do.])
46117ca54c3Smrg	fi
46217ca54c3Smrgfi
46317ca54c3Smrgrm -f conftest.$ac_ext
46417ca54c3SmrgAC_SUBST(RAWCPPFLAGS)
46517ca54c3SmrgAC_SUBST(TRADITIONALCPPFLAGS)
46617ca54c3Smrg]) # XORG_PROG_RAWCPP
46717ca54c3Smrg
46817ca54c3Smrg# XORG_MANPAGE_SECTIONS()
46917ca54c3Smrg# -----------------------
47017ca54c3Smrg# Minimum version: 1.0.0
47117ca54c3Smrg#
47217ca54c3Smrg# Determine which sections man pages go in for the different man page types
47317ca54c3Smrg# on this OS - replaces *ManSuffix settings in old Imake *.cf per-os files.
47417ca54c3Smrg# Not sure if there's any better way than just hardcoding by OS name.
47517ca54c3Smrg# Override default settings by setting environment variables
47617ca54c3Smrg# Added MAN_SUBSTS in version 1.8
47717ca54c3Smrg# Added AC_PROG_SED in version 1.8
47817ca54c3Smrg
47917ca54c3SmrgAC_DEFUN([XORG_MANPAGE_SECTIONS],[
48017ca54c3SmrgAC_REQUIRE([AC_CANONICAL_HOST])
48117ca54c3SmrgAC_REQUIRE([AC_PROG_SED])
48217ca54c3Smrg
483ffe57424Smrgcase $host_os in
484ffe57424Smrg    solaris*)
485ffe57424Smrg        # Solaris 2.0 - 11.3 use SysV man page section numbers, so we
486ffe57424Smrg        # check for a man page file found in later versions that use
487ffe57424Smrg        # traditional section numbers instead
488ffe57424Smrg        AC_CHECK_FILE([/usr/share/man/man7/attributes.7],
489ffe57424Smrg                [SYSV_MAN_SECTIONS=false], [SYSV_MAN_SECTIONS=true])
490ffe57424Smrg        ;;
491ffe57424Smrg    *) SYSV_MAN_SECTIONS=false ;;
492ffe57424Smrgesac
493ffe57424Smrg
49417ca54c3Smrgif test x$APP_MAN_SUFFIX = x    ; then
49517ca54c3Smrg    APP_MAN_SUFFIX=1
49617ca54c3Smrgfi
49717ca54c3Smrgif test x$APP_MAN_DIR = x    ; then
49817ca54c3Smrg    APP_MAN_DIR='$(mandir)/man$(APP_MAN_SUFFIX)'
49917ca54c3Smrgfi
50017ca54c3Smrg
50117ca54c3Smrgif test x$LIB_MAN_SUFFIX = x    ; then
50217ca54c3Smrg    LIB_MAN_SUFFIX=3
50317ca54c3Smrgfi
50417ca54c3Smrgif test x$LIB_MAN_DIR = x    ; then
50517ca54c3Smrg    LIB_MAN_DIR='$(mandir)/man$(LIB_MAN_SUFFIX)'
50617ca54c3Smrgfi
50717ca54c3Smrg
50817ca54c3Smrgif test x$FILE_MAN_SUFFIX = x    ; then
509ffe57424Smrg    case $SYSV_MAN_SECTIONS in
510ffe57424Smrg	true)				FILE_MAN_SUFFIX=4  ;;
511ffe57424Smrg	*)				FILE_MAN_SUFFIX=5  ;;
51217ca54c3Smrg    esac
51317ca54c3Smrgfi
51417ca54c3Smrgif test x$FILE_MAN_DIR = x    ; then
51517ca54c3Smrg    FILE_MAN_DIR='$(mandir)/man$(FILE_MAN_SUFFIX)'
51617ca54c3Smrgfi
51717ca54c3Smrg
51817ca54c3Smrgif test x$MISC_MAN_SUFFIX = x    ; then
519ffe57424Smrg    case $SYSV_MAN_SECTIONS in
520ffe57424Smrg	true)				MISC_MAN_SUFFIX=5  ;;
521ffe57424Smrg	*)				MISC_MAN_SUFFIX=7  ;;
52217ca54c3Smrg    esac
52317ca54c3Smrgfi
52417ca54c3Smrgif test x$MISC_MAN_DIR = x    ; then
52517ca54c3Smrg    MISC_MAN_DIR='$(mandir)/man$(MISC_MAN_SUFFIX)'
52617ca54c3Smrgfi
52717ca54c3Smrg
52817ca54c3Smrgif test x$DRIVER_MAN_SUFFIX = x    ; then
529ffe57424Smrg    case $SYSV_MAN_SECTIONS in
530ffe57424Smrg	true)				DRIVER_MAN_SUFFIX=7  ;;
531ffe57424Smrg	*)				DRIVER_MAN_SUFFIX=4  ;;
53217ca54c3Smrg    esac
53317ca54c3Smrgfi
53417ca54c3Smrgif test x$DRIVER_MAN_DIR = x    ; then
53517ca54c3Smrg    DRIVER_MAN_DIR='$(mandir)/man$(DRIVER_MAN_SUFFIX)'
53617ca54c3Smrgfi
53717ca54c3Smrg
53817ca54c3Smrgif test x$ADMIN_MAN_SUFFIX = x    ; then
539ffe57424Smrg    case $SYSV_MAN_SECTIONS in
540ffe57424Smrg	true)				ADMIN_MAN_SUFFIX=1m ;;
541ffe57424Smrg	*)				ADMIN_MAN_SUFFIX=8  ;;
54217ca54c3Smrg    esac
54317ca54c3Smrgfi
54417ca54c3Smrgif test x$ADMIN_MAN_DIR = x    ; then
54517ca54c3Smrg    ADMIN_MAN_DIR='$(mandir)/man$(ADMIN_MAN_SUFFIX)'
54617ca54c3Smrgfi
54717ca54c3Smrg
54817ca54c3Smrg
54917ca54c3SmrgAC_SUBST([APP_MAN_SUFFIX])
55017ca54c3SmrgAC_SUBST([LIB_MAN_SUFFIX])
55117ca54c3SmrgAC_SUBST([FILE_MAN_SUFFIX])
55217ca54c3SmrgAC_SUBST([MISC_MAN_SUFFIX])
55317ca54c3SmrgAC_SUBST([DRIVER_MAN_SUFFIX])
55417ca54c3SmrgAC_SUBST([ADMIN_MAN_SUFFIX])
55517ca54c3SmrgAC_SUBST([APP_MAN_DIR])
55617ca54c3SmrgAC_SUBST([LIB_MAN_DIR])
55717ca54c3SmrgAC_SUBST([FILE_MAN_DIR])
55817ca54c3SmrgAC_SUBST([MISC_MAN_DIR])
55917ca54c3SmrgAC_SUBST([DRIVER_MAN_DIR])
56017ca54c3SmrgAC_SUBST([ADMIN_MAN_DIR])
56117ca54c3Smrg
56217ca54c3SmrgXORG_MAN_PAGE="X Version 11"
56317ca54c3SmrgAC_SUBST([XORG_MAN_PAGE])
56417ca54c3SmrgMAN_SUBSTS="\
56517ca54c3Smrg	-e 's|__vendorversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \
56617ca54c3Smrg	-e 's|__xorgversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \
56717ca54c3Smrg	-e 's|__xservername__|Xorg|g' \
56817ca54c3Smrg	-e 's|__xconfigfile__|xorg.conf|g' \
56917ca54c3Smrg	-e 's|__projectroot__|\$(prefix)|g' \
57017ca54c3Smrg	-e 's|__apploaddir__|\$(appdefaultdir)|g' \
57117ca54c3Smrg	-e 's|__appmansuffix__|\$(APP_MAN_SUFFIX)|g' \
57217ca54c3Smrg	-e 's|__drivermansuffix__|\$(DRIVER_MAN_SUFFIX)|g' \
57317ca54c3Smrg	-e 's|__adminmansuffix__|\$(ADMIN_MAN_SUFFIX)|g' \
57417ca54c3Smrg	-e 's|__libmansuffix__|\$(LIB_MAN_SUFFIX)|g' \
57517ca54c3Smrg	-e 's|__miscmansuffix__|\$(MISC_MAN_SUFFIX)|g' \
57617ca54c3Smrg	-e 's|__filemansuffix__|\$(FILE_MAN_SUFFIX)|g'"
57717ca54c3SmrgAC_SUBST([MAN_SUBSTS])
57817ca54c3Smrg
57917ca54c3Smrg]) # XORG_MANPAGE_SECTIONS
58017ca54c3Smrg
58117ca54c3Smrg# XORG_CHECK_SGML_DOCTOOLS([MIN-VERSION])
58217ca54c3Smrg# ------------------------
58317ca54c3Smrg# Minimum version: 1.7.0
58417ca54c3Smrg#
58517ca54c3Smrg# Defines the variable XORG_SGML_PATH containing the location of X11/defs.ent
58617ca54c3Smrg# provided by xorg-sgml-doctools, if installed.
58717ca54c3SmrgAC_DEFUN([XORG_CHECK_SGML_DOCTOOLS],[
58817ca54c3SmrgAC_MSG_CHECKING([for X.Org SGML entities m4_ifval([$1],[>= $1])])
58917ca54c3SmrgXORG_SGML_PATH=
59017ca54c3SmrgPKG_CHECK_EXISTS([xorg-sgml-doctools m4_ifval([$1],[>= $1])],
59117ca54c3Smrg    [XORG_SGML_PATH=`$PKG_CONFIG --variable=sgmlrootdir xorg-sgml-doctools`],
59217ca54c3Smrg    [m4_ifval([$1],[:],
59317ca54c3Smrg        [if test x"$cross_compiling" != x"yes" ; then
59417ca54c3Smrg            AC_CHECK_FILE([$prefix/share/sgml/X11/defs.ent],
59517ca54c3Smrg                          [XORG_SGML_PATH=$prefix/share/sgml])
59617ca54c3Smrg         fi])
59717ca54c3Smrg    ])
59817ca54c3Smrg
59917ca54c3Smrg# Define variables STYLESHEET_SRCDIR and XSL_STYLESHEET containing
60017ca54c3Smrg# the path and the name of the doc stylesheet
60117ca54c3Smrgif test "x$XORG_SGML_PATH" != "x" ; then
60217ca54c3Smrg   AC_MSG_RESULT([$XORG_SGML_PATH])
60317ca54c3Smrg   STYLESHEET_SRCDIR=$XORG_SGML_PATH/X11
60417ca54c3Smrg   XSL_STYLESHEET=$STYLESHEET_SRCDIR/xorg.xsl
60517ca54c3Smrgelse
60617ca54c3Smrg   AC_MSG_RESULT([no])
60717ca54c3Smrgfi
60817ca54c3Smrg
60917ca54c3SmrgAC_SUBST(XORG_SGML_PATH)
61017ca54c3SmrgAC_SUBST(STYLESHEET_SRCDIR)
61117ca54c3SmrgAC_SUBST(XSL_STYLESHEET)
61217ca54c3SmrgAM_CONDITIONAL([HAVE_STYLESHEETS], [test "x$XSL_STYLESHEET" != "x"])
61317ca54c3Smrg]) # XORG_CHECK_SGML_DOCTOOLS
61417ca54c3Smrg
61517ca54c3Smrg# XORG_CHECK_LINUXDOC
61617ca54c3Smrg# -------------------
61717ca54c3Smrg# Minimum version: 1.0.0
61817ca54c3Smrg#
61917ca54c3Smrg# Defines the variable MAKE_TEXT if the necessary tools and
62017ca54c3Smrg# files are found. $(MAKE_TEXT) blah.sgml will then produce blah.txt.
62117ca54c3Smrg# Whether or not the necessary tools and files are found can be checked
62217ca54c3Smrg# with the AM_CONDITIONAL "BUILD_LINUXDOC"
62317ca54c3SmrgAC_DEFUN([XORG_CHECK_LINUXDOC],[
62417ca54c3SmrgAC_REQUIRE([XORG_CHECK_SGML_DOCTOOLS])
62517ca54c3SmrgAC_REQUIRE([XORG_WITH_PS2PDF])
62617ca54c3Smrg
62717ca54c3SmrgAC_PATH_PROG(LINUXDOC, linuxdoc)
62817ca54c3Smrg
62917ca54c3SmrgAC_MSG_CHECKING([whether to build documentation])
63017ca54c3Smrg
63117ca54c3Smrgif test x$XORG_SGML_PATH != x && test x$LINUXDOC != x ; then
63217ca54c3Smrg   BUILDDOC=yes
63317ca54c3Smrgelse
63417ca54c3Smrg   BUILDDOC=no
63517ca54c3Smrgfi
63617ca54c3Smrg
63717ca54c3SmrgAM_CONDITIONAL(BUILD_LINUXDOC, [test x$BUILDDOC = xyes])
63817ca54c3Smrg
63917ca54c3SmrgAC_MSG_RESULT([$BUILDDOC])
64017ca54c3Smrg
64117ca54c3SmrgAC_MSG_CHECKING([whether to build pdf documentation])
64217ca54c3Smrg
64317ca54c3Smrgif test x$have_ps2pdf != xno && test x$BUILD_PDFDOC != xno; then
64417ca54c3Smrg   BUILDPDFDOC=yes
64517ca54c3Smrgelse
64617ca54c3Smrg   BUILDPDFDOC=no
64717ca54c3Smrgfi
64817ca54c3Smrg
64917ca54c3SmrgAM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes])
65017ca54c3Smrg
65117ca54c3SmrgAC_MSG_RESULT([$BUILDPDFDOC])
65217ca54c3Smrg
65317ca54c3SmrgMAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH GROFF_NO_SGR=y $LINUXDOC -B txt -f"
65417ca54c3SmrgMAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC -B latex --papersize=letter --output=ps"
65517ca54c3SmrgMAKE_PDF="$PS2PDF"
65617ca54c3SmrgMAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC  -B html --split=0"
65717ca54c3Smrg
65817ca54c3SmrgAC_SUBST(MAKE_TEXT)
65917ca54c3SmrgAC_SUBST(MAKE_PS)
66017ca54c3SmrgAC_SUBST(MAKE_PDF)
66117ca54c3SmrgAC_SUBST(MAKE_HTML)
66217ca54c3Smrg]) # XORG_CHECK_LINUXDOC
66317ca54c3Smrg
66417ca54c3Smrg# XORG_CHECK_DOCBOOK
66517ca54c3Smrg# -------------------
66617ca54c3Smrg# Minimum version: 1.0.0
66717ca54c3Smrg#
66817ca54c3Smrg# Checks for the ability to build output formats from SGML DocBook source.
66917ca54c3Smrg# For XXX in {TXT, PDF, PS, HTML}, the AM_CONDITIONAL "BUILD_XXXDOC"
67017ca54c3Smrg# indicates whether the necessary tools and files are found and, if set,
67117ca54c3Smrg# $(MAKE_XXX) blah.sgml will produce blah.xxx.
67217ca54c3SmrgAC_DEFUN([XORG_CHECK_DOCBOOK],[
67317ca54c3SmrgAC_REQUIRE([XORG_CHECK_SGML_DOCTOOLS])
67417ca54c3Smrg
67517ca54c3SmrgBUILDTXTDOC=no
67617ca54c3SmrgBUILDPDFDOC=no
67717ca54c3SmrgBUILDPSDOC=no
67817ca54c3SmrgBUILDHTMLDOC=no
67917ca54c3Smrg
68017ca54c3SmrgAC_PATH_PROG(DOCBOOKPS, docbook2ps)
68117ca54c3SmrgAC_PATH_PROG(DOCBOOKPDF, docbook2pdf)
68217ca54c3SmrgAC_PATH_PROG(DOCBOOKHTML, docbook2html)
68317ca54c3SmrgAC_PATH_PROG(DOCBOOKTXT, docbook2txt)
68417ca54c3Smrg
68517ca54c3SmrgAC_MSG_CHECKING([whether to build text documentation])
68617ca54c3Smrgif test x$XORG_SGML_PATH != x && test x$DOCBOOKTXT != x &&
68717ca54c3Smrg   test x$BUILD_TXTDOC != xno; then
68817ca54c3Smrg	BUILDTXTDOC=yes
68917ca54c3Smrgfi
69017ca54c3SmrgAM_CONDITIONAL(BUILD_TXTDOC, [test x$BUILDTXTDOC = xyes])
69117ca54c3SmrgAC_MSG_RESULT([$BUILDTXTDOC])
69217ca54c3Smrg
69317ca54c3SmrgAC_MSG_CHECKING([whether to build PDF documentation])
69417ca54c3Smrgif test x$XORG_SGML_PATH != x && test x$DOCBOOKPDF != x &&
69517ca54c3Smrg   test x$BUILD_PDFDOC != xno; then
69617ca54c3Smrg	BUILDPDFDOC=yes
69717ca54c3Smrgfi
69817ca54c3SmrgAM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes])
69917ca54c3SmrgAC_MSG_RESULT([$BUILDPDFDOC])
70017ca54c3Smrg
70117ca54c3SmrgAC_MSG_CHECKING([whether to build PostScript documentation])
70217ca54c3Smrgif test x$XORG_SGML_PATH != x && test x$DOCBOOKPS != x &&
70317ca54c3Smrg   test x$BUILD_PSDOC != xno; then
70417ca54c3Smrg	BUILDPSDOC=yes
70517ca54c3Smrgfi
70617ca54c3SmrgAM_CONDITIONAL(BUILD_PSDOC, [test x$BUILDPSDOC = xyes])
70717ca54c3SmrgAC_MSG_RESULT([$BUILDPSDOC])
70817ca54c3Smrg
70917ca54c3SmrgAC_MSG_CHECKING([whether to build HTML documentation])
71017ca54c3Smrgif test x$XORG_SGML_PATH != x && test x$DOCBOOKHTML != x &&
71117ca54c3Smrg   test x$BUILD_HTMLDOC != xno; then
71217ca54c3Smrg	BUILDHTMLDOC=yes
71317ca54c3Smrgfi
71417ca54c3SmrgAM_CONDITIONAL(BUILD_HTMLDOC, [test x$BUILDHTMLDOC = xyes])
71517ca54c3SmrgAC_MSG_RESULT([$BUILDHTMLDOC])
71617ca54c3Smrg
71717ca54c3SmrgMAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKTXT"
71817ca54c3SmrgMAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPS"
71917ca54c3SmrgMAKE_PDF="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPDF"
72017ca54c3SmrgMAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKHTML"
72117ca54c3Smrg
72217ca54c3SmrgAC_SUBST(MAKE_TEXT)
72317ca54c3SmrgAC_SUBST(MAKE_PS)
72417ca54c3SmrgAC_SUBST(MAKE_PDF)
72517ca54c3SmrgAC_SUBST(MAKE_HTML)
72617ca54c3Smrg]) # XORG_CHECK_DOCBOOK
72717ca54c3Smrg
72817ca54c3Smrg# XORG_WITH_XMLTO([MIN-VERSION], [DEFAULT])
72917ca54c3Smrg# ----------------
73017ca54c3Smrg# Minimum version: 1.5.0
73117ca54c3Smrg# Minimum version for optional DEFAULT argument: 1.11.0
73217ca54c3Smrg#
73317ca54c3Smrg# Documentation tools are not always available on all platforms and sometimes
73417ca54c3Smrg# not at the appropriate level. This macro enables a module to test for the
73517ca54c3Smrg# presence of the tool and obtain it's path in separate variables. Coupled with
736635a5eb8Smrg# the --with-xmlto option, it allows maximum flexibility in making decisions
73717ca54c3Smrg# as whether or not to use the xmlto package. When DEFAULT is not specified,
73817ca54c3Smrg# --with-xmlto assumes 'auto'.
73917ca54c3Smrg#
74017ca54c3Smrg# Interface to module:
74117ca54c3Smrg# HAVE_XMLTO: 	used in makefiles to conditionally generate documentation
74217ca54c3Smrg# XMLTO:	returns the path of the xmlto program found
74317ca54c3Smrg#		returns the path set by the user in the environment
74417ca54c3Smrg# --with-xmlto:	'yes' user instructs the module to use xmlto
74517ca54c3Smrg#		'no' user instructs the module not to use xmlto
74617ca54c3Smrg#
74717ca54c3Smrg# Added in version 1.10.0
74817ca54c3Smrg# HAVE_XMLTO_TEXT: used in makefiles to conditionally generate text documentation
74917ca54c3Smrg#                  xmlto for text output requires either lynx, links, or w3m browsers
75017ca54c3Smrg#
75117ca54c3Smrg# If the user sets the value of XMLTO, AC_PATH_PROG skips testing the path.
75217ca54c3Smrg#
75317ca54c3SmrgAC_DEFUN([XORG_WITH_XMLTO],[
75417ca54c3SmrgAC_ARG_VAR([XMLTO], [Path to xmlto command])
75517ca54c3Smrgm4_define([_defopt], m4_default([$2], [auto]))
75617ca54c3SmrgAC_ARG_WITH(xmlto,
75717ca54c3Smrg	AS_HELP_STRING([--with-xmlto],
75817ca54c3Smrg	   [Use xmlto to regenerate documentation (default: ]_defopt[)]),
75917ca54c3Smrg	   [use_xmlto=$withval], [use_xmlto=]_defopt)
76017ca54c3Smrgm4_undefine([_defopt])
76117ca54c3Smrg
76217ca54c3Smrgif test "x$use_xmlto" = x"auto"; then
76317ca54c3Smrg   AC_PATH_PROG([XMLTO], [xmlto])
76417ca54c3Smrg   if test "x$XMLTO" = "x"; then
76517ca54c3Smrg        AC_MSG_WARN([xmlto not found - documentation targets will be skipped])
76617ca54c3Smrg	have_xmlto=no
76717ca54c3Smrg   else
76817ca54c3Smrg        have_xmlto=yes
76917ca54c3Smrg   fi
77017ca54c3Smrgelif test "x$use_xmlto" = x"yes" ; then
77117ca54c3Smrg   AC_PATH_PROG([XMLTO], [xmlto])
77217ca54c3Smrg   if test "x$XMLTO" = "x"; then
77317ca54c3Smrg        AC_MSG_ERROR([--with-xmlto=yes specified but xmlto not found in PATH])
77417ca54c3Smrg   fi
77517ca54c3Smrg   have_xmlto=yes
77617ca54c3Smrgelif test "x$use_xmlto" = x"no" ; then
77717ca54c3Smrg   if test "x$XMLTO" != "x"; then
77817ca54c3Smrg      AC_MSG_WARN([ignoring XMLTO environment variable since --with-xmlto=no was specified])
77917ca54c3Smrg   fi
78017ca54c3Smrg   have_xmlto=no
78117ca54c3Smrgelse
78217ca54c3Smrg   AC_MSG_ERROR([--with-xmlto expects 'yes' or 'no'])
78317ca54c3Smrgfi
78417ca54c3Smrg
78517ca54c3Smrg# Test for a minimum version of xmlto, if provided.
78617ca54c3Smrgm4_ifval([$1],
78717ca54c3Smrg[if test "$have_xmlto" = yes; then
78817ca54c3Smrg    # scrape the xmlto version
78917ca54c3Smrg    AC_MSG_CHECKING([the xmlto version])
79017ca54c3Smrg    xmlto_version=`$XMLTO --version 2>/dev/null | cut -d' ' -f3`
79117ca54c3Smrg    AC_MSG_RESULT([$xmlto_version])
79217ca54c3Smrg    AS_VERSION_COMPARE([$xmlto_version], [$1],
79317ca54c3Smrg        [if test "x$use_xmlto" = xauto; then
79417ca54c3Smrg            AC_MSG_WARN([xmlto version $xmlto_version found, but $1 needed])
79517ca54c3Smrg            have_xmlto=no
79617ca54c3Smrg        else
79717ca54c3Smrg            AC_MSG_ERROR([xmlto version $xmlto_version found, but $1 needed])
79817ca54c3Smrg        fi])
79917ca54c3Smrgfi])
80017ca54c3Smrg
80117ca54c3Smrg# Test for the ability of xmlto to generate a text target
802ea1d6981Smrg#
803ea1d6981Smrg# NOTE: xmlto 0.0.27 or higher return a non-zero return code in the
804ea1d6981Smrg# following test for empty XML docbook files.
805ea1d6981Smrg# For compatibility reasons use the following empty XML docbook file and if
806ea1d6981Smrg# it fails try it again with a non-empty XML file.
80717ca54c3Smrghave_xmlto_text=no
80817ca54c3Smrgcat > conftest.xml << "EOF"
80917ca54c3SmrgEOF
81017ca54c3SmrgAS_IF([test "$have_xmlto" = yes],
81117ca54c3Smrg      [AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1],
81217ca54c3Smrg             [have_xmlto_text=yes],
813ea1d6981Smrg             [# Try it again with a non-empty XML file.
814ea1d6981Smrg              cat > conftest.xml << "EOF"
815ea1d6981Smrg<x></x>
816ea1d6981SmrgEOF
817ea1d6981Smrg              AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1],
818ea1d6981Smrg                    [have_xmlto_text=yes],
819ea1d6981Smrg                    [AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])])])
82017ca54c3Smrgrm -f conftest.xml
82117ca54c3SmrgAM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes])
82217ca54c3SmrgAM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes])
82317ca54c3Smrg]) # XORG_WITH_XMLTO
82417ca54c3Smrg
82517ca54c3Smrg# XORG_WITH_XSLTPROC([MIN-VERSION], [DEFAULT])
82617ca54c3Smrg# --------------------------------------------
82717ca54c3Smrg# Minimum version: 1.12.0
82817ca54c3Smrg# Minimum version for optional DEFAULT argument: 1.12.0
82917ca54c3Smrg#
83017ca54c3Smrg# XSLT (Extensible Stylesheet Language Transformations) is a declarative,
83117ca54c3Smrg# XML-based language used for the transformation of XML documents.
83217ca54c3Smrg# The xsltproc command line tool is for applying XSLT stylesheets to XML documents.
83317ca54c3Smrg# It is used under the cover by xmlto to generate html files from DocBook/XML.
83417ca54c3Smrg# The XSLT processor is often used as a standalone tool for transformations.
83517ca54c3Smrg# It should not be assumed that this tool is used only to work with documnetation.
83617ca54c3Smrg# When DEFAULT is not specified, --with-xsltproc assumes 'auto'.
83717ca54c3Smrg#
83817ca54c3Smrg# Interface to module:
83917ca54c3Smrg# HAVE_XSLTPROC: used in makefiles to conditionally generate documentation
84017ca54c3Smrg# XSLTPROC:	 returns the path of the xsltproc program found
84117ca54c3Smrg#		 returns the path set by the user in the environment
84217ca54c3Smrg# --with-xsltproc: 'yes' user instructs the module to use xsltproc
84317ca54c3Smrg#		  'no' user instructs the module not to use xsltproc
84417ca54c3Smrg# have_xsltproc: returns yes if xsltproc found in PATH or no
84517ca54c3Smrg#
84617ca54c3Smrg# If the user sets the value of XSLTPROC, AC_PATH_PROG skips testing the path.
84717ca54c3Smrg#
84817ca54c3SmrgAC_DEFUN([XORG_WITH_XSLTPROC],[
84917ca54c3SmrgAC_ARG_VAR([XSLTPROC], [Path to xsltproc command])
85017ca54c3Smrg# Preserves the interface, should it be implemented later
85117ca54c3Smrgm4_ifval([$1], [m4_warn([syntax], [Checking for xsltproc MIN-VERSION is not implemented])])
85217ca54c3Smrgm4_define([_defopt], m4_default([$2], [auto]))
85317ca54c3SmrgAC_ARG_WITH(xsltproc,
85417ca54c3Smrg	AS_HELP_STRING([--with-xsltproc],
85517ca54c3Smrg	   [Use xsltproc for the transformation of XML documents (default: ]_defopt[)]),
85617ca54c3Smrg	   [use_xsltproc=$withval], [use_xsltproc=]_defopt)
85717ca54c3Smrgm4_undefine([_defopt])
85817ca54c3Smrg
85917ca54c3Smrgif test "x$use_xsltproc" = x"auto"; then
86017ca54c3Smrg   AC_PATH_PROG([XSLTPROC], [xsltproc])
86117ca54c3Smrg   if test "x$XSLTPROC" = "x"; then
86217ca54c3Smrg        AC_MSG_WARN([xsltproc not found - cannot transform XML documents])
86317ca54c3Smrg	have_xsltproc=no
86417ca54c3Smrg   else
86517ca54c3Smrg        have_xsltproc=yes
86617ca54c3Smrg   fi
86717ca54c3Smrgelif test "x$use_xsltproc" = x"yes" ; then
86817ca54c3Smrg   AC_PATH_PROG([XSLTPROC], [xsltproc])
86917ca54c3Smrg   if test "x$XSLTPROC" = "x"; then
87017ca54c3Smrg        AC_MSG_ERROR([--with-xsltproc=yes specified but xsltproc not found in PATH])
87117ca54c3Smrg   fi
87217ca54c3Smrg   have_xsltproc=yes
87317ca54c3Smrgelif test "x$use_xsltproc" = x"no" ; then
87417ca54c3Smrg   if test "x$XSLTPROC" != "x"; then
87517ca54c3Smrg      AC_MSG_WARN([ignoring XSLTPROC environment variable since --with-xsltproc=no was specified])
87617ca54c3Smrg   fi
87717ca54c3Smrg   have_xsltproc=no
87817ca54c3Smrgelse
87917ca54c3Smrg   AC_MSG_ERROR([--with-xsltproc expects 'yes' or 'no'])
88017ca54c3Smrgfi
88117ca54c3Smrg
88217ca54c3SmrgAM_CONDITIONAL([HAVE_XSLTPROC], [test "$have_xsltproc" = yes])
88317ca54c3Smrg]) # XORG_WITH_XSLTPROC
88417ca54c3Smrg
88517ca54c3Smrg# XORG_WITH_PERL([MIN-VERSION], [DEFAULT])
88617ca54c3Smrg# ----------------------------------------
88717ca54c3Smrg# Minimum version: 1.15.0
88817ca54c3Smrg#
88917ca54c3Smrg# PERL (Practical Extraction and Report Language) is a language optimized for
89017ca54c3Smrg# scanning arbitrary text files, extracting information from those text files,
89117ca54c3Smrg# and printing reports based on that information.
89217ca54c3Smrg#
89317ca54c3Smrg# When DEFAULT is not specified, --with-perl assumes 'auto'.
89417ca54c3Smrg#
89517ca54c3Smrg# Interface to module:
89617ca54c3Smrg# HAVE_PERL: used in makefiles to conditionally scan text files
89717ca54c3Smrg# PERL:	     returns the path of the perl program found
89817ca54c3Smrg#	     returns the path set by the user in the environment
89917ca54c3Smrg# --with-perl: 'yes' user instructs the module to use perl
90017ca54c3Smrg#	       'no' user instructs the module not to use perl
90117ca54c3Smrg# have_perl: returns yes if perl found in PATH or no
90217ca54c3Smrg#
90317ca54c3Smrg# If the user sets the value of PERL, AC_PATH_PROG skips testing the path.
90417ca54c3Smrg#
90517ca54c3SmrgAC_DEFUN([XORG_WITH_PERL],[
90617ca54c3SmrgAC_ARG_VAR([PERL], [Path to perl command])
90717ca54c3Smrg# Preserves the interface, should it be implemented later
90817ca54c3Smrgm4_ifval([$1], [m4_warn([syntax], [Checking for perl MIN-VERSION is not implemented])])
90917ca54c3Smrgm4_define([_defopt], m4_default([$2], [auto]))
91017ca54c3SmrgAC_ARG_WITH(perl,
91117ca54c3Smrg	AS_HELP_STRING([--with-perl],
91217ca54c3Smrg	   [Use perl for extracting information from files (default: ]_defopt[)]),
91317ca54c3Smrg	   [use_perl=$withval], [use_perl=]_defopt)
91417ca54c3Smrgm4_undefine([_defopt])
91517ca54c3Smrg
91617ca54c3Smrgif test "x$use_perl" = x"auto"; then
91717ca54c3Smrg   AC_PATH_PROG([PERL], [perl])
91817ca54c3Smrg   if test "x$PERL" = "x"; then
91917ca54c3Smrg        AC_MSG_WARN([perl not found - cannot extract information and report])
92017ca54c3Smrg	have_perl=no
92117ca54c3Smrg   else
92217ca54c3Smrg        have_perl=yes
92317ca54c3Smrg   fi
92417ca54c3Smrgelif test "x$use_perl" = x"yes" ; then
92517ca54c3Smrg   AC_PATH_PROG([PERL], [perl])
92617ca54c3Smrg   if test "x$PERL" = "x"; then
92717ca54c3Smrg        AC_MSG_ERROR([--with-perl=yes specified but perl not found in PATH])
92817ca54c3Smrg   fi
92917ca54c3Smrg   have_perl=yes
93017ca54c3Smrgelif test "x$use_perl" = x"no" ; then
93117ca54c3Smrg   if test "x$PERL" != "x"; then
93217ca54c3Smrg      AC_MSG_WARN([ignoring PERL environment variable since --with-perl=no was specified])
93317ca54c3Smrg   fi
93417ca54c3Smrg   have_perl=no
93517ca54c3Smrgelse
93617ca54c3Smrg   AC_MSG_ERROR([--with-perl expects 'yes' or 'no'])
93717ca54c3Smrgfi
93817ca54c3Smrg
93917ca54c3SmrgAM_CONDITIONAL([HAVE_PERL], [test "$have_perl" = yes])
94017ca54c3Smrg]) # XORG_WITH_PERL
94117ca54c3Smrg
94217ca54c3Smrg# XORG_WITH_ASCIIDOC([MIN-VERSION], [DEFAULT])
94317ca54c3Smrg# ----------------
94417ca54c3Smrg# Minimum version: 1.5.0
94517ca54c3Smrg# Minimum version for optional DEFAULT argument: 1.11.0
94617ca54c3Smrg#
94717ca54c3Smrg# Documentation tools are not always available on all platforms and sometimes
94817ca54c3Smrg# not at the appropriate level. This macro enables a module to test for the
94917ca54c3Smrg# presence of the tool and obtain it's path in separate variables. Coupled with
950635a5eb8Smrg# the --with-asciidoc option, it allows maximum flexibility in making decisions
95117ca54c3Smrg# as whether or not to use the asciidoc package. When DEFAULT is not specified,
95217ca54c3Smrg# --with-asciidoc assumes 'auto'.
95317ca54c3Smrg#
95417ca54c3Smrg# Interface to module:
95517ca54c3Smrg# HAVE_ASCIIDOC: used in makefiles to conditionally generate documentation
95617ca54c3Smrg# ASCIIDOC:	 returns the path of the asciidoc program found
95717ca54c3Smrg#		 returns the path set by the user in the environment
95817ca54c3Smrg# --with-asciidoc: 'yes' user instructs the module to use asciidoc
95917ca54c3Smrg#		  'no' user instructs the module not to use asciidoc
96017ca54c3Smrg#
96117ca54c3Smrg# If the user sets the value of ASCIIDOC, AC_PATH_PROG skips testing the path.
96217ca54c3Smrg#
96317ca54c3SmrgAC_DEFUN([XORG_WITH_ASCIIDOC],[
96417ca54c3SmrgAC_ARG_VAR([ASCIIDOC], [Path to asciidoc command])
96517ca54c3Smrgm4_define([_defopt], m4_default([$2], [auto]))
96617ca54c3SmrgAC_ARG_WITH(asciidoc,
96717ca54c3Smrg	AS_HELP_STRING([--with-asciidoc],
96817ca54c3Smrg	   [Use asciidoc to regenerate documentation (default: ]_defopt[)]),
96917ca54c3Smrg	   [use_asciidoc=$withval], [use_asciidoc=]_defopt)
97017ca54c3Smrgm4_undefine([_defopt])
97117ca54c3Smrg
97217ca54c3Smrgif test "x$use_asciidoc" = x"auto"; then
97317ca54c3Smrg   AC_PATH_PROG([ASCIIDOC], [asciidoc])
97417ca54c3Smrg   if test "x$ASCIIDOC" = "x"; then
97517ca54c3Smrg        AC_MSG_WARN([asciidoc not found - documentation targets will be skipped])
97617ca54c3Smrg	have_asciidoc=no
97717ca54c3Smrg   else
97817ca54c3Smrg        have_asciidoc=yes
97917ca54c3Smrg   fi
98017ca54c3Smrgelif test "x$use_asciidoc" = x"yes" ; then
98117ca54c3Smrg   AC_PATH_PROG([ASCIIDOC], [asciidoc])
98217ca54c3Smrg   if test "x$ASCIIDOC" = "x"; then
98317ca54c3Smrg        AC_MSG_ERROR([--with-asciidoc=yes specified but asciidoc not found in PATH])
98417ca54c3Smrg   fi
98517ca54c3Smrg   have_asciidoc=yes
98617ca54c3Smrgelif test "x$use_asciidoc" = x"no" ; then
98717ca54c3Smrg   if test "x$ASCIIDOC" != "x"; then
98817ca54c3Smrg      AC_MSG_WARN([ignoring ASCIIDOC environment variable since --with-asciidoc=no was specified])
98917ca54c3Smrg   fi
99017ca54c3Smrg   have_asciidoc=no
99117ca54c3Smrgelse
99217ca54c3Smrg   AC_MSG_ERROR([--with-asciidoc expects 'yes' or 'no'])
99317ca54c3Smrgfi
99417ca54c3Smrgm4_ifval([$1],
99517ca54c3Smrg[if test "$have_asciidoc" = yes; then
99617ca54c3Smrg    # scrape the asciidoc version
99717ca54c3Smrg    AC_MSG_CHECKING([the asciidoc version])
99817ca54c3Smrg    asciidoc_version=`$ASCIIDOC --version 2>/dev/null | cut -d' ' -f2`
99917ca54c3Smrg    AC_MSG_RESULT([$asciidoc_version])
100017ca54c3Smrg    AS_VERSION_COMPARE([$asciidoc_version], [$1],
100117ca54c3Smrg        [if test "x$use_asciidoc" = xauto; then
100217ca54c3Smrg            AC_MSG_WARN([asciidoc version $asciidoc_version found, but $1 needed])
100317ca54c3Smrg            have_asciidoc=no
100417ca54c3Smrg        else
100517ca54c3Smrg            AC_MSG_ERROR([asciidoc version $asciidoc_version found, but $1 needed])
100617ca54c3Smrg        fi])
100717ca54c3Smrgfi])
100817ca54c3SmrgAM_CONDITIONAL([HAVE_ASCIIDOC], [test "$have_asciidoc" = yes])
100917ca54c3Smrg]) # XORG_WITH_ASCIIDOC
101017ca54c3Smrg
101117ca54c3Smrg# XORG_WITH_DOXYGEN([MIN-VERSION], [DEFAULT])
101217ca54c3Smrg# -------------------------------------------
101317ca54c3Smrg# Minimum version: 1.5.0
101417ca54c3Smrg# Minimum version for optional DEFAULT argument: 1.11.0
101517ca54c3Smrg# Minimum version for optional DOT checking: 1.18.0
101617ca54c3Smrg#
101717ca54c3Smrg# Documentation tools are not always available on all platforms and sometimes
101817ca54c3Smrg# not at the appropriate level. This macro enables a module to test for the
101917ca54c3Smrg# presence of the tool and obtain it's path in separate variables. Coupled with
1020635a5eb8Smrg# the --with-doxygen option, it allows maximum flexibility in making decisions
102117ca54c3Smrg# as whether or not to use the doxygen package. When DEFAULT is not specified,
102217ca54c3Smrg# --with-doxygen assumes 'auto'.
102317ca54c3Smrg#
102417ca54c3Smrg# Interface to module:
102517ca54c3Smrg# HAVE_DOXYGEN: used in makefiles to conditionally generate documentation
102617ca54c3Smrg# DOXYGEN:	 returns the path of the doxygen program found
102717ca54c3Smrg#		 returns the path set by the user in the environment
102817ca54c3Smrg# --with-doxygen: 'yes' user instructs the module to use doxygen
102917ca54c3Smrg#		  'no' user instructs the module not to use doxygen
103017ca54c3Smrg#
103117ca54c3Smrg# If the user sets the value of DOXYGEN, AC_PATH_PROG skips testing the path.
103217ca54c3Smrg#
103317ca54c3SmrgAC_DEFUN([XORG_WITH_DOXYGEN],[
103417ca54c3SmrgAC_ARG_VAR([DOXYGEN], [Path to doxygen command])
103517ca54c3SmrgAC_ARG_VAR([DOT], [Path to the dot graphics utility])
103617ca54c3Smrgm4_define([_defopt], m4_default([$2], [auto]))
103717ca54c3SmrgAC_ARG_WITH(doxygen,
103817ca54c3Smrg	AS_HELP_STRING([--with-doxygen],
103917ca54c3Smrg	   [Use doxygen to regenerate documentation (default: ]_defopt[)]),
104017ca54c3Smrg	   [use_doxygen=$withval], [use_doxygen=]_defopt)
104117ca54c3Smrgm4_undefine([_defopt])
104217ca54c3Smrg
104317ca54c3Smrgif test "x$use_doxygen" = x"auto"; then
104417ca54c3Smrg   AC_PATH_PROG([DOXYGEN], [doxygen])
104517ca54c3Smrg   if test "x$DOXYGEN" = "x"; then
104617ca54c3Smrg        AC_MSG_WARN([doxygen not found - documentation targets will be skipped])
104717ca54c3Smrg	have_doxygen=no
104817ca54c3Smrg   else
104917ca54c3Smrg        have_doxygen=yes
105017ca54c3Smrg   fi
105117ca54c3Smrgelif test "x$use_doxygen" = x"yes" ; then
105217ca54c3Smrg   AC_PATH_PROG([DOXYGEN], [doxygen])
105317ca54c3Smrg   if test "x$DOXYGEN" = "x"; then
105417ca54c3Smrg        AC_MSG_ERROR([--with-doxygen=yes specified but doxygen not found in PATH])
105517ca54c3Smrg   fi
105617ca54c3Smrg   have_doxygen=yes
105717ca54c3Smrgelif test "x$use_doxygen" = x"no" ; then
105817ca54c3Smrg   if test "x$DOXYGEN" != "x"; then
105917ca54c3Smrg      AC_MSG_WARN([ignoring DOXYGEN environment variable since --with-doxygen=no was specified])
106017ca54c3Smrg   fi
106117ca54c3Smrg   have_doxygen=no
106217ca54c3Smrgelse
106317ca54c3Smrg   AC_MSG_ERROR([--with-doxygen expects 'yes' or 'no'])
106417ca54c3Smrgfi
106517ca54c3Smrgm4_ifval([$1],
106617ca54c3Smrg[if test "$have_doxygen" = yes; then
106717ca54c3Smrg    # scrape the doxygen version
106817ca54c3Smrg    AC_MSG_CHECKING([the doxygen version])
106917ca54c3Smrg    doxygen_version=`$DOXYGEN --version 2>/dev/null`
107017ca54c3Smrg    AC_MSG_RESULT([$doxygen_version])
107117ca54c3Smrg    AS_VERSION_COMPARE([$doxygen_version], [$1],
107217ca54c3Smrg        [if test "x$use_doxygen" = xauto; then
107317ca54c3Smrg            AC_MSG_WARN([doxygen version $doxygen_version found, but $1 needed])
107417ca54c3Smrg            have_doxygen=no
107517ca54c3Smrg        else
107617ca54c3Smrg            AC_MSG_ERROR([doxygen version $doxygen_version found, but $1 needed])
107717ca54c3Smrg        fi])
107817ca54c3Smrgfi])
107917ca54c3Smrg
108017ca54c3Smrgdnl Check for DOT if we have doxygen. The caller decides if it is mandatory
108117ca54c3Smrgdnl HAVE_DOT is a variable that can be used in your doxygen.in config file:
108217ca54c3Smrgdnl 	HAVE_DOT = @HAVE_DOT@
108317ca54c3SmrgHAVE_DOT=no
108417ca54c3Smrgif test "x$have_doxygen" = "xyes"; then
108517ca54c3Smrg  AC_PATH_PROG([DOT], [dot])
108617ca54c3Smrg    if test "x$DOT" != "x"; then
108717ca54c3Smrg      HAVE_DOT=yes
108817ca54c3Smrg    fi
108917ca54c3Smrgfi
109017ca54c3Smrg
109117ca54c3SmrgAC_SUBST([HAVE_DOT])
109217ca54c3SmrgAM_CONDITIONAL([HAVE_DOT], [test "$HAVE_DOT" = "yes"])
109317ca54c3SmrgAM_CONDITIONAL([HAVE_DOXYGEN], [test "$have_doxygen" = yes])
109417ca54c3Smrg]) # XORG_WITH_DOXYGEN
109517ca54c3Smrg
109617ca54c3Smrg# XORG_WITH_GROFF([DEFAULT])
109717ca54c3Smrg# ----------------
109817ca54c3Smrg# Minimum version: 1.6.0
109917ca54c3Smrg# Minimum version for optional DEFAULT argument: 1.11.0
110017ca54c3Smrg#
110117ca54c3Smrg# Documentation tools are not always available on all platforms and sometimes
110217ca54c3Smrg# not at the appropriate level. This macro enables a module to test for the
110317ca54c3Smrg# presence of the tool and obtain it's path in separate variables. Coupled with
1104635a5eb8Smrg# the --with-groff option, it allows maximum flexibility in making decisions
110517ca54c3Smrg# as whether or not to use the groff package. When DEFAULT is not specified,
110617ca54c3Smrg# --with-groff assumes 'auto'.
110717ca54c3Smrg#
110817ca54c3Smrg# Interface to module:
110917ca54c3Smrg# HAVE_GROFF:	 used in makefiles to conditionally generate documentation
111017ca54c3Smrg# HAVE_GROFF_MM: the memorandum macros (-mm) package
111117ca54c3Smrg# HAVE_GROFF_MS: the -ms macros package
111217ca54c3Smrg# GROFF:	 returns the path of the groff program found
111317ca54c3Smrg#		 returns the path set by the user in the environment
111417ca54c3Smrg# --with-groff:	 'yes' user instructs the module to use groff
111517ca54c3Smrg#		 'no' user instructs the module not to use groff
111617ca54c3Smrg#
111717ca54c3Smrg# Added in version 1.9.0:
111817ca54c3Smrg# HAVE_GROFF_HTML: groff has dependencies to output HTML format:
111917ca54c3Smrg#		   pnmcut pnmcrop pnmtopng pnmtops from the netpbm package.
112017ca54c3Smrg#		   psselect from the psutils package.
112117ca54c3Smrg#		   the ghostcript package. Refer to the grohtml man pages
112217ca54c3Smrg#
112317ca54c3Smrg# If the user sets the value of GROFF, AC_PATH_PROG skips testing the path.
112417ca54c3Smrg#
112517ca54c3Smrg# OS and distros often splits groff in a basic and full package, the former
112617ca54c3Smrg# having the groff program and the later having devices, fonts and macros
112717ca54c3Smrg# Checking for the groff executable is not enough.
112817ca54c3Smrg#
112917ca54c3Smrg# If macros are missing, we cannot assume that groff is useless, so we don't
113017ca54c3Smrg# unset HAVE_GROFF or GROFF env variables.
113117ca54c3Smrg# HAVE_GROFF_?? can never be true while HAVE_GROFF is false.
113217ca54c3Smrg#
113317ca54c3SmrgAC_DEFUN([XORG_WITH_GROFF],[
113417ca54c3SmrgAC_ARG_VAR([GROFF], [Path to groff command])
113517ca54c3Smrgm4_define([_defopt], m4_default([$1], [auto]))
113617ca54c3SmrgAC_ARG_WITH(groff,
113717ca54c3Smrg	AS_HELP_STRING([--with-groff],
113817ca54c3Smrg	   [Use groff to regenerate documentation (default: ]_defopt[)]),
113917ca54c3Smrg	   [use_groff=$withval], [use_groff=]_defopt)
114017ca54c3Smrgm4_undefine([_defopt])
114117ca54c3Smrg
114217ca54c3Smrgif test "x$use_groff" = x"auto"; then
114317ca54c3Smrg   AC_PATH_PROG([GROFF], [groff])
114417ca54c3Smrg   if test "x$GROFF" = "x"; then
114517ca54c3Smrg        AC_MSG_WARN([groff not found - documentation targets will be skipped])
114617ca54c3Smrg	have_groff=no
114717ca54c3Smrg   else
114817ca54c3Smrg        have_groff=yes
114917ca54c3Smrg   fi
115017ca54c3Smrgelif test "x$use_groff" = x"yes" ; then
115117ca54c3Smrg   AC_PATH_PROG([GROFF], [groff])
115217ca54c3Smrg   if test "x$GROFF" = "x"; then
115317ca54c3Smrg        AC_MSG_ERROR([--with-groff=yes specified but groff not found in PATH])
115417ca54c3Smrg   fi
115517ca54c3Smrg   have_groff=yes
115617ca54c3Smrgelif test "x$use_groff" = x"no" ; then
115717ca54c3Smrg   if test "x$GROFF" != "x"; then
115817ca54c3Smrg      AC_MSG_WARN([ignoring GROFF environment variable since --with-groff=no was specified])
115917ca54c3Smrg   fi
116017ca54c3Smrg   have_groff=no
116117ca54c3Smrgelse
116217ca54c3Smrg   AC_MSG_ERROR([--with-groff expects 'yes' or 'no'])
116317ca54c3Smrgfi
116417ca54c3Smrg
116517ca54c3Smrg# We have groff, test for the presence of the macro packages
116617ca54c3Smrgif test "x$have_groff" = x"yes"; then
116717ca54c3Smrg    AC_MSG_CHECKING([for ${GROFF} -ms macros])
116817ca54c3Smrg    if ${GROFF} -ms -I. /dev/null >/dev/null 2>&1 ; then
116917ca54c3Smrg        groff_ms_works=yes
117017ca54c3Smrg    else
117117ca54c3Smrg        groff_ms_works=no
117217ca54c3Smrg    fi
117317ca54c3Smrg    AC_MSG_RESULT([$groff_ms_works])
117417ca54c3Smrg    AC_MSG_CHECKING([for ${GROFF} -mm macros])
117517ca54c3Smrg    if ${GROFF} -mm -I. /dev/null >/dev/null 2>&1 ; then
117617ca54c3Smrg        groff_mm_works=yes
117717ca54c3Smrg    else
117817ca54c3Smrg        groff_mm_works=no
117917ca54c3Smrg    fi
118017ca54c3Smrg    AC_MSG_RESULT([$groff_mm_works])
118117ca54c3Smrgfi
118217ca54c3Smrg
118317ca54c3Smrg# We have groff, test for HTML dependencies, one command per package
118417ca54c3Smrgif test "x$have_groff" = x"yes"; then
118517ca54c3Smrg   AC_PATH_PROGS(GS_PATH, [gs gswin32c])
118617ca54c3Smrg   AC_PATH_PROG(PNMTOPNG_PATH, [pnmtopng])
118717ca54c3Smrg   AC_PATH_PROG(PSSELECT_PATH, [psselect])
118817ca54c3Smrg   if test "x$GS_PATH" != "x" -a "x$PNMTOPNG_PATH" != "x" -a "x$PSSELECT_PATH" != "x"; then
118917ca54c3Smrg      have_groff_html=yes
119017ca54c3Smrg   else
119117ca54c3Smrg      have_groff_html=no
119217ca54c3Smrg      AC_MSG_WARN([grohtml dependencies not found - HTML Documentation skipped. Refer to grohtml man pages])
119317ca54c3Smrg   fi
119417ca54c3Smrgfi
119517ca54c3Smrg
119617ca54c3Smrg# Set Automake conditionals for Makefiles
119717ca54c3SmrgAM_CONDITIONAL([HAVE_GROFF], [test "$have_groff" = yes])
119817ca54c3SmrgAM_CONDITIONAL([HAVE_GROFF_MS], [test "$groff_ms_works" = yes])
119917ca54c3SmrgAM_CONDITIONAL([HAVE_GROFF_MM], [test "$groff_mm_works" = yes])
120017ca54c3SmrgAM_CONDITIONAL([HAVE_GROFF_HTML], [test "$have_groff_html" = yes])
120117ca54c3Smrg]) # XORG_WITH_GROFF
120217ca54c3Smrg
120317ca54c3Smrg# XORG_WITH_FOP([MIN-VERSION], [DEFAULT])
120417ca54c3Smrg# ---------------------------------------
120517ca54c3Smrg# Minimum version: 1.6.0
120617ca54c3Smrg# Minimum version for optional DEFAULT argument: 1.11.0
120717ca54c3Smrg# Minimum version for optional MIN-VERSION argument: 1.15.0
120817ca54c3Smrg#
120917ca54c3Smrg# Documentation tools are not always available on all platforms and sometimes
121017ca54c3Smrg# not at the appropriate level. This macro enables a module to test for the
121117ca54c3Smrg# presence of the tool and obtain it's path in separate variables. Coupled with
1212635a5eb8Smrg# the --with-fop option, it allows maximum flexibility in making decisions
121317ca54c3Smrg# as whether or not to use the fop package. When DEFAULT is not specified,
121417ca54c3Smrg# --with-fop assumes 'auto'.
121517ca54c3Smrg#
121617ca54c3Smrg# Interface to module:
121717ca54c3Smrg# HAVE_FOP: 	used in makefiles to conditionally generate documentation
121817ca54c3Smrg# FOP:	 	returns the path of the fop program found
121917ca54c3Smrg#		returns the path set by the user in the environment
122017ca54c3Smrg# --with-fop: 	'yes' user instructs the module to use fop
122117ca54c3Smrg#		'no' user instructs the module not to use fop
122217ca54c3Smrg#
122317ca54c3Smrg# If the user sets the value of FOP, AC_PATH_PROG skips testing the path.
122417ca54c3Smrg#
122517ca54c3SmrgAC_DEFUN([XORG_WITH_FOP],[
122617ca54c3SmrgAC_ARG_VAR([FOP], [Path to fop command])
122717ca54c3Smrgm4_define([_defopt], m4_default([$2], [auto]))
122817ca54c3SmrgAC_ARG_WITH(fop,
122917ca54c3Smrg	AS_HELP_STRING([--with-fop],
123017ca54c3Smrg	   [Use fop to regenerate documentation (default: ]_defopt[)]),
123117ca54c3Smrg	   [use_fop=$withval], [use_fop=]_defopt)
123217ca54c3Smrgm4_undefine([_defopt])
123317ca54c3Smrg
123417ca54c3Smrgif test "x$use_fop" = x"auto"; then
123517ca54c3Smrg   AC_PATH_PROG([FOP], [fop])
123617ca54c3Smrg   if test "x$FOP" = "x"; then
123717ca54c3Smrg        AC_MSG_WARN([fop not found - documentation targets will be skipped])
123817ca54c3Smrg	have_fop=no
123917ca54c3Smrg   else
124017ca54c3Smrg        have_fop=yes
124117ca54c3Smrg   fi
124217ca54c3Smrgelif test "x$use_fop" = x"yes" ; then
124317ca54c3Smrg   AC_PATH_PROG([FOP], [fop])
124417ca54c3Smrg   if test "x$FOP" = "x"; then
124517ca54c3Smrg        AC_MSG_ERROR([--with-fop=yes specified but fop not found in PATH])
124617ca54c3Smrg   fi
124717ca54c3Smrg   have_fop=yes
124817ca54c3Smrgelif test "x$use_fop" = x"no" ; then
124917ca54c3Smrg   if test "x$FOP" != "x"; then
125017ca54c3Smrg      AC_MSG_WARN([ignoring FOP environment variable since --with-fop=no was specified])
125117ca54c3Smrg   fi
125217ca54c3Smrg   have_fop=no
125317ca54c3Smrgelse
125417ca54c3Smrg   AC_MSG_ERROR([--with-fop expects 'yes' or 'no'])
125517ca54c3Smrgfi
125617ca54c3Smrg
125717ca54c3Smrg# Test for a minimum version of fop, if provided.
125817ca54c3Smrgm4_ifval([$1],
125917ca54c3Smrg[if test "$have_fop" = yes; then
126017ca54c3Smrg    # scrape the fop version
126117ca54c3Smrg    AC_MSG_CHECKING([for fop minimum version])
126217ca54c3Smrg    fop_version=`$FOP -version 2>/dev/null | cut -d' ' -f3`
126317ca54c3Smrg    AC_MSG_RESULT([$fop_version])
126417ca54c3Smrg    AS_VERSION_COMPARE([$fop_version], [$1],
126517ca54c3Smrg        [if test "x$use_fop" = xauto; then
126617ca54c3Smrg            AC_MSG_WARN([fop version $fop_version found, but $1 needed])
126717ca54c3Smrg            have_fop=no
126817ca54c3Smrg        else
126917ca54c3Smrg            AC_MSG_ERROR([fop version $fop_version found, but $1 needed])
127017ca54c3Smrg        fi])
127117ca54c3Smrgfi])
127217ca54c3SmrgAM_CONDITIONAL([HAVE_FOP], [test "$have_fop" = yes])
127317ca54c3Smrg]) # XORG_WITH_FOP
127417ca54c3Smrg
127517ca54c3Smrg# XORG_WITH_M4([MIN-VERSION])
127617ca54c3Smrg# ---------------------------
127717ca54c3Smrg# Minimum version: 1.19.0
127817ca54c3Smrg#
127917ca54c3Smrg# This macro attempts to locate an m4 macro processor which supports
128017ca54c3Smrg# -I option and is only useful for modules relying on M4 in order to
128117ca54c3Smrg# expand macros in source code files.
128217ca54c3Smrg#
128317ca54c3Smrg# Interface to module:
128417ca54c3Smrg# M4:	 	returns the path of the m4 program found
128517ca54c3Smrg#		returns the path set by the user in the environment
128617ca54c3Smrg#
128717ca54c3SmrgAC_DEFUN([XORG_WITH_M4], [
128817ca54c3SmrgAC_CACHE_CHECK([for m4 that supports -I option], [ac_cv_path_M4],
128917ca54c3Smrg   [AC_PATH_PROGS_FEATURE_CHECK([M4], [m4 gm4],
129017ca54c3Smrg       [[$ac_path_M4 -I. /dev/null > /dev/null 2>&1 && \
129117ca54c3Smrg         ac_cv_path_M4=$ac_path_M4 ac_path_M4_found=:]],
129217ca54c3Smrg   [AC_MSG_ERROR([could not find m4 that supports -I option])],
129317ca54c3Smrg   [$PATH:/usr/gnu/bin])])
129417ca54c3Smrg
129517ca54c3SmrgAC_SUBST([M4], [$ac_cv_path_M4])
129617ca54c3Smrg]) # XORG_WITH_M4
129717ca54c3Smrg
129817ca54c3Smrg# XORG_WITH_PS2PDF([DEFAULT])
129917ca54c3Smrg# ----------------
130017ca54c3Smrg# Minimum version: 1.6.0
130117ca54c3Smrg# Minimum version for optional DEFAULT argument: 1.11.0
130217ca54c3Smrg#
130317ca54c3Smrg# Documentation tools are not always available on all platforms and sometimes
130417ca54c3Smrg# not at the appropriate level. This macro enables a module to test for the
130517ca54c3Smrg# presence of the tool and obtain it's path in separate variables. Coupled with
1306635a5eb8Smrg# the --with-ps2pdf option, it allows maximum flexibility in making decisions
130717ca54c3Smrg# as whether or not to use the ps2pdf package. When DEFAULT is not specified,
130817ca54c3Smrg# --with-ps2pdf assumes 'auto'.
130917ca54c3Smrg#
131017ca54c3Smrg# Interface to module:
131117ca54c3Smrg# HAVE_PS2PDF: 	used in makefiles to conditionally generate documentation
131217ca54c3Smrg# PS2PDF:	returns the path of the ps2pdf program found
131317ca54c3Smrg#		returns the path set by the user in the environment
131417ca54c3Smrg# --with-ps2pdf: 'yes' user instructs the module to use ps2pdf
131517ca54c3Smrg#		 'no' user instructs the module not to use ps2pdf
131617ca54c3Smrg#
131717ca54c3Smrg# If the user sets the value of PS2PDF, AC_PATH_PROG skips testing the path.
131817ca54c3Smrg#
131917ca54c3SmrgAC_DEFUN([XORG_WITH_PS2PDF],[
132017ca54c3SmrgAC_ARG_VAR([PS2PDF], [Path to ps2pdf command])
132117ca54c3Smrgm4_define([_defopt], m4_default([$1], [auto]))
132217ca54c3SmrgAC_ARG_WITH(ps2pdf,
132317ca54c3Smrg	AS_HELP_STRING([--with-ps2pdf],
132417ca54c3Smrg	   [Use ps2pdf to regenerate documentation (default: ]_defopt[)]),
132517ca54c3Smrg	   [use_ps2pdf=$withval], [use_ps2pdf=]_defopt)
132617ca54c3Smrgm4_undefine([_defopt])
132717ca54c3Smrg
132817ca54c3Smrgif test "x$use_ps2pdf" = x"auto"; then
132917ca54c3Smrg   AC_PATH_PROG([PS2PDF], [ps2pdf])
133017ca54c3Smrg   if test "x$PS2PDF" = "x"; then
133117ca54c3Smrg        AC_MSG_WARN([ps2pdf not found - documentation targets will be skipped])
133217ca54c3Smrg	have_ps2pdf=no
133317ca54c3Smrg   else
133417ca54c3Smrg        have_ps2pdf=yes
133517ca54c3Smrg   fi
133617ca54c3Smrgelif test "x$use_ps2pdf" = x"yes" ; then
133717ca54c3Smrg   AC_PATH_PROG([PS2PDF], [ps2pdf])
133817ca54c3Smrg   if test "x$PS2PDF" = "x"; then
133917ca54c3Smrg        AC_MSG_ERROR([--with-ps2pdf=yes specified but ps2pdf not found in PATH])
134017ca54c3Smrg   fi
134117ca54c3Smrg   have_ps2pdf=yes
134217ca54c3Smrgelif test "x$use_ps2pdf" = x"no" ; then
134317ca54c3Smrg   if test "x$PS2PDF" != "x"; then
134417ca54c3Smrg      AC_MSG_WARN([ignoring PS2PDF environment variable since --with-ps2pdf=no was specified])
134517ca54c3Smrg   fi
134617ca54c3Smrg   have_ps2pdf=no
134717ca54c3Smrgelse
134817ca54c3Smrg   AC_MSG_ERROR([--with-ps2pdf expects 'yes' or 'no'])
134917ca54c3Smrgfi
135017ca54c3SmrgAM_CONDITIONAL([HAVE_PS2PDF], [test "$have_ps2pdf" = yes])
135117ca54c3Smrg]) # XORG_WITH_PS2PDF
135217ca54c3Smrg
135317ca54c3Smrg# XORG_ENABLE_DOCS (enable_docs=yes)
135417ca54c3Smrg# ----------------
135517ca54c3Smrg# Minimum version: 1.6.0
135617ca54c3Smrg#
135717ca54c3Smrg# Documentation tools are not always available on all platforms and sometimes
135817ca54c3Smrg# not at the appropriate level. This macro enables a builder to skip all
135917ca54c3Smrg# documentation targets except traditional man pages.
136017ca54c3Smrg# Combined with the specific tool checking macros XORG_WITH_*, it provides
1361635a5eb8Smrg# maximum flexibility in controlling documentation building.
136217ca54c3Smrg# Refer to:
136317ca54c3Smrg# XORG_WITH_XMLTO         --with-xmlto
136417ca54c3Smrg# XORG_WITH_ASCIIDOC      --with-asciidoc
136517ca54c3Smrg# XORG_WITH_DOXYGEN       --with-doxygen
136617ca54c3Smrg# XORG_WITH_FOP           --with-fop
136717ca54c3Smrg# XORG_WITH_GROFF         --with-groff
136817ca54c3Smrg# XORG_WITH_PS2PDF        --with-ps2pdf
136917ca54c3Smrg#
137017ca54c3Smrg# Interface to module:
137117ca54c3Smrg# ENABLE_DOCS: 	  used in makefiles to conditionally generate documentation
137217ca54c3Smrg# --enable-docs: 'yes' user instructs the module to generate docs
137317ca54c3Smrg#		 'no' user instructs the module not to generate docs
137417ca54c3Smrg# parm1:	specify the default value, yes or no.
137517ca54c3Smrg#
137617ca54c3SmrgAC_DEFUN([XORG_ENABLE_DOCS],[
137717ca54c3Smrgm4_define([docs_default], m4_default([$1], [yes]))
137817ca54c3SmrgAC_ARG_ENABLE(docs,
137917ca54c3Smrg	AS_HELP_STRING([--enable-docs],
138017ca54c3Smrg	   [Enable building the documentation (default: ]docs_default[)]),
138117ca54c3Smrg	   [build_docs=$enableval], [build_docs=]docs_default)
138217ca54c3Smrgm4_undefine([docs_default])
138317ca54c3SmrgAM_CONDITIONAL(ENABLE_DOCS, [test x$build_docs = xyes])
138417ca54c3SmrgAC_MSG_CHECKING([whether to build documentation])
138517ca54c3SmrgAC_MSG_RESULT([$build_docs])
138617ca54c3Smrg]) # XORG_ENABLE_DOCS
138717ca54c3Smrg
138817ca54c3Smrg# XORG_ENABLE_DEVEL_DOCS (enable_devel_docs=yes)
138917ca54c3Smrg# ----------------
139017ca54c3Smrg# Minimum version: 1.6.0
139117ca54c3Smrg#
139217ca54c3Smrg# This macro enables a builder to skip all developer documentation.
139317ca54c3Smrg# Combined with the specific tool checking macros XORG_WITH_*, it provides
1394635a5eb8Smrg# maximum flexibility in controlling documentation building.
139517ca54c3Smrg# Refer to:
139617ca54c3Smrg# XORG_WITH_XMLTO         --with-xmlto
139717ca54c3Smrg# XORG_WITH_ASCIIDOC      --with-asciidoc
139817ca54c3Smrg# XORG_WITH_DOXYGEN       --with-doxygen
139917ca54c3Smrg# XORG_WITH_FOP           --with-fop
140017ca54c3Smrg# XORG_WITH_GROFF         --with-groff
140117ca54c3Smrg# XORG_WITH_PS2PDF        --with-ps2pdf
140217ca54c3Smrg#
140317ca54c3Smrg# Interface to module:
140417ca54c3Smrg# ENABLE_DEVEL_DOCS:	used in makefiles to conditionally generate developer docs
140517ca54c3Smrg# --enable-devel-docs:	'yes' user instructs the module to generate developer docs
140617ca54c3Smrg#			'no' user instructs the module not to generate developer docs
140717ca54c3Smrg# parm1:		specify the default value, yes or no.
140817ca54c3Smrg#
140917ca54c3SmrgAC_DEFUN([XORG_ENABLE_DEVEL_DOCS],[
141017ca54c3Smrgm4_define([devel_default], m4_default([$1], [yes]))
141117ca54c3SmrgAC_ARG_ENABLE(devel-docs,
141217ca54c3Smrg	AS_HELP_STRING([--enable-devel-docs],
141317ca54c3Smrg	   [Enable building the developer documentation (default: ]devel_default[)]),
141417ca54c3Smrg	   [build_devel_docs=$enableval], [build_devel_docs=]devel_default)
141517ca54c3Smrgm4_undefine([devel_default])
141617ca54c3SmrgAM_CONDITIONAL(ENABLE_DEVEL_DOCS, [test x$build_devel_docs = xyes])
141717ca54c3SmrgAC_MSG_CHECKING([whether to build developer documentation])
141817ca54c3SmrgAC_MSG_RESULT([$build_devel_docs])
141917ca54c3Smrg]) # XORG_ENABLE_DEVEL_DOCS
142017ca54c3Smrg
142117ca54c3Smrg# XORG_ENABLE_SPECS (enable_specs=yes)
142217ca54c3Smrg# ----------------
142317ca54c3Smrg# Minimum version: 1.6.0
142417ca54c3Smrg#
142517ca54c3Smrg# This macro enables a builder to skip all functional specification targets.
142617ca54c3Smrg# Combined with the specific tool checking macros XORG_WITH_*, it provides
1427635a5eb8Smrg# maximum flexibility in controlling documentation building.
142817ca54c3Smrg# Refer to:
142917ca54c3Smrg# XORG_WITH_XMLTO         --with-xmlto
143017ca54c3Smrg# XORG_WITH_ASCIIDOC      --with-asciidoc
143117ca54c3Smrg# XORG_WITH_DOXYGEN       --with-doxygen
143217ca54c3Smrg# XORG_WITH_FOP           --with-fop
143317ca54c3Smrg# XORG_WITH_GROFF         --with-groff
143417ca54c3Smrg# XORG_WITH_PS2PDF        --with-ps2pdf
143517ca54c3Smrg#
143617ca54c3Smrg# Interface to module:
143717ca54c3Smrg# ENABLE_SPECS:		used in makefiles to conditionally generate specs
143817ca54c3Smrg# --enable-specs:	'yes' user instructs the module to generate specs
143917ca54c3Smrg#			'no' user instructs the module not to generate specs
144017ca54c3Smrg# parm1:		specify the default value, yes or no.
144117ca54c3Smrg#
144217ca54c3SmrgAC_DEFUN([XORG_ENABLE_SPECS],[
144317ca54c3Smrgm4_define([spec_default], m4_default([$1], [yes]))
144417ca54c3SmrgAC_ARG_ENABLE(specs,
144517ca54c3Smrg	AS_HELP_STRING([--enable-specs],
144617ca54c3Smrg	   [Enable building the specs (default: ]spec_default[)]),
144717ca54c3Smrg	   [build_specs=$enableval], [build_specs=]spec_default)
144817ca54c3Smrgm4_undefine([spec_default])
144917ca54c3SmrgAM_CONDITIONAL(ENABLE_SPECS, [test x$build_specs = xyes])
145017ca54c3SmrgAC_MSG_CHECKING([whether to build functional specifications])
145117ca54c3SmrgAC_MSG_RESULT([$build_specs])
145217ca54c3Smrg]) # XORG_ENABLE_SPECS
145317ca54c3Smrg
145417ca54c3Smrg# XORG_ENABLE_UNIT_TESTS (enable_unit_tests=auto)
145517ca54c3Smrg# ----------------------------------------------
145617ca54c3Smrg# Minimum version: 1.13.0
145717ca54c3Smrg#
145817ca54c3Smrg# This macro enables a builder to enable/disable unit testing
145917ca54c3Smrg# It makes no assumption about the test cases implementation
146017ca54c3Smrg# Test cases may or may not use Automake "Support for test suites"
146117ca54c3Smrg# They may or may not use the software utility library GLib
146217ca54c3Smrg#
146317ca54c3Smrg# When used in conjunction with XORG_WITH_GLIB, use both AM_CONDITIONAL
146417ca54c3Smrg# ENABLE_UNIT_TESTS and HAVE_GLIB. Not all unit tests may use glib.
146517ca54c3Smrg# The variable enable_unit_tests is used by other macros in this file.
146617ca54c3Smrg#
146717ca54c3Smrg# Interface to module:
146817ca54c3Smrg# ENABLE_UNIT_TESTS:	used in makefiles to conditionally build tests
146917ca54c3Smrg# enable_unit_tests:    used in configure.ac for additional configuration
147017ca54c3Smrg# --enable-unit-tests:	'yes' user instructs the module to build tests
147117ca54c3Smrg#			'no' user instructs the module not to build tests
147217ca54c3Smrg# parm1:		specify the default value, yes or no.
147317ca54c3Smrg#
147417ca54c3SmrgAC_DEFUN([XORG_ENABLE_UNIT_TESTS],[
147517ca54c3SmrgAC_BEFORE([$0], [XORG_WITH_GLIB])
147617ca54c3SmrgAC_BEFORE([$0], [XORG_LD_WRAP])
147717ca54c3SmrgAC_REQUIRE([XORG_MEMORY_CHECK_FLAGS])
147817ca54c3Smrgm4_define([_defopt], m4_default([$1], [auto]))
147917ca54c3SmrgAC_ARG_ENABLE(unit-tests, AS_HELP_STRING([--enable-unit-tests],
148017ca54c3Smrg	[Enable building unit test cases (default: ]_defopt[)]),
148117ca54c3Smrg	[enable_unit_tests=$enableval], [enable_unit_tests=]_defopt)
148217ca54c3Smrgm4_undefine([_defopt])
148317ca54c3SmrgAM_CONDITIONAL(ENABLE_UNIT_TESTS, [test "x$enable_unit_tests" != xno])
148417ca54c3SmrgAC_MSG_CHECKING([whether to build unit test cases])
148517ca54c3SmrgAC_MSG_RESULT([$enable_unit_tests])
148617ca54c3Smrg]) # XORG_ENABLE_UNIT_TESTS
148717ca54c3Smrg
148817ca54c3Smrg# XORG_ENABLE_INTEGRATION_TESTS (enable_unit_tests=auto)
148917ca54c3Smrg# ------------------------------------------------------
149017ca54c3Smrg# Minimum version: 1.17.0
149117ca54c3Smrg#
149217ca54c3Smrg# This macro enables a builder to enable/disable integration testing
149317ca54c3Smrg# It makes no assumption about the test cases' implementation
149417ca54c3Smrg# Test cases may or may not use Automake "Support for test suites"
149517ca54c3Smrg#
149617ca54c3Smrg# Please see XORG_ENABLE_UNIT_TESTS for unit test support. Unit test support
149717ca54c3Smrg# usually requires less dependencies and may be built and run under less
149817ca54c3Smrg# stringent environments than integration tests.
149917ca54c3Smrg#
150017ca54c3Smrg# Interface to module:
150117ca54c3Smrg# ENABLE_INTEGRATION_TESTS:   used in makefiles to conditionally build tests
150217ca54c3Smrg# enable_integration_tests:   used in configure.ac for additional configuration
150317ca54c3Smrg# --enable-integration-tests: 'yes' user instructs the module to build tests
150417ca54c3Smrg#                             'no' user instructs the module not to build tests
150517ca54c3Smrg# parm1:                      specify the default value, yes or no.
150617ca54c3Smrg#
150717ca54c3SmrgAC_DEFUN([XORG_ENABLE_INTEGRATION_TESTS],[
150817ca54c3SmrgAC_REQUIRE([XORG_MEMORY_CHECK_FLAGS])
150917ca54c3Smrgm4_define([_defopt], m4_default([$1], [auto]))
151017ca54c3SmrgAC_ARG_ENABLE(integration-tests, AS_HELP_STRING([--enable-integration-tests],
151117ca54c3Smrg	[Enable building integration test cases (default: ]_defopt[)]),
151217ca54c3Smrg	[enable_integration_tests=$enableval],
151317ca54c3Smrg	[enable_integration_tests=]_defopt)
151417ca54c3Smrgm4_undefine([_defopt])
151517ca54c3SmrgAM_CONDITIONAL([ENABLE_INTEGRATION_TESTS],
151617ca54c3Smrg	[test "x$enable_integration_tests" != xno])
151717ca54c3SmrgAC_MSG_CHECKING([whether to build unit test cases])
151817ca54c3SmrgAC_MSG_RESULT([$enable_integration_tests])
151917ca54c3Smrg]) # XORG_ENABLE_INTEGRATION_TESTS
152017ca54c3Smrg
152117ca54c3Smrg# XORG_WITH_GLIB([MIN-VERSION], [DEFAULT])
152217ca54c3Smrg# ----------------------------------------
152317ca54c3Smrg# Minimum version: 1.13.0
152417ca54c3Smrg#
152517ca54c3Smrg# GLib is a library which provides advanced data structures and functions.
152617ca54c3Smrg# This macro enables a module to test for the presence of Glib.
152717ca54c3Smrg#
152817ca54c3Smrg# When used with ENABLE_UNIT_TESTS, it is assumed GLib is used for unit testing.
152917ca54c3Smrg# Otherwise the value of $enable_unit_tests is blank.
153017ca54c3Smrg#
153117ca54c3Smrg# Please see XORG_ENABLE_INTEGRATION_TESTS for integration test support. Unit
153217ca54c3Smrg# test support usually requires less dependencies and may be built and run under
153317ca54c3Smrg# less stringent environments than integration tests.
153417ca54c3Smrg#
153517ca54c3Smrg# Interface to module:
153617ca54c3Smrg# HAVE_GLIB: used in makefiles to conditionally build targets
153717ca54c3Smrg# with_glib: used in configure.ac to know if GLib has been found
153817ca54c3Smrg# --with-glib:	'yes' user instructs the module to use glib
153917ca54c3Smrg#		'no' user instructs the module not to use glib
154017ca54c3Smrg#
154117ca54c3SmrgAC_DEFUN([XORG_WITH_GLIB],[
154217ca54c3SmrgAC_REQUIRE([PKG_PROG_PKG_CONFIG])
154317ca54c3Smrgm4_define([_defopt], m4_default([$2], [auto]))
154417ca54c3SmrgAC_ARG_WITH(glib, AS_HELP_STRING([--with-glib],
154517ca54c3Smrg	[Use GLib library for unit testing (default: ]_defopt[)]),
154617ca54c3Smrg	[with_glib=$withval], [with_glib=]_defopt)
154717ca54c3Smrgm4_undefine([_defopt])
154817ca54c3Smrg
154917ca54c3Smrghave_glib=no
155017ca54c3Smrg# Do not probe GLib if user explicitly disabled unit testing
155117ca54c3Smrgif test "x$enable_unit_tests" != x"no"; then
155217ca54c3Smrg  # Do not probe GLib if user explicitly disabled it
155317ca54c3Smrg  if test "x$with_glib" != x"no"; then
155417ca54c3Smrg    m4_ifval(
155517ca54c3Smrg      [$1],
155617ca54c3Smrg      [PKG_CHECK_MODULES([GLIB], [glib-2.0 >= $1], [have_glib=yes], [have_glib=no])],
155717ca54c3Smrg      [PKG_CHECK_MODULES([GLIB], [glib-2.0], [have_glib=yes], [have_glib=no])]
155817ca54c3Smrg    )
155917ca54c3Smrg  fi
156017ca54c3Smrgfi
156117ca54c3Smrg
156217ca54c3Smrg# Not having GLib when unit testing has been explicitly requested is an error
156317ca54c3Smrgif test "x$enable_unit_tests" = x"yes"; then
156417ca54c3Smrg  if test "x$have_glib" = x"no"; then
156517ca54c3Smrg    AC_MSG_ERROR([--enable-unit-tests=yes specified but glib-2.0 not found])
156617ca54c3Smrg  fi
156717ca54c3Smrgfi
156817ca54c3Smrg
156917ca54c3Smrg# Having unit testing disabled when GLib has been explicitly requested is an error
157017ca54c3Smrgif test "x$enable_unit_tests" = x"no"; then
157117ca54c3Smrg  if test "x$with_glib" = x"yes"; then
157217ca54c3Smrg    AC_MSG_ERROR([--enable-unit-tests=yes specified but glib-2.0 not found])
157317ca54c3Smrg  fi
157417ca54c3Smrgfi
157517ca54c3Smrg
157617ca54c3Smrg# Not having GLib when it has been explicitly requested is an error
157717ca54c3Smrgif test "x$with_glib" = x"yes"; then
157817ca54c3Smrg  if test "x$have_glib" = x"no"; then
157917ca54c3Smrg    AC_MSG_ERROR([--with-glib=yes specified but glib-2.0 not found])
158017ca54c3Smrg  fi
158117ca54c3Smrgfi
158217ca54c3Smrg
158317ca54c3SmrgAM_CONDITIONAL([HAVE_GLIB], [test "$have_glib" = yes])
158417ca54c3Smrg]) # XORG_WITH_GLIB
158517ca54c3Smrg
158617ca54c3Smrg# XORG_LD_WRAP([required|optional])
158717ca54c3Smrg# ---------------------------------
158817ca54c3Smrg# Minimum version: 1.13.0
158917ca54c3Smrg#
159017ca54c3Smrg# Check if linker supports -wrap, passed via compiler flags
159117ca54c3Smrg#
159217ca54c3Smrg# When used with ENABLE_UNIT_TESTS, it is assumed -wrap is used for unit testing.
159317ca54c3Smrg# Otherwise the value of $enable_unit_tests is blank.
159417ca54c3Smrg#
159517ca54c3Smrg# Argument added in 1.16.0 - default is "required", to match existing behavior
159617ca54c3Smrg# of returning an error if enable_unit_tests is yes, and ld -wrap is not
159717ca54c3Smrg# available, an argument of "optional" allows use when some unit tests require
159817ca54c3Smrg# ld -wrap and others do not.
159917ca54c3Smrg#
160017ca54c3SmrgAC_DEFUN([XORG_LD_WRAP],[
160117ca54c3SmrgXORG_CHECK_LINKER_FLAGS([-Wl,-wrap,exit],[have_ld_wrap=yes],[have_ld_wrap=no],
160217ca54c3Smrg    [AC_LANG_PROGRAM([#include <stdlib.h>
160317ca54c3Smrg                      void __wrap_exit(int status) { return; }],
160417ca54c3Smrg                     [exit(0);])])
160517ca54c3Smrg# Not having ld wrap when unit testing has been explicitly requested is an error
160617ca54c3Smrgif test "x$enable_unit_tests" = x"yes" -a "x$1" != "xoptional"; then
160717ca54c3Smrg  if test "x$have_ld_wrap" = x"no"; then
160817ca54c3Smrg    AC_MSG_ERROR([--enable-unit-tests=yes specified but ld -wrap support is not available])
160917ca54c3Smrg  fi
161017ca54c3Smrgfi
161117ca54c3SmrgAM_CONDITIONAL([HAVE_LD_WRAP], [test "$have_ld_wrap" = yes])
161217ca54c3Smrg#
161317ca54c3Smrg]) # XORG_LD_WRAP
161417ca54c3Smrg
161517ca54c3Smrg# XORG_CHECK_LINKER_FLAGS
161617ca54c3Smrg# -----------------------
161717ca54c3Smrg# SYNOPSIS
161817ca54c3Smrg#
161917ca54c3Smrg#   XORG_CHECK_LINKER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE], [PROGRAM-SOURCE])
162017ca54c3Smrg#
162117ca54c3Smrg# DESCRIPTION
162217ca54c3Smrg#
162317ca54c3Smrg#   Check whether the given linker FLAGS work with the current language's
162417ca54c3Smrg#   linker, or whether they give an error.
162517ca54c3Smrg#
162617ca54c3Smrg#   ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
162717ca54c3Smrg#   success/failure.
162817ca54c3Smrg#
162917ca54c3Smrg#   PROGRAM-SOURCE is the program source to link with, if needed
163017ca54c3Smrg#
163117ca54c3Smrg#   NOTE: Based on AX_CHECK_COMPILER_FLAGS.
163217ca54c3Smrg#
163317ca54c3Smrg# LICENSE
163417ca54c3Smrg#
163517ca54c3Smrg#   Copyright (c) 2009 Mike Frysinger <vapier@gentoo.org>
163617ca54c3Smrg#   Copyright (c) 2009 Steven G. Johnson <stevenj@alum.mit.edu>
163717ca54c3Smrg#   Copyright (c) 2009 Matteo Frigo
163817ca54c3Smrg#
163917ca54c3Smrg#   This program is free software: you can redistribute it and/or modify it
164017ca54c3Smrg#   under the terms of the GNU General Public License as published by the
164117ca54c3Smrg#   Free Software Foundation, either version 3 of the License, or (at your
164217ca54c3Smrg#   option) any later version.
164317ca54c3Smrg#
164417ca54c3Smrg#   This program is distributed in the hope that it will be useful, but
164517ca54c3Smrg#   WITHOUT ANY WARRANTY; without even the implied warranty of
164617ca54c3Smrg#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
164717ca54c3Smrg#   Public License for more details.
164817ca54c3Smrg#
164917ca54c3Smrg#   You should have received a copy of the GNU General Public License along
165017ca54c3Smrg#   with this program. If not, see <http://www.gnu.org/licenses/>.
165117ca54c3Smrg#
165217ca54c3Smrg#   As a special exception, the respective Autoconf Macro's copyright owner
165317ca54c3Smrg#   gives unlimited permission to copy, distribute and modify the configure
165417ca54c3Smrg#   scripts that are the output of Autoconf when processing the Macro. You
165517ca54c3Smrg#   need not follow the terms of the GNU General Public License when using
165617ca54c3Smrg#   or distributing such scripts, even though portions of the text of the
165717ca54c3Smrg#   Macro appear in them. The GNU General Public License (GPL) does govern
165817ca54c3Smrg#   all other use of the material that constitutes the Autoconf Macro.
165917ca54c3Smrg#
166017ca54c3Smrg#   This special exception to the GPL applies to versions of the Autoconf
166117ca54c3Smrg#   Macro released by the Autoconf Archive. When you make and distribute a
166217ca54c3Smrg#   modified version of the Autoconf Macro, you may extend this special
166317ca54c3Smrg#   exception to the GPL to apply to your modified version as well.#
166417ca54c3SmrgAC_DEFUN([XORG_CHECK_LINKER_FLAGS],
166517ca54c3Smrg[AC_MSG_CHECKING([whether the linker accepts $1])
166617ca54c3Smrgdnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname:
166717ca54c3SmrgAS_LITERAL_IF([$1],
166817ca54c3Smrg  [AC_CACHE_VAL(AS_TR_SH(xorg_cv_linker_flags_[$1]), [
166917ca54c3Smrg      ax_save_FLAGS=$LDFLAGS
167017ca54c3Smrg      LDFLAGS="$1"
167117ca54c3Smrg      AC_LINK_IFELSE([m4_default([$4],[AC_LANG_PROGRAM()])],
167217ca54c3Smrg        AS_TR_SH(xorg_cv_linker_flags_[$1])=yes,
167317ca54c3Smrg        AS_TR_SH(xorg_cv_linker_flags_[$1])=no)
167417ca54c3Smrg      LDFLAGS=$ax_save_FLAGS])],
167517ca54c3Smrg  [ax_save_FLAGS=$LDFLAGS
167617ca54c3Smrg   LDFLAGS="$1"
167717ca54c3Smrg   AC_LINK_IFELSE([AC_LANG_PROGRAM()],
167817ca54c3Smrg     eval AS_TR_SH(xorg_cv_linker_flags_[$1])=yes,
167917ca54c3Smrg     eval AS_TR_SH(xorg_cv_linker_flags_[$1])=no)
168017ca54c3Smrg   LDFLAGS=$ax_save_FLAGS])
168117ca54c3Smrgeval xorg_check_linker_flags=$AS_TR_SH(xorg_cv_linker_flags_[$1])
168217ca54c3SmrgAC_MSG_RESULT($xorg_check_linker_flags)
168317ca54c3Smrgif test "x$xorg_check_linker_flags" = xyes; then
168417ca54c3Smrg	m4_default([$2], :)
168517ca54c3Smrgelse
168617ca54c3Smrg	m4_default([$3], :)
168717ca54c3Smrgfi
168817ca54c3Smrg]) # XORG_CHECK_LINKER_FLAGS
168917ca54c3Smrg
169017ca54c3Smrg# XORG_MEMORY_CHECK_FLAGS
169117ca54c3Smrg# -----------------------
169217ca54c3Smrg# Minimum version: 1.16.0
169317ca54c3Smrg#
169417ca54c3Smrg# This macro attempts to find appropriate memory checking functionality
169517ca54c3Smrg# for various platforms which unit testing code may use to catch various
169617ca54c3Smrg# forms of memory allocation and access errors in testing.
169717ca54c3Smrg#
169817ca54c3Smrg# Interface to module:
169917ca54c3Smrg# XORG_MALLOC_DEBUG_ENV - environment variables to set to enable debugging
170017ca54c3Smrg#                         Usually added to TESTS_ENVIRONMENT in Makefile.am
170117ca54c3Smrg#
170217ca54c3Smrg# If the user sets the value of XORG_MALLOC_DEBUG_ENV, it is used verbatim.
170317ca54c3Smrg#
170417ca54c3SmrgAC_DEFUN([XORG_MEMORY_CHECK_FLAGS],[
170517ca54c3Smrg
170617ca54c3SmrgAC_REQUIRE([AC_CANONICAL_HOST])
170717ca54c3SmrgAC_ARG_VAR([XORG_MALLOC_DEBUG_ENV],
170817ca54c3Smrg           [Environment variables to enable memory checking in tests])
170917ca54c3Smrg
171017ca54c3Smrg# Check for different types of support on different platforms
171117ca54c3Smrgcase $host_os in
171217ca54c3Smrg    solaris*)
171317ca54c3Smrg        AC_CHECK_LIB([umem], [umem_alloc],
171417ca54c3Smrg            [malloc_debug_env='LD_PRELOAD=libumem.so UMEM_DEBUG=default'])
171517ca54c3Smrg        ;;
171617ca54c3Smrg    *-gnu*) # GNU libc - Value is used as a single byte bit pattern,
171717ca54c3Smrg        # both directly and inverted, so should not be 0 or 255.
171817ca54c3Smrg        malloc_debug_env='MALLOC_PERTURB_=15'
171917ca54c3Smrg        ;;
172017ca54c3Smrg    darwin*)
172117ca54c3Smrg        malloc_debug_env='MallocPreScribble=1 MallocScribble=1 DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib'
172217ca54c3Smrg        ;;
172317ca54c3Smrg    *bsd*)
172417ca54c3Smrg        malloc_debug_env='MallocPreScribble=1 MallocScribble=1'
172517ca54c3Smrg        ;;
172617ca54c3Smrgesac
172717ca54c3Smrg
172817ca54c3Smrg# User supplied flags override default flags
172917ca54c3Smrgif test "x$XORG_MALLOC_DEBUG_ENV" != "x"; then
173017ca54c3Smrg    malloc_debug_env="$XORG_MALLOC_DEBUG_ENV"
173117ca54c3Smrgfi
173217ca54c3Smrg
173317ca54c3SmrgAC_SUBST([XORG_MALLOC_DEBUG_ENV],[$malloc_debug_env])
173417ca54c3Smrg]) # XORG_WITH_LINT
173517ca54c3Smrg
173617ca54c3Smrg# XORG_CHECK_MALLOC_ZERO
173717ca54c3Smrg# ----------------------
173817ca54c3Smrg# Minimum version: 1.0.0
173917ca54c3Smrg#
174017ca54c3Smrg# Defines {MALLOC,XMALLOC,XTMALLOC}_ZERO_CFLAGS appropriately if
174117ca54c3Smrg# malloc(0) returns NULL.  Packages should add one of these cflags to
174217ca54c3Smrg# their AM_CFLAGS (or other appropriate *_CFLAGS) to use them.
174317ca54c3SmrgAC_DEFUN([XORG_CHECK_MALLOC_ZERO],[
174417ca54c3SmrgAC_ARG_ENABLE(malloc0returnsnull,
174517ca54c3Smrg	AS_HELP_STRING([--enable-malloc0returnsnull],
174617ca54c3Smrg		       [malloc(0) returns NULL (default: auto)]),
174717ca54c3Smrg	[MALLOC_ZERO_RETURNS_NULL=$enableval],
174817ca54c3Smrg	[MALLOC_ZERO_RETURNS_NULL=auto])
174917ca54c3Smrg
175017ca54c3SmrgAC_MSG_CHECKING([whether malloc(0) returns NULL])
175117ca54c3Smrgif test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then
175217ca54c3SmrgAC_CACHE_VAL([xorg_cv_malloc0_returns_null],
175317ca54c3Smrg	[AC_RUN_IFELSE([AC_LANG_PROGRAM([
175417ca54c3Smrg#include <stdlib.h>
175517ca54c3Smrg],[
175617ca54c3Smrg    char *m0, *r0, *c0, *p;
175717ca54c3Smrg    m0 = malloc(0);
175817ca54c3Smrg    p = malloc(10);
175917ca54c3Smrg    r0 = realloc(p,0);
176017ca54c3Smrg    c0 = calloc(0,10);
176117ca54c3Smrg    exit((m0 == 0 || r0 == 0 || c0 == 0) ? 0 : 1);
176217ca54c3Smrg])],
176317ca54c3Smrg		[xorg_cv_malloc0_returns_null=yes],
176417ca54c3Smrg		[xorg_cv_malloc0_returns_null=no])])
176517ca54c3SmrgMALLOC_ZERO_RETURNS_NULL=$xorg_cv_malloc0_returns_null
176617ca54c3Smrgfi
176717ca54c3SmrgAC_MSG_RESULT([$MALLOC_ZERO_RETURNS_NULL])
176817ca54c3Smrg
176917ca54c3Smrgif test "x$MALLOC_ZERO_RETURNS_NULL" = xyes; then
177017ca54c3Smrg	MALLOC_ZERO_CFLAGS="-DMALLOC_0_RETURNS_NULL"
177117ca54c3Smrg	XMALLOC_ZERO_CFLAGS=$MALLOC_ZERO_CFLAGS
177217ca54c3Smrg	XTMALLOC_ZERO_CFLAGS="$MALLOC_ZERO_CFLAGS -DXTMALLOC_BC"
177317ca54c3Smrgelse
177417ca54c3Smrg	MALLOC_ZERO_CFLAGS=""
177517ca54c3Smrg	XMALLOC_ZERO_CFLAGS=""
177617ca54c3Smrg	XTMALLOC_ZERO_CFLAGS=""
177717ca54c3Smrgfi
177817ca54c3Smrg
177917ca54c3SmrgAC_SUBST([MALLOC_ZERO_CFLAGS])
178017ca54c3SmrgAC_SUBST([XMALLOC_ZERO_CFLAGS])
178117ca54c3SmrgAC_SUBST([XTMALLOC_ZERO_CFLAGS])
178217ca54c3Smrg]) # XORG_CHECK_MALLOC_ZERO
178317ca54c3Smrg
178417ca54c3Smrg# XORG_WITH_LINT()
178517ca54c3Smrg# ----------------
178617ca54c3Smrg# Minimum version: 1.1.0
178717ca54c3Smrg#
178817ca54c3Smrg# This macro enables the use of a tool that flags some suspicious and
178917ca54c3Smrg# non-portable constructs (likely to be bugs) in C language source code.
179017ca54c3Smrg# It will attempt to locate the tool and use appropriate options.
179117ca54c3Smrg# There are various lint type tools on different platforms.
179217ca54c3Smrg#
179317ca54c3Smrg# Interface to module:
179417ca54c3Smrg# LINT:		returns the path to the tool found on the platform
179517ca54c3Smrg#		or the value set to LINT on the configure cmd line
179617ca54c3Smrg#		also an Automake conditional
179717ca54c3Smrg# LINT_FLAGS:	an Automake variable with appropriate flags
179817ca54c3Smrg#
179917ca54c3Smrg# --with-lint:	'yes' user instructs the module to use lint
180017ca54c3Smrg#		'no' user instructs the module not to use lint (default)
180117ca54c3Smrg#
180217ca54c3Smrg# If the user sets the value of LINT, AC_PATH_PROG skips testing the path.
180317ca54c3Smrg# If the user sets the value of LINT_FLAGS, they are used verbatim.
180417ca54c3Smrg#
180517ca54c3SmrgAC_DEFUN([XORG_WITH_LINT],[
180617ca54c3Smrg
180717ca54c3SmrgAC_ARG_VAR([LINT], [Path to a lint-style command])
180817ca54c3SmrgAC_ARG_VAR([LINT_FLAGS], [Flags for the lint-style command])
180917ca54c3SmrgAC_ARG_WITH(lint, [AS_HELP_STRING([--with-lint],
181017ca54c3Smrg		[Use a lint-style source code checker (default: disabled)])],
181117ca54c3Smrg		[use_lint=$withval], [use_lint=no])
181217ca54c3Smrg
181317ca54c3Smrg# Obtain platform specific info like program name and options
181417ca54c3Smrg# The lint program on FreeBSD and NetBSD is different from the one on Solaris
181517ca54c3Smrgcase $host_os in
181617ca54c3Smrg  *linux* | *openbsd* | kfreebsd*-gnu | darwin* | cygwin*)
181717ca54c3Smrg	lint_name=splint
181817ca54c3Smrg	lint_options="-badflag"
181917ca54c3Smrg	;;
182017ca54c3Smrg  *freebsd* | *netbsd*)
182117ca54c3Smrg	lint_name=lint
182217ca54c3Smrg	lint_options="-u -b"
182317ca54c3Smrg	;;
182417ca54c3Smrg  *solaris*)
182517ca54c3Smrg	lint_name=lint
182617ca54c3Smrg	lint_options="-u -b -h -erroff=E_INDISTING_FROM_TRUNC2"
182717ca54c3Smrg	;;
182817ca54c3Smrgesac
182917ca54c3Smrg
183017ca54c3Smrg# Test for the presence of the program (either guessed by the code or spelled out by the user)
183117ca54c3Smrgif test "x$use_lint" = x"yes" ; then
183217ca54c3Smrg   AC_PATH_PROG([LINT], [$lint_name])
183317ca54c3Smrg   if test "x$LINT" = "x"; then
183417ca54c3Smrg        AC_MSG_ERROR([--with-lint=yes specified but lint-style tool not found in PATH])
183517ca54c3Smrg   fi
183617ca54c3Smrgelif test "x$use_lint" = x"no" ; then
183717ca54c3Smrg   if test "x$LINT" != "x"; then
183817ca54c3Smrg      AC_MSG_WARN([ignoring LINT environment variable since --with-lint=no was specified])
183917ca54c3Smrg   fi
184017ca54c3Smrgelse
184117ca54c3Smrg   AC_MSG_ERROR([--with-lint expects 'yes' or 'no'. Use LINT variable to specify path.])
184217ca54c3Smrgfi
184317ca54c3Smrg
184417ca54c3Smrg# User supplied flags override default flags
184517ca54c3Smrgif test "x$LINT_FLAGS" != "x"; then
184617ca54c3Smrg   lint_options=$LINT_FLAGS
184717ca54c3Smrgfi
184817ca54c3Smrg
184917ca54c3SmrgAC_SUBST([LINT_FLAGS],[$lint_options])
185017ca54c3SmrgAM_CONDITIONAL(LINT, [test "x$LINT" != x])
185117ca54c3Smrg
185217ca54c3Smrg]) # XORG_WITH_LINT
185317ca54c3Smrg
185417ca54c3Smrg# XORG_LINT_LIBRARY(LIBNAME)
185517ca54c3Smrg# --------------------------
185617ca54c3Smrg# Minimum version: 1.1.0
185717ca54c3Smrg#
185817ca54c3Smrg# Sets up flags for building lint libraries for checking programs that call
185917ca54c3Smrg# functions in the library.
186017ca54c3Smrg#
186117ca54c3Smrg# Interface to module:
186217ca54c3Smrg# LINTLIB		- Automake variable with the name of lint library file to make
186317ca54c3Smrg# MAKE_LINT_LIB		- Automake conditional
186417ca54c3Smrg#
186517ca54c3Smrg# --enable-lint-library:  - 'yes' user instructs the module to created a lint library
186617ca54c3Smrg#			  - 'no' user instructs the module not to create a lint library (default)
186717ca54c3Smrg
186817ca54c3SmrgAC_DEFUN([XORG_LINT_LIBRARY],[
186917ca54c3SmrgAC_REQUIRE([XORG_WITH_LINT])
187017ca54c3SmrgAC_ARG_ENABLE(lint-library, [AS_HELP_STRING([--enable-lint-library],
187117ca54c3Smrg	[Create lint library (default: disabled)])],
187217ca54c3Smrg	[make_lint_lib=$enableval], [make_lint_lib=no])
187317ca54c3Smrg
187417ca54c3Smrgif test "x$make_lint_lib" = x"yes" ; then
187517ca54c3Smrg   LINTLIB=llib-l$1.ln
187617ca54c3Smrg   if test "x$LINT" = "x"; then
187717ca54c3Smrg        AC_MSG_ERROR([Cannot make lint library without --with-lint])
187817ca54c3Smrg   fi
187917ca54c3Smrgelif test "x$make_lint_lib" != x"no" ; then
188017ca54c3Smrg   AC_MSG_ERROR([--enable-lint-library expects 'yes' or 'no'.])
188117ca54c3Smrgfi
188217ca54c3Smrg
188317ca54c3SmrgAC_SUBST(LINTLIB)
188417ca54c3SmrgAM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno])
188517ca54c3Smrg
188617ca54c3Smrg]) # XORG_LINT_LIBRARY
188717ca54c3Smrg
188817ca54c3Smrg# XORG_COMPILER_BRAND
188917ca54c3Smrg# -------------------
189017ca54c3Smrg# Minimum version: 1.14.0
189117ca54c3Smrg#
189217ca54c3Smrg# Checks for various brands of compilers and sets flags as appropriate:
189317ca54c3Smrg#   GNU gcc - relies on AC_PROG_CC (via AC_PROG_CC_C99) to set GCC to "yes"
189417ca54c3Smrg#   GNU g++ - relies on AC_PROG_CXX to set GXX to "yes"
189517ca54c3Smrg#   clang compiler - sets CLANGCC to "yes"
189617ca54c3Smrg#   Intel compiler - sets INTELCC to "yes"
189717ca54c3Smrg#   Sun/Oracle Solaris Studio cc - sets SUNCC to "yes"
189817ca54c3Smrg#
189917ca54c3SmrgAC_DEFUN([XORG_COMPILER_BRAND], [
190017ca54c3SmrgAC_LANG_CASE(
190117ca54c3Smrg	[C], [
1902635a5eb8Smrg		dnl autoconf-2.70 folded AC_PROG_CC_C99 into AC_PROG_CC
1903635a5eb8Smrg		dnl and complains that AC_PROG_CC_C99 is obsolete
1904635a5eb8Smrg		m4_version_prereq([2.70],
1905635a5eb8Smrg			[AC_REQUIRE([AC_PROG_CC])],
1906635a5eb8Smrg			[AC_REQUIRE([AC_PROG_CC_C99])])
190717ca54c3Smrg	],
190817ca54c3Smrg	[C++], [
190917ca54c3Smrg		AC_REQUIRE([AC_PROG_CXX])
191017ca54c3Smrg	]
191117ca54c3Smrg)
191217ca54c3SmrgAC_CHECK_DECL([__clang__], [CLANGCC="yes"], [CLANGCC="no"])
191317ca54c3SmrgAC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"])
191417ca54c3SmrgAC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
191517ca54c3Smrg]) # XORG_COMPILER_BRAND
191617ca54c3Smrg
191717ca54c3Smrg# XORG_TESTSET_CFLAG(<variable>, <flag>, [<alternative flag>, ...])
191817ca54c3Smrg# ---------------
191917ca54c3Smrg# Minimum version: 1.16.0
192017ca54c3Smrg#
192117ca54c3Smrg# Test if the compiler works when passed the given flag as a command line argument.
1922635a5eb8Smrg# If it succeeds, the flag is appended to the given variable.  If not, it tries the
192317ca54c3Smrg# next flag in the list until there are no more options.
192417ca54c3Smrg#
192517ca54c3Smrg# Note that this does not guarantee that the compiler supports the flag as some
192617ca54c3Smrg# compilers will simply ignore arguments that they do not understand, but we do
192717ca54c3Smrg# attempt to weed out false positives by using -Werror=unknown-warning-option and
192817ca54c3Smrg# -Werror=unused-command-line-argument
192917ca54c3Smrg#
193017ca54c3SmrgAC_DEFUN([XORG_TESTSET_CFLAG], [
193117ca54c3Smrgm4_if([$#], 0, [m4_fatal([XORG_TESTSET_CFLAG was given with an unsupported number of arguments])])
193217ca54c3Smrgm4_if([$#], 1, [m4_fatal([XORG_TESTSET_CFLAG was given with an unsupported number of arguments])])
193317ca54c3Smrg
193417ca54c3SmrgAC_LANG_COMPILER_REQUIRE
193517ca54c3Smrg
193617ca54c3SmrgAC_LANG_CASE(
193717ca54c3Smrg	[C], [
1938635a5eb8Smrg		dnl autoconf-2.70 folded AC_PROG_CC_C99 into AC_PROG_CC
1939635a5eb8Smrg		dnl and complains that AC_PROG_CC_C99 is obsolete
1940635a5eb8Smrg		m4_version_prereq([2.70],
1941635a5eb8Smrg			[AC_REQUIRE([AC_PROG_CC])],
1942635a5eb8Smrg			[AC_REQUIRE([AC_PROG_CC_C99])])
194317ca54c3Smrg		define([PREFIX], [C])
194417ca54c3Smrg		define([CACHE_PREFIX], [cc])
194517ca54c3Smrg		define([COMPILER], [$CC])
194617ca54c3Smrg	],
194717ca54c3Smrg	[C++], [
194817ca54c3Smrg		define([PREFIX], [CXX])
194917ca54c3Smrg		define([CACHE_PREFIX], [cxx])
195017ca54c3Smrg		define([COMPILER], [$CXX])
195117ca54c3Smrg	]
195217ca54c3Smrg)
195317ca54c3Smrg
195417ca54c3Smrg[xorg_testset_save_]PREFIX[FLAGS]="$PREFIX[FLAGS]"
195517ca54c3Smrg
195617ca54c3Smrgif test "x$[xorg_testset_]CACHE_PREFIX[_unknown_warning_option]" = "x" ; then
195717ca54c3Smrg	PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option"
195817ca54c3Smrg	AC_CACHE_CHECK([if ]COMPILER[ supports -Werror=unknown-warning-option],
195917ca54c3Smrg			[xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option],
196017ca54c3Smrg			AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])],
196117ca54c3Smrg					  [xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option=yes],
196217ca54c3Smrg					  [xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option=no]))
196317ca54c3Smrg	[xorg_testset_]CACHE_PREFIX[_unknown_warning_option]=$[xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option]
196417ca54c3Smrg	PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]"
196517ca54c3Smrgfi
196617ca54c3Smrg
196717ca54c3Smrgif test "x$[xorg_testset_]CACHE_PREFIX[_unused_command_line_argument]" = "x" ; then
196817ca54c3Smrg	if test "x$[xorg_testset_]CACHE_PREFIX[_unknown_warning_option]" = "xyes" ; then
196917ca54c3Smrg		PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option"
197017ca54c3Smrg	fi
197117ca54c3Smrg	PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unused-command-line-argument"
197217ca54c3Smrg	AC_CACHE_CHECK([if ]COMPILER[ supports -Werror=unused-command-line-argument],
197317ca54c3Smrg			[xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument],
197417ca54c3Smrg			AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])],
197517ca54c3Smrg					  [xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument=yes],
197617ca54c3Smrg					  [xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument=no]))
197717ca54c3Smrg	[xorg_testset_]CACHE_PREFIX[_unused_command_line_argument]=$[xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument]
197817ca54c3Smrg	PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]"
197917ca54c3Smrgfi
198017ca54c3Smrg
198117ca54c3Smrgfound="no"
198217ca54c3Smrgm4_foreach([flag], m4_cdr($@), [
198317ca54c3Smrg	if test $found = "no" ; then
198417ca54c3Smrg		if test "x$xorg_testset_]CACHE_PREFIX[_unknown_warning_option" = "xyes" ; then
198517ca54c3Smrg			PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option"
198617ca54c3Smrg		fi
198717ca54c3Smrg
198817ca54c3Smrg		if test "x$xorg_testset_]CACHE_PREFIX[_unused_command_line_argument" = "xyes" ; then
198917ca54c3Smrg			PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unused-command-line-argument"
199017ca54c3Smrg		fi
199117ca54c3Smrg
199217ca54c3Smrg		PREFIX[FLAGS]="$PREFIX[FLAGS] ]flag["
199317ca54c3Smrg
199417ca54c3Smrgdnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname
199517ca54c3Smrg		AC_MSG_CHECKING([if ]COMPILER[ supports ]flag[])
199617ca54c3Smrg		cacheid=AS_TR_SH([xorg_cv_]CACHE_PREFIX[_flag_]flag[])
199717ca54c3Smrg		AC_CACHE_VAL($cacheid,
199817ca54c3Smrg			     [AC_LINK_IFELSE([AC_LANG_PROGRAM([int i;])],
199917ca54c3Smrg					     [eval $cacheid=yes],
200017ca54c3Smrg					     [eval $cacheid=no])])
200117ca54c3Smrg
200217ca54c3Smrg		PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]"
200317ca54c3Smrg
200417ca54c3Smrg		eval supported=\$$cacheid
200517ca54c3Smrg		AC_MSG_RESULT([$supported])
200617ca54c3Smrg		if test "$supported" = "yes" ; then
200717ca54c3Smrg			$1="$$1 ]flag["
200817ca54c3Smrg			found="yes"
200917ca54c3Smrg		fi
201017ca54c3Smrg	fi
201117ca54c3Smrg])
201217ca54c3Smrg]) # XORG_TESTSET_CFLAG
201317ca54c3Smrg
201417ca54c3Smrg# XORG_COMPILER_FLAGS
201517ca54c3Smrg# ---------------
201617ca54c3Smrg# Minimum version: 1.16.0
201717ca54c3Smrg#
201817ca54c3Smrg# Defines BASE_CFLAGS or BASE_CXXFLAGS to contain a set of command line
201917ca54c3Smrg# arguments supported by the selected compiler which do NOT alter the generated
202017ca54c3Smrg# code.  These arguments will cause the compiler to print various warnings
202117ca54c3Smrg# during compilation AND turn a conservative set of warnings into errors.
202217ca54c3Smrg#
202317ca54c3Smrg# The set of flags supported by BASE_CFLAGS and BASE_CXXFLAGS will grow in
202417ca54c3Smrg# future versions of util-macros as options are added to new compilers.
202517ca54c3Smrg#
202617ca54c3SmrgAC_DEFUN([XORG_COMPILER_FLAGS], [
202717ca54c3SmrgAC_REQUIRE([XORG_COMPILER_BRAND])
202817ca54c3Smrg
202917ca54c3SmrgAC_ARG_ENABLE(selective-werror,
203017ca54c3Smrg              AS_HELP_STRING([--disable-selective-werror],
203117ca54c3Smrg                             [Turn off selective compiler errors. (default: enabled)]),
203217ca54c3Smrg              [SELECTIVE_WERROR=$enableval],
203317ca54c3Smrg              [SELECTIVE_WERROR=yes])
203417ca54c3Smrg
203517ca54c3SmrgAC_LANG_CASE(
203617ca54c3Smrg        [C], [
203717ca54c3Smrg                define([PREFIX], [C])
203817ca54c3Smrg        ],
203917ca54c3Smrg        [C++], [
204017ca54c3Smrg                define([PREFIX], [CXX])
204117ca54c3Smrg        ]
204217ca54c3Smrg)
204317ca54c3Smrg# -v is too short to test reliably with XORG_TESTSET_CFLAG
204417ca54c3Smrgif test "x$SUNCC" = "xyes"; then
204517ca54c3Smrg    [BASE_]PREFIX[FLAGS]="-v"
204617ca54c3Smrgelse
204717ca54c3Smrg    [BASE_]PREFIX[FLAGS]=""
204817ca54c3Smrgfi
204917ca54c3Smrg
205017ca54c3Smrg# This chunk of warnings were those that existed in the legacy CWARNFLAGS
205117ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wall])
205217ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wpointer-arith])
205317ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-declarations])
205417ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wformat=2], [-Wformat])
205517ca54c3Smrg
205617ca54c3SmrgAC_LANG_CASE(
205717ca54c3Smrg	[C], [
205817ca54c3Smrg		XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wstrict-prototypes])
205917ca54c3Smrg		XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-prototypes])
206017ca54c3Smrg		XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnested-externs])
206117ca54c3Smrg		XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wbad-function-cast])
206217ca54c3Smrg		XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wold-style-definition], [-fd])
206317ca54c3Smrg		XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wdeclaration-after-statement])
206417ca54c3Smrg	]
206517ca54c3Smrg)
206617ca54c3Smrg
206717ca54c3Smrg# This chunk adds additional warnings that could catch undesired effects.
206817ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wunused])
206917ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wuninitialized])
207017ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wshadow])
207117ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-noreturn])
207217ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-format-attribute])
207317ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wredundant-decls])
207417ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op])
207517ca54c3Smrg
207617ca54c3Smrg# These are currently disabled because they are noisy.  They will be enabled
207717ca54c3Smrg# in the future once the codebase is sufficiently modernized to silence
207817ca54c3Smrg# them.  For now, I don't want them to drown out the other warnings.
207917ca54c3Smrg# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wparentheses])
208017ca54c3Smrg# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align])
208117ca54c3Smrg# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual])
208217ca54c3Smrg
2083635a5eb8Smrg# Turn some warnings into errors, so we don't accidentally get successful builds
208417ca54c3Smrg# when there are problems that should be fixed.
208517ca54c3Smrg
208617ca54c3Smrgif test "x$SELECTIVE_WERROR" = "xyes" ; then
208717ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=implicit], [-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED])
208817ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=nonnull])
208917ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=init-self])
209017ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=main])
209117ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=missing-braces])
209217ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=sequence-point])
209317ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=return-type], [-errwarn=E_FUNC_HAS_NO_RETURN_STMT])
209417ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=trigraphs])
209517ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=array-bounds])
209617ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=write-strings])
209717ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=address])
209817ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=int-to-pointer-cast], [-errwarn=E_BAD_PTR_INT_COMBINATION])
209917ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=pointer-to-int-cast]) # Also -errwarn=E_BAD_PTR_INT_COMBINATION
210017ca54c3Smrgelse
210117ca54c3SmrgAC_MSG_WARN([You have chosen not to turn some select compiler warnings into errors.  This should not be necessary.  Please report why you needed to do so in a bug report at $PACKAGE_BUGREPORT])
210217ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wimplicit])
210317ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnonnull])
210417ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Winit-self])
210517ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmain])
210617ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-braces])
210717ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wsequence-point])
210817ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wreturn-type])
210917ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wtrigraphs])
211017ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Warray-bounds])
211117ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wwrite-strings])
211217ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Waddress])
211317ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wint-to-pointer-cast])
211417ca54c3SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wpointer-to-int-cast])
211517ca54c3Smrgfi
211617ca54c3Smrg
211717ca54c3SmrgAC_SUBST([BASE_]PREFIX[FLAGS])
211817ca54c3Smrg]) # XORG_COMPILER_FLAGS
211917ca54c3Smrg
212017ca54c3Smrg# XORG_CWARNFLAGS
212117ca54c3Smrg# ---------------
212217ca54c3Smrg# Minimum version: 1.2.0
212317ca54c3Smrg# Deprecated since: 1.16.0 (Use XORG_COMPILER_FLAGS instead)
212417ca54c3Smrg#
212517ca54c3Smrg# Defines CWARNFLAGS to enable C compiler warnings.
212617ca54c3Smrg#
212717ca54c3Smrg# This function is deprecated because it defines -fno-strict-aliasing
212817ca54c3Smrg# which alters the code generated by the compiler.  If -fno-strict-aliasing
212917ca54c3Smrg# is needed, then it should be added explicitly in the module when
213017ca54c3Smrg# it is updated to use BASE_CFLAGS.
213117ca54c3Smrg#
213217ca54c3SmrgAC_DEFUN([XORG_CWARNFLAGS], [
213317ca54c3SmrgAC_REQUIRE([XORG_COMPILER_FLAGS])
213417ca54c3SmrgAC_REQUIRE([XORG_COMPILER_BRAND])
213517ca54c3SmrgAC_LANG_CASE(
213617ca54c3Smrg	[C], [
213717ca54c3Smrg		CWARNFLAGS="$BASE_CFLAGS"
213817ca54c3Smrg		if  test "x$GCC" = xyes ; then
213917ca54c3Smrg		    CWARNFLAGS="$CWARNFLAGS -fno-strict-aliasing"
214017ca54c3Smrg		fi
214117ca54c3Smrg		AC_SUBST(CWARNFLAGS)
214217ca54c3Smrg	]
214317ca54c3Smrg)
214417ca54c3Smrg]) # XORG_CWARNFLAGS
214517ca54c3Smrg
214617ca54c3Smrg# XORG_STRICT_OPTION
214717ca54c3Smrg# -----------------------
214817ca54c3Smrg# Minimum version: 1.3.0
214917ca54c3Smrg#
215017ca54c3Smrg# Add configure option to enable strict compilation flags, such as treating
215117ca54c3Smrg# warnings as fatal errors.
215217ca54c3Smrg# If --enable-strict-compilation is passed to configure, adds strict flags to
215317ca54c3Smrg# $BASE_CFLAGS or $BASE_CXXFLAGS and the deprecated $CWARNFLAGS.
215417ca54c3Smrg#
215517ca54c3Smrg# Starting in 1.14.0 also exports $STRICT_CFLAGS for use in other tests or
215617ca54c3Smrg# when strict compilation is unconditionally desired.
215717ca54c3SmrgAC_DEFUN([XORG_STRICT_OPTION], [
215817ca54c3SmrgAC_REQUIRE([XORG_CWARNFLAGS])
215917ca54c3SmrgAC_REQUIRE([XORG_COMPILER_FLAGS])
216017ca54c3Smrg
216117ca54c3SmrgAC_ARG_ENABLE(strict-compilation,
216217ca54c3Smrg			  AS_HELP_STRING([--enable-strict-compilation],
216317ca54c3Smrg			  [Enable all warnings from compiler and make them errors (default: disabled)]),
216417ca54c3Smrg			  [STRICT_COMPILE=$enableval], [STRICT_COMPILE=no])
216517ca54c3Smrg
216617ca54c3SmrgAC_LANG_CASE(
216717ca54c3Smrg        [C], [
216817ca54c3Smrg                define([PREFIX], [C])
216917ca54c3Smrg        ],
217017ca54c3Smrg        [C++], [
217117ca54c3Smrg                define([PREFIX], [CXX])
217217ca54c3Smrg        ]
217317ca54c3Smrg)
217417ca54c3Smrg
217517ca54c3Smrg[STRICT_]PREFIX[FLAGS]=""
217617ca54c3SmrgXORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-pedantic])
217717ca54c3SmrgXORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-Werror], [-errwarn])
217817ca54c3Smrg
217917ca54c3Smrg# Earlier versions of gcc (eg: 4.2) support -Werror=attributes, but do not
218017ca54c3Smrg# activate it with -Werror, so we add it here explicitly.
218117ca54c3SmrgXORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-Werror=attributes])
218217ca54c3Smrg
218317ca54c3Smrgif test "x$STRICT_COMPILE" = "xyes"; then
218417ca54c3Smrg    [BASE_]PREFIX[FLAGS]="$[BASE_]PREFIX[FLAGS] $[STRICT_]PREFIX[FLAGS]"
218517ca54c3Smrg    AC_LANG_CASE([C], [CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS"])
218617ca54c3Smrgfi
218717ca54c3SmrgAC_SUBST([STRICT_]PREFIX[FLAGS])
218817ca54c3SmrgAC_SUBST([BASE_]PREFIX[FLAGS])
218917ca54c3SmrgAC_LANG_CASE([C], AC_SUBST([CWARNFLAGS]))
219017ca54c3Smrg]) # XORG_STRICT_OPTION
219117ca54c3Smrg
2192635a5eb8Smrg# XORG_DEFAULT_NOCODE_OPTIONS
2193635a5eb8Smrg# ---------------------------
2194635a5eb8Smrg# Minimum version: 1.20.0
2195635a5eb8Smrg#
2196635a5eb8Smrg# Defines default options for X.Org modules which don't compile code,
2197635a5eb8Smrg# such as fonts, bitmaps, cursors, and docs.
2198635a5eb8Smrg#
2199635a5eb8SmrgAC_DEFUN([XORG_DEFAULT_NOCODE_OPTIONS], [
2200635a5eb8SmrgAC_REQUIRE([AC_PROG_INSTALL])
2201635a5eb8SmrgXORG_RELEASE_VERSION
2202635a5eb8SmrgXORG_CHANGELOG
2203635a5eb8SmrgXORG_INSTALL
2204635a5eb8SmrgXORG_MANPAGE_SECTIONS
2205635a5eb8Smrgm4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
2206635a5eb8Smrg    [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
2207635a5eb8Smrg]) # XORG_DEFAULT_NOCODE_OPTIONS
2208635a5eb8Smrg
220917ca54c3Smrg# XORG_DEFAULT_OPTIONS
221017ca54c3Smrg# --------------------
221117ca54c3Smrg# Minimum version: 1.3.0
221217ca54c3Smrg#
2213635a5eb8Smrg# Defines default options for X.Org modules which compile code.
221417ca54c3Smrg#
221517ca54c3SmrgAC_DEFUN([XORG_DEFAULT_OPTIONS], [
221617ca54c3SmrgAC_REQUIRE([AC_PROG_INSTALL])
221717ca54c3SmrgXORG_COMPILER_FLAGS
221817ca54c3SmrgXORG_CWARNFLAGS
221917ca54c3SmrgXORG_STRICT_OPTION
2220635a5eb8SmrgXORG_DEFAULT_NOCODE_OPTIONS
222117ca54c3Smrg]) # XORG_DEFAULT_OPTIONS
222217ca54c3Smrg
222317ca54c3Smrg# XORG_INSTALL()
222417ca54c3Smrg# ----------------
222517ca54c3Smrg# Minimum version: 1.4.0
222617ca54c3Smrg#
222717ca54c3Smrg# Defines the variable INSTALL_CMD as the command to copy
222817ca54c3Smrg# INSTALL from $prefix/share/util-macros.
222917ca54c3Smrg#
223017ca54c3SmrgAC_DEFUN([XORG_INSTALL], [
223117ca54c3SmrgAC_REQUIRE([PKG_PROG_PKG_CONFIG])
223217ca54c3Smrgmacros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
223317ca54c3SmrgINSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
223417ca54c3Smrgmv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
2235ffe57424Smrg|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \
2236ffe57424Smrgtouch \$(top_srcdir)/INSTALL; \
2237ffe57424Smrgecho 'failed to copy INSTALL from util-macros: installing empty INSTALL.' >&2))"
223817ca54c3SmrgAC_SUBST([INSTALL_CMD])
223917ca54c3Smrg]) # XORG_INSTALL
224017ca54c3Smrgdnl Copyright 2005 Red Hat, Inc
224117ca54c3Smrgdnl
224217ca54c3Smrgdnl Permission to use, copy, modify, distribute, and sell this software and its
224317ca54c3Smrgdnl documentation for any purpose is hereby granted without fee, provided that
224417ca54c3Smrgdnl the above copyright notice appear in all copies and that both that
224517ca54c3Smrgdnl copyright notice and this permission notice appear in supporting
224617ca54c3Smrgdnl documentation.
224717ca54c3Smrgdnl
224817ca54c3Smrgdnl The above copyright notice and this permission notice shall be included
224917ca54c3Smrgdnl in all copies or substantial portions of the Software.
225017ca54c3Smrgdnl
225117ca54c3Smrgdnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
225217ca54c3Smrgdnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
225317ca54c3Smrgdnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
225417ca54c3Smrgdnl IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
225517ca54c3Smrgdnl OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
225617ca54c3Smrgdnl ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
225717ca54c3Smrgdnl OTHER DEALINGS IN THE SOFTWARE.
225817ca54c3Smrgdnl
225917ca54c3Smrgdnl Except as contained in this notice, the name of the copyright holders shall
226017ca54c3Smrgdnl not be used in advertising or otherwise to promote the sale, use or
226117ca54c3Smrgdnl other dealings in this Software without prior written authorization
226217ca54c3Smrgdnl from the copyright holders.
226317ca54c3Smrgdnl
226417ca54c3Smrg
226517ca54c3Smrg# XORG_RELEASE_VERSION
226617ca54c3Smrg# --------------------
226717ca54c3Smrg# Defines PACKAGE_VERSION_{MAJOR,MINOR,PATCHLEVEL} for modules to use.
226817ca54c3Smrg
226917ca54c3SmrgAC_DEFUN([XORG_RELEASE_VERSION],[
227017ca54c3Smrg	AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR],
227117ca54c3Smrg		[`echo $PACKAGE_VERSION | cut -d . -f 1`],
227217ca54c3Smrg		[Major version of this package])
227317ca54c3Smrg	PVM=`echo $PACKAGE_VERSION | cut -d . -f 2 | cut -d - -f 1`
227417ca54c3Smrg	if test "x$PVM" = "x"; then
227517ca54c3Smrg		PVM="0"
227617ca54c3Smrg	fi
227717ca54c3Smrg	AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR],
227817ca54c3Smrg		[$PVM],
227917ca54c3Smrg		[Minor version of this package])
228017ca54c3Smrg	PVP=`echo $PACKAGE_VERSION | cut -d . -f 3 | cut -d - -f 1`
228117ca54c3Smrg	if test "x$PVP" = "x"; then
228217ca54c3Smrg		PVP="0"
228317ca54c3Smrg	fi
228417ca54c3Smrg	AC_DEFINE_UNQUOTED([PACKAGE_VERSION_PATCHLEVEL],
228517ca54c3Smrg		[$PVP],
228617ca54c3Smrg		[Patch version of this package])
228717ca54c3Smrg])
228817ca54c3Smrg
228917ca54c3Smrg# XORG_CHANGELOG()
229017ca54c3Smrg# ----------------
229117ca54c3Smrg# Minimum version: 1.2.0
229217ca54c3Smrg#
229317ca54c3Smrg# Defines the variable CHANGELOG_CMD as the command to generate
229417ca54c3Smrg# ChangeLog from git.
229517ca54c3Smrg#
229617ca54c3Smrg#
229717ca54c3SmrgAC_DEFUN([XORG_CHANGELOG], [
2298ffe57424SmrgCHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp) 2>/dev/null && \
229917ca54c3Smrgmv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
2300ffe57424Smrg|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \
2301ffe57424Smrgtouch \$(top_srcdir)/ChangeLog; \
2302ffe57424Smrgecho 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))"
230317ca54c3SmrgAC_SUBST([CHANGELOG_CMD])
230417ca54c3Smrg]) # XORG_CHANGELOG
230517ca54c3Smrg
2306ffe57424Smrg# Copyright (C) 2002-2021 Free Software Foundation, Inc.
230717ca54c3Smrg#
230817ca54c3Smrg# This file is free software; the Free Software Foundation
230917ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
231017ca54c3Smrg# with or without modifications, as long as this notice is preserved.
231117ca54c3Smrg
231217ca54c3Smrg# AM_AUTOMAKE_VERSION(VERSION)
231317ca54c3Smrg# ----------------------------
231417ca54c3Smrg# Automake X.Y traces this macro to ensure aclocal.m4 has been
231517ca54c3Smrg# generated from the m4 files accompanying Automake X.Y.
231617ca54c3Smrg# (This private macro should not be called outside this file.)
231717ca54c3SmrgAC_DEFUN([AM_AUTOMAKE_VERSION],
2318ea1d6981Smrg[am__api_version='1.16'
231917ca54c3Smrgdnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
232017ca54c3Smrgdnl require some minimum version.  Point them to the right macro.
2321ffe57424Smrgm4_if([$1], [1.16.5], [],
232217ca54c3Smrg      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
232317ca54c3Smrg])
232417ca54c3Smrg
232517ca54c3Smrg# _AM_AUTOCONF_VERSION(VERSION)
232617ca54c3Smrg# -----------------------------
232717ca54c3Smrg# aclocal traces this macro to find the Autoconf version.
232817ca54c3Smrg# This is a private macro too.  Using m4_define simplifies
232917ca54c3Smrg# the logic in aclocal, which can simply ignore this definition.
233017ca54c3Smrgm4_define([_AM_AUTOCONF_VERSION], [])
233117ca54c3Smrg
233217ca54c3Smrg# AM_SET_CURRENT_AUTOMAKE_VERSION
233317ca54c3Smrg# -------------------------------
233417ca54c3Smrg# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
233517ca54c3Smrg# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
233617ca54c3SmrgAC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
2337ffe57424Smrg[AM_AUTOMAKE_VERSION([1.16.5])dnl
233817ca54c3Smrgm4_ifndef([AC_AUTOCONF_VERSION],
233917ca54c3Smrg  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
234017ca54c3Smrg_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
234117ca54c3Smrg
234217ca54c3Smrg# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
234317ca54c3Smrg
2344ffe57424Smrg# Copyright (C) 2001-2021 Free Software Foundation, Inc.
234517ca54c3Smrg#
234617ca54c3Smrg# This file is free software; the Free Software Foundation
234717ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
234817ca54c3Smrg# with or without modifications, as long as this notice is preserved.
234917ca54c3Smrg
235017ca54c3Smrg# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
235117ca54c3Smrg# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
235217ca54c3Smrg# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
235317ca54c3Smrg#
235417ca54c3Smrg# Of course, Automake must honor this variable whenever it calls a
235517ca54c3Smrg# tool from the auxiliary directory.  The problem is that $srcdir (and
235617ca54c3Smrg# therefore $ac_aux_dir as well) can be either absolute or relative,
235717ca54c3Smrg# depending on how configure is run.  This is pretty annoying, since
235817ca54c3Smrg# it makes $ac_aux_dir quite unusable in subdirectories: in the top
235917ca54c3Smrg# source directory, any form will work fine, but in subdirectories a
236017ca54c3Smrg# relative path needs to be adjusted first.
236117ca54c3Smrg#
236217ca54c3Smrg# $ac_aux_dir/missing
236317ca54c3Smrg#    fails when called from a subdirectory if $ac_aux_dir is relative
236417ca54c3Smrg# $top_srcdir/$ac_aux_dir/missing
236517ca54c3Smrg#    fails if $ac_aux_dir is absolute,
236617ca54c3Smrg#    fails when called from a subdirectory in a VPATH build with
236717ca54c3Smrg#          a relative $ac_aux_dir
236817ca54c3Smrg#
236917ca54c3Smrg# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
237017ca54c3Smrg# are both prefixed by $srcdir.  In an in-source build this is usually
237117ca54c3Smrg# harmless because $srcdir is '.', but things will broke when you
237217ca54c3Smrg# start a VPATH build or use an absolute $srcdir.
237317ca54c3Smrg#
237417ca54c3Smrg# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
237517ca54c3Smrg# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
237617ca54c3Smrg#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
237717ca54c3Smrg# and then we would define $MISSING as
237817ca54c3Smrg#   MISSING="\${SHELL} $am_aux_dir/missing"
237917ca54c3Smrg# This will work as long as MISSING is not called from configure, because
238017ca54c3Smrg# unfortunately $(top_srcdir) has no meaning in configure.
238117ca54c3Smrg# However there are other variables, like CC, which are often used in
238217ca54c3Smrg# configure, and could therefore not use this "fixed" $ac_aux_dir.
238317ca54c3Smrg#
238417ca54c3Smrg# Another solution, used here, is to always expand $ac_aux_dir to an
238517ca54c3Smrg# absolute PATH.  The drawback is that using absolute paths prevent a
238617ca54c3Smrg# configured tree to be moved without reconfiguration.
238717ca54c3Smrg
238817ca54c3SmrgAC_DEFUN([AM_AUX_DIR_EXPAND],
238917ca54c3Smrg[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
239017ca54c3Smrg# Expand $ac_aux_dir to an absolute path.
239117ca54c3Smrgam_aux_dir=`cd "$ac_aux_dir" && pwd`
239217ca54c3Smrg])
239317ca54c3Smrg
239417ca54c3Smrg# AM_CONDITIONAL                                            -*- Autoconf -*-
239517ca54c3Smrg
2396ffe57424Smrg# Copyright (C) 1997-2021 Free Software Foundation, Inc.
239717ca54c3Smrg#
239817ca54c3Smrg# This file is free software; the Free Software Foundation
239917ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
240017ca54c3Smrg# with or without modifications, as long as this notice is preserved.
240117ca54c3Smrg
240217ca54c3Smrg# AM_CONDITIONAL(NAME, SHELL-CONDITION)
240317ca54c3Smrg# -------------------------------------
240417ca54c3Smrg# Define a conditional.
240517ca54c3SmrgAC_DEFUN([AM_CONDITIONAL],
240617ca54c3Smrg[AC_PREREQ([2.52])dnl
240717ca54c3Smrg m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
240817ca54c3Smrg       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
240917ca54c3SmrgAC_SUBST([$1_TRUE])dnl
241017ca54c3SmrgAC_SUBST([$1_FALSE])dnl
241117ca54c3Smrg_AM_SUBST_NOTMAKE([$1_TRUE])dnl
241217ca54c3Smrg_AM_SUBST_NOTMAKE([$1_FALSE])dnl
241317ca54c3Smrgm4_define([_AM_COND_VALUE_$1], [$2])dnl
241417ca54c3Smrgif $2; then
241517ca54c3Smrg  $1_TRUE=
241617ca54c3Smrg  $1_FALSE='#'
241717ca54c3Smrgelse
241817ca54c3Smrg  $1_TRUE='#'
241917ca54c3Smrg  $1_FALSE=
242017ca54c3Smrgfi
242117ca54c3SmrgAC_CONFIG_COMMANDS_PRE(
242217ca54c3Smrg[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
242317ca54c3Smrg  AC_MSG_ERROR([[conditional "$1" was never defined.
242417ca54c3SmrgUsually this means the macro was only invoked conditionally.]])
242517ca54c3Smrgfi])])
242617ca54c3Smrg
2427ffe57424Smrg# Copyright (C) 1999-2021 Free Software Foundation, Inc.
242817ca54c3Smrg#
242917ca54c3Smrg# This file is free software; the Free Software Foundation
243017ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
243117ca54c3Smrg# with or without modifications, as long as this notice is preserved.
243217ca54c3Smrg
243317ca54c3Smrg
243417ca54c3Smrg# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
243517ca54c3Smrg# written in clear, in which case automake, when reading aclocal.m4,
243617ca54c3Smrg# will think it sees a *use*, and therefore will trigger all it's
243717ca54c3Smrg# C support machinery.  Also note that it means that autoscan, seeing
243817ca54c3Smrg# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
243917ca54c3Smrg
244017ca54c3Smrg
244117ca54c3Smrg# _AM_DEPENDENCIES(NAME)
244217ca54c3Smrg# ----------------------
244317ca54c3Smrg# See how the compiler implements dependency checking.
244417ca54c3Smrg# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
244517ca54c3Smrg# We try a few techniques and use that to set a single cache variable.
244617ca54c3Smrg#
244717ca54c3Smrg# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
244817ca54c3Smrg# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
244917ca54c3Smrg# dependency, and given that the user is not expected to run this macro,
245017ca54c3Smrg# just rely on AC_PROG_CC.
245117ca54c3SmrgAC_DEFUN([_AM_DEPENDENCIES],
245217ca54c3Smrg[AC_REQUIRE([AM_SET_DEPDIR])dnl
245317ca54c3SmrgAC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
245417ca54c3SmrgAC_REQUIRE([AM_MAKE_INCLUDE])dnl
245517ca54c3SmrgAC_REQUIRE([AM_DEP_TRACK])dnl
245617ca54c3Smrg
245717ca54c3Smrgm4_if([$1], [CC],   [depcc="$CC"   am_compiler_list=],
245817ca54c3Smrg      [$1], [CXX],  [depcc="$CXX"  am_compiler_list=],
245917ca54c3Smrg      [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
246017ca54c3Smrg      [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
246117ca54c3Smrg      [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
246217ca54c3Smrg      [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
246317ca54c3Smrg                    [depcc="$$1"   am_compiler_list=])
246417ca54c3Smrg
246517ca54c3SmrgAC_CACHE_CHECK([dependency style of $depcc],
246617ca54c3Smrg               [am_cv_$1_dependencies_compiler_type],
246717ca54c3Smrg[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
246817ca54c3Smrg  # We make a subdir and do the tests there.  Otherwise we can end up
246917ca54c3Smrg  # making bogus files that we don't know about and never remove.  For
247017ca54c3Smrg  # instance it was reported that on HP-UX the gcc test will end up
247117ca54c3Smrg  # making a dummy file named 'D' -- because '-MD' means "put the output
247217ca54c3Smrg  # in D".
247317ca54c3Smrg  rm -rf conftest.dir
247417ca54c3Smrg  mkdir conftest.dir
247517ca54c3Smrg  # Copy depcomp to subdir because otherwise we won't find it if we're
247617ca54c3Smrg  # using a relative directory.
247717ca54c3Smrg  cp "$am_depcomp" conftest.dir
247817ca54c3Smrg  cd conftest.dir
247917ca54c3Smrg  # We will build objects and dependencies in a subdirectory because
248017ca54c3Smrg  # it helps to detect inapplicable dependency modes.  For instance
248117ca54c3Smrg  # both Tru64's cc and ICC support -MD to output dependencies as a
248217ca54c3Smrg  # side effect of compilation, but ICC will put the dependencies in
248317ca54c3Smrg  # the current directory while Tru64 will put them in the object
248417ca54c3Smrg  # directory.
248517ca54c3Smrg  mkdir sub
248617ca54c3Smrg
248717ca54c3Smrg  am_cv_$1_dependencies_compiler_type=none
248817ca54c3Smrg  if test "$am_compiler_list" = ""; then
248917ca54c3Smrg     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
249017ca54c3Smrg  fi
249117ca54c3Smrg  am__universal=false
249217ca54c3Smrg  m4_case([$1], [CC],
249317ca54c3Smrg    [case " $depcc " in #(
249417ca54c3Smrg     *\ -arch\ *\ -arch\ *) am__universal=true ;;
249517ca54c3Smrg     esac],
249617ca54c3Smrg    [CXX],
249717ca54c3Smrg    [case " $depcc " in #(
249817ca54c3Smrg     *\ -arch\ *\ -arch\ *) am__universal=true ;;
249917ca54c3Smrg     esac])
250017ca54c3Smrg
250117ca54c3Smrg  for depmode in $am_compiler_list; do
250217ca54c3Smrg    # Setup a source with many dependencies, because some compilers
250317ca54c3Smrg    # like to wrap large dependency lists on column 80 (with \), and
250417ca54c3Smrg    # we should not choose a depcomp mode which is confused by this.
250517ca54c3Smrg    #
250617ca54c3Smrg    # We need to recreate these files for each test, as the compiler may
250717ca54c3Smrg    # overwrite some of them when testing with obscure command lines.
250817ca54c3Smrg    # This happens at least with the AIX C compiler.
250917ca54c3Smrg    : > sub/conftest.c
251017ca54c3Smrg    for i in 1 2 3 4 5 6; do
251117ca54c3Smrg      echo '#include "conftst'$i'.h"' >> sub/conftest.c
251217ca54c3Smrg      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
251317ca54c3Smrg      # Solaris 10 /bin/sh.
251417ca54c3Smrg      echo '/* dummy */' > sub/conftst$i.h
251517ca54c3Smrg    done
251617ca54c3Smrg    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
251717ca54c3Smrg
251817ca54c3Smrg    # We check with '-c' and '-o' for the sake of the "dashmstdout"
251917ca54c3Smrg    # mode.  It turns out that the SunPro C++ compiler does not properly
252017ca54c3Smrg    # handle '-M -o', and we need to detect this.  Also, some Intel
252117ca54c3Smrg    # versions had trouble with output in subdirs.
252217ca54c3Smrg    am__obj=sub/conftest.${OBJEXT-o}
252317ca54c3Smrg    am__minus_obj="-o $am__obj"
252417ca54c3Smrg    case $depmode in
252517ca54c3Smrg    gcc)
252617ca54c3Smrg      # This depmode causes a compiler race in universal mode.
252717ca54c3Smrg      test "$am__universal" = false || continue
252817ca54c3Smrg      ;;
252917ca54c3Smrg    nosideeffect)
253017ca54c3Smrg      # After this tag, mechanisms are not by side-effect, so they'll
253117ca54c3Smrg      # only be used when explicitly requested.
253217ca54c3Smrg      if test "x$enable_dependency_tracking" = xyes; then
253317ca54c3Smrg	continue
253417ca54c3Smrg      else
253517ca54c3Smrg	break
253617ca54c3Smrg      fi
253717ca54c3Smrg      ;;
253817ca54c3Smrg    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
253917ca54c3Smrg      # This compiler won't grok '-c -o', but also, the minuso test has
254017ca54c3Smrg      # not run yet.  These depmodes are late enough in the game, and
254117ca54c3Smrg      # so weak that their functioning should not be impacted.
254217ca54c3Smrg      am__obj=conftest.${OBJEXT-o}
254317ca54c3Smrg      am__minus_obj=
254417ca54c3Smrg      ;;
254517ca54c3Smrg    none) break ;;
254617ca54c3Smrg    esac
254717ca54c3Smrg    if depmode=$depmode \
254817ca54c3Smrg       source=sub/conftest.c object=$am__obj \
254917ca54c3Smrg       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
255017ca54c3Smrg       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
255117ca54c3Smrg         >/dev/null 2>conftest.err &&
255217ca54c3Smrg       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
255317ca54c3Smrg       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
255417ca54c3Smrg       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
255517ca54c3Smrg       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
255617ca54c3Smrg      # icc doesn't choke on unknown options, it will just issue warnings
255717ca54c3Smrg      # or remarks (even with -Werror).  So we grep stderr for any message
255817ca54c3Smrg      # that says an option was ignored or not supported.
255917ca54c3Smrg      # When given -MP, icc 7.0 and 7.1 complain thusly:
256017ca54c3Smrg      #   icc: Command line warning: ignoring option '-M'; no argument required
256117ca54c3Smrg      # The diagnosis changed in icc 8.0:
256217ca54c3Smrg      #   icc: Command line remark: option '-MP' not supported
256317ca54c3Smrg      if (grep 'ignoring option' conftest.err ||
256417ca54c3Smrg          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
256517ca54c3Smrg        am_cv_$1_dependencies_compiler_type=$depmode
256617ca54c3Smrg        break
256717ca54c3Smrg      fi
256817ca54c3Smrg    fi
256917ca54c3Smrg  done
257017ca54c3Smrg
257117ca54c3Smrg  cd ..
257217ca54c3Smrg  rm -rf conftest.dir
257317ca54c3Smrgelse
257417ca54c3Smrg  am_cv_$1_dependencies_compiler_type=none
257517ca54c3Smrgfi
257617ca54c3Smrg])
257717ca54c3SmrgAC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
257817ca54c3SmrgAM_CONDITIONAL([am__fastdep$1], [
257917ca54c3Smrg  test "x$enable_dependency_tracking" != xno \
258017ca54c3Smrg  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
258117ca54c3Smrg])
258217ca54c3Smrg
258317ca54c3Smrg
258417ca54c3Smrg# AM_SET_DEPDIR
258517ca54c3Smrg# -------------
258617ca54c3Smrg# Choose a directory name for dependency files.
258717ca54c3Smrg# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
258817ca54c3SmrgAC_DEFUN([AM_SET_DEPDIR],
258917ca54c3Smrg[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
259017ca54c3SmrgAC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
259117ca54c3Smrg])
259217ca54c3Smrg
259317ca54c3Smrg
259417ca54c3Smrg# AM_DEP_TRACK
259517ca54c3Smrg# ------------
259617ca54c3SmrgAC_DEFUN([AM_DEP_TRACK],
259717ca54c3Smrg[AC_ARG_ENABLE([dependency-tracking], [dnl
259817ca54c3SmrgAS_HELP_STRING(
259917ca54c3Smrg  [--enable-dependency-tracking],
260017ca54c3Smrg  [do not reject slow dependency extractors])
260117ca54c3SmrgAS_HELP_STRING(
260217ca54c3Smrg  [--disable-dependency-tracking],
260317ca54c3Smrg  [speeds up one-time build])])
260417ca54c3Smrgif test "x$enable_dependency_tracking" != xno; then
260517ca54c3Smrg  am_depcomp="$ac_aux_dir/depcomp"
260617ca54c3Smrg  AMDEPBACKSLASH='\'
260717ca54c3Smrg  am__nodep='_no'
260817ca54c3Smrgfi
260917ca54c3SmrgAM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
261017ca54c3SmrgAC_SUBST([AMDEPBACKSLASH])dnl
261117ca54c3Smrg_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
261217ca54c3SmrgAC_SUBST([am__nodep])dnl
261317ca54c3Smrg_AM_SUBST_NOTMAKE([am__nodep])dnl
261417ca54c3Smrg])
261517ca54c3Smrg
261617ca54c3Smrg# Generate code to set up dependency tracking.              -*- Autoconf -*-
261717ca54c3Smrg
2618ffe57424Smrg# Copyright (C) 1999-2021 Free Software Foundation, Inc.
261917ca54c3Smrg#
262017ca54c3Smrg# This file is free software; the Free Software Foundation
262117ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
262217ca54c3Smrg# with or without modifications, as long as this notice is preserved.
262317ca54c3Smrg
262417ca54c3Smrg# _AM_OUTPUT_DEPENDENCY_COMMANDS
262517ca54c3Smrg# ------------------------------
262617ca54c3SmrgAC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
262717ca54c3Smrg[{
262817ca54c3Smrg  # Older Autoconf quotes --file arguments for eval, but not when files
262917ca54c3Smrg  # are listed without --file.  Let's play safe and only enable the eval
263017ca54c3Smrg  # if we detect the quoting.
2631ea1d6981Smrg  # TODO: see whether this extra hack can be removed once we start
2632ea1d6981Smrg  # requiring Autoconf 2.70 or later.
2633ea1d6981Smrg  AS_CASE([$CONFIG_FILES],
2634ea1d6981Smrg          [*\'*], [eval set x "$CONFIG_FILES"],
2635ea1d6981Smrg          [*], [set x $CONFIG_FILES])
263617ca54c3Smrg  shift
2637ea1d6981Smrg  # Used to flag and report bootstrapping failures.
2638ea1d6981Smrg  am_rc=0
2639ea1d6981Smrg  for am_mf
264017ca54c3Smrg  do
264117ca54c3Smrg    # Strip MF so we end up with the name of the file.
2642ea1d6981Smrg    am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
2643ea1d6981Smrg    # Check whether this is an Automake generated Makefile which includes
2644ea1d6981Smrg    # dependency-tracking related rules and includes.
2645ea1d6981Smrg    # Grep'ing the whole file directly is not great: AIX grep has a line
264617ca54c3Smrg    # limit of 2048, but all sed's we know have understand at least 4000.
2647ea1d6981Smrg    sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
2648ea1d6981Smrg      || continue
2649ea1d6981Smrg    am_dirpart=`AS_DIRNAME(["$am_mf"])`
2650ea1d6981Smrg    am_filepart=`AS_BASENAME(["$am_mf"])`
2651ea1d6981Smrg    AM_RUN_LOG([cd "$am_dirpart" \
2652ea1d6981Smrg      && sed -e '/# am--include-marker/d' "$am_filepart" \
2653ea1d6981Smrg        | $MAKE -f - am--depfiles]) || am_rc=$?
265417ca54c3Smrg  done
2655ea1d6981Smrg  if test $am_rc -ne 0; then
2656ea1d6981Smrg    AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
2657ffe57424Smrg    for automatic dependency tracking.  If GNU make was not used, consider
2658ffe57424Smrg    re-running the configure script with MAKE="gmake" (or whatever is
2659ffe57424Smrg    necessary).  You can also try re-running configure with the
2660ea1d6981Smrg    '--disable-dependency-tracking' option to at least be able to build
2661ea1d6981Smrg    the package (albeit without support for automatic dependency tracking).])
2662ea1d6981Smrg  fi
2663ea1d6981Smrg  AS_UNSET([am_dirpart])
2664ea1d6981Smrg  AS_UNSET([am_filepart])
2665ea1d6981Smrg  AS_UNSET([am_mf])
2666ea1d6981Smrg  AS_UNSET([am_rc])
2667ea1d6981Smrg  rm -f conftest-deps.mk
266817ca54c3Smrg}
266917ca54c3Smrg])# _AM_OUTPUT_DEPENDENCY_COMMANDS
267017ca54c3Smrg
267117ca54c3Smrg
267217ca54c3Smrg# AM_OUTPUT_DEPENDENCY_COMMANDS
267317ca54c3Smrg# -----------------------------
267417ca54c3Smrg# This macro should only be invoked once -- use via AC_REQUIRE.
267517ca54c3Smrg#
2676ea1d6981Smrg# This code is only required when automatic dependency tracking is enabled.
2677ea1d6981Smrg# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
2678ea1d6981Smrg# order to bootstrap the dependency handling code.
267917ca54c3SmrgAC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
268017ca54c3Smrg[AC_CONFIG_COMMANDS([depfiles],
268117ca54c3Smrg     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
2682ea1d6981Smrg     [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
268317ca54c3Smrg
268417ca54c3Smrg# Do all the work for Automake.                             -*- Autoconf -*-
268517ca54c3Smrg
2686ffe57424Smrg# Copyright (C) 1996-2021 Free Software Foundation, Inc.
268717ca54c3Smrg#
268817ca54c3Smrg# This file is free software; the Free Software Foundation
268917ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
269017ca54c3Smrg# with or without modifications, as long as this notice is preserved.
269117ca54c3Smrg
269217ca54c3Smrg# This macro actually does too much.  Some checks are only needed if
269317ca54c3Smrg# your package does certain things.  But this isn't really a big deal.
269417ca54c3Smrg
269517ca54c3Smrgdnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
269617ca54c3Smrgm4_define([AC_PROG_CC],
269717ca54c3Smrgm4_defn([AC_PROG_CC])
269817ca54c3Smrg[_AM_PROG_CC_C_O
269917ca54c3Smrg])
270017ca54c3Smrg
270117ca54c3Smrg# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
270217ca54c3Smrg# AM_INIT_AUTOMAKE([OPTIONS])
270317ca54c3Smrg# -----------------------------------------------
270417ca54c3Smrg# The call with PACKAGE and VERSION arguments is the old style
270517ca54c3Smrg# call (pre autoconf-2.50), which is being phased out.  PACKAGE
270617ca54c3Smrg# and VERSION should now be passed to AC_INIT and removed from
270717ca54c3Smrg# the call to AM_INIT_AUTOMAKE.
270817ca54c3Smrg# We support both call styles for the transition.  After
270917ca54c3Smrg# the next Automake release, Autoconf can make the AC_INIT
271017ca54c3Smrg# arguments mandatory, and then we can depend on a new Autoconf
271117ca54c3Smrg# release and drop the old call support.
271217ca54c3SmrgAC_DEFUN([AM_INIT_AUTOMAKE],
271317ca54c3Smrg[AC_PREREQ([2.65])dnl
2714ffe57424Smrgm4_ifdef([_$0_ALREADY_INIT],
2715ffe57424Smrg  [m4_fatal([$0 expanded multiple times
2716ffe57424Smrg]m4_defn([_$0_ALREADY_INIT]))],
2717ffe57424Smrg  [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl
271817ca54c3Smrgdnl Autoconf wants to disallow AM_ names.  We explicitly allow
271917ca54c3Smrgdnl the ones we care about.
272017ca54c3Smrgm4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
272117ca54c3SmrgAC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
272217ca54c3SmrgAC_REQUIRE([AC_PROG_INSTALL])dnl
272317ca54c3Smrgif test "`cd $srcdir && pwd`" != "`pwd`"; then
272417ca54c3Smrg  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
272517ca54c3Smrg  # is not polluted with repeated "-I."
272617ca54c3Smrg  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
272717ca54c3Smrg  # test to see if srcdir already configured
272817ca54c3Smrg  if test -f $srcdir/config.status; then
272917ca54c3Smrg    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
273017ca54c3Smrg  fi
273117ca54c3Smrgfi
273217ca54c3Smrg
273317ca54c3Smrg# test whether we have cygpath
273417ca54c3Smrgif test -z "$CYGPATH_W"; then
273517ca54c3Smrg  if (cygpath --version) >/dev/null 2>/dev/null; then
273617ca54c3Smrg    CYGPATH_W='cygpath -w'
273717ca54c3Smrg  else
273817ca54c3Smrg    CYGPATH_W=echo
273917ca54c3Smrg  fi
274017ca54c3Smrgfi
274117ca54c3SmrgAC_SUBST([CYGPATH_W])
274217ca54c3Smrg
274317ca54c3Smrg# Define the identity of the package.
274417ca54c3Smrgdnl Distinguish between old-style and new-style calls.
274517ca54c3Smrgm4_ifval([$2],
274617ca54c3Smrg[AC_DIAGNOSE([obsolete],
274717ca54c3Smrg             [$0: two- and three-arguments forms are deprecated.])
274817ca54c3Smrgm4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
274917ca54c3Smrg AC_SUBST([PACKAGE], [$1])dnl
275017ca54c3Smrg AC_SUBST([VERSION], [$2])],
275117ca54c3Smrg[_AM_SET_OPTIONS([$1])dnl
275217ca54c3Smrgdnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
275317ca54c3Smrgm4_if(
2754ffe57424Smrg  m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]),
275517ca54c3Smrg  [ok:ok],,
275617ca54c3Smrg  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
275717ca54c3Smrg AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
275817ca54c3Smrg AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
275917ca54c3Smrg
276017ca54c3Smrg_AM_IF_OPTION([no-define],,
276117ca54c3Smrg[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
276217ca54c3Smrg AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
276317ca54c3Smrg
276417ca54c3Smrg# Some tools Automake needs.
276517ca54c3SmrgAC_REQUIRE([AM_SANITY_CHECK])dnl
276617ca54c3SmrgAC_REQUIRE([AC_ARG_PROGRAM])dnl
276717ca54c3SmrgAM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
276817ca54c3SmrgAM_MISSING_PROG([AUTOCONF], [autoconf])
276917ca54c3SmrgAM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
277017ca54c3SmrgAM_MISSING_PROG([AUTOHEADER], [autoheader])
277117ca54c3SmrgAM_MISSING_PROG([MAKEINFO], [makeinfo])
277217ca54c3SmrgAC_REQUIRE([AM_PROG_INSTALL_SH])dnl
277317ca54c3SmrgAC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
277417ca54c3SmrgAC_REQUIRE([AC_PROG_MKDIR_P])dnl
277517ca54c3Smrg# For better backward compatibility.  To be removed once Automake 1.9.x
277617ca54c3Smrg# dies out for good.  For more background, see:
2777ea1d6981Smrg# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
2778ea1d6981Smrg# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
277917ca54c3SmrgAC_SUBST([mkdir_p], ['$(MKDIR_P)'])
278017ca54c3Smrg# We need awk for the "check" target (and possibly the TAP driver).  The
278117ca54c3Smrg# system "awk" is bad on some platforms.
278217ca54c3SmrgAC_REQUIRE([AC_PROG_AWK])dnl
278317ca54c3SmrgAC_REQUIRE([AC_PROG_MAKE_SET])dnl
278417ca54c3SmrgAC_REQUIRE([AM_SET_LEADING_DOT])dnl
278517ca54c3Smrg_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
278617ca54c3Smrg	      [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
278717ca54c3Smrg			     [_AM_PROG_TAR([v7])])])
278817ca54c3Smrg_AM_IF_OPTION([no-dependencies],,
278917ca54c3Smrg[AC_PROVIDE_IFELSE([AC_PROG_CC],
279017ca54c3Smrg		  [_AM_DEPENDENCIES([CC])],
279117ca54c3Smrg		  [m4_define([AC_PROG_CC],
279217ca54c3Smrg			     m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
279317ca54c3SmrgAC_PROVIDE_IFELSE([AC_PROG_CXX],
279417ca54c3Smrg		  [_AM_DEPENDENCIES([CXX])],
279517ca54c3Smrg		  [m4_define([AC_PROG_CXX],
279617ca54c3Smrg			     m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
279717ca54c3SmrgAC_PROVIDE_IFELSE([AC_PROG_OBJC],
279817ca54c3Smrg		  [_AM_DEPENDENCIES([OBJC])],
279917ca54c3Smrg		  [m4_define([AC_PROG_OBJC],
280017ca54c3Smrg			     m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
280117ca54c3SmrgAC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
280217ca54c3Smrg		  [_AM_DEPENDENCIES([OBJCXX])],
280317ca54c3Smrg		  [m4_define([AC_PROG_OBJCXX],
280417ca54c3Smrg			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
280517ca54c3Smrg])
2806ffe57424Smrg# Variables for tags utilities; see am/tags.am
2807ffe57424Smrgif test -z "$CTAGS"; then
2808ffe57424Smrg  CTAGS=ctags
2809ffe57424Smrgfi
2810ffe57424SmrgAC_SUBST([CTAGS])
2811ffe57424Smrgif test -z "$ETAGS"; then
2812ffe57424Smrg  ETAGS=etags
2813ffe57424Smrgfi
2814ffe57424SmrgAC_SUBST([ETAGS])
2815ffe57424Smrgif test -z "$CSCOPE"; then
2816ffe57424Smrg  CSCOPE=cscope
2817ffe57424Smrgfi
2818ffe57424SmrgAC_SUBST([CSCOPE])
2819ffe57424Smrg
282017ca54c3SmrgAC_REQUIRE([AM_SILENT_RULES])dnl
282117ca54c3Smrgdnl The testsuite driver may need to know about EXEEXT, so add the
282217ca54c3Smrgdnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
282317ca54c3Smrgdnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
282417ca54c3SmrgAC_CONFIG_COMMANDS_PRE(dnl
282517ca54c3Smrg[m4_provide_if([_AM_COMPILER_EXEEXT],
282617ca54c3Smrg  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
282717ca54c3Smrg
282817ca54c3Smrg# POSIX will say in a future version that running "rm -f" with no argument
282917ca54c3Smrg# is OK; and we want to be able to make that assumption in our Makefile
283017ca54c3Smrg# recipes.  So use an aggressive probe to check that the usage we want is
283117ca54c3Smrg# actually supported "in the wild" to an acceptable degree.
283217ca54c3Smrg# See automake bug#10828.
283317ca54c3Smrg# To make any issue more visible, cause the running configure to be aborted
283417ca54c3Smrg# by default if the 'rm' program in use doesn't match our expectations; the
283517ca54c3Smrg# user can still override this though.
283617ca54c3Smrgif rm -f && rm -fr && rm -rf; then : OK; else
283717ca54c3Smrg  cat >&2 <<'END'
283817ca54c3SmrgOops!
283917ca54c3Smrg
284017ca54c3SmrgYour 'rm' program seems unable to run without file operands specified
284117ca54c3Smrgon the command line, even when the '-f' option is present.  This is contrary
284217ca54c3Smrgto the behaviour of most rm programs out there, and not conforming with
284317ca54c3Smrgthe upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
284417ca54c3Smrg
284517ca54c3SmrgPlease tell bug-automake@gnu.org about your system, including the value
284617ca54c3Smrgof your $PATH and any error possibly output before this message.  This
284717ca54c3Smrgcan help us improve future automake versions.
284817ca54c3Smrg
284917ca54c3SmrgEND
285017ca54c3Smrg  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
285117ca54c3Smrg    echo 'Configuration will proceed anyway, since you have set the' >&2
285217ca54c3Smrg    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
285317ca54c3Smrg    echo >&2
285417ca54c3Smrg  else
285517ca54c3Smrg    cat >&2 <<'END'
285617ca54c3SmrgAborting the configuration process, to ensure you take notice of the issue.
285717ca54c3Smrg
285817ca54c3SmrgYou can download and install GNU coreutils to get an 'rm' implementation
2859ea1d6981Smrgthat behaves properly: <https://www.gnu.org/software/coreutils/>.
286017ca54c3Smrg
286117ca54c3SmrgIf you want to complete the configuration process using your problematic
286217ca54c3Smrg'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
286317ca54c3Smrgto "yes", and re-run configure.
286417ca54c3Smrg
286517ca54c3SmrgEND
286617ca54c3Smrg    AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
286717ca54c3Smrg  fi
286817ca54c3Smrgfi
286917ca54c3Smrgdnl The trailing newline in this macro's definition is deliberate, for
287017ca54c3Smrgdnl backward compatibility and to allow trailing 'dnl'-style comments
287117ca54c3Smrgdnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
287217ca54c3Smrg])
287317ca54c3Smrg
287417ca54c3Smrgdnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
287517ca54c3Smrgdnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
287617ca54c3Smrgdnl mangled by Autoconf and run in a shell conditional statement.
287717ca54c3Smrgm4_define([_AC_COMPILER_EXEEXT],
287817ca54c3Smrgm4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
287917ca54c3Smrg
288017ca54c3Smrg# When config.status generates a header, we must update the stamp-h file.
288117ca54c3Smrg# This file resides in the same directory as the config header
288217ca54c3Smrg# that is generated.  The stamp files are numbered to have different names.
288317ca54c3Smrg
288417ca54c3Smrg# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
288517ca54c3Smrg# loop where config.status creates the headers, so we can generate
288617ca54c3Smrg# our stamp files there.
288717ca54c3SmrgAC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
288817ca54c3Smrg[# Compute $1's index in $config_headers.
288917ca54c3Smrg_am_arg=$1
289017ca54c3Smrg_am_stamp_count=1
289117ca54c3Smrgfor _am_header in $config_headers :; do
289217ca54c3Smrg  case $_am_header in
289317ca54c3Smrg    $_am_arg | $_am_arg:* )
289417ca54c3Smrg      break ;;
289517ca54c3Smrg    * )
289617ca54c3Smrg      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
289717ca54c3Smrg  esac
289817ca54c3Smrgdone
289917ca54c3Smrgecho "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
290017ca54c3Smrg
2901ffe57424Smrg# Copyright (C) 2001-2021 Free Software Foundation, Inc.
290217ca54c3Smrg#
290317ca54c3Smrg# This file is free software; the Free Software Foundation
290417ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
290517ca54c3Smrg# with or without modifications, as long as this notice is preserved.
290617ca54c3Smrg
290717ca54c3Smrg# AM_PROG_INSTALL_SH
290817ca54c3Smrg# ------------------
290917ca54c3Smrg# Define $install_sh.
291017ca54c3SmrgAC_DEFUN([AM_PROG_INSTALL_SH],
291117ca54c3Smrg[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
291217ca54c3Smrgif test x"${install_sh+set}" != xset; then
291317ca54c3Smrg  case $am_aux_dir in
291417ca54c3Smrg  *\ * | *\	*)
291517ca54c3Smrg    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
291617ca54c3Smrg  *)
291717ca54c3Smrg    install_sh="\${SHELL} $am_aux_dir/install-sh"
291817ca54c3Smrg  esac
291917ca54c3Smrgfi
292017ca54c3SmrgAC_SUBST([install_sh])])
292117ca54c3Smrg
2922ffe57424Smrg# Copyright (C) 2003-2021 Free Software Foundation, Inc.
292317ca54c3Smrg#
292417ca54c3Smrg# This file is free software; the Free Software Foundation
292517ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
292617ca54c3Smrg# with or without modifications, as long as this notice is preserved.
292717ca54c3Smrg
292817ca54c3Smrg# Check whether the underlying file-system supports filenames
292917ca54c3Smrg# with a leading dot.  For instance MS-DOS doesn't.
293017ca54c3SmrgAC_DEFUN([AM_SET_LEADING_DOT],
293117ca54c3Smrg[rm -rf .tst 2>/dev/null
293217ca54c3Smrgmkdir .tst 2>/dev/null
293317ca54c3Smrgif test -d .tst; then
293417ca54c3Smrg  am__leading_dot=.
293517ca54c3Smrgelse
293617ca54c3Smrg  am__leading_dot=_
293717ca54c3Smrgfi
293817ca54c3Smrgrmdir .tst 2>/dev/null
293917ca54c3SmrgAC_SUBST([am__leading_dot])])
294017ca54c3Smrg
294117ca54c3Smrg# Check to see how 'make' treats includes.	            -*- Autoconf -*-
294217ca54c3Smrg
2943ffe57424Smrg# Copyright (C) 2001-2021 Free Software Foundation, Inc.
294417ca54c3Smrg#
294517ca54c3Smrg# This file is free software; the Free Software Foundation
294617ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
294717ca54c3Smrg# with or without modifications, as long as this notice is preserved.
294817ca54c3Smrg
294917ca54c3Smrg# AM_MAKE_INCLUDE()
295017ca54c3Smrg# -----------------
2951ea1d6981Smrg# Check whether make has an 'include' directive that can support all
2952ea1d6981Smrg# the idioms we need for our automatic dependency tracking code.
295317ca54c3SmrgAC_DEFUN([AM_MAKE_INCLUDE],
2954ea1d6981Smrg[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
2955ea1d6981Smrgcat > confinc.mk << 'END'
295617ca54c3Smrgam__doit:
2957ea1d6981Smrg	@echo this is the am__doit target >confinc.out
295817ca54c3Smrg.PHONY: am__doit
295917ca54c3SmrgEND
296017ca54c3Smrgam__include="#"
296117ca54c3Smrgam__quote=
2962ea1d6981Smrg# BSD make does it like this.
2963ea1d6981Smrgecho '.include "confinc.mk" # ignored' > confmf.BSD
2964ea1d6981Smrg# Other make implementations (GNU, Solaris 10, AIX) do it like this.
2965ea1d6981Smrgecho 'include confinc.mk # ignored' > confmf.GNU
2966ea1d6981Smrg_am_result=no
2967ea1d6981Smrgfor s in GNU BSD; do
2968ea1d6981Smrg  AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
2969ea1d6981Smrg  AS_CASE([$?:`cat confinc.out 2>/dev/null`],
2970ea1d6981Smrg      ['0:this is the am__doit target'],
2971ea1d6981Smrg      [AS_CASE([$s],
2972ea1d6981Smrg          [BSD], [am__include='.include' am__quote='"'],
2973ea1d6981Smrg          [am__include='include' am__quote=''])])
2974ea1d6981Smrg  if test "$am__include" != "#"; then
2975ea1d6981Smrg    _am_result="yes ($s style)"
2976ea1d6981Smrg    break
2977ea1d6981Smrg  fi
2978ea1d6981Smrgdone
2979ea1d6981Smrgrm -f confinc.* confmf.*
2980ea1d6981SmrgAC_MSG_RESULT([${_am_result}])
2981ea1d6981SmrgAC_SUBST([am__include])])
2982ea1d6981SmrgAC_SUBST([am__quote])])
298317ca54c3Smrg
298417ca54c3Smrg# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
298517ca54c3Smrg
2986ffe57424Smrg# Copyright (C) 1997-2021 Free Software Foundation, Inc.
298717ca54c3Smrg#
298817ca54c3Smrg# This file is free software; the Free Software Foundation
298917ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
299017ca54c3Smrg# with or without modifications, as long as this notice is preserved.
299117ca54c3Smrg
299217ca54c3Smrg# AM_MISSING_PROG(NAME, PROGRAM)
299317ca54c3Smrg# ------------------------------
299417ca54c3SmrgAC_DEFUN([AM_MISSING_PROG],
299517ca54c3Smrg[AC_REQUIRE([AM_MISSING_HAS_RUN])
299617ca54c3Smrg$1=${$1-"${am_missing_run}$2"}
299717ca54c3SmrgAC_SUBST($1)])
299817ca54c3Smrg
299917ca54c3Smrg# AM_MISSING_HAS_RUN
300017ca54c3Smrg# ------------------
300117ca54c3Smrg# Define MISSING if not defined so far and test if it is modern enough.
300217ca54c3Smrg# If it is, set am_missing_run to use it, otherwise, to nothing.
300317ca54c3SmrgAC_DEFUN([AM_MISSING_HAS_RUN],
300417ca54c3Smrg[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
300517ca54c3SmrgAC_REQUIRE_AUX_FILE([missing])dnl
300617ca54c3Smrgif test x"${MISSING+set}" != xset; then
3007ffe57424Smrg  MISSING="\${SHELL} '$am_aux_dir/missing'"
300817ca54c3Smrgfi
300917ca54c3Smrg# Use eval to expand $SHELL
301017ca54c3Smrgif eval "$MISSING --is-lightweight"; then
301117ca54c3Smrg  am_missing_run="$MISSING "
301217ca54c3Smrgelse
301317ca54c3Smrg  am_missing_run=
301417ca54c3Smrg  AC_MSG_WARN(['missing' script is too old or missing])
301517ca54c3Smrgfi
301617ca54c3Smrg])
301717ca54c3Smrg
301817ca54c3Smrg# Helper functions for option handling.                     -*- Autoconf -*-
301917ca54c3Smrg
3020ffe57424Smrg# Copyright (C) 2001-2021 Free Software Foundation, Inc.
302117ca54c3Smrg#
302217ca54c3Smrg# This file is free software; the Free Software Foundation
302317ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
302417ca54c3Smrg# with or without modifications, as long as this notice is preserved.
302517ca54c3Smrg
302617ca54c3Smrg# _AM_MANGLE_OPTION(NAME)
302717ca54c3Smrg# -----------------------
302817ca54c3SmrgAC_DEFUN([_AM_MANGLE_OPTION],
302917ca54c3Smrg[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
303017ca54c3Smrg
303117ca54c3Smrg# _AM_SET_OPTION(NAME)
303217ca54c3Smrg# --------------------
303317ca54c3Smrg# Set option NAME.  Presently that only means defining a flag for this option.
303417ca54c3SmrgAC_DEFUN([_AM_SET_OPTION],
303517ca54c3Smrg[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
303617ca54c3Smrg
303717ca54c3Smrg# _AM_SET_OPTIONS(OPTIONS)
303817ca54c3Smrg# ------------------------
303917ca54c3Smrg# OPTIONS is a space-separated list of Automake options.
304017ca54c3SmrgAC_DEFUN([_AM_SET_OPTIONS],
304117ca54c3Smrg[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
304217ca54c3Smrg
304317ca54c3Smrg# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
304417ca54c3Smrg# -------------------------------------------
304517ca54c3Smrg# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
304617ca54c3SmrgAC_DEFUN([_AM_IF_OPTION],
304717ca54c3Smrg[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
304817ca54c3Smrg
3049ffe57424Smrg# Copyright (C) 1999-2021 Free Software Foundation, Inc.
305017ca54c3Smrg#
305117ca54c3Smrg# This file is free software; the Free Software Foundation
305217ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
305317ca54c3Smrg# with or without modifications, as long as this notice is preserved.
305417ca54c3Smrg
305517ca54c3Smrg# _AM_PROG_CC_C_O
305617ca54c3Smrg# ---------------
305717ca54c3Smrg# Like AC_PROG_CC_C_O, but changed for automake.  We rewrite AC_PROG_CC
305817ca54c3Smrg# to automatically call this.
305917ca54c3SmrgAC_DEFUN([_AM_PROG_CC_C_O],
306017ca54c3Smrg[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
306117ca54c3SmrgAC_REQUIRE_AUX_FILE([compile])dnl
306217ca54c3SmrgAC_LANG_PUSH([C])dnl
306317ca54c3SmrgAC_CACHE_CHECK(
306417ca54c3Smrg  [whether $CC understands -c and -o together],
306517ca54c3Smrg  [am_cv_prog_cc_c_o],
306617ca54c3Smrg  [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
306717ca54c3Smrg  # Make sure it works both with $CC and with simple cc.
306817ca54c3Smrg  # Following AC_PROG_CC_C_O, we do the test twice because some
306917ca54c3Smrg  # compilers refuse to overwrite an existing .o file with -o,
307017ca54c3Smrg  # though they will create one.
307117ca54c3Smrg  am_cv_prog_cc_c_o=yes
307217ca54c3Smrg  for am_i in 1 2; do
307317ca54c3Smrg    if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
307417ca54c3Smrg         && test -f conftest2.$ac_objext; then
307517ca54c3Smrg      : OK
307617ca54c3Smrg    else
307717ca54c3Smrg      am_cv_prog_cc_c_o=no
307817ca54c3Smrg      break
307917ca54c3Smrg    fi
308017ca54c3Smrg  done
308117ca54c3Smrg  rm -f core conftest*
308217ca54c3Smrg  unset am_i])
308317ca54c3Smrgif test "$am_cv_prog_cc_c_o" != yes; then
308417ca54c3Smrg   # Losing compiler, so override with the script.
308517ca54c3Smrg   # FIXME: It is wrong to rewrite CC.
308617ca54c3Smrg   # But if we don't then we get into trouble of one sort or another.
308717ca54c3Smrg   # A longer-term fix would be to have automake use am__CC in this case,
308817ca54c3Smrg   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
308917ca54c3Smrg   CC="$am_aux_dir/compile $CC"
309017ca54c3Smrgfi
309117ca54c3SmrgAC_LANG_POP([C])])
309217ca54c3Smrg
309317ca54c3Smrg# For backward compatibility.
309417ca54c3SmrgAC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
309517ca54c3Smrg
3096ffe57424Smrg# Copyright (C) 1999-2021 Free Software Foundation, Inc.
30975395ea76Smrg#
30985395ea76Smrg# This file is free software; the Free Software Foundation
30995395ea76Smrg# gives unlimited permission to copy and/or distribute it,
31005395ea76Smrg# with or without modifications, as long as this notice is preserved.
31015395ea76Smrg
31025395ea76Smrg
31035395ea76Smrg# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
31045395ea76Smrg# ---------------------------------------------------------------------------
31055395ea76Smrg# Adds support for distributing Python modules and packages.  To
31065395ea76Smrg# install modules, copy them to $(pythondir), using the python_PYTHON
31075395ea76Smrg# automake variable.  To install a package with the same name as the
31085395ea76Smrg# automake package, install to $(pkgpythondir), or use the
31095395ea76Smrg# pkgpython_PYTHON automake variable.
31105395ea76Smrg#
31115395ea76Smrg# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
31125395ea76Smrg# locations to install python extension modules (shared libraries).
31135395ea76Smrg# Another macro is required to find the appropriate flags to compile
31145395ea76Smrg# extension modules.
31155395ea76Smrg#
31165395ea76Smrg# If your package is configured with a different prefix to python,
31175395ea76Smrg# users will have to add the install directory to the PYTHONPATH
31185395ea76Smrg# environment variable, or create a .pth file (see the python
31195395ea76Smrg# documentation for details).
31205395ea76Smrg#
31215395ea76Smrg# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
31225395ea76Smrg# cause an error if the version of python installed on the system
31235395ea76Smrg# doesn't meet the requirement.  MINIMUM-VERSION should consist of
31245395ea76Smrg# numbers and dots only.
31255395ea76SmrgAC_DEFUN([AM_PATH_PYTHON],
31265395ea76Smrg [
31275395ea76Smrg  dnl Find a Python interpreter.  Python versions prior to 2.0 are not
31285395ea76Smrg  dnl supported. (2.0 was released on October 16, 2000).
31295395ea76Smrg  m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
31305395ea76Smrg[python python2 python3 dnl
31315395ea76Smrg python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 dnl
31325395ea76Smrg python3.2 python3.1 python3.0 dnl
31335395ea76Smrg python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 dnl
31345395ea76Smrg python2.0])
31355395ea76Smrg
31365395ea76Smrg  AC_ARG_VAR([PYTHON], [the Python interpreter])
31375395ea76Smrg
31385395ea76Smrg  m4_if([$1],[],[
31395395ea76Smrg    dnl No version check is needed.
31405395ea76Smrg    # Find any Python interpreter.
31415395ea76Smrg    if test -z "$PYTHON"; then
31425395ea76Smrg      AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
31435395ea76Smrg    fi
31445395ea76Smrg    am_display_PYTHON=python
31455395ea76Smrg  ], [
31465395ea76Smrg    dnl A version check is needed.
31475395ea76Smrg    if test -n "$PYTHON"; then
31485395ea76Smrg      # If the user set $PYTHON, use it and don't search something else.
31495395ea76Smrg      AC_MSG_CHECKING([whether $PYTHON version is >= $1])
31505395ea76Smrg      AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
31515395ea76Smrg			      [AC_MSG_RESULT([yes])],
31525395ea76Smrg			      [AC_MSG_RESULT([no])
31535395ea76Smrg			       AC_MSG_ERROR([Python interpreter is too old])])
31545395ea76Smrg      am_display_PYTHON=$PYTHON
31555395ea76Smrg    else
31565395ea76Smrg      # Otherwise, try each interpreter until we find one that satisfies
31575395ea76Smrg      # VERSION.
31585395ea76Smrg      AC_CACHE_CHECK([for a Python interpreter with version >= $1],
31595395ea76Smrg	[am_cv_pathless_PYTHON],[
31605395ea76Smrg	for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
31615395ea76Smrg	  test "$am_cv_pathless_PYTHON" = none && break
31625395ea76Smrg	  AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
31635395ea76Smrg	done])
31645395ea76Smrg      # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
31655395ea76Smrg      if test "$am_cv_pathless_PYTHON" = none; then
31665395ea76Smrg	PYTHON=:
31675395ea76Smrg      else
31685395ea76Smrg        AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
31695395ea76Smrg      fi
31705395ea76Smrg      am_display_PYTHON=$am_cv_pathless_PYTHON
31715395ea76Smrg    fi
31725395ea76Smrg  ])
31735395ea76Smrg
31745395ea76Smrg  if test "$PYTHON" = :; then
3175ffe57424Smrg    dnl Run any user-specified action, or abort.
31765395ea76Smrg    m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
31775395ea76Smrg  else
31785395ea76Smrg
3179ffe57424Smrg  dnl Query Python for its version number.  Although site.py simply uses
3180ffe57424Smrg  dnl sys.version[:3], printing that failed with Python 3.10, since the
3181ffe57424Smrg  dnl trailing zero was eliminated. So now we output just the major
3182ffe57424Smrg  dnl and minor version numbers, as numbers. Apparently the tertiary
3183ffe57424Smrg  dnl version is not of interest.
3184ffe57424Smrg  dnl
31855395ea76Smrg  AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
3186ffe57424Smrg    [am_cv_python_version=`$PYTHON -c "import sys; print ('%u.%u' % sys.version_info[[:2]])"`])
31875395ea76Smrg  AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
31885395ea76Smrg
3189ffe57424Smrg  dnl At times, e.g., when building shared libraries, you may want
31905395ea76Smrg  dnl to know which OS platform Python thinks this is.
3191ffe57424Smrg  dnl
31925395ea76Smrg  AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
31935395ea76Smrg    [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
31945395ea76Smrg  AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
31955395ea76Smrg
3196ffe57424Smrg  dnl emacs-page
3197ffe57424Smrg  dnl If --with-python-sys-prefix is given, use the values of sys.prefix
3198ffe57424Smrg  dnl and sys.exec_prefix for the corresponding values of PYTHON_PREFIX
3199ffe57424Smrg  dnl and PYTHON_EXEC_PREFIX. Otherwise, use the GNU ${prefix} and
3200ffe57424Smrg  dnl ${exec_prefix} variables.
3201ffe57424Smrg  dnl
3202ffe57424Smrg  dnl The two are made distinct variables so they can be overridden if
3203ffe57424Smrg  dnl need be, although general consensus is that you shouldn't need
3204ffe57424Smrg  dnl this separation.
3205ffe57424Smrg  dnl
3206ffe57424Smrg  dnl Also allow directly setting the prefixes via configure options,
3207ffe57424Smrg  dnl overriding any default.
3208ffe57424Smrg  dnl
3209ffe57424Smrg  if test "x$prefix" = xNONE; then
3210ffe57424Smrg    am__usable_prefix=$ac_default_prefix
3211ffe57424Smrg  else
3212ffe57424Smrg    am__usable_prefix=$prefix
3213ffe57424Smrg  fi
3214ffe57424Smrg
3215ffe57424Smrg  # Allow user to request using sys.* values from Python,
3216ffe57424Smrg  # instead of the GNU $prefix values.
3217ffe57424Smrg  AC_ARG_WITH([python-sys-prefix],
3218ffe57424Smrg  [AS_HELP_STRING([--with-python-sys-prefix],
3219ffe57424Smrg                  [use Python's sys.prefix and sys.exec_prefix values])],
3220ffe57424Smrg  [am_use_python_sys=:],
3221ffe57424Smrg  [am_use_python_sys=false])
3222ffe57424Smrg
3223ffe57424Smrg  # Allow user to override whatever the default Python prefix is.
3224ffe57424Smrg  AC_ARG_WITH([python_prefix],
3225ffe57424Smrg  [AS_HELP_STRING([--with-python_prefix],
3226ffe57424Smrg                  [override the default PYTHON_PREFIX])],
3227ffe57424Smrg  [am_python_prefix_subst=$withval
3228ffe57424Smrg   am_cv_python_prefix=$withval
3229ffe57424Smrg   AC_MSG_CHECKING([for explicit $am_display_PYTHON prefix])
3230ffe57424Smrg   AC_MSG_RESULT([$am_cv_python_prefix])],
3231ffe57424Smrg  [
3232ffe57424Smrg   if $am_use_python_sys; then
3233ffe57424Smrg     # using python sys.prefix value, not GNU
3234ffe57424Smrg     AC_CACHE_CHECK([for python default $am_display_PYTHON prefix],
3235ffe57424Smrg     [am_cv_python_prefix],
3236ffe57424Smrg     [am_cv_python_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.prefix)"`])
3237ffe57424Smrg
3238ffe57424Smrg     dnl If sys.prefix is a subdir of $prefix, replace the literal value of
3239ffe57424Smrg     dnl $prefix with a variable reference so it can be overridden.
3240ffe57424Smrg     case $am_cv_python_prefix in
3241ffe57424Smrg     $am__usable_prefix*)
3242ffe57424Smrg       am__strip_prefix=`echo "$am__usable_prefix" | sed 's|.|.|g'`
3243ffe57424Smrg       am_python_prefix_subst=`echo "$am_cv_python_prefix" | sed "s,^$am__strip_prefix,\\${prefix},"`
3244ffe57424Smrg       ;;
3245ffe57424Smrg     *)
3246ffe57424Smrg       am_python_prefix_subst=$am_cv_python_prefix
3247ffe57424Smrg       ;;
3248ffe57424Smrg     esac
3249ffe57424Smrg   else # using GNU prefix value, not python sys.prefix
3250ffe57424Smrg     am_python_prefix_subst='${prefix}'
3251ffe57424Smrg     am_python_prefix=$am_python_prefix_subst
3252ffe57424Smrg     AC_MSG_CHECKING([for GNU default $am_display_PYTHON prefix])
3253ffe57424Smrg     AC_MSG_RESULT([$am_python_prefix])
3254ffe57424Smrg   fi])
3255ffe57424Smrg  # Substituting python_prefix_subst value.
3256ffe57424Smrg  AC_SUBST([PYTHON_PREFIX], [$am_python_prefix_subst])
3257ffe57424Smrg
3258ffe57424Smrg  # emacs-page Now do it all over again for Python exec_prefix, but with yet
3259ffe57424Smrg  # another conditional: fall back to regular prefix if that was specified.
3260ffe57424Smrg  AC_ARG_WITH([python_exec_prefix],
3261ffe57424Smrg  [AS_HELP_STRING([--with-python_exec_prefix],
3262ffe57424Smrg                  [override the default PYTHON_EXEC_PREFIX])],
3263ffe57424Smrg  [am_python_exec_prefix_subst=$withval
3264ffe57424Smrg   am_cv_python_exec_prefix=$withval
3265ffe57424Smrg   AC_MSG_CHECKING([for explicit $am_display_PYTHON exec_prefix])
3266ffe57424Smrg   AC_MSG_RESULT([$am_cv_python_exec_prefix])],
3267ffe57424Smrg  [
3268ffe57424Smrg   # no explicit --with-python_exec_prefix, but if
3269ffe57424Smrg   # --with-python_prefix was given, use its value for python_exec_prefix too.
3270ffe57424Smrg   AS_IF([test -n "$with_python_prefix"],
3271ffe57424Smrg   [am_python_exec_prefix_subst=$with_python_prefix
3272ffe57424Smrg    am_cv_python_exec_prefix=$with_python_prefix
3273ffe57424Smrg    AC_MSG_CHECKING([for python_prefix-given $am_display_PYTHON exec_prefix])
3274ffe57424Smrg    AC_MSG_RESULT([$am_cv_python_exec_prefix])],
3275ffe57424Smrg   [
3276ffe57424Smrg    # Set am__usable_exec_prefix whether using GNU or Python values,
3277ffe57424Smrg    # since we use that variable for pyexecdir.
3278ffe57424Smrg    if test "x$exec_prefix" = xNONE; then
3279ffe57424Smrg      am__usable_exec_prefix=$am__usable_prefix
3280ffe57424Smrg    else
3281ffe57424Smrg      am__usable_exec_prefix=$exec_prefix
3282ffe57424Smrg    fi
3283ffe57424Smrg    #
3284ffe57424Smrg    if $am_use_python_sys; then # using python sys.exec_prefix, not GNU
3285ffe57424Smrg      AC_CACHE_CHECK([for python default $am_display_PYTHON exec_prefix],
3286ffe57424Smrg      [am_cv_python_exec_prefix],
3287ffe57424Smrg      [am_cv_python_exec_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.exec_prefix)"`])
3288ffe57424Smrg      dnl If sys.exec_prefix is a subdir of $exec_prefix, replace the
3289ffe57424Smrg      dnl literal value of $exec_prefix with a variable reference so it can
3290ffe57424Smrg      dnl be overridden.
3291ffe57424Smrg      case $am_cv_python_exec_prefix in
3292ffe57424Smrg      $am__usable_exec_prefix*)
3293ffe57424Smrg        am__strip_prefix=`echo "$am__usable_exec_prefix" | sed 's|.|.|g'`
3294ffe57424Smrg        am_python_exec_prefix_subst=`echo "$am_cv_python_exec_prefix" | sed "s,^$am__strip_prefix,\\${exec_prefix},"`
3295ffe57424Smrg        ;;
3296ffe57424Smrg      *)
3297ffe57424Smrg        am_python_exec_prefix_subst=$am_cv_python_exec_prefix
3298ffe57424Smrg        ;;
3299ffe57424Smrg     esac
3300ffe57424Smrg   else # using GNU $exec_prefix, not python sys.exec_prefix
3301ffe57424Smrg     am_python_exec_prefix_subst='${exec_prefix}'
3302ffe57424Smrg     am_python_exec_prefix=$am_python_exec_prefix_subst
3303ffe57424Smrg     AC_MSG_CHECKING([for GNU default $am_display_PYTHON exec_prefix])
3304ffe57424Smrg     AC_MSG_RESULT([$am_python_exec_prefix])
3305ffe57424Smrg   fi])])
3306ffe57424Smrg  # Substituting python_exec_prefix_subst.
3307ffe57424Smrg  AC_SUBST([PYTHON_EXEC_PREFIX], [$am_python_exec_prefix_subst])
3308ffe57424Smrg
3309ffe57424Smrg  # Factor out some code duplication into this shell variable.
33105395ea76Smrg  am_python_setup_sysconfig="\
33115395ea76Smrgimport sys
33125395ea76Smrg# Prefer sysconfig over distutils.sysconfig, for better compatibility
33135395ea76Smrg# with python 3.x.  See automake bug#10227.
33145395ea76Smrgtry:
33155395ea76Smrg    import sysconfig
33165395ea76Smrgexcept ImportError:
33175395ea76Smrg    can_use_sysconfig = 0
33185395ea76Smrgelse:
33195395ea76Smrg    can_use_sysconfig = 1
33205395ea76Smrg# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
33215395ea76Smrg# <https://github.com/pypa/virtualenv/issues/118>
33225395ea76Smrgtry:
33235395ea76Smrg    from platform import python_implementation
33245395ea76Smrg    if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7':
33255395ea76Smrg        can_use_sysconfig = 0
33265395ea76Smrgexcept ImportError:
33275395ea76Smrg    pass"
33285395ea76Smrg
3329ffe57424Smrg  dnl emacs-page Set up 4 directories:
33305395ea76Smrg
3331ffe57424Smrg  dnl 1. pythondir: where to install python scripts.  This is the
3332ffe57424Smrg  dnl    site-packages directory, not the python standard library
3333ffe57424Smrg  dnl    directory like in previous automake betas.  This behavior
3334ffe57424Smrg  dnl    is more consistent with lispdir.m4 for example.
33355395ea76Smrg  dnl Query distutils for this directory.
3336ffe57424Smrg  dnl
3337ffe57424Smrg  AC_CACHE_CHECK([for $am_display_PYTHON script directory (pythondir)],
3338ffe57424Smrg  [am_cv_python_pythondir],
3339ffe57424Smrg  [if test "x$am_cv_python_prefix" = x; then
3340ffe57424Smrg     am_py_prefix=$am__usable_prefix
3341ffe57424Smrg   else
3342ffe57424Smrg     am_py_prefix=$am_cv_python_prefix
3343ffe57424Smrg   fi
3344ffe57424Smrg   am_cv_python_pythondir=`$PYTHON -c "
33455395ea76Smrg$am_python_setup_sysconfig
33465395ea76Smrgif can_use_sysconfig:
3347ffe57424Smrg  sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
33485395ea76Smrgelse:
3349ffe57424Smrg  from distutils import sysconfig
3350ffe57424Smrg  sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
33515395ea76Smrgsys.stdout.write(sitedir)"`
3352ffe57424Smrg   #
3353ffe57424Smrg   case $am_cv_python_pythondir in
3354ffe57424Smrg   $am_py_prefix*)
3355ffe57424Smrg     am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
3356ffe57424Smrg     am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,\\${PYTHON_PREFIX},"`
3357ffe57424Smrg     ;;
3358ffe57424Smrg   *)
3359ffe57424Smrg     case $am_py_prefix in
3360ffe57424Smrg       /usr|/System*) ;;
3361ffe57424Smrg       *) am_cv_python_pythondir="\${PYTHON_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
3362ffe57424Smrg          ;;
33635395ea76Smrg     esac
3364ffe57424Smrg     ;;
3365ffe57424Smrg   esac
3366ffe57424Smrg  ])
33675395ea76Smrg  AC_SUBST([pythondir], [$am_cv_python_pythondir])
33685395ea76Smrg
3369ffe57424Smrg  dnl 2. pkgpythondir: $PACKAGE directory under pythondir.  Was
3370ffe57424Smrg  dnl    PYTHON_SITE_PACKAGE in previous betas, but this naming is
3371ffe57424Smrg  dnl    more consistent with the rest of automake.
3372ffe57424Smrg  dnl
33735395ea76Smrg  AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
33745395ea76Smrg
3375ffe57424Smrg  dnl 3. pyexecdir: directory for installing python extension modules
3376ffe57424Smrg  dnl    (shared libraries).
33775395ea76Smrg  dnl Query distutils for this directory.
3378ffe57424Smrg  dnl
3379ffe57424Smrg  AC_CACHE_CHECK([for $am_display_PYTHON extension module directory (pyexecdir)],
3380ffe57424Smrg  [am_cv_python_pyexecdir],
3381ffe57424Smrg  [if test "x$am_cv_python_exec_prefix" = x; then
3382ffe57424Smrg     am_py_exec_prefix=$am__usable_exec_prefix
3383ffe57424Smrg   else
3384ffe57424Smrg     am_py_exec_prefix=$am_cv_python_exec_prefix
3385ffe57424Smrg   fi
3386ffe57424Smrg   am_cv_python_pyexecdir=`$PYTHON -c "
33875395ea76Smrg$am_python_setup_sysconfig
33885395ea76Smrgif can_use_sysconfig:
3389ffe57424Smrg  sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_exec_prefix'})
33905395ea76Smrgelse:
3391ffe57424Smrg  from distutils import sysconfig
3392ffe57424Smrg  sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_exec_prefix')
33935395ea76Smrgsys.stdout.write(sitedir)"`
3394ffe57424Smrg   #
3395ffe57424Smrg   case $am_cv_python_pyexecdir in
3396ffe57424Smrg   $am_py_exec_prefix*)
3397ffe57424Smrg     am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
3398ffe57424Smrg     am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,\\${PYTHON_EXEC_PREFIX},"`
3399ffe57424Smrg     ;;
3400ffe57424Smrg   *)
3401ffe57424Smrg     case $am_py_exec_prefix in
3402ffe57424Smrg       /usr|/System*) ;;
3403ffe57424Smrg       *) am_cv_python_pyexecdir="\${PYTHON_EXEC_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
3404ffe57424Smrg          ;;
34055395ea76Smrg     esac
3406ffe57424Smrg     ;;
3407ffe57424Smrg   esac
3408ffe57424Smrg  ])
34095395ea76Smrg  AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
34105395ea76Smrg
3411ffe57424Smrg  dnl 4. pkgpyexecdir: $(pyexecdir)/$(PACKAGE)
3412ffe57424Smrg  dnl
34135395ea76Smrg  AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
34145395ea76Smrg
34155395ea76Smrg  dnl Run any user-specified action.
34165395ea76Smrg  $2
34175395ea76Smrg  fi
34185395ea76Smrg])
34195395ea76Smrg
34205395ea76Smrg
34215395ea76Smrg# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
34225395ea76Smrg# ---------------------------------------------------------------------------
34235395ea76Smrg# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
34245395ea76Smrg# Run ACTION-IF-FALSE otherwise.
34255395ea76Smrg# This test uses sys.hexversion instead of the string equivalent (first
34265395ea76Smrg# word of sys.version), in order to cope with versions such as 2.2c1.
34275395ea76Smrg# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
34285395ea76SmrgAC_DEFUN([AM_PYTHON_CHECK_VERSION],
34295395ea76Smrg [prog="import sys
34305395ea76Smrg# split strings by '.' and convert to numeric.  Append some zeros
34315395ea76Smrg# because we need at least 4 digits for the hex conversion.
34325395ea76Smrg# map returns an iterator in Python 3.0 and a list in 2.x
34335395ea76Smrgminver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
34345395ea76Smrgminverhex = 0
34355395ea76Smrg# xrange is not present in Python 3.0 and range returns an iterator
34365395ea76Smrgfor i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
34375395ea76Smrgsys.exit(sys.hexversion < minverhex)"
34385395ea76Smrg  AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
34395395ea76Smrg
3440ffe57424Smrg# Copyright (C) 2001-2021 Free Software Foundation, Inc.
344117ca54c3Smrg#
344217ca54c3Smrg# This file is free software; the Free Software Foundation
344317ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
344417ca54c3Smrg# with or without modifications, as long as this notice is preserved.
344517ca54c3Smrg
344617ca54c3Smrg# AM_RUN_LOG(COMMAND)
344717ca54c3Smrg# -------------------
344817ca54c3Smrg# Run COMMAND, save the exit status in ac_status, and log it.
344917ca54c3Smrg# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
345017ca54c3SmrgAC_DEFUN([AM_RUN_LOG],
345117ca54c3Smrg[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
345217ca54c3Smrg   ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
345317ca54c3Smrg   ac_status=$?
345417ca54c3Smrg   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
345517ca54c3Smrg   (exit $ac_status); }])
345617ca54c3Smrg
345717ca54c3Smrg# Check to make sure that the build environment is sane.    -*- Autoconf -*-
345817ca54c3Smrg
3459ffe57424Smrg# Copyright (C) 1996-2021 Free Software Foundation, Inc.
346017ca54c3Smrg#
346117ca54c3Smrg# This file is free software; the Free Software Foundation
346217ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
346317ca54c3Smrg# with or without modifications, as long as this notice is preserved.
346417ca54c3Smrg
346517ca54c3Smrg# AM_SANITY_CHECK
346617ca54c3Smrg# ---------------
346717ca54c3SmrgAC_DEFUN([AM_SANITY_CHECK],
346817ca54c3Smrg[AC_MSG_CHECKING([whether build environment is sane])
346917ca54c3Smrg# Reject unsafe characters in $srcdir or the absolute working directory
347017ca54c3Smrg# name.  Accept space and tab only in the latter.
347117ca54c3Smrgam_lf='
347217ca54c3Smrg'
347317ca54c3Smrgcase `pwd` in
347417ca54c3Smrg  *[[\\\"\#\$\&\'\`$am_lf]]*)
347517ca54c3Smrg    AC_MSG_ERROR([unsafe absolute working directory name]);;
347617ca54c3Smrgesac
347717ca54c3Smrgcase $srcdir in
347817ca54c3Smrg  *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
347917ca54c3Smrg    AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
348017ca54c3Smrgesac
348117ca54c3Smrg
348217ca54c3Smrg# Do 'set' in a subshell so we don't clobber the current shell's
348317ca54c3Smrg# arguments.  Must try -L first in case configure is actually a
348417ca54c3Smrg# symlink; some systems play weird games with the mod time of symlinks
348517ca54c3Smrg# (eg FreeBSD returns the mod time of the symlink's containing
348617ca54c3Smrg# directory).
348717ca54c3Smrgif (
348817ca54c3Smrg   am_has_slept=no
348917ca54c3Smrg   for am_try in 1 2; do
349017ca54c3Smrg     echo "timestamp, slept: $am_has_slept" > conftest.file
349117ca54c3Smrg     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
349217ca54c3Smrg     if test "$[*]" = "X"; then
349317ca54c3Smrg	# -L didn't work.
349417ca54c3Smrg	set X `ls -t "$srcdir/configure" conftest.file`
349517ca54c3Smrg     fi
349617ca54c3Smrg     if test "$[*]" != "X $srcdir/configure conftest.file" \
349717ca54c3Smrg	&& test "$[*]" != "X conftest.file $srcdir/configure"; then
349817ca54c3Smrg
349917ca54c3Smrg	# If neither matched, then we have a broken ls.  This can happen
350017ca54c3Smrg	# if, for instance, CONFIG_SHELL is bash and it inherits a
350117ca54c3Smrg	# broken ls alias from the environment.  This has actually
350217ca54c3Smrg	# happened.  Such a system could not be considered "sane".
350317ca54c3Smrg	AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
350417ca54c3Smrg  alias in your environment])
350517ca54c3Smrg     fi
350617ca54c3Smrg     if test "$[2]" = conftest.file || test $am_try -eq 2; then
350717ca54c3Smrg       break
350817ca54c3Smrg     fi
350917ca54c3Smrg     # Just in case.
351017ca54c3Smrg     sleep 1
351117ca54c3Smrg     am_has_slept=yes
351217ca54c3Smrg   done
351317ca54c3Smrg   test "$[2]" = conftest.file
351417ca54c3Smrg   )
351517ca54c3Smrgthen
351617ca54c3Smrg   # Ok.
351717ca54c3Smrg   :
351817ca54c3Smrgelse
351917ca54c3Smrg   AC_MSG_ERROR([newly created file is older than distributed files!
352017ca54c3SmrgCheck your system clock])
352117ca54c3Smrgfi
352217ca54c3SmrgAC_MSG_RESULT([yes])
352317ca54c3Smrg# If we didn't sleep, we still need to ensure time stamps of config.status and
352417ca54c3Smrg# generated files are strictly newer.
352517ca54c3Smrgam_sleep_pid=
352617ca54c3Smrgif grep 'slept: no' conftest.file >/dev/null 2>&1; then
352717ca54c3Smrg  ( sleep 1 ) &
352817ca54c3Smrg  am_sleep_pid=$!
352917ca54c3Smrgfi
353017ca54c3SmrgAC_CONFIG_COMMANDS_PRE(
353117ca54c3Smrg  [AC_MSG_CHECKING([that generated files are newer than configure])
353217ca54c3Smrg   if test -n "$am_sleep_pid"; then
353317ca54c3Smrg     # Hide warnings about reused PIDs.
353417ca54c3Smrg     wait $am_sleep_pid 2>/dev/null
353517ca54c3Smrg   fi
353617ca54c3Smrg   AC_MSG_RESULT([done])])
353717ca54c3Smrgrm -f conftest.file
353817ca54c3Smrg])
353917ca54c3Smrg
3540ffe57424Smrg# Copyright (C) 2009-2021 Free Software Foundation, Inc.
354117ca54c3Smrg#
354217ca54c3Smrg# This file is free software; the Free Software Foundation
354317ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
354417ca54c3Smrg# with or without modifications, as long as this notice is preserved.
354517ca54c3Smrg
354617ca54c3Smrg# AM_SILENT_RULES([DEFAULT])
354717ca54c3Smrg# --------------------------
354817ca54c3Smrg# Enable less verbose build rules; with the default set to DEFAULT
354917ca54c3Smrg# ("yes" being less verbose, "no" or empty being verbose).
355017ca54c3SmrgAC_DEFUN([AM_SILENT_RULES],
355117ca54c3Smrg[AC_ARG_ENABLE([silent-rules], [dnl
355217ca54c3SmrgAS_HELP_STRING(
355317ca54c3Smrg  [--enable-silent-rules],
355417ca54c3Smrg  [less verbose build output (undo: "make V=1")])
355517ca54c3SmrgAS_HELP_STRING(
355617ca54c3Smrg  [--disable-silent-rules],
355717ca54c3Smrg  [verbose build output (undo: "make V=0")])dnl
355817ca54c3Smrg])
355917ca54c3Smrgcase $enable_silent_rules in @%:@ (((
356017ca54c3Smrg  yes) AM_DEFAULT_VERBOSITY=0;;
356117ca54c3Smrg   no) AM_DEFAULT_VERBOSITY=1;;
356217ca54c3Smrg    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
356317ca54c3Smrgesac
356417ca54c3Smrgdnl
356517ca54c3Smrgdnl A few 'make' implementations (e.g., NonStop OS and NextStep)
356617ca54c3Smrgdnl do not support nested variable expansions.
356717ca54c3Smrgdnl See automake bug#9928 and bug#10237.
356817ca54c3Smrgam_make=${MAKE-make}
356917ca54c3SmrgAC_CACHE_CHECK([whether $am_make supports nested variables],
357017ca54c3Smrg   [am_cv_make_support_nested_variables],
357117ca54c3Smrg   [if AS_ECHO([['TRUE=$(BAR$(V))
357217ca54c3SmrgBAR0=false
357317ca54c3SmrgBAR1=true
357417ca54c3SmrgV=1
357517ca54c3Smrgam__doit:
357617ca54c3Smrg	@$(TRUE)
357717ca54c3Smrg.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
357817ca54c3Smrg  am_cv_make_support_nested_variables=yes
357917ca54c3Smrgelse
358017ca54c3Smrg  am_cv_make_support_nested_variables=no
358117ca54c3Smrgfi])
358217ca54c3Smrgif test $am_cv_make_support_nested_variables = yes; then
358317ca54c3Smrg  dnl Using '$V' instead of '$(V)' breaks IRIX make.
358417ca54c3Smrg  AM_V='$(V)'
358517ca54c3Smrg  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
358617ca54c3Smrgelse
358717ca54c3Smrg  AM_V=$AM_DEFAULT_VERBOSITY
358817ca54c3Smrg  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
358917ca54c3Smrgfi
359017ca54c3SmrgAC_SUBST([AM_V])dnl
359117ca54c3SmrgAM_SUBST_NOTMAKE([AM_V])dnl
359217ca54c3SmrgAC_SUBST([AM_DEFAULT_V])dnl
359317ca54c3SmrgAM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
359417ca54c3SmrgAC_SUBST([AM_DEFAULT_VERBOSITY])dnl
359517ca54c3SmrgAM_BACKSLASH='\'
359617ca54c3SmrgAC_SUBST([AM_BACKSLASH])dnl
359717ca54c3Smrg_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
359817ca54c3Smrg])
359917ca54c3Smrg
3600ffe57424Smrg# Copyright (C) 2001-2021 Free Software Foundation, Inc.
360117ca54c3Smrg#
360217ca54c3Smrg# This file is free software; the Free Software Foundation
360317ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
360417ca54c3Smrg# with or without modifications, as long as this notice is preserved.
360517ca54c3Smrg
360617ca54c3Smrg# AM_PROG_INSTALL_STRIP
360717ca54c3Smrg# ---------------------
360817ca54c3Smrg# One issue with vendor 'install' (even GNU) is that you can't
360917ca54c3Smrg# specify the program used to strip binaries.  This is especially
361017ca54c3Smrg# annoying in cross-compiling environments, where the build's strip
361117ca54c3Smrg# is unlikely to handle the host's binaries.
361217ca54c3Smrg# Fortunately install-sh will honor a STRIPPROG variable, so we
361317ca54c3Smrg# always use install-sh in "make install-strip", and initialize
361417ca54c3Smrg# STRIPPROG with the value of the STRIP variable (set by the user).
361517ca54c3SmrgAC_DEFUN([AM_PROG_INSTALL_STRIP],
361617ca54c3Smrg[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
361717ca54c3Smrg# Installed binaries are usually stripped using 'strip' when the user
361817ca54c3Smrg# run "make install-strip".  However 'strip' might not be the right
361917ca54c3Smrg# tool to use in cross-compilation environments, therefore Automake
362017ca54c3Smrg# will honor the 'STRIP' environment variable to overrule this program.
362117ca54c3Smrgdnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
362217ca54c3Smrgif test "$cross_compiling" != no; then
362317ca54c3Smrg  AC_CHECK_TOOL([STRIP], [strip], :)
362417ca54c3Smrgfi
362517ca54c3SmrgINSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
362617ca54c3SmrgAC_SUBST([INSTALL_STRIP_PROGRAM])])
362717ca54c3Smrg
3628ffe57424Smrg# Copyright (C) 2006-2021 Free Software Foundation, Inc.
362917ca54c3Smrg#
363017ca54c3Smrg# This file is free software; the Free Software Foundation
363117ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
363217ca54c3Smrg# with or without modifications, as long as this notice is preserved.
363317ca54c3Smrg
363417ca54c3Smrg# _AM_SUBST_NOTMAKE(VARIABLE)
363517ca54c3Smrg# ---------------------------
363617ca54c3Smrg# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
363717ca54c3Smrg# This macro is traced by Automake.
363817ca54c3SmrgAC_DEFUN([_AM_SUBST_NOTMAKE])
363917ca54c3Smrg
364017ca54c3Smrg# AM_SUBST_NOTMAKE(VARIABLE)
364117ca54c3Smrg# --------------------------
364217ca54c3Smrg# Public sister of _AM_SUBST_NOTMAKE.
364317ca54c3SmrgAC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
364417ca54c3Smrg
364517ca54c3Smrg# Check how to create a tarball.                            -*- Autoconf -*-
364617ca54c3Smrg
3647ffe57424Smrg# Copyright (C) 2004-2021 Free Software Foundation, Inc.
364817ca54c3Smrg#
364917ca54c3Smrg# This file is free software; the Free Software Foundation
365017ca54c3Smrg# gives unlimited permission to copy and/or distribute it,
365117ca54c3Smrg# with or without modifications, as long as this notice is preserved.
365217ca54c3Smrg
365317ca54c3Smrg# _AM_PROG_TAR(FORMAT)
365417ca54c3Smrg# --------------------
365517ca54c3Smrg# Check how to create a tarball in format FORMAT.
365617ca54c3Smrg# FORMAT should be one of 'v7', 'ustar', or 'pax'.
365717ca54c3Smrg#
365817ca54c3Smrg# Substitute a variable $(am__tar) that is a command
365917ca54c3Smrg# writing to stdout a FORMAT-tarball containing the directory
366017ca54c3Smrg# $tardir.
366117ca54c3Smrg#     tardir=directory && $(am__tar) > result.tar
366217ca54c3Smrg#
366317ca54c3Smrg# Substitute a variable $(am__untar) that extract such
366417ca54c3Smrg# a tarball read from stdin.
366517ca54c3Smrg#     $(am__untar) < result.tar
366617ca54c3Smrg#
366717ca54c3SmrgAC_DEFUN([_AM_PROG_TAR],
366817ca54c3Smrg[# Always define AMTAR for backward compatibility.  Yes, it's still used
366917ca54c3Smrg# in the wild :-(  We should find a proper way to deprecate it ...
367017ca54c3SmrgAC_SUBST([AMTAR], ['$${TAR-tar}'])
367117ca54c3Smrg
367217ca54c3Smrg# We'll loop over all known methods to create a tar archive until one works.
367317ca54c3Smrg_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
367417ca54c3Smrg
367517ca54c3Smrgm4_if([$1], [v7],
367617ca54c3Smrg  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
367717ca54c3Smrg
367817ca54c3Smrg  [m4_case([$1],
367917ca54c3Smrg    [ustar],
368017ca54c3Smrg     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
368117ca54c3Smrg      # There is notably a 21 bits limit for the UID and the GID.  In fact,
368217ca54c3Smrg      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
368317ca54c3Smrg      # and bug#13588).
368417ca54c3Smrg      am_max_uid=2097151 # 2^21 - 1
368517ca54c3Smrg      am_max_gid=$am_max_uid
368617ca54c3Smrg      # The $UID and $GID variables are not portable, so we need to resort
368717ca54c3Smrg      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
368817ca54c3Smrg      # below are definitely unexpected, so allow the users to see them
368917ca54c3Smrg      # (that is, avoid stderr redirection).
369017ca54c3Smrg      am_uid=`id -u || echo unknown`
369117ca54c3Smrg      am_gid=`id -g || echo unknown`
369217ca54c3Smrg      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
369317ca54c3Smrg      if test $am_uid -le $am_max_uid; then
369417ca54c3Smrg         AC_MSG_RESULT([yes])
369517ca54c3Smrg      else
369617ca54c3Smrg         AC_MSG_RESULT([no])
369717ca54c3Smrg         _am_tools=none
369817ca54c3Smrg      fi
369917ca54c3Smrg      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
370017ca54c3Smrg      if test $am_gid -le $am_max_gid; then
370117ca54c3Smrg         AC_MSG_RESULT([yes])
370217ca54c3Smrg      else
370317ca54c3Smrg        AC_MSG_RESULT([no])
370417ca54c3Smrg        _am_tools=none
370517ca54c3Smrg      fi],
370617ca54c3Smrg
370717ca54c3Smrg  [pax],
370817ca54c3Smrg    [],
370917ca54c3Smrg
371017ca54c3Smrg  [m4_fatal([Unknown tar format])])
371117ca54c3Smrg
371217ca54c3Smrg  AC_MSG_CHECKING([how to create a $1 tar archive])
371317ca54c3Smrg
371417ca54c3Smrg  # Go ahead even if we have the value already cached.  We do so because we
371517ca54c3Smrg  # need to set the values for the 'am__tar' and 'am__untar' variables.
371617ca54c3Smrg  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
371717ca54c3Smrg
371817ca54c3Smrg  for _am_tool in $_am_tools; do
371917ca54c3Smrg    case $_am_tool in
372017ca54c3Smrg    gnutar)
372117ca54c3Smrg      for _am_tar in tar gnutar gtar; do
372217ca54c3Smrg        AM_RUN_LOG([$_am_tar --version]) && break
372317ca54c3Smrg      done
372417ca54c3Smrg      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
372517ca54c3Smrg      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
372617ca54c3Smrg      am__untar="$_am_tar -xf -"
372717ca54c3Smrg      ;;
372817ca54c3Smrg    plaintar)
372917ca54c3Smrg      # Must skip GNU tar: if it does not support --format= it doesn't create
373017ca54c3Smrg      # ustar tarball either.
373117ca54c3Smrg      (tar --version) >/dev/null 2>&1 && continue
373217ca54c3Smrg      am__tar='tar chf - "$$tardir"'
373317ca54c3Smrg      am__tar_='tar chf - "$tardir"'
373417ca54c3Smrg      am__untar='tar xf -'
373517ca54c3Smrg      ;;
373617ca54c3Smrg    pax)
373717ca54c3Smrg      am__tar='pax -L -x $1 -w "$$tardir"'
373817ca54c3Smrg      am__tar_='pax -L -x $1 -w "$tardir"'
373917ca54c3Smrg      am__untar='pax -r'
374017ca54c3Smrg      ;;
374117ca54c3Smrg    cpio)
374217ca54c3Smrg      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
374317ca54c3Smrg      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
374417ca54c3Smrg      am__untar='cpio -i -H $1 -d'
374517ca54c3Smrg      ;;
374617ca54c3Smrg    none)
374717ca54c3Smrg      am__tar=false
374817ca54c3Smrg      am__tar_=false
374917ca54c3Smrg      am__untar=false
375017ca54c3Smrg      ;;
375117ca54c3Smrg    esac
375217ca54c3Smrg
375317ca54c3Smrg    # If the value was cached, stop now.  We just wanted to have am__tar
375417ca54c3Smrg    # and am__untar set.
375517ca54c3Smrg    test -n "${am_cv_prog_tar_$1}" && break
375617ca54c3Smrg
375717ca54c3Smrg    # tar/untar a dummy directory, and stop if the command works.
375817ca54c3Smrg    rm -rf conftest.dir
375917ca54c3Smrg    mkdir conftest.dir
376017ca54c3Smrg    echo GrepMe > conftest.dir/file
376117ca54c3Smrg    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
376217ca54c3Smrg    rm -rf conftest.dir
376317ca54c3Smrg    if test -s conftest.tar; then
376417ca54c3Smrg      AM_RUN_LOG([$am__untar <conftest.tar])
376517ca54c3Smrg      AM_RUN_LOG([cat conftest.dir/file])
376617ca54c3Smrg      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
376717ca54c3Smrg    fi
376817ca54c3Smrg  done
376917ca54c3Smrg  rm -rf conftest.dir
377017ca54c3Smrg
377117ca54c3Smrg  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
377217ca54c3Smrg  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
377317ca54c3Smrg
377417ca54c3SmrgAC_SUBST([am__tar])
377517ca54c3SmrgAC_SUBST([am__untar])
377617ca54c3Smrg]) # _AM_PROG_TAR
377717ca54c3Smrg
3778