135 lines
4.1 KiB
Plaintext
135 lines
4.1 KiB
Plaintext
|
AC_DEFUN([AM_PATH_PKGCONFIG],
|
||
|
[
|
||
|
|
||
|
dnl sets cflags and ldflags
|
||
|
dnl TEST_CXXFLAGS and TEST_LDFLAGS, by trying thes following
|
||
|
dnl until something works:
|
||
|
dnl
|
||
|
dnl 1 - try the test_prefix
|
||
|
dnl 2 - check whether pkgconfig can find values (unless --with-pkg-config=no)
|
||
|
dnl 3 - use the prefix, if it is not the default
|
||
|
dnl 4 - use defaults, /usr/local/include/OpenEXR and /usr/local/lib
|
||
|
dnl
|
||
|
dnl
|
||
|
dnl Expected arguments
|
||
|
dnl $1: arg_cxxflags - CXXFLAGS variable to set
|
||
|
dnl
|
||
|
dnl $2: arg-ldflags - LDFLAGS variable to set
|
||
|
dnl
|
||
|
dnl $3: package name (the package being checked), as requried by pkg-config
|
||
|
dnl
|
||
|
dnl $4: arg_include_subdir
|
||
|
dnl the name of the subdirectory name that is tacked on to
|
||
|
dnl the end of the include path e.g. "OpenEXR" in
|
||
|
dnl /usr/local/include/OpenEXR
|
||
|
dnl
|
||
|
dnl $5: arg_default_libs - default libraries, used if pkgconfig doesnt work
|
||
|
dnl
|
||
|
dnl $6: arg_test_prefix
|
||
|
dnl the argument passed to configure specifying a directory to
|
||
|
dnl be used in the CXX and LD flags for example:
|
||
|
dnl $2 = "openexr-prefix" and
|
||
|
dnl "configure --openexr-prefix=/usr/lib"
|
||
|
dnl leads to CXX including "-I/usr/lib/OpenEXR"
|
||
|
dnl
|
||
|
|
||
|
dnl create some local m4 "variables" so that we don't have to use numbers
|
||
|
define([arg_cxxflags],$1)
|
||
|
define([arg_ldflags],$2)
|
||
|
define([arg_libs],$3)
|
||
|
define([arg_pkg_name],$4)
|
||
|
define([arg_include_subdir],$5)
|
||
|
define([arg_default_ldflags],$6)
|
||
|
define([arg_default_libs],$7)
|
||
|
define([arg_test_prefix],$8)
|
||
|
|
||
|
TEST_CXXFLAGS=""
|
||
|
TEST_LDFLAGS=""
|
||
|
TEST_LIBS=""
|
||
|
|
||
|
AC_ARG_WITH(arg_test_prefix,[ --with-arg_test_prefix=PFX Prefix where tested libraries are supposed to be installed (optional)], test_prefix="$withval", test_prefix="NONE")
|
||
|
echo "test_prefix = $test_prefix"
|
||
|
|
||
|
AC_ARG_VAR(PKG_CONFIG, Path to pkg-config command)
|
||
|
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
|
||
|
AC_ARG_WITH(pkg-config,[ --with-pkg-config=PATH Specify which pkg-config to use (optional)], PKG_CONFIG="$withval",)
|
||
|
|
||
|
|
||
|
if test "x$test_prefix" != "xNONE" ; then
|
||
|
echo "using arg_test_prefix to set arg_cxxflags, arg_ldflags and arg_libs:"
|
||
|
for inc_dir in arg_include_subdir
|
||
|
do
|
||
|
TEST_CXXFLAGS="$TEST_CXXFLAGS -I$test_prefix/include/$inc_dir"
|
||
|
done
|
||
|
TEST_LDFLAGS="-L$test_prefix/lib"
|
||
|
TEST_LDFLAGS="$TEST_LDFLAGS arg_default_ldflags"
|
||
|
TEST_LIBS="arg_default_libs"
|
||
|
else
|
||
|
dnl
|
||
|
dnl Get the cflags and libraries from the arg_pkg_name package using
|
||
|
dnl pkg-config
|
||
|
dnl
|
||
|
dnl Note: the TEST_LIBS contains both the -L and the -l flags. This means
|
||
|
dnl the -L flags will appear twice on the command line, but we can not
|
||
|
dnl limit it to --libs-only-l because it may include the "-pthread" flag.
|
||
|
dnl
|
||
|
if test x$PKG_CONFIG != xno ; then
|
||
|
echo "using pkg-config to set arg_cxxflags and arg_ldflags:"
|
||
|
TEST_CXXFLAGS="`$PKG_CONFIG --cflags arg_pkg_name`"
|
||
|
TEST_LDFLAGS="`$PKG_CONFIG --libs-only-L arg_pkg_name`"
|
||
|
TEST_LIBS="`$PKG_CONFIG --libs arg_pkg_name`"
|
||
|
else
|
||
|
echo "Not using pkg-config."
|
||
|
TEST_CXXFLAGS=""
|
||
|
TEST_LDFLAGS=""
|
||
|
TEST_LIBS=""
|
||
|
fi
|
||
|
|
||
|
dnl
|
||
|
dnl if the flags are still not set, try a prefix and finally a default
|
||
|
dnl
|
||
|
if test -z "${TEST_CXXFLAGS}"; then
|
||
|
TEST_CXXFLAGS=""
|
||
|
if test "x$prefix" != "xNONE"; then
|
||
|
echo "using prefix to set arg_cxxflags and arg_ldflags:"
|
||
|
for inc_dir in arg_include_subdir
|
||
|
do
|
||
|
TEST_CXXFLAGS="$TEST_CXXFLAGS -I$prefix/include/$inc_dir"
|
||
|
done
|
||
|
TEST_LDFLAGS="-L$prefix/lib"
|
||
|
else
|
||
|
echo "using default as guess for arg_cxxflags and arg_ldflags:"
|
||
|
for inc_dir in arg_include_subdir
|
||
|
do
|
||
|
TEST_CXXFLAGS="$TEST_CXXFLAGS -I/usr/local/include/$inc_dir"
|
||
|
done
|
||
|
TEST_LDFLAGS="arg_default_ldflags"
|
||
|
fi
|
||
|
TEST_LIBS="arg_default_libs"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
echo " arg_cxxflags = $TEST_CXXFLAGS"
|
||
|
echo " arg_ldflags = $TEST_LDFLAGS"
|
||
|
echo " arg_libs = $TEST_LIBS"
|
||
|
|
||
|
|
||
|
AC_SUBST(arg_cxxflags, $TEST_CXXFLAGS)
|
||
|
AC_SUBST(arg_ldflags, $TEST_LDFLAGS)
|
||
|
AC_SUBST(arg_libs, $TEST_LIBS)
|
||
|
|
||
|
|
||
|
dnl clean up local "variables"
|
||
|
undefine([arg_cxxflags])
|
||
|
undefine([arg_ldflags])
|
||
|
undefine([arg_libs])
|
||
|
undefine([arg_pkg_name])
|
||
|
undefine([arg_include_subdir])
|
||
|
undefine([arg_default_ldflags])
|
||
|
undefine([arg_default_libs])
|
||
|
undefine([arg_test_prefix])
|
||
|
|
||
|
])
|
||
|
|
||
|
|