blob: fc5eaec2ebd231e9156236b2523485e9a3733b89 [file] [log] [blame]
#
# Copyright 2015-2016 Nest Labs Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Description:
# This file defines a GNU autoconf M4-style macro for checking
# the presence and viability of both required and optional
# dependent packages, which may be internal or external to the
# current package.
#
# Five (5) macros are made available:
#
# * NL_WITH_REQUIRED_EXTERNAL_PACKAGE
# * NL_WITH_OPTIONAL_EXTERNAL_PACKAGE
# * NL_WITH_REQUIRED_INTERNAL_PACKAGE
# * NL_WITH_OPTIONAL_INTERNAL_PACKAGE
# * NL_WITH_PACKAGE
#
# Note, however, that NL_WITH_PACKAGE is deprecated and maps to
# NL_WITH_REQUIRED_INTERNAL_PACKAGE.
#
# _NL_ARG_WITH_INCLUDES_OR_LIBS(PACKAGE-DISPOSITION,
# PACKAGE-SOURCE,
# PACKAGE-PRETTY-NAME,
# PACKAGE-VARIABLE-PREFIX,
# PACKAGE-SUCCINCT-NAME,
# PACKAGE-WITH-OPTION,
# PLURAL-WITH-OPTION-HELP-WORD,
# WITH-DIR-VARIABLE-MODIFIER)
# ----------------------------------------------------------------------------
# This is a wrapper around AC_ARG_WITH that provides the ability to
# optionally specify a dependent package include and link library
# directories independently as
# --with-<PACKAGE-SUCCINCT-NAME>-<PACKAGE-WITH-OPTION>=<DIR>.
#
# If the package is specified as required, the use of
# --without-<PACKAGE-SUCCINCT-NAME> or the use of
# --with-<PACKAGE-SUCCINCT-NAME>=no will result in a fatal error.
#
# At the successful conclusion of the execution of the macro,
# two variables will be defined:
#
# * nl_with_<PACKAGE-SUCCINCT-NAME>
# * <PACKAGE-SUCCINT-NAME>_<WITH-DIR-VARIABLE-MODIFIER>_dir
#
# The package disposition and source are specified by:
#
# PACKAGE-DISPOSITION : This may be either 'required' if the dependent
# package is required or 'optional' if
# not.
# PACKAGE-SOURCE : This may be either 'internal' if the dependent
# package may be provided either
# internally or externally to the current
# package or 'external' if the dependent
# package may only be provided outside of
# the current package. This also serves as
# the default value for where the
# configuration script expects to find the
# package.
#
# The dependent package is specified in three forms:
#
# PACKAGE-PRETTY-NAME : The human-readable name by which the package
# will be referred for any diagnostic output. For
# example, "My Great Software Package".
# PACKAGE-VARIABLE-PREFIX : The package-specific prefix applied to variables
# defined as a result of running this macro for the
# packages. For example, "MGSP" here is transformed
# into MGSP_CPPFLAGS.
# PACKAGE-SUCCINCT-NAME : The package-specific name used for pkg-config,
# in temporary variables and on the
# configure command line. For example,
# "mgsp" here is used for --with-mgsp=DIR
# or 'pkg-config --cflags mgsp'.
# ----------------------------------------------------------------------------
AC_DEFUN([_NL_ARG_WITH_INCLUDES_OR_LIBS],
[
dnl Check whether or not the package is required
m4_case([$1],
[required],[],
[optional],[],
[m4_fatal([$0: invalid disposition value '$1'; must be 'required' or 'optional'])])
dnl Check whether or not the package is internal
m4_case([$2],
[internal],[],
[external],[],
[m4_fatal([$0: invalid source value '$2'; must be 'internal' or 'external'])])
AC_ARG_WITH($5-$6,
AS_HELP_STRING([--with-$5-$6=DIR],
[Specify location of $1 $3 $7 @<:@default=$2@:>@.]),
[
if test "${withval}" = "no"; then
m4_if([$1],
[required],
[AC_MSG_ERROR([${PACKAGE_NAME} requires the $3 package.])],
[nl_with_$5=${withval}])
fi
if test "x${$5_dir}" != "x"; then
AC_MSG_WARN([overriding --with-$5=${$5_dir}])
fi
if test "${withval}" = "internal"; then
$5_$8_dir=${withval}
nl_with_$5=${withval}
else
$5_$8_dir=${withval}
nl_with_$5=external
fi
],
[
$5_$8_dir=;
if test "x${nl_with_$5}" = "x"; then
nl_with_$5=$2
fi
])
])
# _NL_ARG_WITH_INCLUDES(PACKAGE-DISPOSITION,
# PACKAGE-SOURCE,
# PACKAGE-PRETTY-NAME,
# PACKAGE-VARIABLE-PREFIX,
# PACKAGE-SUCCINCT-NAME)
# ----------------------------------------------------------------------------
# This is a wrapper around AC_ARG_WITH that provides the ability to
# optionally specify a dependent package include directory
# independently as --with-<PACKAGE-SUCCINCT-NAME>-includes=<DIR>.
#
# If the package is specified as required, the use of
# --without-<PACKAGE-SUCCINCT-NAME>-includes or the use of
# --with-<PACKAGE-SUCCINCT-NAME>-includes=no will result in a fatal error.
#
# At the successful conclusion of the execution of the macro,
# two variables will be defined:
#
# * nl_with_<PACKAGE-SUCCINCT-NAME>
# * <PACKAGE-SUCCINT-NAME>_header_dir
#
# The package disposition and source are specified by:
#
# PACKAGE-DISPOSITION : This may be either 'required' if the dependent
# package is required or 'optional' if
# not.
# PACKAGE-SOURCE : This may be either 'internal' if the dependent
# package may be provided either
# internally or externally to the current
# package or 'external' if the dependent
# package may only be provided outside of
# the current package. This also serves as
# the default value for where the
# configuration script expects to find the
# package.
#
# The dependent package is specified in three forms:
#
# PACKAGE-PRETTY-NAME : The human-readable name by which the package
# will be referred for any diagnostic output. For
# example, "My Great Software Package".
# PACKAGE-VARIABLE-PREFIX : The package-specific prefix applied to variables
# defined as a result of running this macro for the
# packages. For example, "MGSP" here is transformed
# into MGSP_CPPFLAGS.
# PACKAGE-SUCCINCT-NAME : The package-specific name used for pkg-config,
# in temporary variables and on the
# configure command line. For example,
# "mgsp" here is used for --with-mgsp=DIR
# or 'pkg-config --cflags mgsp'.
# ----------------------------------------------------------------------------
AC_DEFUN([_NL_ARG_WITH_INCLUDES],
[
_NL_ARG_WITH_INCLUDES_OR_LIBS([$1], [$2], [$3], [$4], [$5], [includes], [headers], [header])dnl
])
# _NL_ARG_WITH_LIBS(PACKAGE-DISPOSITION,
# PACKAGE-SOURCE,
# PACKAGE-PRETTY-NAME,
# PACKAGE-VARIABLE-PREFIX,
# PACKAGE-SUCCINCT-NAME)
# ----------------------------------------------------------------------------
# This is a wrapper around AC_ARG_WITH that provides the ability to
# optionally specify a dependent package link library directory
# independently as --with-<PACKAGE-SUCCINCT-NAME>-libs=<DIR>.
#
# If the package is specified as required, the use of
# --without-<PACKAGE-SUCCINCT-NAME>-libs or the use of
# --with-<PACKAGE-SUCCINCT-NAME>-libs=no will result in a fatal error.
#
# At the successful conclusion of the execution of the macro,
# two variables will be defined:
#
# * nl_with_<PACKAGE-SUCCINCT-NAME>
# * <PACKAGE-SUCCINT-NAME>_library_dir
#
# The package disposition and source are specified by:
#
# PACKAGE-DISPOSITION : This may be either 'required' if the dependent
# package is required or 'optional' if
# not.
# PACKAGE-SOURCE : This may be either 'internal' if the dependent
# package may be provided either
# internally or externally to the current
# package or 'external' if the dependent
# package may only be provided outside of
# the current package. This also serves as
# the default value for where the
# configuration script expects to find the
# package.
#
# The dependent package is specified in three forms:
#
# PACKAGE-PRETTY-NAME : The human-readable name by which the package
# will be referred for any diagnostic output. For
# example, "My Great Software Package".
# PACKAGE-VARIABLE-PREFIX : The package-specific prefix applied to variables
# defined as a result of running this macro for the
# packages. For example, "MGSP" here is transformed
# into MGSP_CPPFLAGS.
# PACKAGE-SUCCINCT-NAME : The package-specific name used for pkg-config,
# in temporary variables and on the
# configure command line. For example,
# "mgsp" here is used for --with-mgsp=DIR
# or 'pkg-config --cflags mgsp'.
# ----------------------------------------------------------------------------
AC_DEFUN([_NL_ARG_WITH_LIBS],
[
_NL_ARG_WITH_INCLUDES_OR_LIBS([$1], [$2], [$3], [$4], [$5], [libs], [libraries], [library])dnl
])
# _NL_ARG_WITH_PACKAGE(PACKAGE-DISPOSITION,
# PACKAGE-SOURCE,
# PACKAGE-PRETTY-NAME,
# PACKAGE-VARIABLE-PREFIX,
# PACKAGE-SUCCINCT-NAME)
# ----------------------------------------------------------------------------
# This is a wrapper around AC_ARG_WITH that provides the ability to
# optionally specify a dependent package as
# --with-<PACKAGE-SUCCINCT-NAME>=<DIR> or to independently specify the
# include and link library directories independently as
# --with-<PACKAGE-SUCCINCT-NAME>-includes=<DIR> and
# --with-<PACKAGE-SUCCINCT-NAME>-libs=<DIR>.
#
# If the package is specified as required, the use of
# --without-<PACKAGE-SUCCINCT-NAME>* or the use of
# --with-<PACKAGE-SUCCINCT-NAME>*=no will result in a fatal error.
#
# At the successful conclusion of the execution of the macro,
# two or more variables will be defined:
#
# * nl_with_<PACKAGE-SUCCINCT-NAME>
# * <PACKAGE-SUCCINT-NAME>_dir
# * <PACKAGE-SUCCINT-NAME>_header_dir
# * <PACKAGE-SUCCINT-NAME>_library_dir
#
# The package disposition and source are specified by:
#
# PACKAGE-DISPOSITION : This may be either 'required' if the dependent
# package is required or 'optional' if
# not.
# PACKAGE-SOURCE : This may be either 'internal' if the dependent
# package may be provided either
# internally or externally to the current
# package or 'external' if the dependent
# package may only be provided outside of
# the current package. This also serves as
# the default value for where the
# configuration script expects to find the
# package.
#
# The dependent package is specified in three forms:
#
# PACKAGE-PRETTY-NAME : The human-readable name by which the package
# will be referred for any diagnostic output. For
# example, "My Great Software Package".
# PACKAGE-VARIABLE-PREFIX : The package-specific prefix applied to variables
# defined as a result of running this macro for the
# packages. For example, "MGSP" here is transformed
# into MGSP_CPPFLAGS.
# PACKAGE-SUCCINCT-NAME : The package-specific name used for pkg-config,
# in temporary variables and on the
# configure command line. For example,
# "mgsp" here is used for --with-mgsp=DIR
# or 'pkg-config --cflags mgsp'.
# ----------------------------------------------------------------------------
AC_DEFUN([_NL_ARG_WITH_PACKAGE],
[
AC_ARG_WITH($5,
AS_HELP_STRING([--with-$5=DIR],
[Specify location of the $1 $3 headers and libraries @<:@default=$2@:>@.]),
[
if test "${withval}" = "no"; then
m4_if([$1],
[required],
[AC_MSG_ERROR([${PACKAGE_NAME} requires the $3 package.])],
[nl_with_$5=${withval}])
elif test "${withval}" = "internal"; then
$5_dir=${withval}
nl_with_$5=${withval}
else
$5_dir=${withval}
nl_with_$5=external
fi
],
[$5_dir=; nl_with_$5=$2])
# Allow users to specify external headers and libraries independently.
_NL_ARG_WITH_INCLUDES([$1], [$2], [$3], [$4], [$5])dnl
_NL_ARG_WITH_LIBS([$1], [$2], [$3], [$4], [$5])dnl
])
# _NL_WITH_PACKAGE(PACKAGE-DISPOSITION,
# PACKAGE-SOURCE,
# PACKAGE-PRETTY-NAME,
# PACKAGE-VARIABLE-PREFIX,
# PACKAGE-SUCCINCT-NAME,
# [DEFAULT-PACKAGE-LIBS],
# [ACTIONS-TO-RUN-IF-NOT-EXTERNAL],
# [ACTIONS-TO-RUN-IF-NOT-INTERNAL])
# ----------------------------------------------------------------------------
# This macro is used to test for the presence, with pkg-config if it
# is available, of the specified, optional or required dependent
# package. The dependent package may be provided externally or may
# exist within the current package itself.
#
# If the package is specified as required, failure to find the
# dependent package will result in a fatal error.
#
# At the successful conclusion of the execution of the macro, three
# variables will be defined:
#
# * <PACKAGE-VARIABLE-PREFIX>_CPPFLAGS
# * <PACKAGE-VARIABLE-PREFIX>_LDFLAGS
# * <PACKAGE-VARIABLE-PREFIX>_LIBS
#
# In addition, the variable:
#
# * nl_with_<PACKAGE-SUCCINCT-NAME>
#
# will unconditionally be set to the source of the package if it is to
# be used and is found; otherwise, 'no' if it is not to be used.
#
# The package disposition and source are specified by:
#
# PACKAGE-DISPOSITION : This may be either 'required' if the dependent
# package is required or 'optional' if
# not.
# PACKAGE-SOURCE : This may be either 'internal' if the dependent
# package may be provided either
# internally or externally to the current
# package or 'external' if the dependent
# package may only be provided outside of
# the current package. This also serves as
# the default value for where the
# configuration script expects to find the
# package.
#
# The dependent package is specified in three forms:
#
# PACKAGE-PRETTY-NAME : The human-readable name by which the package
# will be referred for any diagnostic output. For
# example, "My Great Software Package".
# PACKAGE-VARIABLE-PREFIX : The package-specific prefix applied to variables
# defined as a result of running this macro for the
# packages. For example, "MGSP" here is transformed
# into MGSP_CPPFLAGS.
# PACKAGE-SUCCINCT-NAME : The package-specific name used for pkg-config,
# in temporary variables and on the
# configure command line. For example,
# "mgsp" here is used for --with-mgsp=DIR
# or 'pkg-config --cflags mgsp'.
#
# In addition, if any additional, default link libraries are required
# for use with the package, these are specified as:
#
# DEFAULT-PACKAGE-LIBS : Default link libraries required for use with
# the package. These are used if pkg-config is
# not available or cannot identify any
# such libraries. For example, '-lmgsp'.
#
# If the package is specified, either internally or externally, optional
# actions are run.
#
# ACTIONS-TO-RUN-IF-NOT-EXTERNAL : Optional actions to run if the package
# is not external.
# ACTIONS-TO-RUN-IF-NOT-INTERNAL : Optional actions to run if the package
# is not internal.
# ----------------------------------------------------------------------------
AC_DEFUN([_NL_WITH_PACKAGE],
[
# Influential external variables for the package support
AC_ARG_VAR($4_CPPFLAGS, [$3 C preprocessor flags])
AC_ARG_VAR($4_LDFLAGS, [$3 linker flags])
AC_ARG_VAR($4_LIBS, [$3 linker libraries])
# Allow the user to specify both external headers and libraries
# together (or internal).
_NL_ARG_WITH_PACKAGE([$1], [$2], [$3], [$4], [$5])dnl
if test "${nl_with_$5}" == "no"; then
AC_MSG_CHECKING([whether to use the $3 package])
AC_MSG_RESULT([${nl_with_$5}])
else
AC_MSG_CHECKING([source of the $3 package])
AC_MSG_RESULT([${nl_with_$5}])
# If the user has selected or has defaulted into the internal $3
# package, set the values appropriately. Otherwise, run through the
# usual routine.
if test "${nl_with_$5}" = "internal"; then
$7
else
# We always prefer checking the values of the various '--with-$5-...'
# options first to using pkg-config because the former might be used
# in a cross-compilation environment on a system that also contains
# pkg-config. In such a case, the user wants what he/she specified
# rather than what pkg-config indicates.
if test "x${$5_dir}" != "x" -o "x${$5_header_dir}" != "x" -o "x${$5_library_dir}" != "x"; then
if test "x${$5_dir}" != "x"; then
if test -d "${$5_dir}"; then
if test -d "${$5_dir}/include"; then
$4_CPPFLAGS="-I${$5_dir}/include"
else
$4_CPPFLAGS="-I${$5_dir}"
fi
if test -d "${$5_dir}/lib"; then
$4_LDFLAGS="-L${$5_dir}/lib"
else
$4_LDFLAGS="-L${$5_dir}"
fi
else
AC_MSG_ERROR([No such directory ${$5_dir}])
fi
fi
if test "x${$5_header_dir}" != "x"; then
if test -d "${$5_header_dir}"; then
$4_CPPFLAGS="-I${$5_header_dir}"
else
AC_MSG_ERROR([No such directory ${$5_header_dir}])
fi
fi
if test "x${$5_library_dir}" != "x"; then
if test -d "${$5_library_dir}"; then
$4_LDFLAGS="-L${$5_library_dir}"
else
AC_MSG_ERROR([No such directory ${$5_library_dir}])
fi
fi
$4_LIBS="${$4_LDFLAGS} $6"
elif test "x${PKG_CONFIG}" != "x"; then
if ${PKG_CONFIG} --exists "$5"; then
$4_CPPFLAGS="`${PKG_CONFIG} --cflags $5`"
$4_LDFLAGS="`${PKG_CONFIG} --libs-only-L $5`"
$4_LIBS="`${PKG_CONFIG} --libs-only-l $5`"
else
m4_if([$1],
[required],
[AC_MSG_ERROR([Cannot find the $5 package with ${PKG_CONFIG}. ${PACKAGE_NAME} requires the $5 package. Try installing the package or use the relevant --with options to configure.])],
[nl_with_$5="no"])
fi
else
m4_if([$1],
[required],
[AC_MSG_ERROR([Cannot find the $3 package. ${PACKAGE_NAME} requires the $3 package.])],
[nl_with_$5="no"])
fi
fi
AC_SUBST($4_CPPFLAGS)
AC_SUBST($4_LDFLAGS)
AC_SUBST($4_LIBS)
if test "${nl_with_$5}" != "internal" -a "${nl_with_$5}" != "no"; then
nl_saved_CPPFLAGS="${CPPFLAGS}"
nl_saved_LDFLAGS="${LDFLAGS}"
nl_saved_LIBS="${LIBS}"
CPPFLAGS="${CPPFLAGS} ${$4_CPPFLAGS}"
LDFLAGS="${LDFLAGS} ${$4_LDFLAGS}"
LIBS="${LIBS} ${$4_LIBS}"
$8
CPPFLAGS="${nl_saved_CPPFLAGS}"
LDFLAGS="${nl_saved_LDFLAGS}"
LIBS="${nl_saved_LIBS}"
fi
fi
])
# NL_WITH_REQUIRED_EXTERNAL_PACKAGE(PACKAGE-PRETTY-NAME,
# PACKAGE-VARIABLE-PREFIX,
# PACKAGE-SUCCINCT-NAME,
# [DEFAULT-PACKAGE-LIBS],
# [ACTIONS-TO-RUN])
# ----------------------------------------------------------------------------
# This macro is used to test for the presence, with pkg-config if it
# is available, of the specified, required external dependent package.
#
# Failure to find the dependent package will result in a fatal error.
#
# The dependent package is specified in three forms:
#
# PACKAGE-PRETTY-NAME : The human-readable name by which the package
# will be referred for any diagnostic output. For
# example, "My Great Software Package".
# PACKAGE-VARIABLE-PREFIX : The package-specific prefix applied to variables
# defined as a result of running this macro for the
# packages. For example, "MGSP" here is transformed
# into MGSP_CPPFLAGS.
# PACKAGE-SUCCINCT-NAME : The package-specific name used for pkg-config,
# in temporary variables and on the
# configure command line. For example,
# "mgsp" here is used for --with-mgsp=DIR
# or 'pkg-config --cflags mgsp'.
#
# In addition, if any additional, default link libraries are required
# for use with the package, these are specified as:
#
# DEFAULT-PACKAGE-LIBS : Default link libraries required for use with
# the package. These are used if pkg-config is
# not available or cannot identify any
# such libraries. For example, '-lmgsp'.
#
# If the package is specified, optional actions are run.
#
# ACTIONS-TO-RUN-IF-FOUND : Optional actions to run if the package is found.
# ----------------------------------------------------------------------------
AC_DEFUN([NL_WITH_REQUIRED_EXTERNAL_PACKAGE],
[
_NL_WITH_PACKAGE([required], [external], [$1], [$2], [$3], [$4], [:], [$5])dnl
])
# NL_WITH_OPTIONAL_EXTERNAL_PACKAGE(PACKAGE-PRETTY-NAME,
# PACKAGE-VARIABLE-PREFIX,
# PACKAGE-SUCCINCT-NAME,
# [DEFAULT-PACKAGE-LIBS],
# [ACTIONS-TO-RUN])
# ----------------------------------------------------------------------------
# This macro is used to test for the presence, with pkg-config if it
# is available, of the specified, optional external dependent package.
#
# Failure to find the dependent package will NOT result in a fatal error.
#
# The dependent package is specified in three forms:
#
# PACKAGE-PRETTY-NAME : The human-readable name by which the package
# will be referred for any diagnostic output. For
# example, "My Great Software Package".
# PACKAGE-VARIABLE-PREFIX : The package-specific prefix applied to variables
# defined as a result of running this macro for the
# packages. For example, "MGSP" here is transformed
# into MGSP_CPPFLAGS.
# PACKAGE-SUCCINCT-NAME : The package-specific name used for pkg-config,
# in temporary variables and on the
# configure command line. For example,
# "mgsp" here is used for --with-mgsp=DIR
# or 'pkg-config --cflags mgsp'.
#
# In addition, if any additional, default link libraries are required
# for use with the package, these are specified as:
#
# DEFAULT-PACKAGE-LIBS : Default link libraries required for use with
# the package. These are used if pkg-config is
# not available or cannot identify any
# such libraries. For example, '-lmgsp'.
#
# If the package is specified, optional actions are run.
#
# ACTIONS-TO-RUN-IF-FOUND : Optional actions to run if the package is found.
# ----------------------------------------------------------------------------
AC_DEFUN([NL_WITH_OPTIONAL_EXTERNAL_PACKAGE],
[
_NL_WITH_PACKAGE([optional], [external], [$1], [$2], [$3], [$4], [:], [$5])dnl
])
# NL_WITH_REQUIRED_INTERNAL_PACKAGE(PACKAGE-PRETTY-NAME,
# PACKAGE-VARIABLE-PREFIX,
# PACKAGE-SUCCINCT-NAME,
# [DEFAULT-PACKAGE-LIBS],
# [ACTIONS-TO-RUN-IF-NOT-EXTERNAL],
# [ACTIONS-TO-RUN-IF-NOT-INTERNAL])
# ----------------------------------------------------------------------------
# This macro is used to test for the presence, with pkg-config if it
# is available, of the specified, required dependent package. The dependent
# package may be provided externally or may exist within the current
# package itself.
#
# Failure to find the dependent package will result in a fatal error.
#
# The dependent package is specified in three forms:
#
# PACKAGE-PRETTY-NAME : The human-readable name by which the package
# will be referred for any diagnostic output. For
# example, "My Great Software Package".
# PACKAGE-VARIABLE-PREFIX : The package-specific prefix applied to variables
# defined as a result of running this macro for the
# packages. For example, "MGSP" here is transformed
# into MGSP_CPPFLAGS.
# PACKAGE-SUCCINCT-NAME : The package-specific name used for pkg-config,
# in temporary variables and on the
# configure command line. For example,
# "mgsp" here is used for --with-mgsp=DIR
# or 'pkg-config --cflags mgsp'.
#
# In addition, if any additional, default link libraries are required
# for use with the package, these are specified as:
#
# DEFAULT-PACKAGE-LIBS : Default link libraries required for use with
# the package. These are used if pkg-config is
# not available or cannot identify any
# such libraries. For example, '-lmgsp'.
#
# If the package is specified, either internally or externally, optional
# actions are run.
#
# ACTIONS-TO-RUN-IF-NOT-EXTERNAL : Optional actions to run if the package
# is not external.
# ACTIONS-TO-RUN-IF-NOT-INTERNAL : Optional actions to run if the package
# is not internal.
# ----------------------------------------------------------------------------
AC_DEFUN([NL_WITH_REQUIRED_INTERNAL_PACKAGE],
[
_NL_WITH_PACKAGE([required], [internal], [$1], [$2], [$3], [$4], [$5], [$6])dnl
])
# NL_WITH_OPTIONAL_INTERNAL_PACKAGE(PACKAGE-PRETTY-NAME,
# PACKAGE-VARIABLE-PREFIX,
# PACKAGE-SUCCINCT-NAME,
# [DEFAULT-PACKAGE-LIBS],
# [ACTIONS-TO-RUN-IF-NOT-EXTERNAL],
# [ACTIONS-TO-RUN-IF-NOT-INTERNAL])
# ----------------------------------------------------------------------------
# This macro is used to test for the presence, with pkg-config if it
# is available, of the specified, optional dependent package. The dependent
# package may be provided externally or may exist within the current
# package itself.
#
# Failure to find the dependent package will NOT result in a fatal error.
#
# The dependent package is specified in three forms:
#
# PACKAGE-PRETTY-NAME : The human-readable name by which the package
# will be referred for any diagnostic output. For
# example, "My Great Software Package".
# PACKAGE-VARIABLE-PREFIX : The package-specific prefix applied to variables
# defined as a result of running this macro for the
# packages. For example, "MGSP" here is transformed
# into MGSP_CPPFLAGS.
# PACKAGE-SUCCINCT-NAME : The package-specific name used for pkg-config,
# in temporary variables and on the
# configure command line. For example,
# "mgsp" here is used for --with-mgsp=DIR
# or 'pkg-config --cflags mgsp'.
#
# In addition, if any additional, default link libraries are required
# for use with the package, these are specified as:
#
# DEFAULT-PACKAGE-LIBS : Default link libraries required for use with
# the package. These are used if pkg-config is
# not available or cannot identify any
# such libraries. For example, '-lmgsp'.
#
# If the package is specified, either internally or externally, optional
# actions are run.
#
# ACTIONS-TO-RUN-IF-NOT-EXTERNAL : Optional actions to run if the package
# is not external.
# ACTIONS-TO-RUN-IF-NOT-INTERNAL : Optional actions to run if the package
# is not internal.
# ----------------------------------------------------------------------------
AC_DEFUN([NL_WITH_OPTIONAL_INTERNAL_PACKAGE],
[
_NL_WITH_PACKAGE([optional], [internal], [$1], [$2], [$3], [$4], [$5], [$6])dnl
])
# NL_WITH_PACKAGE(PACKAGE-PRETTY-NAME, PACKAGE-VARIABLE-PREFIX,
# PACKAGE-SUCCINCT-NAME, [DEFAULT-PACKAGE-LIBS],
# [ACTIONS-TO-RUN-IF-NOT-EXTERNAL],
# [ACTIONS-TO-RUN-IF-NOT-INTERNAL])
# ----------------------------------------------------------------------------
# This macro is used to test for the presence, with pkg-config if it
# is available, of the specified dependent package. The dependent
# package may be provided externally or may exist within the current
# package itself.
#
# The dependent package is specified in three forms:
#
# PACKAGE-PRETTY-NAME : The human-readable name by which the package
# will be referred for any diagnostic output. For
# example, "My Great Software Package".
# PACKAGE-VARIABLE-PREFIX : The package-specific prefix applied to variables
# defined as a result of running this macro for the
# packages. For example, "MGSP" here is transformed
# into MGSP_CPPFLAGS.
# PACKAGE-SUCCINCT-NAME : The package-specific name used for pkg-config,
# in temporary variables and on the
# configure command line. For example,
# "mgsp" here is used for --with-mgsp=DIR
# or 'pkg-config --cflags mgsp'.
#
# In addition, if any additional, default link libraries are required
# for use with the package, these are specified as:
#
# DEFAULT-PACKAGE-LIBS : Default link libraries required for use with
# the package. These are used if pkg-config is
# not available or cannot identify any
# such libraries. For example, '-lmgsp'.
#
# If the package is specified, either internally or externally, optional
# actions are run.
#
# ACTIONS-TO-RUN-IF-NOT-EXTERNAL : Optional actions to run if the package
# is not external.
# ACTIONS-TO-RUN-IF-NOT-INTERNAL : Optional actions to run if the package
# is not internal.
# ----------------------------------------------------------------------------
AC_DEFUN([NL_WITH_PACKAGE],
[
m4_warn(obsolete, [$0: this macro has been deprecated. Consider using NL_WITH_REQUIRED_INTERNAL_PACKAGE instead.])
NL_WITH_REQUIRED_INTERNAL_PACKAGE([$1], [$2], [$3], [$4], [$5], [$6])dnl
])