Blame m4/path.pkgconfig.m4

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