|
Packit |
df99a1 |
dnl Copyright (c) 2002 Leon Bottou and Yann Le Cun.
|
|
Packit |
df99a1 |
dnl Copyright (c) 2001 AT&T
|
|
Packit |
df99a1 |
dnl
|
|
Packit |
df99a1 |
dnl Most of these macros are derived from macros listed
|
|
Packit |
df99a1 |
dnl at the GNU Autoconf Macro Archive
|
|
Packit |
df99a1 |
dnl http://www.gnu.org/software/ac-archive/
|
|
Packit |
df99a1 |
dnl
|
|
Packit |
df99a1 |
dnl This program is free software; you can redistribute it and/or modify
|
|
Packit |
df99a1 |
dnl it under the terms of the GNU General Public License as published by
|
|
Packit |
df99a1 |
dnl the Free Software Foundation; either version 2 of the License, or
|
|
Packit |
df99a1 |
dnl (at your option) any later version.
|
|
Packit |
df99a1 |
dnl
|
|
Packit |
df99a1 |
dnl This program is distributed in the hope that it will be useful,
|
|
Packit |
df99a1 |
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
df99a1 |
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
Packit |
df99a1 |
dnl GNU General Public License for more details.
|
|
Packit |
df99a1 |
dnl
|
|
Packit |
df99a1 |
dnl You should have received a copy of the GNU General Public License
|
|
Packit |
df99a1 |
dnl along with this program; if not, write to the Free Software
|
|
Packit |
df99a1 |
dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA02111 USA
|
|
Packit |
df99a1 |
dnl
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
dnl @synopsis AC_CHECK_CXX_OPT(OPTION,
|
|
Packit |
df99a1 |
dnl ACTION-IF-OKAY,ACTION-IF-NOT-OKAY)
|
|
Packit |
df99a1 |
dnl Check if compiler accepts option OPTION.
|
|
Packit |
df99a1 |
dnl Default action is to add option to CXXFLAGS.
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
AC_DEFUN([AC_CHECK_CXX_OPT],[
|
|
Packit |
df99a1 |
opt="$1"
|
|
Packit |
df99a1 |
AC_MSG_CHECKING([if $CXX accepts $opt])
|
|
Packit |
df99a1 |
echo 'void f(){}' > conftest.cc
|
|
Packit |
df99a1 |
if test -z "`${CXX} ${CXXFLAGS} $opt -c conftest.cc 2>&1`"; then
|
|
Packit |
df99a1 |
AC_MSG_RESULT(yes)
|
|
Packit |
df99a1 |
rm conftest.*
|
|
Packit |
df99a1 |
ifelse($2,,[CXXFLAGS="$CXXFLAGS $opt"],$2)
|
|
Packit |
df99a1 |
else
|
|
Packit |
df99a1 |
AC_MSG_RESULT(no)
|
|
Packit |
df99a1 |
rm conftest.*
|
|
Packit |
df99a1 |
ifelse($3,,:,$3)
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
dnl @synopsis AC_CHECK_CC_OPT(OPTION,
|
|
Packit |
df99a1 |
dnl ACTION-IF-OKAY,ACTION-IF-NOT-OKAY)
|
|
Packit |
df99a1 |
dnl Check if compiler accepts option OPTION.
|
|
Packit |
df99a1 |
dnl Default action is to add option to CFLAGS.
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
AC_DEFUN([AC_CHECK_CC_OPT],[
|
|
Packit |
df99a1 |
opt="$1"
|
|
Packit |
df99a1 |
AC_MSG_CHECKING([if $CXX accepts $opt])
|
|
Packit |
df99a1 |
echo 'void f(){}' > conftest.c
|
|
Packit |
df99a1 |
if test -z "`${CC} ${CFLAGS} $opt -c conftest.c 2>&1`"; then
|
|
Packit |
df99a1 |
AC_MSG_RESULT(yes)
|
|
Packit |
df99a1 |
rm conftest.*
|
|
Packit |
df99a1 |
ifelse($2,,[CFLAGS="$CFLAGS $opt"],$2)
|
|
Packit |
df99a1 |
else
|
|
Packit |
df99a1 |
AC_MSG_RESULT(no)
|
|
Packit |
df99a1 |
rm conftest.*
|
|
Packit |
df99a1 |
ifelse($3,,:,$3)
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
dnl ------------------------------------------------------
|
|
Packit |
df99a1 |
dnl @synopsis AC_REMOVE_OPTIONS(VAR,PATTERN)
|
|
Packit |
df99a1 |
dnl ------------------------------------------------------
|
|
Packit |
df99a1 |
AC_DEFUN([AC_REMOVE_OPTIONS],[
|
|
Packit |
df99a1 |
saved_var=${$1}
|
|
Packit |
df99a1 |
$1=
|
|
Packit |
df99a1 |
for opt in ${saved_var} ; do
|
|
Packit |
df99a1 |
case "$opt" in
|
|
Packit |
df99a1 |
$2) ;;
|
|
Packit |
df99a1 |
*) $1="${$1} $opt" ;;
|
|
Packit |
df99a1 |
esac
|
|
Packit |
df99a1 |
done
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
dnl @synopsis AC_OPTIMIZE
|
|
Packit |
df99a1 |
dnl Setup option --enable-debug
|
|
Packit |
df99a1 |
dnl Determine optimization options
|
|
Packit |
df99a1 |
dnl Add them to CFLAGS and CXXFLAGS
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
AC_DEFUN([AC_OPTIMIZE],[
|
|
Packit |
df99a1 |
AC_REQUIRE([AC_CANONICAL_HOST])
|
|
Packit |
df99a1 |
AC_ARG_ENABLE(debug,
|
|
Packit |
df99a1 |
AS_HELP_STRING([--enable-debug],
|
|
Packit |
df99a1 |
[Compile with debugging options (default: no)]),
|
|
Packit |
df99a1 |
[ac_debug=$enableval],[ac_debug=no])
|
|
Packit |
df99a1 |
defines=
|
|
Packit |
df99a1 |
if test x$ac_debug = xno ; then
|
|
Packit |
df99a1 |
AC_REMOVE_OPTIONS([CFLAGS],[-O*])
|
|
Packit |
df99a1 |
AC_REMOVE_OPTIONS([CXXFLAGS],[-O*])
|
|
Packit |
df99a1 |
if test x$GCC != xyes ; then
|
|
Packit |
df99a1 |
AC_REMOVE_OPTIONS([CFLAGS],[-g*])
|
|
Packit |
df99a1 |
AC_REMOVE_OPTIONS([CXXFLAGS],[-g*])
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
defines="-DNDEBUG"
|
|
Packit |
df99a1 |
AC_CHECK_CC_OPT([-O3],,[AC_CHECK_CC_OPT([-O2])])
|
|
Packit |
df99a1 |
AC_CHECK_CXX_OPT([-O3],,[AC_CHECK_CXX_OPT([-O2])])
|
|
Packit |
df99a1 |
cpu=`uname -m 2>/dev/null`
|
|
Packit |
df99a1 |
test -z "$cpu" && cpu=${host_cpu}
|
|
Packit |
df99a1 |
case "${host_cpu}" in
|
|
Packit |
df99a1 |
i?86)
|
|
Packit |
df99a1 |
opt="-mtune=${host_cpu}"
|
|
Packit |
df99a1 |
AC_CHECK_CXX_OPT([-mtune=${host_cpu}],,
|
|
Packit |
df99a1 |
[AC_CHECK_CXX_OPT([-mcpu=${host_cpu}])])
|
|
Packit |
df99a1 |
AC_CHECK_CC_OPT([-mtune=${host_cpu}],,
|
|
Packit |
df99a1 |
[AC_CHECK_CC_OPT([-mcpu=${host_cpu}])])
|
|
Packit |
df99a1 |
;;
|
|
Packit |
df99a1 |
esac
|
|
Packit |
df99a1 |
else
|
|
Packit |
df99a1 |
AC_REMOVE_OPTIONS([CFLAGS],[-O*|-g*])
|
|
Packit |
df99a1 |
AC_REMOVE_OPTIONS([CXXFLAGS],[-O*|-g*])
|
|
Packit |
df99a1 |
AC_CHECK_CC_OPT([-g])
|
|
Packit |
df99a1 |
AC_CHECK_CXX_OPT([-g])
|
|
Packit |
df99a1 |
AC_CHECK_CXX_OPT([-Wno-non-virtual-dtor])
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
AC_CHECK_CC_OPT([-Wall])
|
|
Packit |
df99a1 |
AC_CHECK_CXX_OPT([-Wall])
|
|
Packit |
df99a1 |
case x"$ac_debug" in
|
|
Packit |
df99a1 |
changequote(<<, >>)dnl
|
|
Packit |
df99a1 |
x[0-9]) defines="-DDEBUGLVL=$ac_debug" ;;
|
|
Packit |
df99a1 |
xr*) defines="-DRUNTIME_DEBUG_ONLY" ;;
|
|
Packit |
df99a1 |
changequote([, ])dnl
|
|
Packit |
df99a1 |
esac
|
|
Packit |
df99a1 |
CFLAGS="$CFLAGS $defines"
|
|
Packit |
df99a1 |
CXXFLAGS="$CXXFLAGS $defines"
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
dnl @synopsis AC_CXX_INTEL_ATOMIC_BUILTINS
|
|
Packit |
df99a1 |
dnl If the compiler supports intel atomic builtins.
|
|
Packit |
df99a1 |
dnl define HAVE_INTEL_ATOMIC_BUILTINS
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
AC_DEFUN([AC_CXX_INTEL_ATOMIC_BUILTINS],
|
|
Packit |
df99a1 |
[AC_CACHE_CHECK(whether the compiler supports intel atomic builtins,
|
|
Packit |
df99a1 |
ac_cv_cxx_intel_atomic_builtins,
|
|
Packit |
df99a1 |
[AC_LANG_PUSH([C++])
|
|
Packit |
df99a1 |
AC_LINK_IFELSE(
|
|
Packit |
df99a1 |
[AC_LANG_PROGRAM(
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
static int volatile l;
|
|
Packit |
df99a1 |
]],
|
|
Packit |
df99a1 |
[
|
|
Packit |
df99a1 |
__sync_lock_test_and_set(&l,1);
|
|
Packit |
df99a1 |
__sync_lock_release(&l);
|
|
Packit |
df99a1 |
__sync_add_and_fetch(&l,1);
|
|
Packit |
df99a1 |
__sync_bool_compare_and_swap(&l,&l,1);
|
|
Packit |
df99a1 |
__sync_synchronize();
|
|
Packit |
df99a1 |
return 0;
|
|
Packit |
df99a1 |
])],
|
|
Packit |
df99a1 |
[ac_cv_cxx_intel_atomic_builtins=yes],
|
|
Packit |
df99a1 |
[ac_cv_cxx_intel_atomic_builtins=no])
|
|
Packit |
df99a1 |
AC_LANG_POP([C++])
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
if test "$ac_cv_cxx_intel_atomic_builtins" = yes; then
|
|
Packit |
df99a1 |
AC_DEFINE(HAVE_INTEL_ATOMIC_BUILTINS,1,
|
|
Packit |
df99a1 |
[define if the compiler supports intel atomic builtins])
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
dnl @synopsis AC_CXX_MEMBER_TEMPLATES
|
|
Packit |
df99a1 |
dnl If the compiler supports member templates,
|
|
Packit |
df99a1 |
dnl define HAVE_MEMBER_TEMPLATES.
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
AC_DEFUN([AC_CXX_MEMBER_TEMPLATES],
|
|
Packit |
df99a1 |
[AC_CACHE_CHECK(whether the compiler supports member templates,
|
|
Packit |
df99a1 |
ac_cv_cxx_member_templates,
|
|
Packit |
df99a1 |
[AC_LANG_PUSH([C++])
|
|
Packit |
df99a1 |
AC_COMPILE_IFELSE(
|
|
Packit |
df99a1 |
[AC_LANG_PROGRAM(
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
template<class T, int N> class A
|
|
Packit |
df99a1 |
{ public:
|
|
Packit |
df99a1 |
template<int N2> A<T,N> operator=(const A<T,N2>& z) { return A<T,N>(); }
|
|
Packit |
df99a1 |
};
|
|
Packit |
df99a1 |
]],
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
A<double,4> x; A<double,7> y;
|
|
Packit |
df99a1 |
x = y;
|
|
Packit |
df99a1 |
return 0;
|
|
Packit |
df99a1 |
]])],
|
|
Packit |
df99a1 |
[ac_cv_cxx_member_templates=yes],
|
|
Packit |
df99a1 |
[ac_cv_cxx_member_templates=no])
|
|
Packit |
df99a1 |
AC_LANG_POP([C++])
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
if test "$ac_cv_cxx_member_templates" = yes; then
|
|
Packit |
df99a1 |
AC_DEFINE(HAVE_MEMBER_TEMPLATES,1,
|
|
Packit |
df99a1 |
[define if the compiler supports member templates])
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
dnl @synopsis AC_CXX_NAMESPACES
|
|
Packit |
df99a1 |
dnl Define HAVE_NAMESPACES if the compiler supports
|
|
Packit |
df99a1 |
dnl namespaces.
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
AC_DEFUN([AC_CXX_NAMESPACES],
|
|
Packit |
df99a1 |
[AC_CACHE_CHECK(whether the compiler implements namespaces,
|
|
Packit |
df99a1 |
ac_cv_cxx_namespaces,
|
|
Packit |
df99a1 |
[ AC_LANG_PUSH([C++])
|
|
Packit |
df99a1 |
AC_COMPILE_IFELSE(
|
|
Packit |
df99a1 |
[AC_LANG_PROGRAM(
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
namespace Outer { namespace Inner { int i = 0; }}
|
|
Packit |
df99a1 |
]],
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
using namespace Outer::Inner;
|
|
Packit |
df99a1 |
return i;
|
|
Packit |
df99a1 |
]])],
|
|
Packit |
df99a1 |
[ac_cv_cxx_namespaces=yes],
|
|
Packit |
df99a1 |
[ac_cv_cxx_namespaces=no])
|
|
Packit |
df99a1 |
AC_LANG_POP([C++])
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
if test "$ac_cv_cxx_namespaces" = yes && test "$ac_debug" = no; then
|
|
Packit |
df99a1 |
AC_DEFINE(HAVE_NAMESPACES,1,
|
|
Packit |
df99a1 |
[define if the compiler implements namespaces])
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
dnl @synopsis AC_CXX_TYPENAME
|
|
Packit |
df99a1 |
dnl Define HAVE_TYPENAME if the compiler recognizes
|
|
Packit |
df99a1 |
dnl keyword typename.
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
AC_DEFUN([AC_CXX_TYPENAME],
|
|
Packit |
df99a1 |
[AC_CACHE_CHECK(whether the compiler recognizes typename,
|
|
Packit |
df99a1 |
ac_cv_cxx_typename,
|
|
Packit |
df99a1 |
[AC_LANG_PUSH([C++])
|
|
Packit |
df99a1 |
AC_COMPILE_IFELSE(
|
|
Packit |
df99a1 |
[AC_LANG_PROGRAM(
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
template<typename T>class X {public:X(){}};
|
|
Packit |
df99a1 |
]],
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
X<float> z;
|
|
Packit |
df99a1 |
return 0;
|
|
Packit |
df99a1 |
]])],
|
|
Packit |
df99a1 |
[ac_cv_cxx_typename=yes],
|
|
Packit |
df99a1 |
[ac_cv_cxx_typename=no])
|
|
Packit |
df99a1 |
AC_LANG_POP([C++])
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
if test "$ac_cv_cxx_typename" = yes; then
|
|
Packit |
df99a1 |
AC_DEFINE(HAVE_TYPENAME,1,[define if the compiler recognizes typename])
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
dnl @synopsis AC_CXX_STDINCLUDES
|
|
Packit |
df99a1 |
dnl Define HAVE_STDINCLUDES if the compiler has the
|
|
Packit |
df99a1 |
dnl new style include files (without the .h)
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
AC_DEFUN([AC_CXX_STDINCLUDES],
|
|
Packit |
df99a1 |
[AC_CACHE_CHECK(whether the compiler comes with standard includes,
|
|
Packit |
df99a1 |
ac_cv_cxx_stdincludes,
|
|
Packit |
df99a1 |
[AC_LANG_PUSH([C++])
|
|
Packit |
df99a1 |
AC_COMPILE_IFELSE(
|
|
Packit |
df99a1 |
[AC_LANG_PROGRAM(
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
#include <new>
|
|
Packit |
df99a1 |
struct X { int a; X(int a):a(a){} };
|
|
Packit |
df99a1 |
X* foo(void *x) { return new(x) X(2); }
|
|
Packit |
df99a1 |
]],
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
]])],
|
|
Packit |
df99a1 |
[ac_cv_cxx_stdincludes=yes],
|
|
Packit |
df99a1 |
[ac_cv_cxx_stdincludes=no])
|
|
Packit |
df99a1 |
AC_LANG_POP([C++])
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
if test "$ac_cv_cxx_stdincludes" = yes; then
|
|
Packit |
df99a1 |
AC_DEFINE(HAVE_STDINCLUDES,1,
|
|
Packit |
df99a1 |
[define if the compiler comes with standard includes])
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
dnl @synopsis AC_CXX_BOOL
|
|
Packit |
df99a1 |
dnl If the compiler recognizes bool as a separate built-in type,
|
|
Packit |
df99a1 |
dnl define HAVE_BOOL. Note that a typedef is not a separate
|
|
Packit |
df99a1 |
dnl type since you cannot overload a function such that it
|
|
Packit |
df99a1 |
dnl accepts either the basic type or the typedef.
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
AC_DEFUN([AC_CXX_BOOL],
|
|
Packit |
df99a1 |
[AC_CACHE_CHECK(whether the compiler recognizes bool as a built-in type,
|
|
Packit |
df99a1 |
ac_cv_cxx_bool,
|
|
Packit |
df99a1 |
[AC_LANG_PUSH([C++])
|
|
Packit |
df99a1 |
AC_COMPILE_IFELSE(
|
|
Packit |
df99a1 |
[AC_LANG_PROGRAM(
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
int f(int x){return 1;}
|
|
Packit |
df99a1 |
int f(char x){return 1;}
|
|
Packit |
df99a1 |
int f(bool x){return 1;}
|
|
Packit |
df99a1 |
]],
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
bool b = true;
|
|
Packit |
df99a1 |
return f(b);
|
|
Packit |
df99a1 |
]])],
|
|
Packit |
df99a1 |
[ac_cv_cxx_bool=yes],
|
|
Packit |
df99a1 |
[ac_cv_cxx_bool=no])
|
|
Packit |
df99a1 |
AC_LANG_POP([C++])
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
if test "$ac_cv_cxx_bool" = yes; then
|
|
Packit |
df99a1 |
AC_DEFINE(HAVE_BOOL,1,[define if bool is a built-in type])
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
dnl @synopsis AC_CXX_EXCEPTIONS
|
|
Packit |
df99a1 |
dnl If the C++ compiler supports exceptions handling (try,
|
|
Packit |
df99a1 |
dnl throw and catch), define HAVE_EXCEPTIONS.
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
AC_DEFUN([AC_CXX_EXCEPTIONS],
|
|
Packit |
df99a1 |
[AC_CACHE_CHECK(whether the compiler supports exceptions,
|
|
Packit |
df99a1 |
ac_cv_cxx_exceptions,
|
|
Packit |
df99a1 |
[AC_LANG_PUSH([C++])
|
|
Packit |
df99a1 |
AC_COMPILE_IFELSE(
|
|
Packit |
df99a1 |
[AC_LANG_PROGRAM(
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
]],
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
try { throw 1; } catch (int i) { return i; }
|
|
Packit |
df99a1 |
]])],
|
|
Packit |
df99a1 |
[ac_cv_cxx_exceptions=yes],
|
|
Packit |
df99a1 |
[ac_cv_cxx_exceptions=no])
|
|
Packit |
df99a1 |
AC_LANG_POP([C++])
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
if test "$ac_cv_cxx_exceptions" = yes; then
|
|
Packit |
df99a1 |
AC_DEFINE(HAVE_EXCEPTIONS,1,[define if the compiler supports exceptions])
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
dnl @synopsis AC_CXX_GCCTLS
|
|
Packit |
df99a1 |
dnl Define HAVE_GCCTLS if the compiler recognizes
|
|
Packit |
df99a1 |
dnl keyword __thread for TLS variables.
|
|
Packit |
df99a1 |
dnl -------------------------------------------------------
|
|
Packit |
df99a1 |
AC_DEFUN([AC_CXX_GCCTLS],
|
|
Packit |
df99a1 |
[AC_CACHE_CHECK(whether the compiler supports keyword __thread,
|
|
Packit |
df99a1 |
ac_cv_cxx_gcctls,
|
|
Packit |
df99a1 |
[AC_LANG_PUSH([C++])
|
|
Packit |
df99a1 |
AC_COMPILE_IFELSE(
|
|
Packit |
df99a1 |
[AC_LANG_PROGRAM(
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
__thread int i;
|
|
Packit |
df99a1 |
]],
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
return i;
|
|
Packit |
df99a1 |
]])],
|
|
Packit |
df99a1 |
[ac_cv_cxx_gcctls=yes],
|
|
Packit |
df99a1 |
[ac_cv_cxx_gcctls=no])
|
|
Packit |
df99a1 |
AC_LANG_POP([C++])
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
if test "$ac_cv_cxx_gcctls" = yes; then
|
|
Packit |
df99a1 |
AC_DEFINE(HAVE_GCCTLS,1,[define if the compiler supports keyword __thread])
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
dnl ------------------------------------------------------------------
|
|
Packit |
df99a1 |
dnl @synopsis AC_PATH_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
|
Packit |
df99a1 |
dnl This macro figures out how to build C programs using POSIX
|
|
Packit |
df99a1 |
dnl threads. It sets the PTHREAD_LIBS output variable to the threads
|
|
Packit |
df99a1 |
dnl library and linker flags, and the PTHREAD_CFLAGS output variable
|
|
Packit |
df99a1 |
dnl to any special C compiler flags that are needed. (The user can also
|
|
Packit |
df99a1 |
dnl force certain compiler flags/libs to be tested by setting these
|
|
Packit |
df99a1 |
dnl environment variables.).
|
|
Packit |
df99a1 |
dnl ------------------------------------------------------------------
|
|
Packit |
df99a1 |
AC_DEFUN([AC_PATH_PTHREAD], [
|
|
Packit |
df99a1 |
AC_REQUIRE([AC_CANONICAL_HOST])
|
|
Packit |
df99a1 |
acx_pthread_ok=no
|
|
Packit |
df99a1 |
# First, check if the POSIX threads header, pthread.h, is available.
|
|
Packit |
df99a1 |
# If it isn't, don't bother looking for the threads libraries.
|
|
Packit |
df99a1 |
AC_CHECK_HEADER(pthread.h, , acx_pthread_ok=noheader)
|
|
Packit |
df99a1 |
# We must check for the threads library under a number of different
|
|
Packit |
df99a1 |
# names; the ordering is very important because some systems
|
|
Packit |
df99a1 |
# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
|
|
Packit |
df99a1 |
# libraries is broken (non-POSIX).
|
|
Packit |
df99a1 |
# First of all, check if the user has set any of the PTHREAD_LIBS,
|
|
Packit |
df99a1 |
# etcetera environment variables, and if threads linking works.
|
|
Packit |
df99a1 |
if test x${PTHREAD_LIBS+set} = xset ||
|
|
Packit |
df99a1 |
test x${PTHREAD_CFLAGS+set} = xset ; then
|
|
Packit |
df99a1 |
save_CFLAGS="$CFLAGS"
|
|
Packit |
df99a1 |
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
Packit |
df99a1 |
save_CXXFLAGS="$CXXFLAGS"
|
|
Packit |
df99a1 |
CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
|
|
Packit |
df99a1 |
save_LIBS="$LIBS"
|
|
Packit |
df99a1 |
LIBS="$PTHREAD_LIBS $LIBS"
|
|
Packit |
df99a1 |
AC_MSG_CHECKING([provided PTHREAD_LIBS/PTHREAD_CFLAGS.])
|
|
Packit |
df99a1 |
AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes)
|
|
Packit |
df99a1 |
AC_MSG_RESULT($acx_pthread_ok)
|
|
Packit |
df99a1 |
if test x"$acx_pthread_ok" = xno; then
|
|
Packit |
df99a1 |
PTHREAD_LIBS=""
|
|
Packit |
df99a1 |
PTHREAD_CFLAGS=""
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
LIBS="$save_LIBS"
|
|
Packit |
df99a1 |
CFLAGS="$save_CFLAGS"
|
|
Packit |
df99a1 |
CXXFLAGS="$save_CXXFLAGS"
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
# Create a list of thread flags to try. Items starting with a "-" are
|
|
Packit |
df99a1 |
# C compiler flags, and other items are library names, except for "none"
|
|
Packit |
df99a1 |
# which indicates that we try without any flags at all. Also, combinations
|
|
Packit |
df99a1 |
# of items (for instance, both a compiler flag and a library name) can be
|
|
Packit |
df99a1 |
# specified using a colon separator.
|
|
Packit |
df99a1 |
acx_pthread_flags="pthreads none -Kthread -kthread lthread
|
|
Packit |
df99a1 |
-pthread -pthreads -mt -mthreads pthread
|
|
Packit |
df99a1 |
--thread-safe"
|
|
Packit |
df99a1 |
# The ordering *is* (sometimes) important.
|
|
Packit |
df99a1 |
# Some notes on the individual items follow:
|
|
Packit |
df99a1 |
# pthreads: AIX (must check this before -lpthread)
|
|
Packit |
df99a1 |
# none: in case threads are in libc; should be tried before -Kthread and
|
|
Packit |
df99a1 |
# other compiler flags to prevent continual compiler warnings
|
|
Packit |
df99a1 |
# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
|
|
Packit |
df99a1 |
# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
|
|
Packit |
df99a1 |
# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
|
|
Packit |
df99a1 |
# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
|
|
Packit |
df99a1 |
# -pthreads: Solaris/gcc
|
|
Packit |
df99a1 |
# -mt: HP aCC (check before -mthreads)
|
|
Packit |
df99a1 |
# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
|
|
Packit |
df99a1 |
# doesn't hurt to check since this sometimes defines pthreads too;
|
|
Packit |
df99a1 |
# also defines -D_REENTRANT)
|
|
Packit |
df99a1 |
# -mthreads: Mingw32/gcc, Lynx/gcc
|
|
Packit |
df99a1 |
# pthread: Linux, etcetera
|
|
Packit |
df99a1 |
# --thread-safe: KAI C++
|
|
Packit |
df99a1 |
case "${host_cpu}-${host_os}" in
|
|
Packit |
df99a1 |
*solaris*)
|
|
Packit |
df99a1 |
# On Solaris (at least, for some versions), libc contains stubbed
|
|
Packit |
df99a1 |
# (non-functional) versions of the pthreads routines, so link-based
|
|
Packit |
df99a1 |
# tests will erroneously succeed. (We need to link with -pthread or
|
|
Packit |
df99a1 |
# -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
|
|
Packit |
df99a1 |
# a function called by this macro, so we could check for that, but
|
|
Packit |
df99a1 |
# who knows whether they'll stub that too in a future libc.) So,
|
|
Packit |
df99a1 |
# we'll just look for -pthreads and -lpthread first:
|
|
Packit |
df99a1 |
acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags"
|
|
Packit |
df99a1 |
;;
|
|
Packit |
df99a1 |
esac
|
|
Packit |
df99a1 |
case "${host_os}-${GCC}" in
|
|
Packit |
df99a1 |
*linux*-yes | *kfreebsd*-yes )
|
|
Packit |
df99a1 |
# On Linux/GCC, libtool uses -nostdlib for linking, which cancel part
|
|
Packit |
df99a1 |
# of the -pthread flag effect (libpthread is not automatically linked).
|
|
Packit |
df99a1 |
# So we'll try to link with both -pthread and -lpthread first:
|
|
Packit |
df99a1 |
acx_pthread_flags="-pthread:pthread $acx_pthread_flags"
|
|
Packit |
df99a1 |
;;
|
|
Packit |
df99a1 |
esac
|
|
Packit |
df99a1 |
if test x"$acx_pthread_ok" = xno; then
|
|
Packit |
df99a1 |
for flag in $acx_pthread_flags; do
|
|
Packit |
df99a1 |
case $flag in
|
|
Packit |
df99a1 |
none)
|
|
Packit |
df99a1 |
AC_MSG_CHECKING([whether pthreads work without any flags])
|
|
Packit |
df99a1 |
;;
|
|
Packit |
df99a1 |
*:*)
|
|
Packit |
df99a1 |
PTHREAD_CFLAGS=""
|
|
Packit |
df99a1 |
PTHREAD_LIBS=""
|
|
Packit |
df99a1 |
message="whether pthreads work with"
|
|
Packit |
df99a1 |
while test x"$flag" != x; do
|
|
Packit |
df99a1 |
subflag=`echo $flag | cut -d: -f1`
|
|
Packit |
df99a1 |
case $subflag in
|
|
Packit |
df99a1 |
-*)
|
|
Packit |
df99a1 |
PTHREAD_CFLAGS="$PTHREAD_CFLAGS $subflag"
|
|
Packit |
df99a1 |
message="$message $subflag"
|
|
Packit |
df99a1 |
;;
|
|
Packit |
df99a1 |
*)
|
|
Packit |
df99a1 |
PTHREAD_LIBS="$PTHREAD_LIBS -l$subflag"
|
|
Packit |
df99a1 |
message="$message -l$subflag"
|
|
Packit |
df99a1 |
;;
|
|
Packit |
df99a1 |
esac
|
|
Packit |
df99a1 |
flag=`echo $flag | cut -s -d: -f2-`
|
|
Packit |
df99a1 |
done
|
|
Packit |
df99a1 |
AC_MSG_CHECKING([$message])
|
|
Packit |
df99a1 |
;;
|
|
Packit |
df99a1 |
-*)
|
|
Packit |
df99a1 |
AC_MSG_CHECKING([whether pthreads work with $flag])
|
|
Packit |
df99a1 |
PTHREAD_CFLAGS="$flag"
|
|
Packit |
df99a1 |
;;
|
|
Packit |
df99a1 |
*)
|
|
Packit |
df99a1 |
AC_MSG_CHECKING([for the pthreads library -l$flag])
|
|
Packit |
df99a1 |
PTHREAD_LIBS="-l$flag"
|
|
Packit |
df99a1 |
;;
|
|
Packit |
df99a1 |
esac
|
|
Packit |
df99a1 |
save_LIBS="$LIBS"
|
|
Packit |
df99a1 |
save_CFLAGS="$CFLAGS"
|
|
Packit |
df99a1 |
save_CXXFLAGS="$CXXFLAGS"
|
|
Packit |
df99a1 |
LIBS="$PTHREAD_LIBS $LIBS"
|
|
Packit |
df99a1 |
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
Packit |
df99a1 |
CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
|
|
Packit |
df99a1 |
# Check for various functions. We must include pthread.h,
|
|
Packit |
df99a1 |
# since some functions may be macros. (On the Sequent, we
|
|
Packit |
df99a1 |
# need a special flag -Kthread to make this header compile.)
|
|
Packit |
df99a1 |
# We check for pthread_join because it is in -lpthread on IRIX
|
|
Packit |
df99a1 |
# while pthread_create is in libc. We check for pthread_attr_init
|
|
Packit |
df99a1 |
# due to DEC craziness with -lpthreads. We check for
|
|
Packit |
df99a1 |
# pthread_cleanup_push because it is one of the few pthread
|
|
Packit |
df99a1 |
# functions on Solaris that doesn't have a non-functional libc stub.
|
|
Packit |
df99a1 |
# We try pthread_create on general principles.
|
|
Packit |
df99a1 |
AC_LINK_IFELSE(
|
|
Packit |
df99a1 |
[AC_LANG_PROGRAM(
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
#include <pthread.h>
|
|
Packit |
df99a1 |
]],
|
|
Packit |
df99a1 |
[
|
|
Packit |
df99a1 |
pthread_t th; pthread_join(th, 0);
|
|
Packit |
df99a1 |
pthread_attr_init(0); pthread_cleanup_push(0, 0);
|
|
Packit |
df99a1 |
pthread_create(0,0,0,0); pthread_cleanup_pop(0);
|
|
Packit |
df99a1 |
])],
|
|
Packit |
df99a1 |
[acx_pthread_ok=yes],
|
|
Packit |
df99a1 |
[acx_pthread_ok=no])
|
|
Packit |
df99a1 |
LIBS="$save_LIBS"
|
|
Packit |
df99a1 |
CFLAGS="$save_CFLAGS"
|
|
Packit |
df99a1 |
CXXFLAGS="$save_CXXFLAGS"
|
|
Packit |
df99a1 |
AC_MSG_RESULT($acx_pthread_ok)
|
|
Packit |
df99a1 |
if test "x$acx_pthread_ok" = xyes; then
|
|
Packit |
df99a1 |
break;
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
PTHREAD_LIBS=""
|
|
Packit |
df99a1 |
PTHREAD_CFLAGS=""
|
|
Packit |
df99a1 |
done
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
# Various other checks:
|
|
Packit |
df99a1 |
if test "x$acx_pthread_ok" = xyes; then
|
|
Packit |
df99a1 |
save_LIBS="$LIBS"
|
|
Packit |
df99a1 |
LIBS="$PTHREAD_LIBS $LIBS"
|
|
Packit |
df99a1 |
save_CFLAGS="$CFLAGS"
|
|
Packit |
df99a1 |
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
Packit |
df99a1 |
save_CXXFLAGS="$CXXFLAGS"
|
|
Packit |
df99a1 |
CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
|
|
Packit |
df99a1 |
AC_MSG_CHECKING([if more special flags are required for pthreads])
|
|
Packit |
df99a1 |
flag=no
|
|
Packit |
df99a1 |
case "${host_cpu}-${host_os}" in
|
|
Packit |
df99a1 |
*-aix* | *-freebsd*) flag="-D_THREAD_SAFE";;
|
|
Packit |
df99a1 |
*solaris* | alpha*-osf*) flag="-D_REENTRANT";;
|
|
Packit |
df99a1 |
esac
|
|
Packit |
df99a1 |
AC_MSG_RESULT(${flag})
|
|
Packit |
df99a1 |
if test "x$flag" != xno; then
|
|
Packit |
df99a1 |
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
LIBS="$save_LIBS"
|
|
Packit |
df99a1 |
CFLAGS="$save_CFLAGS"
|
|
Packit |
df99a1 |
CXXFLAGS="$save_CXXFLAGS"
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
AC_ARG_VAR(PTHREAD_LIBS, [Flags for linking pthread programs.])
|
|
Packit |
df99a1 |
AC_ARG_VAR(PTHREAD_CFLAGS, [Flags for compiling pthread programs.])
|
|
Packit |
df99a1 |
# execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
|
|
Packit |
df99a1 |
if test x"$acx_pthread_ok" = xyes; then
|
|
Packit |
df99a1 |
AC_DEFINE(HAVE_PTHREAD,1,[Define if pthreads are available])
|
|
Packit |
df99a1 |
ifelse([$1],,:,[$1])
|
|
Packit |
df99a1 |
else
|
|
Packit |
df99a1 |
ifelse([$2],,:,[$2])
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
dnl ------------------------------------------------------------------
|
|
Packit |
df99a1 |
dnl @synopsis AC_PATH_JPEG([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
|
Packit |
df99a1 |
dnl Process option --with-jpeg.
|
|
Packit |
df99a1 |
dnl Search JPEG. Define HAVE_JPEG.
|
|
Packit |
df99a1 |
dnl Set output variable JPEG_CFLAGS and JPEG_LIBS
|
|
Packit |
df99a1 |
dnl ------------------------------------------------------------------
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
AC_DEFUN([AC_PATH_JPEG],
|
|
Packit |
df99a1 |
[
|
|
Packit |
df99a1 |
AC_ARG_VAR(JPEG_LIBS)
|
|
Packit |
df99a1 |
AC_ARG_VAR(JPEG_CFLAGS)
|
|
Packit |
df99a1 |
ac_jpeg=no
|
|
Packit |
df99a1 |
AC_ARG_WITH(jpeg,
|
|
Packit |
df99a1 |
AS_HELP_STRING([--with-jpeg=DIR],
|
|
Packit |
df99a1 |
[where the IJG jpeg library is located]),
|
|
Packit |
df99a1 |
[ac_jpeg=$withval], [ac_jpeg=yes] )
|
|
Packit |
df99a1 |
# Process specification
|
|
Packit |
df99a1 |
if test x$ac_jpeg = xyes ; then
|
|
Packit |
df99a1 |
test x${JPEG_LIBS+set} != xset && JPEG_LIBS="-ljpeg"
|
|
Packit |
df99a1 |
elif test x$ac_jpeg != xno ; then
|
|
Packit |
df99a1 |
test x${JPEG_LIBS+set} != xset && JPEG_LIBS="-L$ac_jpeg/lib -ljpeg"
|
|
Packit |
df99a1 |
test x${JPEG_CFLAGS+set} != xset && JPEG_CFLAGS="-I$ac_jpeg/include"
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
# Try linking
|
|
Packit |
df99a1 |
if test x$ac_jpeg != xno ; then
|
|
Packit |
df99a1 |
AC_MSG_CHECKING([for jpeg library])
|
|
Packit |
df99a1 |
save_CFLAGS="$CFLAGS"
|
|
Packit |
df99a1 |
save_CXXFLAGS="$CXXFLAGS"
|
|
Packit |
df99a1 |
save_LIBS="$LIBS"
|
|
Packit |
df99a1 |
CFLAGS="$CFLAGS $JPEG_CFLAGS"
|
|
Packit |
df99a1 |
CXXFLAGS="$CXXFLAGS $JPEG_CFLAGS"
|
|
Packit |
df99a1 |
LIBS="$LIBS $JPEG_LIBS"
|
|
Packit |
df99a1 |
AC_LINK_IFELSE(
|
|
Packit |
df99a1 |
[AC_LANG_PROGRAM(
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
#ifdef __cplusplus
|
|
Packit |
df99a1 |
extern "C" {
|
|
Packit |
df99a1 |
#endif
|
|
Packit |
df99a1 |
#include <stdio.h>
|
|
Packit |
df99a1 |
#include <jpeglib.h>
|
|
Packit |
df99a1 |
#ifdef __cplusplus
|
|
Packit |
df99a1 |
}
|
|
Packit |
df99a1 |
#endif
|
|
Packit |
df99a1 |
]],
|
|
Packit |
df99a1 |
[
|
|
Packit |
df99a1 |
jpeg_CreateDecompress(0,0,0);
|
|
Packit |
df99a1 |
])],
|
|
Packit |
df99a1 |
[ac_jpeg=yes],
|
|
Packit |
df99a1 |
[ac_jpeg=no])
|
|
Packit |
df99a1 |
CFLAGS="$save_CFLAGS"
|
|
Packit |
df99a1 |
CXXFLAGS="$save_CXXFLAGS"
|
|
Packit |
df99a1 |
LIBS="$save_LIBS"
|
|
Packit |
df99a1 |
AC_MSG_RESULT($ac_jpeg)
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
# Finish
|
|
Packit |
df99a1 |
if test x$ac_jpeg = xno; then
|
|
Packit |
df99a1 |
JPEG_CFLAGS= ; JPEG_LIBS=
|
|
Packit |
df99a1 |
ifelse([$2],,:,[$2])
|
|
Packit |
df99a1 |
else
|
|
Packit |
df99a1 |
AC_DEFINE(HAVE_JPEG,1,[Define if you have the IJG JPEG library.])
|
|
Packit |
df99a1 |
dnl AC_MSG_RESULT([setting JPEG_CFLAGS=$JPEG_CFLAGS])
|
|
Packit |
df99a1 |
dnl AC_MSG_RESULT([setting JPEG_LIBS=$JPEG_LIBS])
|
|
Packit |
df99a1 |
ifelse([$1],,:,[$1])
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
dnl ------------------------------------------------------------------
|
|
Packit |
df99a1 |
dnl @synopsis AC_PATH_TIFF([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
|
Packit |
df99a1 |
dnl Process option --with-tiff
|
|
Packit |
df99a1 |
dnl Search LIBTIFF. Define HAVE_TIFF.
|
|
Packit |
df99a1 |
dnl Set output variable TIFF_CFLAGS and TIFF_LIBS
|
|
Packit |
df99a1 |
dnl ------------------------------------------------------------------
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
AC_DEFUN([AC_PATH_TIFF],
|
|
Packit |
df99a1 |
[
|
|
Packit |
df99a1 |
AC_ARG_VAR(TIFF_LIBS)
|
|
Packit |
df99a1 |
AC_ARG_VAR(TIFF_CFLAGS)
|
|
Packit |
df99a1 |
ac_tiff=no
|
|
Packit |
df99a1 |
AC_ARG_WITH(tiff,
|
|
Packit |
df99a1 |
AS_HELP_STRING([--with-tiff=DIR],
|
|
Packit |
df99a1 |
[where libtiff is located]),
|
|
Packit |
df99a1 |
[ac_tiff=$withval], [ac_tiff=yes] )
|
|
Packit |
df99a1 |
# Process specification
|
|
Packit |
df99a1 |
if test x$ac_tiff = xyes ; then
|
|
Packit |
df99a1 |
test x${TIFF_LIBS+set} != xset && TIFF_LIBS="-ltiff"
|
|
Packit |
df99a1 |
elif test x$ac_tiff != xno ; then
|
|
Packit |
df99a1 |
test x${TIFF_LIBS+set} != xset && TIFF_LIBS="-L$ac_tiff/lib -ltiff"
|
|
Packit |
df99a1 |
test x${TIFF_CFLAGS+set} != xset && TIFF_CFLAGS="-I$ac_tiff/include"
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
# Try linking
|
|
Packit |
df99a1 |
if test x$ac_tiff != xno ; then
|
|
Packit |
df99a1 |
AC_MSG_CHECKING([for the libtiff library])
|
|
Packit |
df99a1 |
save_CFLAGS="$CFLAGS"
|
|
Packit |
df99a1 |
save_CXXFLAGS="$CXXFLAGS"
|
|
Packit |
df99a1 |
save_LIBS="$LIBS"
|
|
Packit |
df99a1 |
CFLAGS="$CFLAGS $TIFF_CFLAGS"
|
|
Packit |
df99a1 |
CXXFLAGS="$CXXFLAGS $TIFF_CFLAGS"
|
|
Packit |
df99a1 |
LIBS="$LIBS $TIFF_LIBS"
|
|
Packit |
df99a1 |
AC_LINK_IFELSE(
|
|
Packit |
df99a1 |
[AC_LANG_PROGRAM(
|
|
Packit |
df99a1 |
[[
|
|
Packit |
df99a1 |
#ifdef __cplusplus
|
|
Packit |
df99a1 |
extern "C" {
|
|
Packit |
df99a1 |
#endif
|
|
Packit |
df99a1 |
#include <stdio.h>
|
|
Packit |
df99a1 |
#include <tiffio.h>
|
|
Packit |
df99a1 |
#ifdef __cplusplus
|
|
Packit |
df99a1 |
}
|
|
Packit |
df99a1 |
#endif
|
|
Packit |
df99a1 |
]],
|
|
Packit |
df99a1 |
[
|
|
Packit |
df99a1 |
TIFFOpen(0,0);
|
|
Packit |
df99a1 |
])],
|
|
Packit |
df99a1 |
[ac_tiff=yes],
|
|
Packit |
df99a1 |
[ac_tiff=no])
|
|
Packit |
df99a1 |
CFLAGS="$save_CFLAGS"
|
|
Packit |
df99a1 |
CXXFLAGS="$save_CXXFLAGS"
|
|
Packit |
df99a1 |
LIBS="$save_LIBS"
|
|
Packit |
df99a1 |
AC_MSG_RESULT($ac_tiff)
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
# Finish
|
|
Packit |
df99a1 |
if test x$ac_tiff = xno; then
|
|
Packit |
df99a1 |
TIFF_CFLAGS= ; TIFF_LIBS=
|
|
Packit |
df99a1 |
ifelse([$2],,:,[$2])
|
|
Packit |
df99a1 |
else
|
|
Packit |
df99a1 |
AC_DEFINE(HAVE_TIFF,1,[Define if you have libtiff.])
|
|
Packit |
df99a1 |
dnl AC_MSG_RESULT([setting TIFF_CFLAGS=$TIFF_CFLAGS])
|
|
Packit |
df99a1 |
dnl AC_MSG_RESULT([setting TIFF_LIBS=$TIFF_LIBS])
|
|
Packit |
df99a1 |
ifelse([$1],,:,[$1])
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
dnl ------------------------------------------------------------------
|
|
Packit |
df99a1 |
dnl @synopsis AC_PROG_PKG_CONFIG([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
|
Packit |
df99a1 |
dnl Sets output variables PKG_CONFIG
|
|
Packit |
df99a1 |
dnl ------------------------------------------------------------------
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
AC_DEFUN([AC_PROG_PKG_CONFIG],
|
|
Packit |
df99a1 |
[
|
|
Packit |
df99a1 |
AC_ARG_VAR(PKG_CONFIG,[Location of the pkg-config program.])
|
|
Packit |
df99a1 |
AC_ARG_VAR(PKG_CONFIG_PATH, [Path for pkg-config descriptors.])
|
|
Packit |
df99a1 |
AC_PATH_PROG(PKG_CONFIG, pkg-config)
|
|
Packit |
df99a1 |
if test -z "$PKG_CONFIG" ; then
|
|
Packit |
df99a1 |
ifelse([$2],,:,[$2])
|
|
Packit |
df99a1 |
else
|
|
Packit |
df99a1 |
ifelse([$1],,:,[$1])
|
|
Packit |
df99a1 |
fi
|
|
Packit |
df99a1 |
])
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
|
|
Packit |
df99a1 |
|