Blame configure.ac

Packit a4058c
# Process this file with autoconf to produce a configure script.
Packit a4058c
AC_PREREQ([2.63])
Packit a4058c
Packit a4058c
# Making point releases:
Packit a4058c
#   gdk_pixbuf_micro_version += 1;
Packit a4058c
#   gdk_pixbuf_interface_age += 1;
Packit a4058c
#   gdk_pixbuf_binary_age += 1;
Packit a4058c
#
Packit a4058c
# if any functions have been added, set gdk_pixbuf_interface_age to 0.
Packit a4058c
#
Packit a4058c
# if backwards compatibility has been broken:
Packit a4058c
#   gdk_pixbuf_major_version += 1;
Packit a4058c
#   gdk_pixbuf_interface_age = 0;
Packit a4058c
#   gdk_pixbuf_binary_age = 0;
Packit a4058c
Packit a4058c
m4_define([gdk_pixbuf_major_version], [2])
Packit a4058c
m4_define([gdk_pixbuf_minor_version], [36])
Packit a4058c
m4_define([gdk_pixbuf_micro_version], [11])
Packit a4058c
m4_define([gdk_pixbuf_interface_age], [0])
Packit a4058c
m4_define([gdk_pixbuf_binary_age],
Packit a4058c
          [m4_eval(100 * gdk_pixbuf_minor_version + gdk_pixbuf_micro_version)])
Packit a4058c
m4_define([gdk_pixbuf_version],
Packit a4058c
          [gdk_pixbuf_major_version.gdk_pixbuf_minor_version.gdk_pixbuf_micro_version])
Packit a4058c
m4_define([gdk_pixbuf_api_version], [2.0])
Packit a4058c
m4_define([gdk_pixbuf_binary_version], [2.10.0])
Packit a4058c
Packit a4058c
Packit a4058c
# required versions of other packages
Packit a4058c
m4_define([glib_required_version], [2.48.0])
Packit a4058c
Packit a4058c
AC_INIT([gdk-pixbuf], [gdk_pixbuf_version],
Packit a4058c
        [http://bugzilla.gnome.org/enter_bug.cgi?product=gdk-pixbuf],
Packit a4058c
        [gdk-pixbuf])
Packit a4058c
Packit a4058c
AC_CONFIG_HEADER([config.h])
Packit a4058c
AC_CONFIG_SRCDIR([gdk-pixbuf/gdk-pixbuf.h])
Packit a4058c
AC_CONFIG_MACRO_DIR([m4])
Packit a4058c
Packit a4058c
# Save this value here, since automake will set cflags later
Packit a4058c
cflags_set=${CFLAGS+set}
Packit a4058c
Packit a4058c
AM_INIT_AUTOMAKE([1.11 foreign no-define -Wno-portability dist-xz no-dist-gzip tar-ustar])
Packit a4058c
AM_MAINTAINER_MODE([enable])
Packit a4058c
Packit a4058c
# Support silent build rules. Disable
Packit a4058c
# by either passing --disable-silent-rules to configure or passing V=0
Packit a4058c
# to make
Packit a4058c
AM_SILENT_RULES([yes])
Packit a4058c
Packit a4058c
#
Packit a4058c
# For each of the libraries we build, we define the following
Packit a4058c
# substituted variables:
Packit a4058c
#
Packit a4058c
# foo_PACKAGES:     pkg-config packages this library requires
Packit a4058c
# foo_EXTRA_LIBS:   Libraries this module requires not pulled in by pkg-config
Packit a4058c
# foo_EXTRA_CFLAGS: cflags this module requires not pulled in by pkg-config
Packit a4058c
# foo_DEP_LIBS:     All libraries this module requires
Packit a4058c
# foo_DEP_CFLAGS:   All cflags this module requires
Packit a4058c
Packit a4058c
GDK_PIXBUF_MAJOR=gdk_pixbuf_major_version
Packit a4058c
GDK_PIXBUF_MINOR=gdk_pixbuf_minor_version
Packit a4058c
GDK_PIXBUF_MICRO=gdk_pixbuf_micro_version
Packit a4058c
GDK_PIXBUF_VERSION=gdk_pixbuf_version
Packit a4058c
GDK_PIXBUF_API_VERSION=gdk_pixbuf_api_version
Packit a4058c
GDK_PIXBUF_BINARY_VERSION=gdk_pixbuf_binary_version
Packit a4058c
AC_SUBST(GDK_PIXBUF_MAJOR)
Packit a4058c
AC_SUBST(GDK_PIXBUF_MINOR)
Packit a4058c
AC_SUBST(GDK_PIXBUF_MICRO)
Packit a4058c
AC_SUBST(GDK_PIXBUF_VERSION)
Packit a4058c
AC_SUBST(GDK_PIXBUF_API_VERSION)
Packit a4058c
AC_SUBST(GDK_PIXBUF_BINARY_VERSION)
Packit a4058c
Packit a4058c
# libtool versioning
Packit a4058c
#LT_RELEASE=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION
Packit a4058c
#LT_CURRENT=`expr $GTK_MICRO_VERSION - $GTK_INTERFACE_AGE`
Packit a4058c
#LT_REVISION=$GTK_INTERFACE_AGE
Packit a4058c
#LT_AGE=`expr $GTK_BINARY_AGE - $GTK_INTERFACE_AGE`
Packit a4058c
#LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
Packit a4058c
Packit a4058c
m4_define([lt_current], [m4_eval(100 * gdk_pixbuf_minor_version + gdk_pixbuf_micro_version - gdk_pixbuf_interface_age)])
Packit a4058c
m4_define([lt_revision], [gdk_pixbuf_interface_age])
Packit a4058c
m4_define([lt_age], [m4_eval(gdk_pixbuf_binary_age - gdk_pixbuf_interface_age)])
Packit a4058c
LT_VERSION_INFO="lt_current:lt_revision:lt_age"
Packit a4058c
LT_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age)
Packit a4058c
AC_SUBST(LT_VERSION_INFO)
Packit a4058c
AC_SUBST(LT_CURRENT_MINUS_AGE)
Packit a4058c
Packit a4058c
# Checks for programs.
Packit a4058c
AC_PROG_CC
Packit a4058c
AC_PROG_CC_C_O
Packit a4058c
AC_PROG_CC_STDC
Packit a4058c
AC_PROG_INSTALL
Packit a4058c
AC_PROG_MAKE_SET
Packit a4058c
AC_PROG_AWK
Packit a4058c
PKG_PROG_PKG_CONFIG
Packit a4058c
Packit a4058c
AC_CANONICAL_HOST
Packit a4058c
Packit a4058c
# Check for libm and look for these C99 functions
Packit a4058c
AC_CHECK_LIBM
Packit a4058c
AC_SUBST(LIBM)
Packit a4058c
AC_CHECK_LIB(m, round, AC_DEFINE(HAVE_ROUND, [1], [Define to 1 if libm has round]))
Packit a4058c
AC_CHECK_LIB(m, lrint, AC_DEFINE(HAVE_LRINT, [1], [Define to 1 if libm has lrint]))
Packit a4058c
Packit a4058c
AC_MSG_CHECKING([for native Win32])
Packit a4058c
LIB_EXE_MACHINE_FLAG=X86
Packit a4058c
EXE_MANIFEST_ARCHITECTURE=X86
Packit a4058c
case "$host" in
Packit a4058c
  *-*-mingw*)
Packit a4058c
    os_win32=yes
Packit a4058c
    gio_can_sniff=no
Packit a4058c
    case "$host" in
Packit a4058c
    x86_64-*-*)
Packit a4058c
      LIB_EXE_MACHINE_FLAG=X64
Packit a4058c
      EXE_MANIFEST_ARCHITECTURE=AMD64
Packit a4058c
      ;;
Packit a4058c
    esac
Packit a4058c
    ;;
Packit a4058c
  *-*-darwin*)
Packit a4058c
    os_win32=no
Packit a4058c
    gio_can_sniff=no
Packit a4058c
    ;;
Packit a4058c
  *)
Packit a4058c
    os_win32=no
Packit a4058c
    ;;
Packit a4058c
esac
Packit a4058c
AC_MSG_RESULT([$os_win32])
Packit a4058c
Packit a4058c
AC_SUBST(LIB_EXE_MACHINE_FLAG)
Packit a4058c
AC_SUBST(EXE_MANIFEST_ARCHITECTURE)
Packit a4058c
Packit a4058c
case $host in
Packit a4058c
  *-*-linux*)
Packit a4058c
    os_linux=yes
Packit a4058c
    AC_DEFINE(OS_LINUX, 1, [Define to 1 if it's a Linux platform])
Packit a4058c
    ;;
Packit a4058c
  *-*-darwin*)
Packit a4058c
    AC_DEFINE(OS_DARWIN, 1, [Define to 1 if it's a darwin platform])
Packit a4058c
    ;;
Packit a4058c
esac
Packit a4058c
Packit a4058c
dnl Initialize libtool
Packit a4058c
LT_PREREQ([2.2.6])
Packit a4058c
LT_INIT([disable-static win32-dll])
Packit a4058c
# Create libtool early, because it's used in configure
Packit a4058c
LT_OUTPUT
Packit a4058c
Packit a4058c
# Make sure we use 64-bit versions of various file stuff.
Packit a4058c
AC_SYS_LARGEFILE
Packit a4058c
Packit a4058c
AM_PROG_AS
Packit a4058c
AC_CHECK_TOOLS(NM, nm, nm)
Packit a4058c
Packit a4058c
AC_MSG_CHECKING([for some Win32 platform])
Packit a4058c
AS_CASE(["$host"],
Packit a4058c
        [*-*-mingw*|*-*-cygwin*], [platform_win32=yes],
Packit a4058c
        [platform_win32=no]
Packit a4058c
)
Packit a4058c
AC_MSG_RESULT([$platform_win32])
Packit a4058c
AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
Packit a4058c
Packit a4058c
AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
Packit a4058c
AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
Packit a4058c
AM_CONDITIONAL(OS_LINUX, test "$os_linux" = "yes")
Packit a4058c
Packit a4058c
if test "$os_win32" = "yes"; then
Packit a4058c
  AC_CHECK_TOOL(WINDRES, windres, no)
Packit a4058c
  if test "$WINDRES" = no; then
Packit a4058c
    AC_MSG_ERROR([*** Could not find an implementation of windres in your PATH.])
Packit a4058c
  fi
Packit a4058c
  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
Packit a4058c
fi
Packit a4058c
AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
Packit a4058c
Packit a4058c
m4_define([debug_default],
Packit a4058c
          m4_if(m4_eval(gdk_pixbuf_minor_version % 2), [1], [yes], [minimum]))
Packit a4058c
Packit a4058c
dnl declare --enable-* args and collect ac_help strings
Packit a4058c
AC_ARG_ENABLE(debug,
Packit a4058c
              AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
Packit a4058c
                             [turn on debugging @<:@default=debug_default@:>@]),,
Packit a4058c
              enable_debug=debug_default)
Packit a4058c
AC_ARG_ENABLE(rebuilds,
Packit a4058c
              [AC_HELP_STRING([--disable-rebuilds],
Packit a4058c
                              [disable all source autogeneration rules])],,
Packit a4058c
              [enable_rebuilds=yes])
Packit a4058c
Packit a4058c
AS_CASE([$enable_debug],
Packit a4058c
        [yes],
Packit a4058c
        [
Packit a4058c
          test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
Packit a4058c
          GDK_PIXBUF_DEBUG_FLAGS="-DG_ENABLE_DEBUG -DG_ERRORCHECK_MUTEXES"
Packit a4058c
        ],
Packit a4058c
Packit a4058c
        [no], [GDK_PIXBUF_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"],
Packit a4058c
Packit a4058c
        [minimum], [GDK_PIXBUF_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"]
Packit a4058c
)
Packit a4058c
Packit a4058c
# Build time sanity check...
Packit a4058c
AM_SANITY_CHECK
Packit a4058c
Packit a4058c
changequote(,)dnl
Packit a4058c
if test "x$GCC" = "xyes"; then
Packit a4058c
  case " $CFLAGS " in
Packit a4058c
  *[\ \	]-Wall[\ \	]*) ;;
Packit a4058c
  *) CFLAGS="$CFLAGS -Wall" ;;
Packit a4058c
  esac
Packit a4058c
Packit a4058c
  if test "x$enable_ansi" = "xyes"; then
Packit a4058c
    case " $CFLAGS " in
Packit a4058c
    *[\ \	]-ansi[\ \	]*) ;;
Packit a4058c
    *) CFLAGS="$CFLAGS -ansi" ;;
Packit a4058c
    esac
Packit a4058c
Packit a4058c
    case " $CFLAGS " in
Packit a4058c
    *[\ \	]-pedantic[\ \	]*) ;;
Packit a4058c
    *) CFLAGS="$CFLAGS -pedantic" ;;
Packit a4058c
    esac
Packit a4058c
  fi
Packit a4058c
fi
Packit a4058c
changequote([,])dnl
Packit a4058c
Packit a4058c
CPPFLAGS="$CPPFLAGS -DG_DISABLE_SINGLE_INCLUDES"
Packit a4058c
Packit a4058c
# Ensure MSVC-compatible struct packing convention is used when
Packit a4058c
# compiling for Win32 with gcc.
Packit a4058c
# What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
Packit a4058c
# gcc2 uses "-fnative-struct".
Packit a4058c
if test x"$os_win32" = xyes; then
Packit a4058c
  if test x"$GCC" = xyes; then
Packit a4058c
    msnative_struct=''
Packit a4058c
    AC_MSG_CHECKING([how to get MSVC-compatible struct packing])
Packit a4058c
    if test -z "$ac_cv_prog_CC"; then
Packit a4058c
      our_gcc="$CC"
Packit a4058c
    else
Packit a4058c
      our_gcc="$ac_cv_prog_CC"
Packit a4058c
    fi
Packit a4058c
    case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in
Packit a4058c
      2.)
Packit a4058c
        if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then
Packit a4058c
          msnative_struct='-fnative-struct'
Packit a4058c
        fi
Packit a4058c
        ;;
Packit a4058c
      *)
Packit a4058c
        if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then
Packit a4058c
          msnative_struct='-mms-bitfields'
Packit a4058c
        fi
Packit a4058c
        ;;
Packit a4058c
    esac
Packit a4058c
    if test x"$msnative_struct" = x ; then
Packit a4058c
      AC_MSG_RESULT([no way])
Packit a4058c
      AC_MSG_WARN([produced libraries might be incompatible with MSVC-compiled code])
Packit a4058c
    else
Packit a4058c
      CFLAGS="$CFLAGS $msnative_struct"
Packit a4058c
      AC_MSG_RESULT([${msnative_struct}])
Packit a4058c
    fi
Packit a4058c
  fi
Packit a4058c
fi
Packit a4058c
Packit a4058c
## Initial sanity check, done here so that users get told they
Packit a4058c
## have the wrong dependencies as early in the process as possible.
Packit a4058c
## Later on we actually use the cflags/libs from separate pkg-config
Packit a4058c
## calls. Oh, also the later pkg-config calls don't include
Packit a4058c
## the version requirements since those make the module lists
Packit a4058c
## annoying to construct
Packit a4058c
PKG_CHECK_MODULES(BASE_DEPENDENCIES, [glib-2.0 >= glib_required_version])
Packit a4058c
Packit a4058c
if test "$os_win32" != yes; then
Packit a4058c
    # libtool option to control which symbols are exported
Packit a4058c
    # right now, symbols starting with _ are not exported
Packit a4058c
    LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"'
Packit a4058c
else
Packit a4058c
    # We currently use .def files on Windows (for gdk-pixbuf, gdk and gtk)
Packit a4058c
    LIBTOOL_EXPORT_OPTIONS=
Packit a4058c
fi
Packit a4058c
AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
Packit a4058c
Packit a4058c
dnl ******************************************************
Packit a4058c
dnl * See whether to include shared library dependencies *
Packit a4058c
dnl ******************************************************
Packit a4058c
Packit a4058c
AC_ARG_ENABLE(explicit-deps,
Packit a4058c
              [AC_HELP_STRING([--enable-explicit-deps=@<:@yes/no/auto@:>@],
Packit a4058c
                              [use explicit dependencies in .pc files [default=auto]])],,
Packit a4058c
              [enable_explicit_deps=auto])
Packit a4058c
Packit a4058c
AC_MSG_CHECKING([Whether to write dependencies into .pc files])
Packit a4058c
case $enable_explicit_deps in
Packit a4058c
  auto)
Packit a4058c
    export SED
Packit a4058c
    deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
Packit a4058c
    if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then
Packit a4058c
      enable_explicit_deps=yes
Packit a4058c
    else
Packit a4058c
      enable_explicit_deps=no
Packit a4058c
    fi
Packit a4058c
  ;;
Packit a4058c
  yes|no)
Packit a4058c
  ;;
Packit a4058c
  *) AC_MSG_ERROR([Value given to --enable-explicit-deps must be one of yes, no or auto])
Packit a4058c
  ;;
Packit a4058c
esac
Packit a4058c
AC_MSG_RESULT($enable_explicit_deps)
Packit a4058c
Packit a4058c
AM_CONDITIONAL(DISABLE_EXPLICIT_DEPS, test $enable_explicit_deps = no)
Packit a4058c
Packit a4058c
# define a MAINT-like variable REBUILD which is set if Perl
Packit a4058c
# and awk are found, so autogenerated sources can be rebuilt
Packit a4058c
Packit a4058c
AC_PATH_PROGS(PERL, perl5 perl)
Packit a4058c
Packit a4058c
REBUILD=\#
Packit a4058c
if test "x$enable_rebuilds" = "xyes" && \
Packit a4058c
     test -n "$PERL" && \
Packit a4058c
     $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then
Packit a4058c
  REBUILD=
Packit a4058c
fi
Packit a4058c
AC_SUBST(REBUILD)
Packit a4058c
Packit a4058c
# sigsetjmp is a macro on some platforms, so AC_CHECK_FUNCS is not reliable
Packit a4058c
AC_MSG_CHECKING(for sigsetjmp)
Packit a4058c
AC_TRY_LINK([#include <setjmp.h>], [
Packit a4058c
sigjmp_buf env;
Packit a4058c
sigsetjmp(env, 0);
Packit a4058c
], gtk_ok=yes, gtk_ok=no)
Packit a4058c
AC_MSG_RESULT($gtk_ok)
Packit a4058c
if test "$gtk_ok" = "yes"; then
Packit a4058c
  AC_DEFINE(HAVE_SIGSETJMP, 1,
Packit a4058c
            [Define to 1 if sigsetjmp is available])
Packit a4058c
fi
Packit a4058c
Packit a4058c
# i18n stuff
Packit a4058c
AM_GNU_GETTEXT_VERSION([0.19])
Packit a4058c
AM_GNU_GETTEXT([external])
Packit a4058c
Packit a4058c
GETTEXT_PACKAGE="$PACKAGE"
Packit a4058c
AC_SUBST(GETTEXT_PACKAGE)
Packit a4058c
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
Packit a4058c
                   [The prefix for our gettext translation domains.])
Packit a4058c
Packit a4058c
#
Packit a4058c
# Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
Packit a4058c
#
Packit a4058c
Packit a4058c
GLIB_PACKAGES="gobject-2.0 gio-2.0 gmodule-no-export-2.0"
Packit a4058c
Packit a4058c
AM_PATH_GLIB_2_0(glib_required_version, :,
Packit a4058c
  AC_MSG_ERROR([
Packit a4058c
*** GLIB glib_required_version or better is required. The latest version of
Packit a4058c
*** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
Packit a4058c
  gobject gmodule-no-export gthread)
Packit a4058c
Packit a4058c
dnl
Packit a4058c
dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
Packit a4058c
dnl
Packit a4058c
gtk_save_LIBS=$LIBS
Packit a4058c
LIBS="$LIBS $GLIB_LIBS"
Packit a4058c
AC_CHECK_FUNCS(bind_textdomain_codeset)
Packit a4058c
LIBS=$gtk_save_LIBS
Packit a4058c
Packit a4058c
AC_CHECK_HEADERS(unistd.h sys/resource.h sys/time.h)
Packit a4058c
AC_CHECK_FUNCS(setrlimit)
Packit a4058c
Packit a4058c
saved_cflags="$CFLAGS"
Packit a4058c
saved_ldflags="$LDFLAGS"
Packit a4058c
Packit a4058c
# Checks for header files.
Packit a4058c
AC_HEADER_STDC
Packit a4058c
Packit a4058c
# Checks for typedefs, structures, and compiler characteristics.
Packit a4058c
AC_C_CONST
Packit a4058c
Packit a4058c
##################################################
Packit a4058c
# Checks for gdk-pixbuf
Packit a4058c
##################################################
Packit a4058c
Packit a4058c
dnl ********************************************************
Packit a4058c
dnl * See whether we need to load our modules as .la files *
Packit a4058c
dnl ********************************************************
Packit a4058c
Packit a4058c
use_la_modules=false
Packit a4058c
case $host in
Packit a4058c
  *-aix*) use_la_modules=true
Packit a4058c
esac
Packit a4058c
Packit a4058c
if $use_la_modules ; then
Packit a4058c
   AC_DEFINE(USE_LA_MODULES, 1,
Packit a4058c
             [Whether to load modules via .la files rather than directly])
Packit a4058c
fi
Packit a4058c
Packit a4058c
Packit a4058c
AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
Packit a4058c
Packit a4058c
AC_ARG_ENABLE(modules,
Packit a4058c
              [AC_HELP_STRING([--disable-modules],
Packit a4058c
                              [disable dynamic module loading])])
Packit a4058c
Packit a4058c
dynworks=false
Packit a4058c
deps=
Packit a4058c
if test x$enable_modules = xno; then
Packit a4058c
    AC_MSG_RESULT(no)
Packit a4058c
else
Packit a4058c
    AC_MSG_RESULT(yes)
Packit a4058c
    AC_MSG_CHECKING(whether dynamic modules work)
Packit a4058c
    ## for loop is to strip newline
Packit a4058c
    tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-no-export-2.0`
Packit a4058c
    for I in $tmp; do
Packit a4058c
        dynworks=$I
Packit a4058c
    done
Packit a4058c
Packit a4058c
    dnl Now we check to see if our libtool supports shared lib deps
Packit a4058c
    dnl (in a rather ugly way even)
Packit a4058c
    if $dynworks; then
Packit a4058c
        pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
Packit a4058c
        pixbuf_deplibs_check=`$pixbuf_libtool_config | \
Packit a4058c
            grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
Packit a4058c
            sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
Packit a4058c
        if test "x$pixbuf_deplibs_check" = "xnone" || \
Packit a4058c
           test "x$pixbuf_deplibs_check" = "xunknown" || \
Packit a4058c
           test "x$pixbuf_deplibs_check" = "x"; then
Packit a4058c
            dynworks=false
Packit a4058c
        fi
Packit a4058c
    fi
Packit a4058c
Packit a4058c
    if $dynworks; then
Packit a4058c
        AC_DEFINE(USE_GMODULE, 1,
Packit a4058c
                  [Define to 1 if gmodule works and should be used])
Packit a4058c
        AC_MSG_RESULT(yes)
Packit a4058c
    else
Packit a4058c
        AC_MSG_RESULT(no)
Packit a4058c
    fi
Packit a4058c
fi
Packit a4058c
Packit a4058c
dnl We allow people to disable image loaders explicitely, but if they don't we error
Packit a4058c
dnl out so that people don't accidentally build without them.
Packit a4058c
Packit a4058c
AC_ARG_WITH(libpng,
Packit a4058c
            [AC_HELP_STRING([--without-libpng],
Packit a4058c
                            [disable PNG loader for gdk-pixbuf])])
Packit a4058c
AC_ARG_WITH(libjpeg,
Packit a4058c
            [AC_HELP_STRING([--without-libjpeg],
Packit a4058c
                            [disable JPEG loader for gdk-pixbuf])])
Packit a4058c
AC_ARG_WITH(libtiff,
Packit a4058c
            [AC_HELP_STRING([--without-libtiff],
Packit a4058c
                            [disable TIFF loader for gdk-pixbuf])])
Packit a4058c
AC_ARG_WITH(libjasper,
Packit a4058c
            [AC_HELP_STRING([--with-libjasper],
Packit a4058c
                            [enable JPEG2000 loader for gdk-pixbuf])])
Packit a4058c
AC_ARG_WITH(gdiplus,
Packit a4058c
            [AC_HELP_STRING([--without-gdiplus],
Packit a4058c
                            [disable GDI+ loaders for gdk-pixbuf on Windows])])
Packit a4058c
Packit a4058c
AM_CONDITIONAL(BUILD_GDIPLUS_LOADERS, [ test x$os_win32 = xyes && test x$with_gdiplus != xno ])
Packit a4058c
Packit a4058c
dnl Test for libtiff
Packit a4058c
libtiff_found=no
Packit a4058c
if test x$os_win32 = xno || test x$with_gdiplus = xno; then
Packit a4058c
  if test x$with_libtiff != xno; then
Packit a4058c
    PKG_CHECK_MODULES(TIFF, libtiff-4)
Packit a4058c
    libtiff_found=yes
Packit a4058c
  fi
Packit a4058c
Packit a4058c
  if test x$with_libtiff != xno && test x$libtiff_found = xno; then
Packit a4058c
     AC_MSG_ERROR([
Packit a4058c
*** Checks for TIFF loader failed. You can build without it by passing
Packit a4058c
*** --without-libtiff to configure but some programs using GTK+ may
Packit a4058c
*** not work properly])
Packit a4058c
  fi
Packit a4058c
fi
Packit a4058c
Packit a4058c
dnl Test for libjpeg
Packit a4058c
if test x$os_win32 = xno || test x$with_gdiplus = xno; then
Packit a4058c
  if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
Packit a4058c
    AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
Packit a4058c
      jpeg_ok=yes,
Packit a4058c
      jpeg_ok=no
Packit a4058c
      AC_MSG_WARN(*** JPEG loader will not be built (JPEG library not found) ***))
Packit a4058c
    if test "$jpeg_ok" = yes; then
Packit a4058c
      AC_MSG_CHECKING([for jpeglib.h])
Packit a4058c
      AC_TRY_CPP(
Packit a4058c
[#include <stdio.h>
Packit a4058c
#undef PACKAGE
Packit a4058c
#undef VERSION
Packit a4058c
#undef HAVE_STDLIB_H
Packit a4058c
#include <jpeglib.h>],
Packit a4058c
        jpeg_ok=yes,
Packit a4058c
        jpeg_ok=no)
Packit a4058c
      AC_MSG_RESULT($jpeg_ok)
Packit a4058c
      if test "$jpeg_ok" = yes; then
Packit a4058c
        LIBJPEG='-ljpeg'
Packit a4058c
        AC_CHECK_LIB(jpeg, jpeg_simple_progression,
Packit a4058c
          AC_DEFINE(HAVE_PROGRESSIVE_JPEG, 1,
Packit a4058c
                    [Define to 1 is libjpeg supports progressive JPEG]),
Packit a4058c
          AC_MSG_WARN(JPEG library does not support progressive saving.))
Packit a4058c
      else
Packit a4058c
          AC_MSG_WARN(*** JPEG loader will not be built (JPEG header file not found) ***)
Packit a4058c
      fi
Packit a4058c
    fi
Packit a4058c
  fi
Packit a4058c
Packit a4058c
  if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
Packit a4058c
     AC_MSG_ERROR([
Packit a4058c
*** Checks for JPEG loader failed. You can build without it by passing
Packit a4058c
*** --without-libjpeg to configure but some programs using GTK+ may
Packit a4058c
*** not work properly])
Packit a4058c
  fi
Packit a4058c
fi
Packit a4058c
Packit a4058c
dnl Test for libpng
Packit a4058c
  if test x$with_libpng != xno && test -z "$LIBPNG"; then
Packit a4058c
    for l in libpng16 libpng15 libpng14 libpng13 libpng12 libpng10; do
Packit a4058c
      AC_MSG_CHECKING(for $l)
Packit a4058c
      if $PKG_CONFIG --exists $l ; then
Packit a4058c
        AC_MSG_RESULT(yes)
Packit a4058c
        PNG='png'
Packit a4058c
        PNG_DEP_CFLAGS_PACKAGES=$l
Packit a4058c
        LIBPNG=`$PKG_CONFIG --libs $l`
Packit a4058c
        break
Packit a4058c
      else
Packit a4058c
        AC_MSG_RESULT(no)
Packit a4058c
      fi
Packit a4058c
    done
Packit a4058c
    if test x$PNG != xpng; then
Packit a4058c
      AC_MSG_RESULT(no)
Packit a4058c
      AC_CHECK_LIB(png, png_read_info,
Packit a4058c
        [AC_CHECK_HEADER(png.h,
Packit a4058c
          png_ok=yes,
Packit a4058c
          png_ok=no)],
Packit a4058c
        AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
Packit a4058c
      if test "$png_ok" = yes; then
Packit a4058c
        AC_MSG_CHECKING([for png_structp in png.h])
Packit a4058c
        AC_TRY_COMPILE([#include <png.h>],
Packit a4058c
          [png_structp pp; png_infop info; png_colorp cmap; png_create_read_struct;],
Packit a4058c
          png_ok=yes,
Packit a4058c
          png_ok=no)
Packit a4058c
        AC_MSG_RESULT($png_ok)
Packit a4058c
        if test "$png_ok" = yes; then
Packit a4058c
          PNG='png'; LIBPNG='-lpng -lz'
Packit a4058c
        else
Packit a4058c
          AC_MSG_WARN(*** PNG loader will not be built (PNG library is too old) ***)
Packit a4058c
        fi
Packit a4058c
      else
Packit a4058c
       AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
Packit a4058c
      fi
Packit a4058c
    fi
Packit a4058c
  fi
Packit a4058c
Packit a4058c
  if test x$with_libpng != xno && test -z "$LIBPNG"; then
Packit a4058c
     AC_MSG_ERROR([
Packit a4058c
*** Checks for PNG loader failed. You can build without it by passing
Packit a4058c
*** --without-libpng to configure but many programs using GTK+ will
Packit a4058c
*** not work properly. The PNG loader is also needed if you are compiling
Packit a4058c
*** from Git.])
Packit a4058c
  fi
Packit a4058c
Packit a4058c
dnl Test for libjasper
Packit a4058c
  if test x$with_libjasper = xyes && test -z "$LIBJASPER"; then
Packit a4058c
    AC_CHECK_LIB(jasper, jas_init, LIBJASPER=-ljasper, [], -ljpeg -lm)
Packit a4058c
  fi
Packit a4058c
Packit a4058c
  if test x$with_libjasper = xyes && test -z "$LIBJASPER"; then
Packit a4058c
     AC_MSG_ERROR([
Packit a4058c
*** Checks for JPEG2000 loader failed. You can build without it by passing
Packit a4058c
*** --without-libjasper to configure])
Packit a4058c
  fi
Packit a4058c
Packit a4058c
AC_SUBST(LIBJPEG)
Packit a4058c
AC_SUBST(LIBPNG)
Packit a4058c
AC_SUBST(LIBJASPER)
Packit a4058c
Packit a4058c
AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
Packit a4058c
Packit a4058c
#
Packit a4058c
# Allow building some or all gdk-pixbuf loaders included
Packit a4058c
#
Packit a4058c
AC_MSG_CHECKING(pixbuf loaders to build)
Packit a4058c
Packit a4058c
dnl due to an autoconf bug, commas in the first arg to
Packit a4058c
dnl AC_HELP_STRING cause problems.
Packit a4058c
dnl AC_HELP_STRING([--with-included-loaders=LOADER1 LOADER2 ...],
Packit a4058c
dnl                [build the specified loaders into gdk-pixbuf])
Packit a4058c
AC_ARG_WITH(included_loaders,
Packit a4058c
[  --with-included-loaders=LOADER1,LOADER2,...
Packit a4058c
                          build the specified loaders into gdk-pixbuf])
Packit a4058c
Packit a4058c
if $dynworks; then
Packit a4058c
   :
Packit a4058c
else
Packit a4058c
   ## if the option was specified, leave it; otherwise disable included loaders
Packit a4058c
   if test x$with_included_loaders = xno; then
Packit a4058c
           with_included_loaders=yes
Packit a4058c
   fi
Packit a4058c
fi
Packit a4058c
Packit a4058c
# Use the traditional png loader instead of the GDI+ one on Windows,
Packit a4058c
# because some important apps like GIMP need to read and write
Packit a4058c
# arbitrary tEXt chunks which doesn't seem to be possible through GDI+
Packit a4058c
Packit a4058c
all_loaders="ani,icns,tga,png,pnm,xbm,xpm,qtif"
Packit a4058c
if test x$with_libjasper = xyes; then
Packit a4058c
  all_loaders="$all_loaders,jasper"
Packit a4058c
fi
Packit a4058c
if test x$os_win32 = xyes && test x$with_gdiplus != xno; then
Packit a4058c
  # Skip PNG, see comment above
Packit a4058c
  gdip_formats="bmp emf gif ico jpeg tiff wmf"
Packit a4058c
  for f in $gdip_formats; do
Packit a4058c
    all_loaders="$all_loaders,gdip-$f"
Packit a4058c
  done
Packit a4058c
else
Packit a4058c
  all_loaders="$all_loaders,bmp,gif,ico,jpeg,tiff"
Packit a4058c
fi
Packit a4058c
included_loaders=""
Packit a4058c
# If no loaders specified, include all
Packit a4058c
if test "x$with_included_loaders" = xyes ; then
Packit a4058c
  included_loaders="$all_loaders"
Packit a4058c
else
Packit a4058c
  included_loaders="$with_included_loaders"
Packit a4058c
fi
Packit a4058c
Packit a4058c
AC_MSG_RESULT($included_loaders)
Packit a4058c
Packit a4058c
INCLUDED_LOADER_OBJ=
Packit a4058c
INCLUDED_LOADER_DEFINE=
Packit a4058c
Packit a4058c
IFS="${IFS=     }"; gtk_save_ifs="$IFS"; IFS=","
Packit a4058c
for loader in $included_loaders; do
Packit a4058c
 if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
Packit a4058c
   :
Packit a4058c
 else
Packit a4058c
   AC_MSG_ERROR([the specified loader $loader does not exist])
Packit a4058c
 fi
Packit a4058c
Packit a4058c
 loader_underscores=`echo $loader | sed -e 's/-/_/g'`
Packit a4058c
 INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libstatic-pixbufloader-$loader.la"
Packit a4058c
Packit a4058c
 # Don't bother defining separate -DINCLUDE_gdip_foo for each gdip-foo loader
Packit a4058c
 case $loader in
Packit a4058c
   gdip-*) ;;
Packit a4058c
   *) INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader_underscores";;
Packit a4058c
 esac
Packit a4058c
 eval INCLUDE_$loader_underscores=yes
Packit a4058c
done
Packit a4058c
Packit a4058c
# Just define one -DINCLUDE_gdiplus for all the gdip-foo loaders
Packit a4058c
# (except gdip-png, which isn't built at all)
Packit a4058c
if test x"$INCLUDE_gdip_ico" = xyes; then
Packit a4058c
  INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_gdiplus"
Packit a4058c
fi
Packit a4058c
Packit a4058c
IFS="$gtk_save_ifs"
Packit a4058c
AC_SUBST(INCLUDED_LOADER_OBJ)
Packit a4058c
AC_SUBST(INCLUDED_LOADER_DEFINE)
Packit a4058c
Packit a4058c
AM_CONDITIONAL(INCLUDE_PNG, [test x"$INCLUDE_png" = xyes])
Packit a4058c
AM_CONDITIONAL(INCLUDE_BMP, [test x"$INCLUDE_bmp" = xyes])
Packit a4058c
AM_CONDITIONAL(INCLUDE_GIF, [test x"$INCLUDE_gif" = xyes])
Packit a4058c
AM_CONDITIONAL(INCLUDE_ICO, [test x"$INCLUDE_ico" = xyes])
Packit a4058c
AM_CONDITIONAL(INCLUDE_ANI, [test x"$INCLUDE_ani" = xyes])
Packit a4058c
AM_CONDITIONAL(INCLUDE_JPEG, [test x"$INCLUDE_jpeg" = xyes])
Packit a4058c
AM_CONDITIONAL(INCLUDE_PNM, [test x"$INCLUDE_pnm" = xyes])
Packit a4058c
AM_CONDITIONAL(INCLUDE_TIFF, [test x"$INCLUDE_tiff" = xyes])
Packit a4058c
AM_CONDITIONAL(INCLUDE_XPM, [test x"$INCLUDE_xpm" = xyes])
Packit a4058c
AM_CONDITIONAL(INCLUDE_XBM, [test x"$INCLUDE_xbm" = xyes])
Packit a4058c
AM_CONDITIONAL(INCLUDE_TGA, [test x"$INCLUDE_tga" = xyes])
Packit a4058c
AM_CONDITIONAL(INCLUDE_ICNS, [test x"$INCLUDE_icns" = xyes])
Packit a4058c
AM_CONDITIONAL(INCLUDE_JASPER, [test x"$INCLUDE_jasper" = xyes])
Packit a4058c
AM_CONDITIONAL(INCLUDE_QTIF, [test x"$INCLUDE_qtif" = xyes])
Packit a4058c
# As all GDI+ loaders are either built-in or not, arbitrarily just
Packit a4058c
# check one of the variables here
Packit a4058c
AM_CONDITIONAL(INCLUDE_GDIPLUS, [test x"$INCLUDE_gdip_ico" = xyes])
Packit a4058c
Packit a4058c
if test x$gio_can_sniff = x; then
Packit a4058c
  # Will not run on win32, so require shared-mime-info
Packit a4058c
  PKG_CHECK_MODULES(SHARED_MIME_INFO, shared-mime-info)
Packit a4058c
  AC_DEFINE(GDK_PIXBUF_USE_GIO_MIME, 1, [Define if gio can sniff image data])
Packit a4058c
fi
Packit a4058c
Packit a4058c
AM_CONDITIONAL(HAVE_TIFF, test "x$libtiff_found" != x)
Packit a4058c
AM_CONDITIONAL(HAVE_PNG, test "x$LIBPNG" != x)
Packit a4058c
AM_CONDITIONAL(HAVE_JPEG, test "x$LIBJPEG" != x)
Packit a4058c
AM_CONDITIONAL(HAVE_JASPER, test "x$LIBJASPER" != x)
Packit a4058c
Packit a4058c
if $dynworks ; then
Packit a4058c
  STATIC_LIB_DEPS=
Packit a4058c
  if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then
Packit a4058c
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $TIFF_LIBS"
Packit a4058c
  fi
Packit a4058c
  if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then
Packit a4058c
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
Packit a4058c
  fi
Packit a4058c
  if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then
Packit a4058c
    if test -z $PNG_DEP_CFLAGS_PACKAGES; then
Packit a4058c
      STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
Packit a4058c
    fi
Packit a4058c
  fi
Packit a4058c
  if echo "$included_loaders" | egrep '(^|,)jasper($|,)' > /dev/null; then
Packit a4058c
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJASPER"
Packit a4058c
  fi
Packit a4058c
else
Packit a4058c
  STATIC_LIB_DEPS="$TIFF_LIBS $LIBJPEG $LIBPNG $LIBJASPER"
Packit a4058c
fi
Packit a4058c
Packit a4058c
# Checks to see whether we should include mediaLib
Packit a4058c
# support.
Packit a4058c
#
Packit a4058c
AC_CHECK_HEADER(sys/systeminfo.h,
Packit a4058c
                AC_DEFINE(HAVE_SYS_SYSTEMINFO_H, 1,
Packit a4058c
                          [Define to 1 if sys/systeminfo.h is available]))
Packit a4058c
AC_CHECK_HEADER(sys/sysinfo.h,
Packit a4058c
                AC_DEFINE(HAVE_SYS_SYSINFO_H, 1,
Packit a4058c
                          [Define to 1 if sys/sysinfo.h is available]))
Packit a4058c
Packit a4058c
AC_MSG_CHECKING(for mediaLib 2.3)
Packit a4058c
use_mlib25=no
Packit a4058c
# Check for a mediaLib 2.3 function since that is what the GTK+ mediaLib
Packit a4058c
# patch requires.
Packit a4058c
AC_CHECK_LIB(mlib, mlib_ImageSetStruct, use_mlib=yes, use_mlib=no)
Packit a4058c
if test $use_mlib = yes; then
Packit a4058c
    AC_DEFINE(USE_MEDIALIB, 1,
Packit a4058c
              [Define to 1 if medialib is available and should be used])
Packit a4058c
    MEDIA_LIB=-lmlib
Packit a4058c
Packit a4058c
    AC_MSG_CHECKING(for mediaLib 2.5)
Packit a4058c
    # Check for a mediaLib 2.5 function since that is what is needed for
Packit a4058c
    # gdk_rgb_convert integration.
Packit a4058c
    AC_CHECK_LIB(mlib, mlib_VideoColorRGBint_to_BGRAint, use_mlib25=yes, use_mlib25=no)
Packit a4058c
    if test $use_mlib25 = yes; then
Packit a4058c
        AC_DEFINE(USE_MEDIALIB25, 1,
Packit a4058c
                  [Define to 1 if medialib 2.5 is available])
Packit a4058c
    fi
Packit a4058c
fi
Packit a4058c
AM_CONDITIONAL(USE_MEDIALIB, test $use_mlib = yes)
Packit a4058c
AM_CONDITIONAL(USE_MEDIALIB25, test $use_mlib25 = yes)
Packit a4058c
Packit a4058c
# Checks to see if we should compile in MMX support (there will be
Packit a4058c
# a runtime test when the code is actually run to see if it should
Packit a4058c
# be used - this just checks if we can compile it.)
Packit a4058c
#
Packit a4058c
# This code is partially taken from Mesa
Packit a4058c
#
Packit a4058c
AC_MSG_CHECKING(for x86 platform)
Packit a4058c
case $host_cpu in
Packit a4058c
  i386|i486|i586|i686|i786|k6|k7)
Packit a4058c
        use_x86_asm=yes
Packit a4058c
        ;;
Packit a4058c
   *)
Packit a4058c
        use_x86_asm=no
Packit a4058c
esac
Packit a4058c
AC_MSG_RESULT($use_x86_asm)
Packit a4058c
Packit a4058c
use_mmx_asm=no
Packit a4058c
if test $use_x86_asm = yes; then
Packit a4058c
    save_ac_ext=$ac_ext
Packit a4058c
    ac_ext=S
Packit a4058c
Packit a4058c
    AC_MSG_CHECKING(compiler support for MMX)
Packit a4058c
    cp $srcdir/gdk-pixbuf/pixops/scale_line_22_33_mmx.S conftest.S
Packit a4058c
    if AC_TRY_EVAL(ac_compile); then
Packit a4058c
        use_mmx_asm=yes
Packit a4058c
    fi
Packit a4058c
Packit a4058c
    rm -rf conftest*
Packit a4058c
Packit a4058c
    ac_ext=$save_ac_ext
Packit a4058c
    if test $use_mmx_asm = yes; then
Packit a4058c
      AC_DEFINE(USE_MMX, 1,
Packit a4058c
                [Define to 1 if MMX is available and should be used])
Packit a4058c
      AC_MSG_RESULT(yes)
Packit a4058c
    else
Packit a4058c
      AC_MSG_RESULT(no)
Packit a4058c
    fi
Packit a4058c
fi
Packit a4058c
Packit a4058c
AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
Packit a4058c
Packit a4058c
AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
Packit a4058c
Packit a4058c
GDK_PIXBUF_PACKAGES="gmodule-no-export-2.0 gobject-2.0 gio-2.0"
Packit a4058c
GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $LIBM $MEDIA_LIB"
Packit a4058c
GDK_PIXBUF_EXTRA_CFLAGS=
Packit a4058c
GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
Packit a4058c
GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
Packit a4058c
Packit a4058c
AC_SUBST(PNG_DEP_CFLAGS_PACKAGES)
Packit a4058c
AC_SUBST(GDK_PIXBUF_PACKAGES)
Packit a4058c
AC_SUBST(GDK_PIXBUF_EXTRA_LIBS)
Packit a4058c
AC_SUBST(GDK_PIXBUF_EXTRA_CFLAGS)
Packit a4058c
AC_SUBST(GDK_PIXBUF_DEP_LIBS)
Packit a4058c
AC_SUBST(GDK_PIXBUF_DEP_CFLAGS)
Packit a4058c
Packit a4058c
###############
Packit a4058c
# Check for X11
Packit a4058c
###############
Packit a4058c
Packit a4058c
GDK_PIXBUF_XLIB_PACKAGES=
Packit a4058c
GDK_PIXBUF_XLIB_EXTRA_CFLAGS=
Packit a4058c
GDK_PIXBUF_XLIB_EXTRA_LIBS=
Packit a4058c
Packit a4058c
AC_ARG_WITH(x11,
Packit a4058c
            [AC_HELP_STRING([--with-x11],
Packit a4058c
                            [build X11 support])])
Packit a4058c
Packit a4058c
if test x$with_x11 = xyes; then
Packit a4058c
  AM_CONDITIONAL(USE_X11, true)
Packit a4058c
  PKG_CHECK_MODULES(GDK_PIXBUF_XLIB_DEP, x11 gobject-2.0)
Packit a4058c
else
Packit a4058c
  AM_CONDITIONAL(USE_X11, false)
Packit a4058c
fi
Packit a4058c
Packit a4058c
################################################################
Packit a4058c
# Strip -export-dynamic from the link lines of various libraries
Packit a4058c
################################################################
Packit a4058c
Packit a4058c
#
Packit a4058c
# pkg-config --libs gmodule includes the "export_dynamic" flag,
Packit a4058c
#  but this flag is only meaningful for executables. For libraries
Packit a4058c
#  the effect is undefined; what it causes on Linux is that the
Packit a4058c
#  export list from -export-symbols-regex is ignored and everything
Packit a4058c
#  is exported
Packit a4058c
#
Packit a4058c
# We are using gmodule-no-export now, but I'm leaving the stripping
Packit a4058c
# code in place for now, since pango and atk still require gmodule.
Packit a4058c
export SED
Packit a4058c
export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
Packit a4058c
if test -n "$export_dynamic"; then
Packit a4058c
  GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"`
Packit a4058c
fi
Packit a4058c
Packit a4058c
##################################################
Packit a4058c
# GObject introspection
Packit a4058c
##################################################
Packit a4058c
Packit a4058c
GOBJECT_INTROSPECTION_CHECK([0.9.3])
Packit a4058c
Packit a4058c
##################################################
Packit a4058c
# Checks for gtk-doc and docbook-tools
Packit a4058c
##################################################
Packit a4058c
Packit a4058c
GTK_DOC_CHECK([1.20], [--flavour=no-tmpl])
Packit a4058c
Packit a4058c
AC_CHECK_PROG(DB2HTML, db2html, true, false)
Packit a4058c
AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
Packit a4058c
Packit a4058c
AC_ARG_ENABLE(man,
Packit a4058c
              [AC_HELP_STRING([--enable-man],
Packit a4058c
                              [regenerate man pages from Docbook [default=no]])],enable_man=yes,
Packit a4058c
              enable_man=no)
Packit a4058c
Packit a4058c
if test "${enable_man}" != no; then
Packit a4058c
  dnl
Packit a4058c
  dnl Check for xsltproc
Packit a4058c
  dnl
Packit a4058c
  AC_PATH_PROG([XSLTPROC], [xsltproc])
Packit a4058c
  if test -z "$XSLTPROC"; then
Packit a4058c
    enable_man=no
Packit a4058c
  fi
Packit a4058c
fi
Packit a4058c
Packit a4058c
AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
Packit a4058c
Packit a4058c
###################################################################
Packit a4058c
# Check for -fvisibility=hidden to determine if we can do GNU-style
Packit a4058c
# visibility attributes for symbol export control
Packit a4058c
###################################################################
Packit a4058c
GDK_PIXBUF_HIDDEN_VISIBILITY_CFLAGS=""
Packit a4058c
case "$host" in
Packit a4058c
  *-*-mingw*)
Packit a4058c
    dnl on mingw32 we do -fvisibility=hidden and __declspec(dllexport)
Packit a4058c
    AC_DEFINE([_GDK_PIXBUF_EXTERN], [__attribute__((visibility("default"))) __declspec(dllexport) extern],
Packit a4058c
              [defines how to decorate public symbols while building])
Packit a4058c
    CFLAGS="${CFLAGS} -fvisibility=hidden"
Packit a4058c
    ;;
Packit a4058c
  *)
Packit a4058c
    dnl on other compilers, check if we can do -fvisibility=hidden
Packit a4058c
    SAVED_CFLAGS="${CFLAGS}"
Packit a4058c
    CFLAGS="-fvisibility=hidden"
Packit a4058c
    AC_MSG_CHECKING([for -fvisibility=hidden compiler flag])
Packit a4058c
    AC_TRY_COMPILE([], [return 0],
Packit a4058c
                   AC_MSG_RESULT(yes)
Packit a4058c
                   enable_fvisibility_hidden=yes,
Packit a4058c
                   AC_MSG_RESULT(no)
Packit a4058c
                   enable_fvisibility_hidden=no)
Packit a4058c
    CFLAGS="${SAVED_CFLAGS}"
Packit a4058c
Packit a4058c
    AS_IF([test "${enable_fvisibility_hidden}" = "yes"], [
Packit a4058c
      AC_DEFINE([_GDK_PIXBUF_EXTERN], [__attribute__((visibility("default"))) extern],
Packit a4058c
                [defines how to decorate public symbols while building])
Packit a4058c
      GDK_PIXBUF_HIDDEN_VISIBILITY_CFLAGS="-fvisibility=hidden"
Packit a4058c
    ])
Packit a4058c
    ;;
Packit a4058c
esac
Packit a4058c
AC_SUBST(GDK_PIXBUF_HIDDEN_VISIBILITY_CFLAGS)
Packit a4058c
Packit a4058c
Packit a4058c
##################################################
Packit a4058c
# Check for -Bsymbolic-functions linker flag used
Packit a4058c
# to avoid intra-library PLT jumps, if available.
Packit a4058c
##################################################
Packit a4058c
Packit a4058c
AC_ARG_ENABLE(Bsymbolic,
Packit a4058c
              [AC_HELP_STRING([--disable-Bsymbolic],
Packit a4058c
                              [avoid linking with -Bsymbolic])],,
Packit a4058c
              [SAVED_LDFLAGS="${LDFLAGS}"
Packit a4058c
               AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
Packit a4058c
               LDFLAGS=-Wl,-Bsymbolic-functions
Packit a4058c
               AC_TRY_LINK([], [int main (void) { return 0; }],
Packit a4058c
                           AC_MSG_RESULT(yes)
Packit a4058c
                           enable_Bsymbolic=yes,
Packit a4058c
                           AC_MSG_RESULT(no)
Packit a4058c
                           enable_Bsymbolic=no)
Packit a4058c
               LDFLAGS="${SAVED_LDFLAGS}"])
Packit a4058c
Packit a4058c
if test "x${enable_Bsymbolic}" = "xyes"; then
Packit a4058c
  GDK_PIXBUF_LINK_FLAGS=-Wl,-Bsymbolic-functions
Packit a4058c
fi
Packit a4058c
Packit a4058c
AC_SUBST(GDK_PIXBUF_LINK_FLAGS)
Packit a4058c
Packit a4058c
GLIB_TESTS
Packit a4058c
Packit a4058c
AC_MSG_CHECKING([whether to build with gcov testing])
Packit a4058c
AC_ARG_ENABLE([coverage],
Packit a4058c
		AS_HELP_STRING([--enable-coverage],
Packit a4058c
			[Whether to enable coverage testing ]),
Packit a4058c
		[],
Packit a4058c
		[enable_coverage=no])
Packit a4058c
Packit a4058c
AC_MSG_RESULT([$enable_coverage])
Packit a4058c
Packit a4058c
if test "$enable_coverage" = "yes"; then
Packit a4058c
	if test "$GCC" != "yes"; then
Packit a4058c
		AC_MSG_ERROR(Coverage testing requires GCC)
Packit a4058c
	fi
Packit a4058c
Packit a4058c
	AC_PATH_PROG(GCOV, gcov, no)
Packit a4058c
	if test "$GCOV" = "no" ; then
Packit a4058c
		AC_MSG_ERROR(gcov tool is not available)
Packit a4058c
	fi
Packit a4058c
Packit a4058c
	AC_PATH_PROG(LCOV, lcov, no)
Packit a4058c
	if test "$LCOV" = "no" ; then
Packit a4058c
		AC_MSG_ERROR(lcov tool is not installed)
Packit a4058c
	fi
Packit a4058c
Packit a4058c
	AC_PATH_PROG(GENHTML, genhtml, no)
Packit a4058c
	if test "$GENHTML" = "no" ; then
Packit a4058c
		AC_MSG_ERROR(lcov's genhtml tool is not installed)
Packit a4058c
	fi
Packit a4058c
Packit a4058c
	CFLAGS="$CFLAGS -O0 -g -fprofile-arcs -ftest-coverage"
Packit a4058c
	LDFLAGS="$LDFLAGS -lgcov"
Packit a4058c
fi
Packit a4058c
Packit a4058c
AM_CONDITIONAL([WITH_COVERAGE], [test "$enable_coverage" = "yes"])
Packit a4058c
AC_SUBST(LCOV)
Packit a4058c
AC_SUBST(GCOV)
Packit a4058c
AC_SUBST(GENHTML)
Packit a4058c
Packit a4058c
#######################################################
Packit a4058c
# Enable replacing the build-time prefix in the loaders
Packit a4058c
# cache with the installation prefix on this machine
Packit a4058c
# for relocatable packages such as Windows and OS X
Packit a4058c
# applications and linux bundles
Packit a4058c
#######################################################
Packit a4058c
Packit a4058c
AC_MSG_CHECKING([whether to build with application bundle relocation support])
Packit a4058c
AC_ARG_ENABLE([relocations],
Packit a4058c
              AS_HELP_STRING([--enable-relocations],
Packit a4058c
                             [Whether to build with application bundle relocation support]),
Packit a4058c
              [],
Packit a4058c
              [enable_relocations=no])
Packit a4058c
Packit a4058c
AC_MSG_RESULT([$enable_relocations])
Packit a4058c
Packit a4058c
if test "x$enable_relocations" = "xyes"; then
Packit a4058c
  AC_DEFINE(GDK_PIXBUF_RELOCATABLE, 1,
Packit a4058c
                  [Define to 1 to replace the build-time prefix in modules])
Packit a4058c
fi
Packit a4058c
Packit a4058c
##############################################
Packit a4058c
# Check whether MSVC toolset is explicitly set
Packit a4058c
##############################################
Packit a4058c
AM_CONDITIONAL(MSVC_BASE_NO_TOOLSET_SET, [test x$MSVC_BASE_TOOLSET = x])
Packit a4058c
AM_CONDITIONAL(MSVC_NO_TOOLSET_SET, [test x$MSVC_TOOLSET = x])
Packit a4058c
Packit a4058c
##################################################
Packit a4058c
# Output commands
Packit a4058c
##################################################
Packit a4058c
Packit a4058c
AC_CONFIG_FILES([
Packit a4058c
Makefile
Packit a4058c
gdk-pixbuf-2.0.pc
Packit a4058c
gdk-pixbuf/Makefile
Packit a4058c
gdk-pixbuf/gdk_pixbuf.rc
Packit a4058c
gdk-pixbuf/gdk-pixbuf-features.h
Packit a4058c
gdk-pixbuf/pixops/Makefile
Packit a4058c
win32/Makefile
Packit a4058c
win32/vs9/Makefile
Packit a4058c
win32/vs9/gdk-pixbuf-version-paths.vsprops
Packit a4058c
win32/vs10/Makefile
Packit a4058c
win32/vs10/gdk-pixbuf-version-paths.props
Packit a4058c
win32/vs11/Makefile
Packit a4058c
win32/vs12/Makefile
Packit a4058c
win32/vs14/Makefile
Packit a4058c
win32/vs15/Makefile
Packit a4058c
docs/Makefile
Packit a4058c
docs/reference/Makefile
Packit a4058c
docs/reference/gdk-pixbuf/Makefile
Packit a4058c
docs/reference/gdk-pixbuf/version.xml
Packit a4058c
po/Makefile.in
Packit a4058c
tests/Makefile
Packit a4058c
thumbnailer/Makefile
Packit a4058c
contrib/Makefile
Packit a4058c
contrib/gdk-pixbuf-xlib/Makefile
Packit a4058c
contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
Packit a4058c
config.h.win32
Packit a4058c
])
Packit a4058c
Packit a4058c
AC_OUTPUT