| # libglib.m4 serial 6 |
| 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_LIBGLIB |
| dnl gives the user the option to decide whether to use the included or |
| dnl an external libglib. |
| dnl gl_LIBGLIB(FORCE-INCLUDED) |
| dnl forces the use of the included or an external libglib. |
| AC_DEFUN([gl_LIBGLIB], |
| [ |
| ifelse([$1], , [ |
| AC_MSG_CHECKING([whether included glib is requested]) |
| AC_ARG_WITH([included-glib], |
| [ --with-included-glib use the glib2 included here], |
| [gl_cv_libglib_force_included=$withval], |
| [gl_cv_libglib_force_included=no]) |
| AC_MSG_RESULT([$gl_cv_libglib_force_included]) |
| ], [gl_cv_libglib_force_included=$1]) |
| |
| gl_cv_libglib_use_included="$gl_cv_libglib_force_included" |
| LIBGLIB= |
| LTLIBGLIB= |
| INCGLIB= |
| ifelse([$1], [yes], , [ |
| if test "$gl_cv_libglib_use_included" != yes; then |
| dnl Figure out whether we can use a preinstalled libglib-2.0, or have to use |
| dnl the included one. |
| AC_CACHE_VAL([gl_cv_libglib], [ |
| gl_cv_libglib=no |
| gl_cv_LIBGLIB= |
| gl_cv_LTLIBGLIB= |
| gl_cv_INCGLIB= |
| gl_save_LIBS="$LIBS" |
| dnl Search for libglib2 and define LIBGLIB_2_0, LTLIBGLIB_2_0 and |
| dnl INCGLIB_2_0 accordingly. |
| dnl Don't use glib-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([glib-2.0]) |
| LIBS="$gl_save_LIBS $LIBGLIB_2_0" |
| AC_LINK_IFELSE( |
| [AC_LANG_PROGRAM( |
| [[#include <glib.h> |
| #ifndef G_BEGIN_DECLS |
| error this glib.h includes a glibconfig.h from a glib version 1.x |
| #endif |
| ]], |
| [[g_string_new ("foo");]])], |
| [gl_cv_libglib=yes |
| gl_cv_LIBGLIB="$LIBGLIB_2_0" |
| gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0" |
| ]) |
| if test "$gl_cv_libglib" != yes; then |
| gl_save_CPPFLAGS="$CPPFLAGS" |
| CPPFLAGS="$CPPFLAGS $INCGLIB_2_0" |
| AC_LINK_IFELSE( |
| [AC_LANG_PROGRAM( |
| [[#include <glib.h> |
| #ifndef G_BEGIN_DECLS |
| error this glib.h includes a glibconfig.h from a glib version 1.x |
| #endif |
| ]], |
| [[g_string_new ("foo");]])], |
| [gl_cv_libglib=yes |
| gl_cv_LIBGLIB="$LIBGLIB_2_0" |
| gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0" |
| gl_cv_INCGLIB="$INCGLIB_2_0" |
| ]) |
| if test "$gl_cv_libglib" != yes; then |
| dnl Often the include files are installed in /usr/include/glib-2.0 |
| dnl and /usr/lib/glib-2.0/include. |
| if test -n "$LIBGLIB_2_0_PREFIX"; then |
| CPPFLAGS="$gl_save_CPPFLAGS -I$LIBGLIB_2_0_PREFIX/include/glib-2.0 -I$LIBGLIB_2_0_PREFIX/$acl_libdirstem/glib-2.0/include" |
| AC_LINK_IFELSE( |
| [AC_LANG_PROGRAM( |
| [[#include <glib.h> |
| #ifndef G_BEGIN_DECLS |
| error this glib.h includes a glibconfig.h from a glib version 1.x |
| #endif |
| ]], |
| [[g_string_new ("foo");]])], |
| [gl_cv_libglib=yes |
| gl_cv_LIBGLIB="$LIBGLIB_2_0" |
| gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0" |
| gl_cv_INCGLIB="-I$LIBGLIB_2_0_PREFIX/include/glib-2.0 -I$LIBGLIB_2_0_PREFIX/$acl_libdirstem/glib-2.0/include" |
| ]) |
| fi |
| fi |
| CPPFLAGS="$gl_save_CPPFLAGS" |
| fi |
| LIBS="$gl_save_LIBS" |
| ]) |
| AC_MSG_CHECKING([for glib]) |
| AC_MSG_RESULT([$gl_cv_libglib]) |
| if test $gl_cv_libglib = yes; then |
| LIBGLIB="$gl_cv_LIBGLIB" |
| LTLIBGLIB="$gl_cv_LTLIBGLIB" |
| INCGLIB="$gl_cv_INCGLIB" |
| else |
| gl_cv_libglib_use_included=yes |
| fi |
| fi |
| ]) |
| AC_SUBST([LIBGLIB]) |
| AC_SUBST([LTLIBGLIB]) |
| AC_SUBST([INCGLIB]) |
| AC_MSG_CHECKING([whether to use the included glib]) |
| AC_MSG_RESULT([$gl_cv_libglib_use_included]) |
| |
| if test "$gl_cv_libglib_use_included" = yes; then |
| LIBGLIB_H= |
| LIBGLIB_H="$LIBGLIB_H glib.h" |
| LIBGLIB_H="$LIBGLIB_H glibconfig.h" |
| LIBGLIB_H="$LIBGLIB_H glib/ghash.h" |
| LIBGLIB_H="$LIBGLIB_H glib/glist.h" |
| LIBGLIB_H="$LIBGLIB_H glib/gmacros.h" |
| LIBGLIB_H="$LIBGLIB_H glib/gprimes.h" |
| LIBGLIB_H="$LIBGLIB_H glib/gprintfint.h" |
| LIBGLIB_H="$LIBGLIB_H glib/gstrfuncs.h" |
| LIBGLIB_H="$LIBGLIB_H glib/gstring.h" |
| LIBGLIB_H="$LIBGLIB_H glib/gtypes.h" |
| AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) |
| AC_CHECK_HEADERS([unistd.h]) |
| dnl Don't bother checking for pthread.h and other multithread facilities. |
| else |
| LIBGLIB_H= |
| fi |
| AC_SUBST([LIBGLIB_H]) |
| |
| AM_CONDITIONAL([INCLUDED_LIBGLIB], |
| [test "$gl_cv_libglib_use_included" = yes]) |
| ]) |