2045 lines
76 KiB
Text
2045 lines
76 KiB
Text
# generated automatically by aclocal 1.16.5 -*- Autoconf -*-
|
|
|
|
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
|
|
|
|
# This file is free software; the Free Software Foundation
|
|
# gives unlimited permission to copy and/or distribute it,
|
|
# with or without modifications, as long as this notice is preserved.
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
# PARTICULAR PURPOSE.
|
|
|
|
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
|
|
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
|
# serial 11 (pkg-config-0.29.1)
|
|
|
|
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
|
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
|
|
dnl
|
|
dnl This program is free software; you can redistribute it and/or modify
|
|
dnl it under the terms of the GNU General Public License as published by
|
|
dnl the Free Software Foundation; either version 2 of the License, or
|
|
dnl (at your option) any later version.
|
|
dnl
|
|
dnl This program is distributed in the hope that it will be useful, but
|
|
dnl WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
dnl General Public License for more details.
|
|
dnl
|
|
dnl You should have received a copy of the GNU General Public License
|
|
dnl along with this program; if not, write to the Free Software
|
|
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
dnl 02111-1307, USA.
|
|
dnl
|
|
dnl As a special exception to the GNU General Public License, if you
|
|
dnl distribute this file as part of a program that contains a
|
|
dnl configuration script generated by Autoconf, you may include it under
|
|
dnl the same distribution terms that you use for the rest of that
|
|
dnl program.
|
|
|
|
dnl PKG_PREREQ(MIN-VERSION)
|
|
dnl -----------------------
|
|
dnl Since: 0.29
|
|
dnl
|
|
dnl Verify that the version of the pkg-config macros are at least
|
|
dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
|
|
dnl installed version of pkg-config, this checks the developer's version
|
|
dnl of pkg.m4 when generating configure.
|
|
dnl
|
|
dnl To ensure that this macro is defined, also add:
|
|
dnl m4_ifndef([PKG_PREREQ],
|
|
dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
|
|
dnl
|
|
dnl See the "Since" comment for each macro you use to see what version
|
|
dnl of the macros you require.
|
|
m4_defun([PKG_PREREQ],
|
|
[m4_define([PKG_MACROS_VERSION], [0.29.1])
|
|
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
|
|
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
|
|
])dnl PKG_PREREQ
|
|
|
|
dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
|
|
dnl ----------------------------------
|
|
dnl Since: 0.16
|
|
dnl
|
|
dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
|
|
dnl first found in the path. Checks that the version of pkg-config found
|
|
dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
|
|
dnl used since that's the first version where most current features of
|
|
dnl pkg-config existed.
|
|
AC_DEFUN([PKG_PROG_PKG_CONFIG],
|
|
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
|
|
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
|
|
m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
|
|
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
|
|
AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
|
|
AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
|
|
|
|
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
|
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
|
|
fi
|
|
if test -n "$PKG_CONFIG"; then
|
|
_pkg_min_version=m4_default([$1], [0.9.0])
|
|
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
|
|
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
PKG_CONFIG=""
|
|
fi
|
|
fi[]dnl
|
|
])dnl PKG_PROG_PKG_CONFIG
|
|
|
|
dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
|
dnl -------------------------------------------------------------------
|
|
dnl Since: 0.18
|
|
dnl
|
|
dnl Check to see whether a particular set of modules exists. Similar to
|
|
dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
|
|
dnl
|
|
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
|
dnl only at the first occurence in configure.ac, so if the first place
|
|
dnl it's called might be skipped (such as if it is within an "if", you
|
|
dnl have to call PKG_CHECK_EXISTS manually
|
|
AC_DEFUN([PKG_CHECK_EXISTS],
|
|
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
|
if test -n "$PKG_CONFIG" && \
|
|
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
|
|
m4_default([$2], [:])
|
|
m4_ifvaln([$3], [else
|
|
$3])dnl
|
|
fi])
|
|
|
|
dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
|
|
dnl ---------------------------------------------
|
|
dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
|
|
dnl pkg_failed based on the result.
|
|
m4_define([_PKG_CONFIG],
|
|
[if test -n "$$1"; then
|
|
pkg_cv_[]$1="$$1"
|
|
elif test -n "$PKG_CONFIG"; then
|
|
PKG_CHECK_EXISTS([$3],
|
|
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
|
|
test "x$?" != "x0" && pkg_failed=yes ],
|
|
[pkg_failed=yes])
|
|
else
|
|
pkg_failed=untried
|
|
fi[]dnl
|
|
])dnl _PKG_CONFIG
|
|
|
|
dnl _PKG_SHORT_ERRORS_SUPPORTED
|
|
dnl ---------------------------
|
|
dnl Internal check to see if pkg-config supports short errors.
|
|
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
|
|
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
|
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
|
_pkg_short_errors_supported=yes
|
|
else
|
|
_pkg_short_errors_supported=no
|
|
fi[]dnl
|
|
])dnl _PKG_SHORT_ERRORS_SUPPORTED
|
|
|
|
|
|
dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
|
dnl [ACTION-IF-NOT-FOUND])
|
|
dnl --------------------------------------------------------------
|
|
dnl Since: 0.4.0
|
|
dnl
|
|
dnl Note that if there is a possibility the first call to
|
|
dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
|
|
dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
|
|
AC_DEFUN([PKG_CHECK_MODULES],
|
|
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
|
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
|
|
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
|
|
|
|
pkg_failed=no
|
|
AC_MSG_CHECKING([for $1])
|
|
|
|
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
|
|
_PKG_CONFIG([$1][_LIBS], [libs], [$2])
|
|
|
|
m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
|
|
and $1[]_LIBS to avoid the need to call pkg-config.
|
|
See the pkg-config man page for more details.])
|
|
|
|
if test $pkg_failed = yes; then
|
|
AC_MSG_RESULT([no])
|
|
_PKG_SHORT_ERRORS_SUPPORTED
|
|
if test $_pkg_short_errors_supported = yes; then
|
|
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
|
|
else
|
|
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
|
|
fi
|
|
# Put the nasty error message in config.log where it belongs
|
|
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
|
|
|
|
m4_default([$4], [AC_MSG_ERROR(
|
|
[Package requirements ($2) were not met:
|
|
|
|
$$1_PKG_ERRORS
|
|
|
|
Consider adjusting the PKG_CONFIG_PATH environment variable if you
|
|
installed software in a non-standard prefix.
|
|
|
|
_PKG_TEXT])[]dnl
|
|
])
|
|
elif test $pkg_failed = untried; then
|
|
AC_MSG_RESULT([no])
|
|
m4_default([$4], [AC_MSG_FAILURE(
|
|
[The pkg-config script could not be found or is too old. Make sure it
|
|
is in your PATH or set the PKG_CONFIG environment variable to the full
|
|
path to pkg-config.
|
|
|
|
_PKG_TEXT
|
|
|
|
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
|
|
])
|
|
else
|
|
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
|
|
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
|
|
AC_MSG_RESULT([yes])
|
|
$3
|
|
fi[]dnl
|
|
])dnl PKG_CHECK_MODULES
|
|
|
|
|
|
dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
|
dnl [ACTION-IF-NOT-FOUND])
|
|
dnl ---------------------------------------------------------------------
|
|
dnl Since: 0.29
|
|
dnl
|
|
dnl Checks for existence of MODULES and gathers its build flags with
|
|
dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
|
|
dnl and VARIABLE-PREFIX_LIBS from --libs.
|
|
dnl
|
|
dnl Note that if there is a possibility the first call to
|
|
dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
|
|
dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
|
|
dnl configure.ac.
|
|
AC_DEFUN([PKG_CHECK_MODULES_STATIC],
|
|
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
|
_save_PKG_CONFIG=$PKG_CONFIG
|
|
PKG_CONFIG="$PKG_CONFIG --static"
|
|
PKG_CHECK_MODULES($@)
|
|
PKG_CONFIG=$_save_PKG_CONFIG[]dnl
|
|
])dnl PKG_CHECK_MODULES_STATIC
|
|
|
|
|
|
dnl PKG_INSTALLDIR([DIRECTORY])
|
|
dnl -------------------------
|
|
dnl Since: 0.27
|
|
dnl
|
|
dnl Substitutes the variable pkgconfigdir as the location where a module
|
|
dnl should install pkg-config .pc files. By default the directory is
|
|
dnl $libdir/pkgconfig, but the default can be changed by passing
|
|
dnl DIRECTORY. The user can override through the --with-pkgconfigdir
|
|
dnl parameter.
|
|
AC_DEFUN([PKG_INSTALLDIR],
|
|
[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
|
|
m4_pushdef([pkg_description],
|
|
[pkg-config installation directory @<:@]pkg_default[@:>@])
|
|
AC_ARG_WITH([pkgconfigdir],
|
|
[AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
|
|
[with_pkgconfigdir=]pkg_default)
|
|
AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
|
|
m4_popdef([pkg_default])
|
|
m4_popdef([pkg_description])
|
|
])dnl PKG_INSTALLDIR
|
|
|
|
|
|
dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
|
|
dnl --------------------------------
|
|
dnl Since: 0.27
|
|
dnl
|
|
dnl Substitutes the variable noarch_pkgconfigdir as the location where a
|
|
dnl module should install arch-independent pkg-config .pc files. By
|
|
dnl default the directory is $datadir/pkgconfig, but the default can be
|
|
dnl changed by passing DIRECTORY. The user can override through the
|
|
dnl --with-noarch-pkgconfigdir parameter.
|
|
AC_DEFUN([PKG_NOARCH_INSTALLDIR],
|
|
[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
|
|
m4_pushdef([pkg_description],
|
|
[pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
|
|
AC_ARG_WITH([noarch-pkgconfigdir],
|
|
[AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
|
|
[with_noarch_pkgconfigdir=]pkg_default)
|
|
AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
|
|
m4_popdef([pkg_default])
|
|
m4_popdef([pkg_description])
|
|
])dnl PKG_NOARCH_INSTALLDIR
|
|
|
|
|
|
dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
|
|
dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
|
dnl -------------------------------------------
|
|
dnl Since: 0.28
|
|
dnl
|
|
dnl Retrieves the value of the pkg-config variable for the given module.
|
|
AC_DEFUN([PKG_CHECK_VAR],
|
|
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
|
AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
|
|
|
|
_PKG_CONFIG([$1], [variable="][$3]["], [$2])
|
|
AS_VAR_COPY([$1], [pkg_cv_][$1])
|
|
|
|
AS_VAR_IF([$1], [""], [$5], [$4])dnl
|
|
])dnl PKG_CHECK_VAR
|
|
|
|
dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
|
|
dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
|
|
dnl [DESCRIPTION], [DEFAULT])
|
|
dnl ------------------------------------------
|
|
dnl
|
|
dnl Prepare a "--with-" configure option using the lowercase
|
|
dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and
|
|
dnl PKG_CHECK_MODULES in a single macro.
|
|
AC_DEFUN([PKG_WITH_MODULES],
|
|
[
|
|
m4_pushdef([with_arg], m4_tolower([$1]))
|
|
|
|
m4_pushdef([description],
|
|
[m4_default([$5], [build with ]with_arg[ support])])
|
|
|
|
m4_pushdef([def_arg], [m4_default([$6], [auto])])
|
|
m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes])
|
|
m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no])
|
|
|
|
m4_case(def_arg,
|
|
[yes],[m4_pushdef([with_without], [--without-]with_arg)],
|
|
[m4_pushdef([with_without],[--with-]with_arg)])
|
|
|
|
AC_ARG_WITH(with_arg,
|
|
AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
|
|
[AS_TR_SH([with_]with_arg)=def_arg])
|
|
|
|
AS_CASE([$AS_TR_SH([with_]with_arg)],
|
|
[yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
|
|
[auto],[PKG_CHECK_MODULES([$1],[$2],
|
|
[m4_n([def_action_if_found]) $3],
|
|
[m4_n([def_action_if_not_found]) $4])])
|
|
|
|
m4_popdef([with_arg])
|
|
m4_popdef([description])
|
|
m4_popdef([def_arg])
|
|
|
|
])dnl PKG_WITH_MODULES
|
|
|
|
dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
|
|
dnl [DESCRIPTION], [DEFAULT])
|
|
dnl -----------------------------------------------
|
|
dnl
|
|
dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES
|
|
dnl check._[VARIABLE-PREFIX] is exported as make variable.
|
|
AC_DEFUN([PKG_HAVE_WITH_MODULES],
|
|
[
|
|
PKG_WITH_MODULES([$1],[$2],,,[$3],[$4])
|
|
|
|
AM_CONDITIONAL([HAVE_][$1],
|
|
[test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
|
|
])dnl PKG_HAVE_WITH_MODULES
|
|
|
|
dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
|
|
dnl [DESCRIPTION], [DEFAULT])
|
|
dnl ------------------------------------------------------
|
|
dnl
|
|
dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after
|
|
dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make
|
|
dnl and preprocessor variable.
|
|
AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES],
|
|
[
|
|
PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4])
|
|
|
|
AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
|
|
[AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
|
|
])dnl PKG_HAVE_DEFINE_WITH_MODULES
|
|
|
|
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
|
|
#
|
|
# This file is free software; the Free Software Foundation
|
|
# gives unlimited permission to copy and/or distribute it,
|
|
# with or without modifications, as long as this notice is preserved.
|
|
|
|
|
|
# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
|
# ---------------------------------------------------------------------------
|
|
# Adds support for distributing Python modules and packages. To
|
|
# install modules, copy them to $(pythondir), using the python_PYTHON
|
|
# automake variable. To install a package with the same name as the
|
|
# automake package, install to $(pkgpythondir), or use the
|
|
# pkgpython_PYTHON automake variable.
|
|
#
|
|
# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
|
|
# locations to install python extension modules (shared libraries).
|
|
# Another macro is required to find the appropriate flags to compile
|
|
# extension modules.
|
|
#
|
|
# If your package is configured with a different prefix to python,
|
|
# users will have to add the install directory to the PYTHONPATH
|
|
# environment variable, or create a .pth file (see the python
|
|
# documentation for details).
|
|
#
|
|
# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
|
|
# cause an error if the version of python installed on the system
|
|
# doesn't meet the requirement. MINIMUM-VERSION should consist of
|
|
# numbers and dots only.
|
|
AC_DEFUN([AM_PATH_PYTHON],
|
|
[
|
|
dnl Find a Python interpreter. Python versions prior to 2.0 are not
|
|
dnl supported. (2.0 was released on October 16, 2000).
|
|
m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
|
|
[python python2 python3 dnl
|
|
python3.11 python3.10 dnl
|
|
python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 dnl
|
|
python3.2 python3.1 python3.0 dnl
|
|
python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 dnl
|
|
python2.0])
|
|
|
|
AC_ARG_VAR([PYTHON], [the Python interpreter])
|
|
|
|
m4_if([$1],[],[
|
|
dnl No version check is needed.
|
|
# Find any Python interpreter.
|
|
if test -z "$PYTHON"; then
|
|
AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
|
|
fi
|
|
am_display_PYTHON=python
|
|
], [
|
|
dnl A version check is needed.
|
|
if test -n "$PYTHON"; then
|
|
# If the user set $PYTHON, use it and don't search something else.
|
|
AC_MSG_CHECKING([whether $PYTHON version is >= $1])
|
|
AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
|
|
[AC_MSG_RESULT([yes])],
|
|
[AC_MSG_RESULT([no])
|
|
AC_MSG_ERROR([Python interpreter is too old])])
|
|
am_display_PYTHON=$PYTHON
|
|
else
|
|
# Otherwise, try each interpreter until we find one that satisfies
|
|
# VERSION.
|
|
AC_CACHE_CHECK([for a Python interpreter with version >= $1],
|
|
[am_cv_pathless_PYTHON],[
|
|
for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
|
|
test "$am_cv_pathless_PYTHON" = none && break
|
|
AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
|
|
done])
|
|
# Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
|
|
if test "$am_cv_pathless_PYTHON" = none; then
|
|
PYTHON=:
|
|
else
|
|
AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
|
|
fi
|
|
am_display_PYTHON=$am_cv_pathless_PYTHON
|
|
fi
|
|
])
|
|
|
|
if test "$PYTHON" = :; then
|
|
dnl Run any user-specified action, or abort.
|
|
m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
|
|
else
|
|
|
|
dnl Query Python for its version number. Although site.py simply uses
|
|
dnl sys.version[:3], printing that failed with Python 3.10, since the
|
|
dnl trailing zero was eliminated. So now we output just the major
|
|
dnl and minor version numbers, as numbers. Apparently the tertiary
|
|
dnl version is not of interest.
|
|
dnl
|
|
AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
|
|
[am_cv_python_version=`$PYTHON -c "import sys; print ('%u.%u' % sys.version_info[[:2]])"`])
|
|
AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
|
|
|
|
dnl At times, e.g., when building shared libraries, you may want
|
|
dnl to know which OS platform Python thinks this is.
|
|
dnl
|
|
AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
|
|
[am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
|
|
AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
|
|
|
|
dnl emacs-page
|
|
dnl If --with-python-sys-prefix is given, use the values of sys.prefix
|
|
dnl and sys.exec_prefix for the corresponding values of PYTHON_PREFIX
|
|
dnl and PYTHON_EXEC_PREFIX. Otherwise, use the GNU ${prefix} and
|
|
dnl ${exec_prefix} variables.
|
|
dnl
|
|
dnl The two are made distinct variables so they can be overridden if
|
|
dnl need be, although general consensus is that you shouldn't need
|
|
dnl this separation.
|
|
dnl
|
|
dnl Also allow directly setting the prefixes via configure options,
|
|
dnl overriding any default.
|
|
dnl
|
|
if test "x$prefix" = xNONE; then
|
|
am__usable_prefix=$ac_default_prefix
|
|
else
|
|
am__usable_prefix=$prefix
|
|
fi
|
|
|
|
# Allow user to request using sys.* values from Python,
|
|
# instead of the GNU $prefix values.
|
|
AC_ARG_WITH([python-sys-prefix],
|
|
[AS_HELP_STRING([--with-python-sys-prefix],
|
|
[use Python's sys.prefix and sys.exec_prefix values])],
|
|
[am_use_python_sys=:],
|
|
[am_use_python_sys=false])
|
|
|
|
# Allow user to override whatever the default Python prefix is.
|
|
AC_ARG_WITH([python_prefix],
|
|
[AS_HELP_STRING([--with-python_prefix],
|
|
[override the default PYTHON_PREFIX])],
|
|
[am_python_prefix_subst=$withval
|
|
am_cv_python_prefix=$withval
|
|
AC_MSG_CHECKING([for explicit $am_display_PYTHON prefix])
|
|
AC_MSG_RESULT([$am_cv_python_prefix])],
|
|
[
|
|
if $am_use_python_sys; then
|
|
# using python sys.prefix value, not GNU
|
|
AC_CACHE_CHECK([for python default $am_display_PYTHON prefix],
|
|
[am_cv_python_prefix],
|
|
[am_cv_python_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.prefix)"`])
|
|
|
|
dnl If sys.prefix is a subdir of $prefix, replace the literal value of
|
|
dnl $prefix with a variable reference so it can be overridden.
|
|
case $am_cv_python_prefix in
|
|
$am__usable_prefix*)
|
|
am__strip_prefix=`echo "$am__usable_prefix" | sed 's|.|.|g'`
|
|
am_python_prefix_subst=`echo "$am_cv_python_prefix" | sed "s,^$am__strip_prefix,\\${prefix},"`
|
|
;;
|
|
*)
|
|
am_python_prefix_subst=$am_cv_python_prefix
|
|
;;
|
|
esac
|
|
else # using GNU prefix value, not python sys.prefix
|
|
am_python_prefix_subst='${prefix}'
|
|
am_python_prefix=$am_python_prefix_subst
|
|
AC_MSG_CHECKING([for GNU default $am_display_PYTHON prefix])
|
|
AC_MSG_RESULT([$am_python_prefix])
|
|
fi])
|
|
# Substituting python_prefix_subst value.
|
|
AC_SUBST([PYTHON_PREFIX], [$am_python_prefix_subst])
|
|
|
|
# emacs-page Now do it all over again for Python exec_prefix, but with yet
|
|
# another conditional: fall back to regular prefix if that was specified.
|
|
AC_ARG_WITH([python_exec_prefix],
|
|
[AS_HELP_STRING([--with-python_exec_prefix],
|
|
[override the default PYTHON_EXEC_PREFIX])],
|
|
[am_python_exec_prefix_subst=$withval
|
|
am_cv_python_exec_prefix=$withval
|
|
AC_MSG_CHECKING([for explicit $am_display_PYTHON exec_prefix])
|
|
AC_MSG_RESULT([$am_cv_python_exec_prefix])],
|
|
[
|
|
# no explicit --with-python_exec_prefix, but if
|
|
# --with-python_prefix was given, use its value for python_exec_prefix too.
|
|
AS_IF([test -n "$with_python_prefix"],
|
|
[am_python_exec_prefix_subst=$with_python_prefix
|
|
am_cv_python_exec_prefix=$with_python_prefix
|
|
AC_MSG_CHECKING([for python_prefix-given $am_display_PYTHON exec_prefix])
|
|
AC_MSG_RESULT([$am_cv_python_exec_prefix])],
|
|
[
|
|
# Set am__usable_exec_prefix whether using GNU or Python values,
|
|
# since we use that variable for pyexecdir.
|
|
if test "x$exec_prefix" = xNONE; then
|
|
am__usable_exec_prefix=$am__usable_prefix
|
|
else
|
|
am__usable_exec_prefix=$exec_prefix
|
|
fi
|
|
#
|
|
if $am_use_python_sys; then # using python sys.exec_prefix, not GNU
|
|
AC_CACHE_CHECK([for python default $am_display_PYTHON exec_prefix],
|
|
[am_cv_python_exec_prefix],
|
|
[am_cv_python_exec_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.exec_prefix)"`])
|
|
dnl If sys.exec_prefix is a subdir of $exec_prefix, replace the
|
|
dnl literal value of $exec_prefix with a variable reference so it can
|
|
dnl be overridden.
|
|
case $am_cv_python_exec_prefix in
|
|
$am__usable_exec_prefix*)
|
|
am__strip_prefix=`echo "$am__usable_exec_prefix" | sed 's|.|.|g'`
|
|
am_python_exec_prefix_subst=`echo "$am_cv_python_exec_prefix" | sed "s,^$am__strip_prefix,\\${exec_prefix},"`
|
|
;;
|
|
*)
|
|
am_python_exec_prefix_subst=$am_cv_python_exec_prefix
|
|
;;
|
|
esac
|
|
else # using GNU $exec_prefix, not python sys.exec_prefix
|
|
am_python_exec_prefix_subst='${exec_prefix}'
|
|
am_python_exec_prefix=$am_python_exec_prefix_subst
|
|
AC_MSG_CHECKING([for GNU default $am_display_PYTHON exec_prefix])
|
|
AC_MSG_RESULT([$am_python_exec_prefix])
|
|
fi])])
|
|
# Substituting python_exec_prefix_subst.
|
|
AC_SUBST([PYTHON_EXEC_PREFIX], [$am_python_exec_prefix_subst])
|
|
|
|
# Factor out some code duplication into this shell variable.
|
|
am_python_setup_sysconfig="\
|
|
import sys
|
|
# Prefer sysconfig over distutils.sysconfig, for better compatibility
|
|
# with python 3.x. See automake bug#10227.
|
|
try:
|
|
import sysconfig
|
|
except ImportError:
|
|
can_use_sysconfig = 0
|
|
else:
|
|
can_use_sysconfig = 1
|
|
# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
|
|
# <https://github.com/pypa/virtualenv/issues/118>
|
|
try:
|
|
from platform import python_implementation
|
|
if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7':
|
|
can_use_sysconfig = 0
|
|
except ImportError:
|
|
pass"
|
|
|
|
dnl emacs-page Set up 4 directories:
|
|
|
|
dnl 1. pythondir: where to install python scripts. This is the
|
|
dnl site-packages directory, not the python standard library
|
|
dnl directory like in previous automake betas. This behavior
|
|
dnl is more consistent with lispdir.m4 for example.
|
|
dnl Query distutils for this directory.
|
|
dnl
|
|
AC_CACHE_CHECK([for $am_display_PYTHON script directory (pythondir)],
|
|
[am_cv_python_pythondir],
|
|
[if test "x$am_cv_python_prefix" = x; then
|
|
am_py_prefix=$am__usable_prefix
|
|
else
|
|
am_py_prefix=$am_cv_python_prefix
|
|
fi
|
|
am_cv_python_pythondir=`$PYTHON -c "
|
|
$am_python_setup_sysconfig
|
|
if can_use_sysconfig:
|
|
sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
|
|
else:
|
|
from distutils import sysconfig
|
|
sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
|
|
sys.stdout.write(sitedir)"`
|
|
#
|
|
case $am_cv_python_pythondir in
|
|
$am_py_prefix*)
|
|
am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
|
|
am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,\\${PYTHON_PREFIX},"`
|
|
;;
|
|
*)
|
|
case $am_py_prefix in
|
|
/usr|/System*) ;;
|
|
*) am_cv_python_pythondir="\${PYTHON_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
])
|
|
AC_SUBST([pythondir], [$am_cv_python_pythondir])
|
|
|
|
dnl 2. pkgpythondir: $PACKAGE directory under pythondir. Was
|
|
dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
|
|
dnl more consistent with the rest of automake.
|
|
dnl
|
|
AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
|
|
|
|
dnl 3. pyexecdir: directory for installing python extension modules
|
|
dnl (shared libraries).
|
|
dnl Query distutils for this directory.
|
|
dnl
|
|
AC_CACHE_CHECK([for $am_display_PYTHON extension module directory (pyexecdir)],
|
|
[am_cv_python_pyexecdir],
|
|
[if test "x$am_cv_python_exec_prefix" = x; then
|
|
am_py_exec_prefix=$am__usable_exec_prefix
|
|
else
|
|
am_py_exec_prefix=$am_cv_python_exec_prefix
|
|
fi
|
|
am_cv_python_pyexecdir=`$PYTHON -c "
|
|
$am_python_setup_sysconfig
|
|
if can_use_sysconfig:
|
|
sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_exec_prefix'})
|
|
else:
|
|
from distutils import sysconfig
|
|
sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_exec_prefix')
|
|
sys.stdout.write(sitedir)"`
|
|
#
|
|
case $am_cv_python_pyexecdir in
|
|
$am_py_exec_prefix*)
|
|
am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
|
|
am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,\\${PYTHON_EXEC_PREFIX},"`
|
|
;;
|
|
*)
|
|
case $am_py_exec_prefix in
|
|
/usr|/System*) ;;
|
|
*) am_cv_python_pyexecdir="\${PYTHON_EXEC_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
])
|
|
AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
|
|
|
|
dnl 4. pkgpyexecdir: $(pyexecdir)/$(PACKAGE)
|
|
dnl
|
|
AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
|
|
|
|
dnl Run any user-specified action.
|
|
$2
|
|
fi
|
|
])
|
|
|
|
|
|
# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
|
|
# ---------------------------------------------------------------------------
|
|
# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
|
|
# Run ACTION-IF-FALSE otherwise.
|
|
# This test uses sys.hexversion instead of the string equivalent (first
|
|
# word of sys.version), in order to cope with versions such as 2.2c1.
|
|
# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
|
|
AC_DEFUN([AM_PYTHON_CHECK_VERSION],
|
|
[prog="import sys
|
|
# split strings by '.' and convert to numeric. Append some zeros
|
|
# because we need at least 4 digits for the hex conversion.
|
|
# map returns an iterator in Python 3.0 and a list in 2.x
|
|
minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
|
|
minverhex = 0
|
|
# xrange is not present in Python 3.0 and range returns an iterator
|
|
for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
|
|
sys.exit(sys.hexversion < minverhex)"
|
|
AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
|
|
|
|
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
|
#
|
|
# This file is free software; the Free Software Foundation
|
|
# gives unlimited permission to copy and/or distribute it,
|
|
# with or without modifications, as long as this notice is preserved.
|
|
|
|
# AM_RUN_LOG(COMMAND)
|
|
# -------------------
|
|
# Run COMMAND, save the exit status in ac_status, and log it.
|
|
# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
|
|
AC_DEFUN([AM_RUN_LOG],
|
|
[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
|
|
($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
|
|
ac_status=$?
|
|
echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
|
|
(exit $ac_status); }])
|
|
|
|
# ===========================================================================
|
|
# https://www.gnu.org/software/autoconf-archive/ax_boost_base.html
|
|
# ===========================================================================
|
|
#
|
|
# SYNOPSIS
|
|
#
|
|
# AX_BOOST_BASE([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
|
#
|
|
# DESCRIPTION
|
|
#
|
|
# Test for the Boost C++ libraries of a particular version (or newer)
|
|
#
|
|
# If no path to the installed boost library is given the macro searches
|
|
# under /usr, /usr/local, /opt, /opt/local and /opt/homebrew and evaluates
|
|
# the $BOOST_ROOT environment variable. Further documentation is available
|
|
# at <http://randspringer.de/boost/index.html>.
|
|
#
|
|
# This macro calls:
|
|
#
|
|
# AC_SUBST(BOOST_CPPFLAGS) / AC_SUBST(BOOST_LDFLAGS)
|
|
#
|
|
# And sets:
|
|
#
|
|
# HAVE_BOOST
|
|
#
|
|
# LICENSE
|
|
#
|
|
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
|
|
# Copyright (c) 2009 Peter Adolphs
|
|
#
|
|
# Copying and distribution of this file, with or without modification, are
|
|
# permitted in any medium without royalty provided the copyright notice
|
|
# and this notice are preserved. This file is offered as-is, without any
|
|
# warranty.
|
|
|
|
#serial 52
|
|
|
|
# example boost program (need to pass version)
|
|
m4_define([_AX_BOOST_BASE_PROGRAM],
|
|
[AC_LANG_PROGRAM([[
|
|
#include <boost/version.hpp>
|
|
]],[[
|
|
(void) ((void)sizeof(char[1 - 2*!!((BOOST_VERSION) < ($1))]));
|
|
]])])
|
|
|
|
AC_DEFUN([AX_BOOST_BASE],
|
|
[
|
|
AC_ARG_WITH([boost],
|
|
[AS_HELP_STRING([--with-boost@<:@=ARG@:>@],
|
|
[use Boost library from a standard location (ARG=yes),
|
|
from the specified location (ARG=<path>),
|
|
or disable it (ARG=no)
|
|
@<:@ARG=yes@:>@ ])],
|
|
[
|
|
AS_CASE([$withval],
|
|
[no],[want_boost="no";_AX_BOOST_BASE_boost_path=""],
|
|
[yes],[want_boost="yes";_AX_BOOST_BASE_boost_path=""],
|
|
[want_boost="yes";_AX_BOOST_BASE_boost_path="$withval"])
|
|
],
|
|
[want_boost="yes"])
|
|
|
|
|
|
AC_ARG_WITH([boost-libdir],
|
|
[AS_HELP_STRING([--with-boost-libdir=LIB_DIR],
|
|
[Force given directory for boost libraries.
|
|
Note that this will override library path detection,
|
|
so use this parameter only if default library detection fails
|
|
and you know exactly where your boost libraries are located.])],
|
|
[
|
|
AS_IF([test -d "$withval"],
|
|
[_AX_BOOST_BASE_boost_lib_path="$withval"],
|
|
[AC_MSG_ERROR([--with-boost-libdir expected directory name])])
|
|
],
|
|
[_AX_BOOST_BASE_boost_lib_path=""])
|
|
|
|
BOOST_LDFLAGS=""
|
|
BOOST_CPPFLAGS=""
|
|
AS_IF([test "x$want_boost" = "xyes"],
|
|
[_AX_BOOST_BASE_RUNDETECT([$1],[$2],[$3])])
|
|
AC_SUBST(BOOST_CPPFLAGS)
|
|
AC_SUBST(BOOST_LDFLAGS)
|
|
])
|
|
|
|
|
|
# convert a version string in $2 to numeric and affect to polymorphic var $1
|
|
AC_DEFUN([_AX_BOOST_BASE_TONUMERICVERSION],[
|
|
AS_IF([test "x$2" = "x"],[_AX_BOOST_BASE_TONUMERICVERSION_req="1.20.0"],[_AX_BOOST_BASE_TONUMERICVERSION_req="$2"])
|
|
_AX_BOOST_BASE_TONUMERICVERSION_req_shorten=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '\([[0-9]]*\.[[0-9]]*\)'`
|
|
_AX_BOOST_BASE_TONUMERICVERSION_req_major=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '\([[0-9]]*\)'`
|
|
AS_IF([test "x$_AX_BOOST_BASE_TONUMERICVERSION_req_major" = "x"],
|
|
[AC_MSG_ERROR([You should at least specify libboost major version])])
|
|
_AX_BOOST_BASE_TONUMERICVERSION_req_minor=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '[[0-9]]*\.\([[0-9]]*\)'`
|
|
AS_IF([test "x$_AX_BOOST_BASE_TONUMERICVERSION_req_minor" = "x"],
|
|
[_AX_BOOST_BASE_TONUMERICVERSION_req_minor="0"])
|
|
_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
|
|
AS_IF([test "X$_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor" = "X"],
|
|
[_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor="0"])
|
|
_AX_BOOST_BASE_TONUMERICVERSION_RET=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req_major \* 100000 \+ $_AX_BOOST_BASE_TONUMERICVERSION_req_minor \* 100 \+ $_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor`
|
|
AS_VAR_SET($1,$_AX_BOOST_BASE_TONUMERICVERSION_RET)
|
|
])
|
|
|
|
dnl Run the detection of boost should be run only if $want_boost
|
|
AC_DEFUN([_AX_BOOST_BASE_RUNDETECT],[
|
|
_AX_BOOST_BASE_TONUMERICVERSION(WANT_BOOST_VERSION,[$1])
|
|
succeeded=no
|
|
|
|
|
|
AC_REQUIRE([AC_CANONICAL_HOST])
|
|
dnl On 64-bit systems check for system libraries in both lib64 and lib.
|
|
dnl The former is specified by FHS, but e.g. Debian does not adhere to
|
|
dnl this (as it rises problems for generic multi-arch support).
|
|
dnl The last entry in the list is chosen by default when no libraries
|
|
dnl are found, e.g. when only header-only libraries are installed!
|
|
AS_CASE([${host_cpu}],
|
|
[x86_64],[libsubdirs="lib64 libx32 lib lib64"],
|
|
[mips*64*],[libsubdirs="lib64 lib32 lib lib64"],
|
|
[ppc64|powerpc64|s390x|sparc64|aarch64|ppc64le|powerpc64le|riscv64|e2k|loongarch64],[libsubdirs="lib64 lib lib64"],
|
|
[libsubdirs="lib"]
|
|
)
|
|
|
|
dnl allow for real multi-arch paths e.g. /usr/lib/x86_64-linux-gnu. Give
|
|
dnl them priority over the other paths since, if libs are found there, they
|
|
dnl are almost assuredly the ones desired.
|
|
AS_CASE([${host_cpu}],
|
|
[i?86],[multiarch_libsubdir="lib/i386-${host_os}"],
|
|
[armv7l],[multiarch_libsubdir="lib/arm-${host_os}"],
|
|
[multiarch_libsubdir="lib/${host_cpu}-${host_os}"]
|
|
)
|
|
|
|
dnl first we check the system location for boost libraries
|
|
dnl this location is chosen if boost libraries are installed with the --layout=system option
|
|
dnl or if you install boost with RPM
|
|
AS_IF([test "x$_AX_BOOST_BASE_boost_path" != "x"],[
|
|
AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION) includes in "$_AX_BOOST_BASE_boost_path/include"])
|
|
AS_IF([test -d "$_AX_BOOST_BASE_boost_path/include" && test -r "$_AX_BOOST_BASE_boost_path/include"],[
|
|
AC_MSG_RESULT([yes])
|
|
BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path/include"
|
|
for _AX_BOOST_BASE_boost_path_tmp in $multiarch_libsubdir $libsubdirs; do
|
|
AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION) lib path in "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp"])
|
|
AS_IF([test -d "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp" && test -r "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp" ],[
|
|
AC_MSG_RESULT([yes])
|
|
BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp";
|
|
break;
|
|
],
|
|
[AC_MSG_RESULT([no])])
|
|
done],[
|
|
AC_MSG_RESULT([no])])
|
|
],[
|
|
if test X"$cross_compiling" = Xyes; then
|
|
search_libsubdirs=$multiarch_libsubdir
|
|
else
|
|
search_libsubdirs="$multiarch_libsubdir $libsubdirs"
|
|
fi
|
|
for _AX_BOOST_BASE_boost_path_tmp in /usr /usr/local /opt /opt/local /opt/homebrew ; do
|
|
if test -d "$_AX_BOOST_BASE_boost_path_tmp/include/boost" && test -r "$_AX_BOOST_BASE_boost_path_tmp/include/boost" ; then
|
|
for libsubdir in $search_libsubdirs ; do
|
|
if ls "$_AX_BOOST_BASE_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
|
|
done
|
|
BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path_tmp/$libsubdir"
|
|
BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path_tmp/include"
|
|
break;
|
|
fi
|
|
done
|
|
])
|
|
|
|
dnl overwrite ld flags if we have required special directory with
|
|
dnl --with-boost-libdir parameter
|
|
AS_IF([test "x$_AX_BOOST_BASE_boost_lib_path" != "x"],
|
|
[BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_lib_path"])
|
|
|
|
AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION)])
|
|
CPPFLAGS_SAVED="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
|
|
export CPPFLAGS
|
|
|
|
LDFLAGS_SAVED="$LDFLAGS"
|
|
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
|
|
export LDFLAGS
|
|
|
|
AC_REQUIRE([AC_PROG_CXX])
|
|
AC_LANG_PUSH(C++)
|
|
AC_COMPILE_IFELSE([_AX_BOOST_BASE_PROGRAM($WANT_BOOST_VERSION)],[
|
|
AC_MSG_RESULT(yes)
|
|
succeeded=yes
|
|
found_system=yes
|
|
],[
|
|
])
|
|
AC_LANG_POP([C++])
|
|
|
|
|
|
|
|
dnl if we found no boost with system layout we search for boost libraries
|
|
dnl built and installed without the --layout=system option or for a staged(not installed) version
|
|
if test "x$succeeded" != "xyes" ; then
|
|
CPPFLAGS="$CPPFLAGS_SAVED"
|
|
LDFLAGS="$LDFLAGS_SAVED"
|
|
BOOST_CPPFLAGS=
|
|
if test -z "$_AX_BOOST_BASE_boost_lib_path" ; then
|
|
BOOST_LDFLAGS=
|
|
fi
|
|
_version=0
|
|
if test -n "$_AX_BOOST_BASE_boost_path" ; then
|
|
if test -d "$_AX_BOOST_BASE_boost_path" && test -r "$_AX_BOOST_BASE_boost_path"; then
|
|
for i in `ls -d $_AX_BOOST_BASE_boost_path/include/boost-* 2>/dev/null`; do
|
|
_version_tmp=`echo $i | sed "s#$_AX_BOOST_BASE_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
|
|
V_CHECK=`expr $_version_tmp \> $_version`
|
|
if test "x$V_CHECK" = "x1" ; then
|
|
_version=$_version_tmp
|
|
fi
|
|
VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
|
|
BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path/include/boost-$VERSION_UNDERSCORE"
|
|
done
|
|
dnl if nothing found search for layout used in Windows distributions
|
|
if test -z "$BOOST_CPPFLAGS"; then
|
|
if test -d "$_AX_BOOST_BASE_boost_path/boost" && test -r "$_AX_BOOST_BASE_boost_path/boost"; then
|
|
BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path"
|
|
fi
|
|
fi
|
|
dnl if we found something and BOOST_LDFLAGS was unset before
|
|
dnl (because "$_AX_BOOST_BASE_boost_lib_path" = ""), set it here.
|
|
if test -n "$BOOST_CPPFLAGS" && test -z "$BOOST_LDFLAGS"; then
|
|
for libsubdir in $libsubdirs ; do
|
|
if ls "$_AX_BOOST_BASE_boost_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
|
|
done
|
|
BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path/$libsubdir"
|
|
fi
|
|
fi
|
|
else
|
|
if test "x$cross_compiling" != "xyes" ; then
|
|
for _AX_BOOST_BASE_boost_path in /usr /usr/local /opt /opt/local /opt/homebrew ; do
|
|
if test -d "$_AX_BOOST_BASE_boost_path" && test -r "$_AX_BOOST_BASE_boost_path" ; then
|
|
for i in `ls -d $_AX_BOOST_BASE_boost_path/include/boost-* 2>/dev/null`; do
|
|
_version_tmp=`echo $i | sed "s#$_AX_BOOST_BASE_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
|
|
V_CHECK=`expr $_version_tmp \> $_version`
|
|
if test "x$V_CHECK" = "x1" ; then
|
|
_version=$_version_tmp
|
|
best_path=$_AX_BOOST_BASE_boost_path
|
|
fi
|
|
done
|
|
fi
|
|
done
|
|
|
|
VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
|
|
BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
|
|
if test -z "$_AX_BOOST_BASE_boost_lib_path" ; then
|
|
for libsubdir in $libsubdirs ; do
|
|
if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
|
|
done
|
|
BOOST_LDFLAGS="-L$best_path/$libsubdir"
|
|
fi
|
|
fi
|
|
|
|
if test -n "$BOOST_ROOT" ; then
|
|
for libsubdir in $libsubdirs ; do
|
|
if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
|
|
done
|
|
if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then
|
|
version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'`
|
|
stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'`
|
|
stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'`
|
|
V_CHECK=`expr $stage_version_shorten \>\= $_version`
|
|
if test "x$V_CHECK" = "x1" && test -z "$_AX_BOOST_BASE_boost_lib_path" ; then
|
|
AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT)
|
|
BOOST_CPPFLAGS="-I$BOOST_ROOT"
|
|
BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir"
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
|
|
export CPPFLAGS
|
|
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
|
|
export LDFLAGS
|
|
|
|
AC_LANG_PUSH(C++)
|
|
AC_COMPILE_IFELSE([_AX_BOOST_BASE_PROGRAM($WANT_BOOST_VERSION)],[
|
|
AC_MSG_RESULT(yes)
|
|
succeeded=yes
|
|
found_system=yes
|
|
],[
|
|
])
|
|
AC_LANG_POP([C++])
|
|
fi
|
|
|
|
if test "x$succeeded" != "xyes" ; then
|
|
if test "x$_version" = "x0" ; then
|
|
AC_MSG_NOTICE([[We could not detect the boost libraries (version $1 or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.]])
|
|
else
|
|
AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).])
|
|
fi
|
|
# execute ACTION-IF-NOT-FOUND (if present):
|
|
ifelse([$3], , :, [$3])
|
|
else
|
|
AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available])
|
|
# execute ACTION-IF-FOUND (if present):
|
|
ifelse([$2], , :, [$2])
|
|
fi
|
|
|
|
CPPFLAGS="$CPPFLAGS_SAVED"
|
|
LDFLAGS="$LDFLAGS_SAVED"
|
|
|
|
])
|
|
|
|
# ===========================================================================
|
|
# https://www.gnu.org/software/autoconf-archive/ax_boost_date_time.html
|
|
# ===========================================================================
|
|
#
|
|
# SYNOPSIS
|
|
#
|
|
# AX_BOOST_DATE_TIME
|
|
#
|
|
# DESCRIPTION
|
|
#
|
|
# Test for Date_Time library from the Boost C++ libraries. The macro
|
|
# requires a preceding call to AX_BOOST_BASE. Further documentation is
|
|
# available at <http://randspringer.de/boost/index.html>.
|
|
#
|
|
# This macro calls:
|
|
#
|
|
# AC_SUBST(BOOST_DATE_TIME_LIB)
|
|
#
|
|
# And sets:
|
|
#
|
|
# HAVE_BOOST_DATE_TIME
|
|
#
|
|
# LICENSE
|
|
#
|
|
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
|
|
# Copyright (c) 2008 Michael Tindal
|
|
#
|
|
# Copying and distribution of this file, with or without modification, are
|
|
# permitted in any medium without royalty provided the copyright notice
|
|
# and this notice are preserved. This file is offered as-is, without any
|
|
# warranty.
|
|
|
|
#serial 23
|
|
|
|
AC_DEFUN([AX_BOOST_DATE_TIME],
|
|
[
|
|
AC_ARG_WITH([boost-date-time],
|
|
AS_HELP_STRING([--with-boost-date-time@<:@=special-lib@:>@],
|
|
[use the Date_Time library from boost - it is possible to specify a certain library for the linker
|
|
e.g. --with-boost-date-time=boost_date_time-gcc-mt-d-1_33_1 ]),
|
|
[
|
|
if test "$withval" = "no"; then
|
|
want_boost="no"
|
|
elif test "$withval" = "yes"; then
|
|
want_boost="yes"
|
|
ax_boost_user_date_time_lib=""
|
|
else
|
|
want_boost="yes"
|
|
ax_boost_user_date_time_lib="$withval"
|
|
fi
|
|
],
|
|
[want_boost="yes"]
|
|
)
|
|
|
|
if test "x$want_boost" = "xyes"; then
|
|
AC_REQUIRE([AC_PROG_CC])
|
|
CPPFLAGS_SAVED="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
|
|
export CPPFLAGS
|
|
|
|
LDFLAGS_SAVED="$LDFLAGS"
|
|
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
|
|
export LDFLAGS
|
|
|
|
AC_CACHE_CHECK(whether the Boost::Date_Time library is available,
|
|
ax_cv_boost_date_time,
|
|
[AC_LANG_PUSH([C++])
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/date_time/gregorian/gregorian_types.hpp>]],
|
|
[[using namespace boost::gregorian; date d(2002,Jan,10);
|
|
return 0;
|
|
]])],
|
|
ax_cv_boost_date_time=yes, ax_cv_boost_date_time=no)
|
|
AC_LANG_POP([C++])
|
|
])
|
|
if test "x$ax_cv_boost_date_time" = "xyes"; then
|
|
AC_DEFINE(HAVE_BOOST_DATE_TIME,,[define if the Boost::Date_Time library is available])
|
|
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
|
|
if test "x$ax_boost_user_date_time_lib" = "x"; then
|
|
for libextension in `ls $BOOSTLIBDIR/libboost_date_time*.so* $BOOSTLIBDIR/libboost_date_time*.dylib* $BOOSTLIBDIR/libboost_date_time*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_date_time.*\)\.so.*$;\1;' -e 's;^lib\(boost_date_time.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_date_time.*\)\.a*$;\1;'` ; do
|
|
ax_lib=${libextension}
|
|
AC_CHECK_LIB($ax_lib, exit,
|
|
[BOOST_DATE_TIME_LIB="-l$ax_lib"; AC_SUBST(BOOST_DATE_TIME_LIB) link_date_time="yes"; break],
|
|
[link_date_time="no"])
|
|
done
|
|
if test "x$link_date_time" != "xyes"; then
|
|
for libextension in `ls $BOOSTLIBDIR/boost_date_time*.dll* $BOOSTLIBDIR/boost_date_time*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_date_time.*\)\.dll.*$;\1;' -e 's;^\(boost_date_time.*\)\.a.*$;\1;'` ; do
|
|
ax_lib=${libextension}
|
|
AC_CHECK_LIB($ax_lib, exit,
|
|
[BOOST_DATE_TIME_LIB="-l$ax_lib"; AC_SUBST(BOOST_DATE_TIME_LIB) link_date_time="yes"; break],
|
|
[link_date_time="no"])
|
|
done
|
|
fi
|
|
|
|
else
|
|
for ax_lib in $ax_boost_user_date_time_lib boost_date_time-$ax_boost_user_date_time_lib; do
|
|
AC_CHECK_LIB($ax_lib, main,
|
|
[BOOST_DATE_TIME_LIB="-l$ax_lib"; AC_SUBST(BOOST_DATE_TIME_LIB) link_date_time="yes"; break],
|
|
[link_date_time="no"])
|
|
done
|
|
|
|
fi
|
|
if test "x$ax_lib" = "x"; then
|
|
AC_MSG_ERROR(Could not find a version of the Boost::Date_Time library!)
|
|
fi
|
|
if test "x$link_date_time" != "xyes"; then
|
|
AC_MSG_ERROR(Could not link against $ax_lib !)
|
|
fi
|
|
fi
|
|
|
|
CPPFLAGS="$CPPFLAGS_SAVED"
|
|
LDFLAGS="$LDFLAGS_SAVED"
|
|
fi
|
|
])
|
|
|
|
# ===========================================================================
|
|
# https://www.gnu.org/software/autoconf-archive/ax_boost_filesystem.html
|
|
# ===========================================================================
|
|
#
|
|
# SYNOPSIS
|
|
#
|
|
# AX_BOOST_FILESYSTEM
|
|
#
|
|
# DESCRIPTION
|
|
#
|
|
# Test for Filesystem library from the Boost C++ libraries. The macro
|
|
# requires a preceding call to AX_BOOST_BASE. Further documentation is
|
|
# available at <http://randspringer.de/boost/index.html>.
|
|
#
|
|
# This macro calls:
|
|
#
|
|
# AC_SUBST(BOOST_FILESYSTEM_LIB)
|
|
#
|
|
# And sets:
|
|
#
|
|
# HAVE_BOOST_FILESYSTEM
|
|
#
|
|
# LICENSE
|
|
#
|
|
# Copyright (c) 2009 Thomas Porschberg <thomas@randspringer.de>
|
|
# Copyright (c) 2009 Michael Tindal
|
|
# Copyright (c) 2009 Roman Rybalko <libtorrent@romanr.info>
|
|
#
|
|
# Copying and distribution of this file, with or without modification, are
|
|
# permitted in any medium without royalty provided the copyright notice
|
|
# and this notice are preserved. This file is offered as-is, without any
|
|
# warranty.
|
|
|
|
#serial 28
|
|
|
|
AC_DEFUN([AX_BOOST_FILESYSTEM],
|
|
[
|
|
AC_ARG_WITH([boost-filesystem],
|
|
AS_HELP_STRING([--with-boost-filesystem@<:@=special-lib@:>@],
|
|
[use the Filesystem library from boost - it is possible to specify a certain library for the linker
|
|
e.g. --with-boost-filesystem=boost_filesystem-gcc-mt ]),
|
|
[
|
|
if test "$withval" = "no"; then
|
|
want_boost="no"
|
|
elif test "$withval" = "yes"; then
|
|
want_boost="yes"
|
|
ax_boost_user_filesystem_lib=""
|
|
else
|
|
want_boost="yes"
|
|
ax_boost_user_filesystem_lib="$withval"
|
|
fi
|
|
],
|
|
[want_boost="yes"]
|
|
)
|
|
|
|
if test "x$want_boost" = "xyes"; then
|
|
AC_REQUIRE([AC_PROG_CC])
|
|
CPPFLAGS_SAVED="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
|
|
export CPPFLAGS
|
|
|
|
LDFLAGS_SAVED="$LDFLAGS"
|
|
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
|
|
export LDFLAGS
|
|
|
|
LIBS_SAVED=$LIBS
|
|
LIBS="$LIBS $BOOST_SYSTEM_LIB"
|
|
export LIBS
|
|
|
|
AC_CACHE_CHECK(whether the Boost::Filesystem library is available,
|
|
ax_cv_boost_filesystem,
|
|
[AC_LANG_PUSH([C++])
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/filesystem/path.hpp>]],
|
|
[[using namespace boost::filesystem;
|
|
path my_path( "foo/bar/data.txt" );
|
|
return 0;]])],
|
|
ax_cv_boost_filesystem=yes, ax_cv_boost_filesystem=no)
|
|
AC_LANG_POP([C++])
|
|
])
|
|
if test "x$ax_cv_boost_filesystem" = "xyes"; then
|
|
AC_DEFINE(HAVE_BOOST_FILESYSTEM,,[define if the Boost::Filesystem library is available])
|
|
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
|
|
if test "x$ax_boost_user_filesystem_lib" = "x"; then
|
|
for libextension in `ls -r $BOOSTLIBDIR/libboost_filesystem* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do
|
|
ax_lib=${libextension}
|
|
AC_CHECK_LIB($ax_lib, exit,
|
|
[BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break],
|
|
[link_filesystem="no"])
|
|
done
|
|
if test "x$link_filesystem" != "xyes"; then
|
|
for libextension in `ls -r $BOOSTLIBDIR/boost_filesystem* 2>/dev/null | sed 's,.*/,,' | sed -e 's,\..*,,'` ; do
|
|
ax_lib=${libextension}
|
|
AC_CHECK_LIB($ax_lib, exit,
|
|
[BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break],
|
|
[link_filesystem="no"])
|
|
done
|
|
fi
|
|
else
|
|
for ax_lib in $ax_boost_user_filesystem_lib boost_filesystem-$ax_boost_user_filesystem_lib; do
|
|
AC_CHECK_LIB($ax_lib, exit,
|
|
[BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break],
|
|
[link_filesystem="no"])
|
|
done
|
|
|
|
fi
|
|
if test "x$ax_lib" = "x"; then
|
|
AC_MSG_ERROR(Could not find a version of the Boost::Filesystem library!)
|
|
fi
|
|
if test "x$link_filesystem" != "xyes"; then
|
|
AC_MSG_ERROR(Could not link against $ax_lib !)
|
|
fi
|
|
fi
|
|
|
|
CPPFLAGS="$CPPFLAGS_SAVED"
|
|
LDFLAGS="$LDFLAGS_SAVED"
|
|
LIBS="$LIBS_SAVED"
|
|
fi
|
|
])
|
|
|
|
# ===========================================================================
|
|
# https://www.gnu.org/software/autoconf-archive/ax_boost_iostreams.html
|
|
# ===========================================================================
|
|
#
|
|
# SYNOPSIS
|
|
#
|
|
# AX_BOOST_IOSTREAMS
|
|
#
|
|
# DESCRIPTION
|
|
#
|
|
# Test for IOStreams library from the Boost C++ libraries. The macro
|
|
# requires a preceding call to AX_BOOST_BASE. Further documentation is
|
|
# available at <http://randspringer.de/boost/index.html>.
|
|
#
|
|
# This macro calls:
|
|
#
|
|
# AC_SUBST(BOOST_IOSTREAMS_LIB)
|
|
#
|
|
# And sets:
|
|
#
|
|
# HAVE_BOOST_IOSTREAMS
|
|
#
|
|
# LICENSE
|
|
#
|
|
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
|
|
#
|
|
# Copying and distribution of this file, with or without modification, are
|
|
# permitted in any medium without royalty provided the copyright notice
|
|
# and this notice are preserved. This file is offered as-is, without any
|
|
# warranty.
|
|
|
|
#serial 22
|
|
|
|
AC_DEFUN([AX_BOOST_IOSTREAMS],
|
|
[
|
|
AC_ARG_WITH([boost-iostreams],
|
|
AS_HELP_STRING([--with-boost-iostreams@<:@=special-lib@:>@],
|
|
[use the IOStreams library from boost - it is possible to specify a certain library for the linker
|
|
e.g. --with-boost-iostreams=boost_iostreams-gcc-mt-d-1_33_1 ]),
|
|
[
|
|
if test "$withval" = "no"; then
|
|
want_boost="no"
|
|
elif test "$withval" = "yes"; then
|
|
want_boost="yes"
|
|
ax_boost_user_iostreams_lib=""
|
|
else
|
|
want_boost="yes"
|
|
ax_boost_user_iostreams_lib="$withval"
|
|
fi
|
|
],
|
|
[want_boost="yes"]
|
|
)
|
|
|
|
if test "x$want_boost" = "xyes"; then
|
|
AC_REQUIRE([AC_PROG_CC])
|
|
CPPFLAGS_SAVED="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
|
|
export CPPFLAGS
|
|
|
|
LDFLAGS_SAVED="$LDFLAGS"
|
|
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
|
|
export LDFLAGS
|
|
|
|
AC_CACHE_CHECK(whether the Boost::IOStreams library is available,
|
|
ax_cv_boost_iostreams,
|
|
[AC_LANG_PUSH([C++])
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/iostreams/filtering_stream.hpp>
|
|
@%:@include <boost/range/iterator_range.hpp>
|
|
]],
|
|
[[std::string input = "Hello World!";
|
|
namespace io = boost::iostreams;
|
|
io::filtering_istream in(boost::make_iterator_range(input));
|
|
return 0;
|
|
]])],
|
|
ax_cv_boost_iostreams=yes, ax_cv_boost_iostreams=no)
|
|
AC_LANG_POP([C++])
|
|
])
|
|
if test "x$ax_cv_boost_iostreams" = "xyes"; then
|
|
AC_DEFINE(HAVE_BOOST_IOSTREAMS,,[define if the Boost::IOStreams library is available])
|
|
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
|
|
if test "x$ax_boost_user_iostreams_lib" = "x"; then
|
|
for libextension in `ls $BOOSTLIBDIR/libboost_iostreams*.so* $BOOSTLIBDIR/libboost_iostream*.dylib* $BOOSTLIBDIR/libboost_iostreams*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_iostreams.*\)\.so.*$;\1;' -e 's;^lib\(boost_iostream.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_iostreams.*\)\.a.*$;\1;'` ; do
|
|
ax_lib=${libextension}
|
|
AC_CHECK_LIB($ax_lib, exit,
|
|
[BOOST_IOSTREAMS_LIB="-l$ax_lib"; AC_SUBST(BOOST_IOSTREAMS_LIB) link_iostreams="yes"; break],
|
|
[link_iostreams="no"])
|
|
done
|
|
if test "x$link_iostreams" != "xyes"; then
|
|
for libextension in `ls $BOOSTLIBDIR/boost_iostreams*.dll* $BOOSTLIBDIR/boost_iostreams*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_iostreams.*\)\.dll.*$;\1;' -e 's;^\(boost_iostreams.*\)\.a.*$;\1;'` ; do
|
|
ax_lib=${libextension}
|
|
AC_CHECK_LIB($ax_lib, exit,
|
|
[BOOST_IOSTREAMS_LIB="-l$ax_lib"; AC_SUBST(BOOST_IOSTREAMS_LIB) link_iostreams="yes"; break],
|
|
[link_iostreams="no"])
|
|
done
|
|
fi
|
|
|
|
else
|
|
for ax_lib in $ax_boost_user_iostreams_lib boost_iostreams-$ax_boost_user_iostreams_lib; do
|
|
AC_CHECK_LIB($ax_lib, main,
|
|
[BOOST_IOSTREAMS_LIB="-l$ax_lib"; AC_SUBST(BOOST_IOSTREAMS_LIB) link_iostreams="yes"; break],
|
|
[link_iostreams="no"])
|
|
done
|
|
|
|
fi
|
|
if test "x$ax_lib" = "x"; then
|
|
AC_MSG_ERROR(Could not find a version of the Boost::IOStreams library!)
|
|
fi
|
|
if test "x$link_iostreams" != "xyes"; then
|
|
AC_MSG_ERROR(Could not link against $ax_lib !)
|
|
fi
|
|
fi
|
|
|
|
CPPFLAGS="$CPPFLAGS_SAVED"
|
|
LDFLAGS="$LDFLAGS_SAVED"
|
|
fi
|
|
])
|
|
|
|
# ===========================================================================
|
|
# https://www.gnu.org/software/autoconf-archive/ax_boost_locale.html
|
|
# ===========================================================================
|
|
#
|
|
# SYNOPSIS
|
|
#
|
|
# AX_BOOST_LOCALE
|
|
#
|
|
# DESCRIPTION
|
|
#
|
|
# Test for System library from the Boost C++ libraries. The macro requires
|
|
# a preceding call to AX_BOOST_BASE. Further documentation is available at
|
|
# <http://randspringer.de/boost/index.html>.
|
|
#
|
|
# This macro calls:
|
|
#
|
|
# AC_SUBST(BOOST_LOCALE_LIB)
|
|
#
|
|
# And sets:
|
|
#
|
|
# HAVE_BOOST_LOCALE
|
|
#
|
|
# LICENSE
|
|
#
|
|
# Copyright (c) 2012 Xiyue Deng <manphiz@gmail.com>
|
|
#
|
|
# Copying and distribution of this file, with or without modification, are
|
|
# permitted in any medium without royalty provided the copyright notice
|
|
# and this notice are preserved. This file is offered as-is, without any
|
|
# warranty.
|
|
|
|
#serial 3
|
|
|
|
AC_DEFUN([AX_BOOST_LOCALE],
|
|
[
|
|
AC_ARG_WITH([boost-locale],
|
|
AS_HELP_STRING([--with-boost-locale@<:@=special-lib@:>@],
|
|
[use the Locale library from boost - it is possible to specify a certain library for the linker
|
|
e.g. --with-boost-locale=boost_locale-gcc-mt ]),
|
|
[
|
|
if test "$withval" = "no"; then
|
|
want_boost="no"
|
|
elif test "$withval" = "yes"; then
|
|
want_boost="yes"
|
|
ax_boost_user_locale_lib=""
|
|
else
|
|
want_boost="yes"
|
|
ax_boost_user_locale_lib="$withval"
|
|
fi
|
|
],
|
|
[want_boost="yes"]
|
|
)
|
|
|
|
if test "x$want_boost" = "xyes"; then
|
|
AC_REQUIRE([AC_PROG_CC])
|
|
AC_REQUIRE([AC_CANONICAL_BUILD])
|
|
CPPFLAGS_SAVED="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
|
|
export CPPFLAGS
|
|
|
|
LDFLAGS_SAVED="$LDFLAGS"
|
|
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
|
|
export LDFLAGS
|
|
|
|
AC_CACHE_CHECK(whether the Boost::Locale library is available,
|
|
ax_cv_boost_locale,
|
|
[AC_LANG_PUSH([C++])
|
|
CXXFLAGS_SAVE=$CXXFLAGS
|
|
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/locale.hpp>]],
|
|
[[boost::locale::generator gen;
|
|
std::locale::global(gen(""));]])],
|
|
ax_cv_boost_locale=yes, ax_cv_boost_locale=no)
|
|
CXXFLAGS=$CXXFLAGS_SAVE
|
|
AC_LANG_POP([C++])
|
|
])
|
|
if test "x$ax_cv_boost_locale" = "xyes"; then
|
|
AC_SUBST(BOOST_CPPFLAGS)
|
|
|
|
AC_DEFINE(HAVE_BOOST_LOCALE,,[define if the Boost::Locale library is available])
|
|
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
|
|
|
|
LDFLAGS_SAVE=$LDFLAGS
|
|
if test "x$ax_boost_user_locale_lib" = "x"; then
|
|
for libextension in `ls $BOOSTLIBDIR/libboost_locale*.so* $BOOSTLIBDIR/libboost_locale*.dylib* $BOOSTLIBDIR/libboost_locale*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_locale.*\)\.so.*$;\1;' -e 's;^lib\(boost_locale.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_locale.*\)\.a.*$;\1;'` ; do
|
|
ax_lib=${libextension}
|
|
AC_CHECK_LIB($ax_lib, exit,
|
|
[BOOST_LOCALE_LIB="-l$ax_lib"; AC_SUBST(BOOST_LOCALE_LIB) link_locale="yes"; break],
|
|
[link_locale="no"])
|
|
done
|
|
if test "x$link_locale" != "xyes"; then
|
|
for libextension in `ls $BOOSTLIBDIR/boost_locale*.dll* $BOOSTLIBDIR/boost_locale*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_locale.*\)\.dll.*$;\1;' -e 's;^\(boost_locale.*\)\.a.*$;\1;'` ; do
|
|
ax_lib=${libextension}
|
|
AC_CHECK_LIB($ax_lib, exit,
|
|
[BOOST_LOCALE_LIB="-l$ax_lib"; AC_SUBST(BOOST_LOCALE_LIB) link_locale="yes"; break],
|
|
[link_locale="no"])
|
|
done
|
|
fi
|
|
|
|
else
|
|
for ax_lib in $ax_boost_user_locale_lib boost_locale-$ax_boost_user_locale_lib; do
|
|
AC_CHECK_LIB($ax_lib, exit,
|
|
[BOOST_LOCALE_LIB="-l$ax_lib"; AC_SUBST(BOOST_LOCALE_LIB) link_locale="yes"; break],
|
|
[link_locale="no"])
|
|
done
|
|
|
|
fi
|
|
if test "x$ax_lib" = "x"; then
|
|
AC_MSG_ERROR(Could not find a version of the Boost::Locale library!)
|
|
fi
|
|
if test "x$link_locale" = "xno"; then
|
|
AC_MSG_ERROR(Could not link against $ax_lib !)
|
|
fi
|
|
fi
|
|
|
|
CPPFLAGS="$CPPFLAGS_SAVED"
|
|
LDFLAGS="$LDFLAGS_SAVED"
|
|
fi
|
|
])
|
|
|
|
# ===========================================================================
|
|
# https://www.gnu.org/software/autoconf-archive/ax_boost_system.html
|
|
# ===========================================================================
|
|
#
|
|
# SYNOPSIS
|
|
#
|
|
# AX_BOOST_SYSTEM
|
|
#
|
|
# DESCRIPTION
|
|
#
|
|
# Test for System library from the Boost C++ libraries. The macro requires
|
|
# a preceding call to AX_BOOST_BASE. Further documentation is available at
|
|
# <http://randspringer.de/boost/index.html>.
|
|
#
|
|
# This macro calls:
|
|
#
|
|
# AC_SUBST(BOOST_SYSTEM_LIB)
|
|
#
|
|
# And sets:
|
|
#
|
|
# HAVE_BOOST_SYSTEM
|
|
#
|
|
# LICENSE
|
|
#
|
|
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
|
|
# Copyright (c) 2008 Michael Tindal
|
|
# Copyright (c) 2008 Daniel Casimiro <dan.casimiro@gmail.com>
|
|
#
|
|
# Copying and distribution of this file, with or without modification, are
|
|
# permitted in any medium without royalty provided the copyright notice
|
|
# and this notice are preserved. This file is offered as-is, without any
|
|
# warranty.
|
|
|
|
#serial 20
|
|
|
|
AC_DEFUN([AX_BOOST_SYSTEM],
|
|
[
|
|
AC_ARG_WITH([boost-system],
|
|
AS_HELP_STRING([--with-boost-system@<:@=special-lib@:>@],
|
|
[use the System library from boost - it is possible to specify a certain library for the linker
|
|
e.g. --with-boost-system=boost_system-gcc-mt ]),
|
|
[
|
|
if test "$withval" = "no"; then
|
|
want_boost="no"
|
|
elif test "$withval" = "yes"; then
|
|
want_boost="yes"
|
|
ax_boost_user_system_lib=""
|
|
else
|
|
want_boost="yes"
|
|
ax_boost_user_system_lib="$withval"
|
|
fi
|
|
],
|
|
[want_boost="yes"]
|
|
)
|
|
|
|
if test "x$want_boost" = "xyes"; then
|
|
AC_REQUIRE([AC_PROG_CC])
|
|
AC_REQUIRE([AC_CANONICAL_BUILD])
|
|
CPPFLAGS_SAVED="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
|
|
export CPPFLAGS
|
|
|
|
LDFLAGS_SAVED="$LDFLAGS"
|
|
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
|
|
export LDFLAGS
|
|
|
|
AC_CACHE_CHECK(whether the Boost::System library is available,
|
|
ax_cv_boost_system,
|
|
[AC_LANG_PUSH([C++])
|
|
CXXFLAGS_SAVE=$CXXFLAGS
|
|
CXXFLAGS=
|
|
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/system/error_code.hpp>]],
|
|
[[boost::system::error_category *a = 0;]])],
|
|
ax_cv_boost_system=yes, ax_cv_boost_system=no)
|
|
CXXFLAGS=$CXXFLAGS_SAVE
|
|
AC_LANG_POP([C++])
|
|
])
|
|
if test "x$ax_cv_boost_system" = "xyes"; then
|
|
AC_SUBST(BOOST_CPPFLAGS)
|
|
|
|
AC_DEFINE(HAVE_BOOST_SYSTEM,,[define if the Boost::System library is available])
|
|
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
|
|
|
|
LDFLAGS_SAVE=$LDFLAGS
|
|
if test "x$ax_boost_user_system_lib" = "x"; then
|
|
for libextension in `ls -r $BOOSTLIBDIR/libboost_system* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do
|
|
ax_lib=${libextension}
|
|
AC_CHECK_LIB($ax_lib, exit,
|
|
[BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break],
|
|
[link_system="no"])
|
|
done
|
|
if test "x$link_system" != "xyes"; then
|
|
for libextension in `ls -r $BOOSTLIBDIR/boost_system* 2>/dev/null | sed 's,.*/,,' | sed -e 's,\..*,,'` ; do
|
|
ax_lib=${libextension}
|
|
AC_CHECK_LIB($ax_lib, exit,
|
|
[BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break],
|
|
[link_system="no"])
|
|
done
|
|
fi
|
|
|
|
else
|
|
for ax_lib in $ax_boost_user_system_lib boost_system-$ax_boost_user_system_lib; do
|
|
AC_CHECK_LIB($ax_lib, exit,
|
|
[BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break],
|
|
[link_system="no"])
|
|
done
|
|
|
|
fi
|
|
if test "x$ax_lib" = "x"; then
|
|
AC_MSG_ERROR(Could not find a version of the Boost::System library!)
|
|
fi
|
|
if test "x$link_system" = "xno"; then
|
|
AC_MSG_ERROR(Could not link against $ax_lib !)
|
|
fi
|
|
fi
|
|
|
|
CPPFLAGS="$CPPFLAGS_SAVED"
|
|
LDFLAGS="$LDFLAGS_SAVED"
|
|
fi
|
|
])
|
|
|
|
dnl -*- mode: autoconf -*-
|
|
dnl Copyright 2009 Johan Dahlin
|
|
dnl
|
|
dnl This file is free software; the author(s) gives unlimited
|
|
dnl permission to copy and/or distribute it, with or without
|
|
dnl modifications, as long as this notice is preserved.
|
|
dnl
|
|
|
|
# serial 1
|
|
|
|
m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
|
|
[
|
|
AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
|
|
AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
|
|
AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
|
|
|
|
dnl enable/disable introspection
|
|
m4_if([$2], [require],
|
|
[dnl
|
|
enable_introspection=yes
|
|
],[dnl
|
|
AC_ARG_ENABLE(introspection,
|
|
AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
|
|
[Enable introspection for this build]),,
|
|
[enable_introspection=auto])
|
|
])dnl
|
|
|
|
AC_MSG_CHECKING([for gobject-introspection])
|
|
|
|
dnl presence/version checking
|
|
AS_CASE([$enable_introspection],
|
|
[no], [dnl
|
|
found_introspection="no (disabled, use --enable-introspection to enable)"
|
|
],dnl
|
|
[yes],[dnl
|
|
PKG_CHECK_EXISTS([gobject-introspection-1.0],,
|
|
AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
|
|
PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
|
|
found_introspection=yes,
|
|
AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
|
|
],dnl
|
|
[auto],[dnl
|
|
PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
|
|
dnl Canonicalize enable_introspection
|
|
enable_introspection=$found_introspection
|
|
],dnl
|
|
[dnl
|
|
AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
|
|
])dnl
|
|
|
|
AC_MSG_RESULT([$found_introspection])
|
|
|
|
INTROSPECTION_SCANNER=
|
|
INTROSPECTION_COMPILER=
|
|
INTROSPECTION_GENERATE=
|
|
INTROSPECTION_GIRDIR=
|
|
INTROSPECTION_TYPELIBDIR=
|
|
if test "x$found_introspection" = "xyes"; then
|
|
INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
|
|
INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
|
|
INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
|
|
INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
|
|
INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
|
|
INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
|
|
INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
|
|
INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
|
|
fi
|
|
AC_SUBST(INTROSPECTION_SCANNER)
|
|
AC_SUBST(INTROSPECTION_COMPILER)
|
|
AC_SUBST(INTROSPECTION_GENERATE)
|
|
AC_SUBST(INTROSPECTION_GIRDIR)
|
|
AC_SUBST(INTROSPECTION_TYPELIBDIR)
|
|
AC_SUBST(INTROSPECTION_CFLAGS)
|
|
AC_SUBST(INTROSPECTION_LIBS)
|
|
AC_SUBST(INTROSPECTION_MAKEFILE)
|
|
])
|
|
|
|
|
|
dnl Usage:
|
|
dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
|
|
|
|
AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
|
|
[
|
|
_GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
|
|
])
|
|
|
|
dnl Usage:
|
|
dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
|
|
|
|
|
|
AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
|
|
[
|
|
_GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
|
|
])
|
|
|
|
# Some versions of gcc/libstdc++ require linking with -latomic if
|
|
# using the C++ atomic library.
|
|
#
|
|
# Sourced from http://bugs.debian.org/797228
|
|
|
|
m4_define([_CHECK_L_ATOMIC_testbody], [[
|
|
#include <atomic>
|
|
#include <cstdint>
|
|
|
|
int main() {
|
|
std::atomic<int64_t> a{};
|
|
|
|
int64_t v = 5;
|
|
int64_t r = a.fetch_add(v);
|
|
return static_cast<int>(r);
|
|
}
|
|
]])
|
|
|
|
AC_DEFUN([CHECK_L_ATOMIC], [
|
|
|
|
AC_LANG_PUSH(C++)
|
|
|
|
AC_MSG_CHECKING([whether std::atomic can be used without link library])
|
|
|
|
AC_LINK_IFELSE([AC_LANG_SOURCE([_CHECK_L_ATOMIC_testbody])],[
|
|
AC_MSG_RESULT([yes])
|
|
],[
|
|
AC_MSG_RESULT([no])
|
|
LIBS="$LIBS -latomic"
|
|
AC_MSG_CHECKING([whether std::atomic needs -latomic])
|
|
AC_LINK_IFELSE([AC_LANG_SOURCE([_CHECK_L_ATOMIC_testbody])],[
|
|
AC_MSG_RESULT([yes])
|
|
ATOMIC_LIB=-latomic
|
|
],[
|
|
AC_MSG_RESULT([no])
|
|
AC_MSG_FAILURE([cannot figure our how to use std::atomic])
|
|
])
|
|
])
|
|
|
|
AC_LANG_POP
|
|
])
|
|
|
|
dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; fill-column: 102 -*-
|
|
#
|
|
# This file is part of the LibreOffice project.
|
|
#
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
#
|
|
AC_DEFUN([libo_CHECK_EXTENSION],[
|
|
AC_ARG_ENABLE(ext-$4,
|
|
AS_HELP_STRING([--enable-ext-$4],
|
|
[Enable the $1 extension])
|
|
)
|
|
AC_MSG_CHECKING([for building the $1 extension])
|
|
$2_EXTENSION_PACK=
|
|
if test "x$enable_ext_$3" = "xyes" -a "x$enable_extension_integration" != "xno"; then
|
|
SCPDEFS="$SCPDEFS -DWITH_EXTENSION_$2"
|
|
$2_EXTENSION_PACK="$5"
|
|
BUILD_TYPE="$BUILD_TYPE $2"
|
|
WITH_EXTRA_EXTENSIONS=TRUE
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
AC_SUBST($2_EXTENSION_PACK)
|
|
])
|
|
|
|
dnl vim:set shiftwidth=4 softtabstop=4 expandtab:
|
|
|
|
dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; fill-column: 102 -*-
|
|
#
|
|
# This file is part of the LibreOffice project.
|
|
#
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
#
|
|
AC_DEFUN([libo_ENABLE_VCLPLUG],[
|
|
dnl The $1 of enable_var is taken from the libo_ENABLE_VCLPLUG, so concat
|
|
dnl needs extra quoting and enable_var has no "magic" argument.
|
|
m4_pushdef([concat],[$][1][$][2])
|
|
m4_pushdef([enable_var],[concat(ENABLE_,m4_toupper($1))])
|
|
|
|
enable_var=
|
|
if test "$test_$1" != no -a "$enable_$1" = yes; then
|
|
enable_var=TRUE
|
|
AC_DEFINE(enable_var)
|
|
R="$R $1"
|
|
fi
|
|
AC_SUBST(enable_var)
|
|
|
|
m4_popdef([enable_var])
|
|
m4_popdef([concat])
|
|
])
|
|
|
|
dnl vim:set shiftwidth=4 softtabstop=4 expandtab:
|
|
|
|
dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; fill-column: 102 -*-
|
|
#
|
|
# This file is part of the LibreOffice project.
|
|
#
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
#
|
|
# <$1 lowercase variable part - used for variables and configure switches>
|
|
# <$2 uppercase variable part - used for configure.ac and make variables>
|
|
# <$3 pkg-config query string>
|
|
# [$4 if optional, default to: enabled, disabled or fixed (default: fixed)]
|
|
# [$5 which is preferred: (fixed-|test-)system or (fixed-)internal or system-if-linux (default: internal)]
|
|
# [$6 ignore $with_system_libs: TRUE or blank (default: blank/false)]
|
|
#
|
|
# $4 fixed: fixed-enabled, as fixed-disabled makes no sense.
|
|
# $5 test-system: follows $test_system_$1, ignores $with_system_libs; no configure switch
|
|
#
|
|
# Used configure.ac variables:
|
|
# - $2_(CFLAGS|LIBS)_internal: must be filled to match the internal build
|
|
# - enable_$1: should normally not be set manually; use test_$1 instead
|
|
# - found_$1: other tests already provided external $2_CFLAGS and $2_LIBS
|
|
# - test_$1: set to no, if the feature shouldn't be tested at all
|
|
# - test_system_$1: set to no, if the system library should not be used
|
|
#
|
|
# There is currently the AC_SUBST redundancy of
|
|
# (SYSTEM_$2,TRUE) == (,$(filter $2,$(BUILD_TYPE)))
|
|
#
|
|
|
|
m4_define([csm_default_with], [
|
|
if test "${with_system_$1+set}" != set -a "${with_system_libs+set}" = set -a "$3" != TRUE; then
|
|
with_system_$1="$with_system_libs";
|
|
else
|
|
with_system_$1="$2"
|
|
fi
|
|
])
|
|
|
|
m4_define([csm_check_required], [
|
|
m4_ifblank([$2],[m4_fatal([$][$1 ($2) must not be blank and $4])])
|
|
m4_if([$2],[$3],,[m4_fatal([$][$1 ($2) $3 must be $4])])
|
|
])
|
|
|
|
AC_DEFUN([libo_CHECK_SYSTEM_MODULE], [
|
|
# validate arguments as possible
|
|
csm_check_required([1],[$1],m4_tolower([$1]),[lowercase])
|
|
csm_check_required([2],[$2],m4_toupper([$2]),[uppercase])
|
|
m4_ifblank([$3],[m4_fatal([$][3 is the pkg-config query and must not be blank])])
|
|
m4_if([$6],[TRUE],[],[m4_ifnblank([$6],[m4_fatal([$][6 must be TRUE or blank])])])
|
|
m4_if(
|
|
[$4],[enabled],[
|
|
AC_ARG_ENABLE([$1],
|
|
AS_HELP_STRING([--disable-$1],[Disable $1 support.]),
|
|
,[enable_$1="yes"])
|
|
],[$4],[disabled],[
|
|
AC_ARG_ENABLE([$1],
|
|
AS_HELP_STRING([--enable-$1],[Enable $1 support.]),
|
|
,[enable_$1="no"])
|
|
],[
|
|
m4_if([$4],[fixed],,[m4_ifnblank([$4],
|
|
[m4_fatal([$$4 ($4) must be "enabled", "disabled", "fixed" or empty (=fixed)])])])
|
|
enable_$1="yes";
|
|
])
|
|
m4_if(
|
|
[$5],[system],[
|
|
AC_ARG_WITH(system-$1,
|
|
AS_HELP_STRING([--without-system-$1],[Build and bundle the internal $1.]),
|
|
,[csm_default_with($1,yes,$6)])
|
|
],[$5],[test-system],[
|
|
with_system_$1="$test_system_$1"
|
|
],[$5],[fixed-system],[
|
|
with_system_$1=yes
|
|
],[$5],[fixed-internal],[
|
|
with_system_$1=no
|
|
],[$5],[system-if-linux],[
|
|
AC_ARG_WITH(system-$1,
|
|
AS_HELP_STRING([--with-system-$1],[Use $1 from the operating system.]),
|
|
,[case "$_os" in
|
|
Linux)
|
|
with_system_nss=yes
|
|
;;
|
|
*)
|
|
with_system_nss=no
|
|
;;
|
|
esac])
|
|
],[
|
|
m4_if([$5],[internal],,[m4_ifnblank([$5],
|
|
[m4_fatal([$$5 ($5) must be "(fixed-|test-)system", "(fixed-)internal", "system-if-linux" or empty (=internal)])])])
|
|
AC_ARG_WITH(system-$1,
|
|
AS_HELP_STRING([--with-system-$1],[Use $1 from the operating system.]),
|
|
,[csm_default_with($1,no,$6)])
|
|
])
|
|
|
|
AC_MSG_CHECKING([which $1 to use])
|
|
if test "$test_$1" != no -a "$found_$1" != yes -a "$enable_$1" != no; then
|
|
ENABLE_$2=TRUE
|
|
if test "$with_system_$1" = yes -a "$test_system_$1" != no; then
|
|
AC_MSG_RESULT([external])
|
|
SYSTEM_$2=TRUE
|
|
PKG_CHECK_MODULES([$2], [$3])
|
|
$2_CFLAGS=$(printf '%s' "${$2_CFLAGS}" | sed -e "s/-I/${ISYSTEM?}/g")
|
|
FilterLibs "${$2_LIBS}"
|
|
$2_LIBS="$filteredlibs"
|
|
else
|
|
AC_MSG_RESULT([internal])
|
|
SYSTEM_$2=
|
|
$2_CFLAGS="${$2_CFLAGS_internal}"
|
|
$2_LIBS="${$2_LIBS_internal}"
|
|
BUILD_TYPE="$BUILD_TYPE $2"
|
|
fi
|
|
else
|
|
if test "$found_$1" = yes -a "$enable_$1" != no -a "$with_system_$1" = yes; then
|
|
AC_MSG_RESULT([external])
|
|
ENABLE_$2=TRUE
|
|
SYSTEM_$2=TRUE
|
|
else
|
|
ENABLE_$2=
|
|
SYSTEM_$2=
|
|
$2_CFLAGS=
|
|
$2_LIBS=
|
|
if test "$test_$1" != no -a "$enable_$1" = no; then
|
|
AC_MSG_RESULT([disabled])
|
|
else
|
|
AC_MSG_RESULT([not tested])
|
|
fi
|
|
fi
|
|
fi
|
|
AC_SUBST([ENABLE_$2])
|
|
AC_SUBST([SYSTEM_$2])
|
|
AC_SUBST([$2_CFLAGS])
|
|
AC_SUBST([$2_LIBS])
|
|
])
|
|
|
|
dnl vim:set shiftwidth=4 softtabstop=4 expandtab:
|
|
|
|
dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; fill-column: 102 -*-
|
|
#
|
|
# This file is part of the LibreOffice project.
|
|
#
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
#
|
|
AC_DEFUN([libo_FUZZ_ARG_WITH], [
|
|
AC_ARG_WITH([$1],
|
|
[$2],
|
|
[$3],
|
|
if test "$enable_fuzz_options" = yes; then
|
|
if test `expr $RANDOM % 2` = 1; then
|
|
m4_translit([with-$1], [-+.], [___])=yes
|
|
else
|
|
m4_translit([with-$1], [-+.], [___])=no
|
|
fi
|
|
AC_MSG_NOTICE([Randomly set --with-$1=$m4_translit([with-$1], [-+.], [___])])
|
|
libo_fuzzed_[]m4_translit([with-$1], [-+.], [___])=yes
|
|
libo_fuzz_list="$libo_fuzz_list --with-$1="'$m4_translit([with-$1], [-+.], [___])'
|
|
fi
|
|
[$4]
|
|
)
|
|
])
|
|
|
|
AC_DEFUN([libo_FUZZ_ARG_ENABLE], [
|
|
AC_ARG_ENABLE([$1],
|
|
[$2],
|
|
[$3],
|
|
if test "$enable_fuzz_options" = yes; then
|
|
if test `expr $RANDOM % 2` = 1; then
|
|
m4_translit([enable-$1], [-+.], [___])=yes
|
|
else
|
|
m4_translit([enable-$1], [-+.], [___])=no
|
|
fi
|
|
AC_MSG_NOTICE([Randomly set --enable-$1=$m4_translit([enable-$1], [-+.], [___])])
|
|
libo_fuzzed_[]m4_translit([enable-$1], [-+.], [___])=yes
|
|
libo_fuzz_list="$libo_fuzz_list --enable-$1="'$m4_translit([enable-$1], [-+.], [___])'
|
|
fi
|
|
[$4])
|
|
])
|
|
|
|
AC_DEFUN([libo_FUZZ_SUMMARY], [
|
|
if test -n "$libo_fuzz_list"; then
|
|
tmps=`eval echo $libo_fuzz_list`
|
|
AC_MSG_NOTICE([Summary of fuzzing: $tmps])
|
|
fi
|
|
])
|
|
|
|
dnl vim:set shiftwidth=4 softtabstop=4 expandtab:
|
|
|
|
dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; fill-column: 102 -*-
|
|
#
|
|
# This file is part of the LibreOffice project.
|
|
#
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
#
|
|
|
|
m4_define([_libo_define_pkg_version], [
|
|
save_IFS="$IFS"
|
|
IFS=.
|
|
echo "$ver" | while read major minor micro; do
|
|
AC_DEFINE_UNQUOTED([$1_VERSION_MAJOR], [$major])
|
|
AC_DEFINE_UNQUOTED([$1_VERSION_MINOR], [$minor])
|
|
AC_DEFINE_UNQUOTED([$1_VERSION_MICRO], [$micro])
|
|
done
|
|
IFS="$save_IFS"
|
|
])
|
|
|
|
m4_define([_libo_define_pkg_version_direct], [
|
|
AC_DEFINE([$1_VERSION_MAJOR], [$2])
|
|
AC_DEFINE([$1_VERSION_MINOR], [$3])
|
|
AC_DEFINE([$1_VERSION_MICRO], [$4])
|
|
])
|
|
|
|
# libo_PKG_VERSION(VARIABLE-STEM, MODULE, BUNDLED-VERSION)
|
|
AC_DEFUN([libo_PKG_VERSION], [
|
|
AS_IF([test -n "$SYSTEM_$1"], [
|
|
AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
|
AC_MSG_CHECKING([for $1 version])
|
|
AS_IF([test -n "$PKG_CONFIG"], [
|
|
ver=`$PKG_CONFIG --modversion "$2"`
|
|
AS_IF([test -n "$ver"], [
|
|
AC_MSG_RESULT([$ver])
|
|
_libo_define_pkg_version([$1], [$ver])
|
|
], [
|
|
AC_MSG_ERROR([not found])
|
|
])
|
|
], [
|
|
AC_MSG_ERROR([not found])
|
|
])
|
|
], [
|
|
_libo_define_pkg_version_direct([$1], m4_translit([$3], [.], [,]))
|
|
])
|
|
])
|
|
|
|
dnl vim:set shiftwidth=4 softtabstop=4 expandtab:
|
|
|