blob: 39e72b151b4d6aa06f4610b9984187f09abf16c9 [file] [log] [blame]
# libcroco.m4 serial 4
dnl Copyright (C) 2006-2007, 2019-2020 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl From Bruno Haible.
dnl gl_LIBCROCO
dnl gives the user the option to decide whether to use the included or
dnl an external libcroco.
dnl gl_LIBCROCO(FORCE-INCLUDED)
dnl forces the use of the included or an external libcroco.
AC_DEFUN([gl_LIBCROCO],
[
ifelse([$1], [yes], , [
dnl libcroco depends on libglib.
AC_REQUIRE([gl_LIBGLIB])
])
ifelse([$1], , [
AC_MSG_CHECKING([whether included libcroco is requested])
AC_ARG_WITH([included-libcroco],
[ --with-included-libcroco use the libcroco included here],
[gl_cv_libcroco_force_included=$withval],
[gl_cv_libcroco_force_included=no])
AC_MSG_RESULT([$gl_cv_libcroco_force_included])
], [gl_cv_libcroco_force_included=$1])
gl_cv_libcroco_use_included="$gl_cv_libcroco_force_included"
LIBCROCO=
LTLIBCROCO=
INCCROCO=
ifelse([$1], [yes], , [
if test "$gl_cv_libcroco_use_included" != yes; then
dnl Figure out whether we can use a preinstalled libcroco-0.6, or have to
dnl use the included one.
AC_CACHE_VAL([gl_cv_libcroco], [
gl_cv_libcroco=no
gl_cv_LIBCROCO=
gl_cv_LTLIBCROCO=
gl_cv_INCCROCO=
gl_save_LIBS="$LIBS"
dnl Search for libcroco and define LIBCROCO_0_6, LTLIBCROCO_0_6 and
dnl INCCROCO_0_6 accordingly.
dnl Don't use croco-0.6-config nor pkg-config, since it doesn't work when
dnl cross-compiling or when the C compiler in use is different from the
dnl one that built the library.
AC_LIB_LINKFLAGS_BODY([croco-0.6], [glib-2.0])
LIBS="$gl_save_LIBS $LIBCROCO_0_6"
AC_LINK_IFELSE(
[AC_LANG_PROGRAM([[#include <libcroco-config.h>]],
[[const char *version = LIBCROCO_VERSION; return !version;]])],
[gl_cv_libcroco=yes
gl_cv_LIBCROCO="$LIBCROCO_0_6"
gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
])
if test "$gl_cv_libcroco" != yes; then
gl_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $INCCROCO_0_6"
AC_LINK_IFELSE(
[AC_LANG_PROGRAM([[#include <libcroco-config.h>]],
[[const char *version = LIBCROCO_VERSION; return !version;]])],
[gl_cv_libcroco=yes
gl_cv_LIBCROCO="$LIBCROCO_0_6"
gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
gl_cv_INCCROCO="$INCCROCO_0_6"
])
if test "$gl_cv_libcroco" != yes; then
dnl Often the include files are installed in
dnl /usr/include/libcroco-0.6/libcroco.
AC_LINK_IFELSE(
[AC_LANG_PROGRAM([[#include <libcroco-config.h>]],
[[const char *version = LIBCROCO_VERSION; return !version;]])],
[gl_ABSOLUTE_HEADER([libcroco-0.6/libcroco/libcroco-config.h])
libcroco_include_dir=`echo "$gl_cv_absolute_libcroco_0_6_libcroco_libcroco_config_h" | sed -e 's,.libcroco-config\.h$,,'`
if test -d "$libcroco_include_dir"; then
gl_cv_libcroco=yes
gl_cv_LIBCROCO="$LIBCROCO_0_6"
gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
gl_cv_INCCROCO="-I$libcroco_include_dir"
fi
])
fi
CPPFLAGS="$gl_save_CPPFLAGS"
fi
LIBS="$gl_save_LIBS"
])
AC_MSG_CHECKING([for libcroco])
AC_MSG_RESULT([$gl_cv_libcroco])
if test $gl_cv_libcroco = yes; then
LIBCROCO="$gl_cv_LIBCROCO"
LTLIBCROCO="$gl_cv_LTLIBCROCO"
INCCROCO="$gl_cv_INCCROCO"
else
gl_cv_libcroco_use_included=yes
fi
fi
])
AC_SUBST([LIBCROCO])
AC_SUBST([LTLIBCROCO])
AC_SUBST([INCCROCO])
AC_MSG_CHECKING([whether to use the included libcroco])
AC_MSG_RESULT([$gl_cv_libcroco_use_included])
AM_CONDITIONAL([INCLUDED_LIBCROCO],
[test "$gl_cv_libcroco_use_included" = yes])
])