# Process this file with autoconf to produce a configure script. # require autoconf 2.54 AC_PREREQ(2.54) # Making releases: # GTK_MICRO_VERSION += 1; # GTK_INTERFACE_AGE += 1; # GTK_BINARY_AGE += 1; # if any functions have been added, set GTK_INTERFACE_AGE to 0. # if backwards compatibility has been broken, # set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0. m4_define([gtk_major_version], [2]) m4_define([gtk_minor_version], [13]) m4_define([gtk_micro_version], [1]) m4_define([gtk_interface_age], [0]) m4_define([gtk_binary_age], [m4_eval(100 * gtk_minor_version + gtk_micro_version)]) m4_define([gtk_version], [gtk_major_version.gtk_minor_version.gtk_micro_version]) # This is the X.Y used in -lgtk-FOO-X.Y m4_define([gtk_api_version], [2.0]) # Define a string for the earliest version that this release has # backwards binary compatibility with for all interfaces a module # might. Unless we add module-only API with lower stability # guarantees, this should be unchanged until we break binary compat # for GTK+. # #GTK_BINARY_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$LT_CURRENT m4_define([gtk_binary_version], [2.10.0]) # required versions of other packages m4_define([glib_required_version], [2.15.0]) m4_define([pango_required_version], [1.19.3]) m4_define([atk_required_version], [1.13.0]) m4_define([cairo_required_version], [1.2.0]) AC_INIT([gtk+], [gtk_version], [http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B], [gtk+]) AC_CONFIG_SRCDIR([gdk/gdktypes.h]) # Save this value here, since automake will set cflags later cflags_set=${CFLAGS+set} AM_INIT_AUTOMAKE(no-define) AM_CONFIG_HEADER(config.h) # # For each of the libraries we build, we define the following # substituted variables: # # foo_PACKAGES: pkg-config packages this library requires # foo_EXTRA_LIBS: Libraries this module requires not pulled in by pkg-config # foo_EXTRA_CFLAGS: cflags this module requires not pulled in by pkg-config # foo_DEP_LIBS: All libraries this module requires # foo_DEP_CFLAGS: All cflags this module requires GTK_MAJOR_VERSION=gtk_major_version GTK_MINOR_VERSION=gtk_minor_version GTK_MICRO_VERSION=gtk_micro_version GTK_INTERFACE_AGE=gtk_interface_age GTK_BINARY_AGE=gtk_binary_age GTK_VERSION=gtk_version GTK_API_VERSION=gtk_api_version GTK_BINARY_VERSION=gtk_binary_version AC_SUBST(GTK_MAJOR_VERSION) AC_SUBST(GTK_MINOR_VERSION) AC_SUBST(GTK_MICRO_VERSION) AC_SUBST(GTK_INTERFACE_AGE) AC_SUBST(GTK_BINARY_AGE) AC_SUBST(GTK_API_VERSION) AC_SUBST(GTK_VERSION) AC_SUBST(GTK_BINARY_VERSION) # libtool versioning #LT_RELEASE=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION #LT_CURRENT=`expr $GTK_MICRO_VERSION - $GTK_INTERFACE_AGE` #LT_REVISION=$GTK_INTERFACE_AGE #LT_AGE=`expr $GTK_BINARY_AGE - $GTK_INTERFACE_AGE` #LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE` m4_define([lt_current], [m4_eval(100 * gtk_minor_version + gtk_micro_version - gtk_interface_age)]) m4_define([lt_revision], [gtk_interface_age]) m4_define([lt_age], [m4_eval(gtk_binary_age - gtk_interface_age)]) LT_VERSION_INFO="lt_current:lt_revision:lt_age" LT_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age) AC_SUBST(LT_VERSION_INFO) AC_SUBST(LT_CURRENT_MINUS_AGE) m4_define([gail_lt_current],[18]) m4_define([gail_lt_revision],[1]) m4_define([gail_lt_age],[0]) m4_define([gail_lt_version_info],[gail_lt_current:gail_lt_revision:gail_lt_age]) m4_define([gail_lt_current_minus_age],[m4_eval(gail_lt_current - gail_lt_age)]) AC_SUBST([GAIL_LT_VERSION_INFO],[gail_lt_version_info]) AC_SUBST([GAIL_LT_CURRENT_MINUS_AGE],[gail_lt_current_minus_age]) # # gdk-pixbuf gets versioned separately, and for now, using standard # libtool versioning, not GTK+-style versioning # GDK_PIXBUF_MAJOR=gtk_major_version GDK_PIXBUF_MINOR=gtk_minor_version GDK_PIXBUF_MICRO=gtk_micro_version GDK_PIXBUF_VERSION="${GDK_PIXBUF_MAJOR}.${GDK_PIXBUF_MINOR}.${GDK_PIXBUF_MICRO}" AC_SUBST(GDK_PIXBUF_MAJOR) AC_SUBST(GDK_PIXBUF_MINOR) AC_SUBST(GDK_PIXBUF_MICRO) AC_SUBST(GDK_PIXBUF_VERSION) GETTEXT_PACKAGE=gtk20 AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE") AC_CANONICAL_HOST MATH_LIB=-lm AC_MSG_CHECKING([for native Win32]) case "$host" in *-*-mingw*) os_win32=yes MATH_LIB= ;; *) os_win32=no ;; esac AC_MSG_RESULT([$os_win32]) case $host in *-*-linux*) os_linux=yes ;; esac dnl Initialize libtool AC_PROG_CC AM_DISABLE_STATIC dnl dnl Check for a working C++ compiler, but do not bail out, if none is found. dnl We use this for an automated test for C++ header correctness. dnl AC_CHECK_PROGS(CXX, [$CCC c++ g++ gcc CC cxx cc++ cl], gcc) AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE(,[class a { int b; } c;], ,CXX=) AM_CONDITIONAL(HAVE_CXX, test "$CXX" != "") gtk_save_cxxflags="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -x objective-c++" AC_TRY_COMPILE([@interface Foo @end],,OBJC=yes,OBJC=no) AM_CONDITIONAL(HAVE_OBJC, test "$OBJC" = "yes") CXXFLAGS="$gtk_save_cxxflags" AC_LANG_RESTORE if test "$os_win32" = "yes"; then if test x$enable_static = xyes -o x$enable_static = x; then AC_MSG_WARN([Disabling static library build, must build as DLL on Windows.]) enable_static=no fi if test x$enable_shared = xno; then AC_MSG_WARN([Enabling shared library build, must build as DLL on Windows.]) fi enable_shared=yes fi AC_LIBTOOL_WIN32_DLL AM_PROG_LIBTOOL # Make sure we use 64-bit versions of various file stuff. AC_SYS_LARGEFILE AM_PROG_AS AC_PATH_PROG(NM, nm, nm) dnl Initialize maintainer mode AM_MAINTAINER_MODE AC_MSG_CHECKING([for some Win32 platform]) case "$host" in *-*-mingw*|*-*-cygwin*) platform_win32=yes ;; *) platform_win32=no ;; esac AC_MSG_RESULT([$platform_win32]) AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes") AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes") AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes") AM_CONDITIONAL(OS_LINUX, test "$os_linux" = "yes") if test "$os_win32" = "yes"; then AC_CHECK_TOOL(WINDRES, windres, no) if test "$WINDRES" = no; then AC_MSG_ERROR([*** Could not find an implementation of windres in your PATH.]) fi AC_CHECK_PROG(ms_librarian, lib.exe, yes, no) fi AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes) m4_define([debug_default], m4_if(m4_eval(gtk_minor_version % 2), [1], [yes], [minimum])) dnl declare --enable-* args and collect ac_help strings AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@], [turn on debugging @<:@default=debug_default@:>@]),, enable_debug=debug_default) AC_ARG_ENABLE(shm, [AC_HELP_STRING([--enable-shm], [support shared memory if available [default=yes]])],, [enable_shm="yes"]) AC_ARG_ENABLE(xkb, [AC_HELP_STRING([--enable-xkb], [support XKB [default=maybe]])],, [enable_xkb="maybe"]) AC_ARG_ENABLE(xinerama, [AC_HELP_STRING([--enable-xinerama], [support xinerama extension if available [default=yes]])],, [enable_xinerama="no"]) AC_ARG_ENABLE(rebuilds, [AC_HELP_STRING([--disable-rebuilds], [disable all source autogeneration rules])],, [enable_rebuilds=yes]) AC_ARG_ENABLE(visibility, [AC_HELP_STRING([--disable-visibility], [don't use ELF visibility attributes])],, [enable_visibility=yes]) AC_ARG_WITH(xinput, [AC_HELP_STRING([--with-xinput=@<:@no/yes@:>@], [support XInput])]) if test "$platform_win32" = yes; then gdktarget=win32 else gdktarget=x11 fi AC_ARG_WITH(gdktarget, [ --with-gdktarget=[[x11/win32/quartz/directfb]] select non-default GDK target], gdktarget=$with_gdktarget) AC_SUBST(gdktarget) case $gdktarget in x11|win32|quartz|directfb) ;; *) AC_MSG_ERROR([Invalid target for GDK: use x11, quartz, directfb or win32.]);; esac gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la gtktargetlib=libgtk-$gdktarget-$GTK_API_VERSION.la AC_SUBST(gdktargetlib) AC_SUBST(gtktargetlib) if test "x$enable_debug" = "xyes"; then test "$cflags_set" = set || CFLAGS="$CFLAGS -g" GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG -DG_ERRORCHECK_MUTEXES" else if test "x$enable_debug" = "xno"; then GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS" else GTK_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS" fi fi if test "x$enable_visibility" = "xno"; then GTK_DEBUG_FLAGS="$GTK_DEBUG_FLAGS -DDISABLE_VISIBILITY" fi AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}") # Build time sanity check... AM_SANITY_CHECK # Checks for programs. AC_ISC_POSIX AM_PROG_CC_STDC AC_PROG_INSTALL AC_PROG_MAKE_SET changequote(,)dnl if test "x$GCC" = "xyes"; then case " $CFLAGS " in *[\ \ ]-Wall[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wall" ;; esac if test "x$enable_ansi" = "xyes"; then case " $CFLAGS " in *[\ \ ]-ansi[\ \ ]*) ;; *) CFLAGS="$CFLAGS -ansi" ;; esac case " $CFLAGS " in *[\ \ ]-pedantic[\ \ ]*) ;; *) CFLAGS="$CFLAGS -pedantic" ;; esac fi fi changequote([,])dnl # Ensure MSVC-compatible struct packing convention is used when # compiling for Win32 with gcc. # What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while # gcc2 uses "-fnative-struct". if test x"$os_win32" = xyes; then if test x"$GCC" = xyes; then msnative_struct='' AC_MSG_CHECKING([how to get MSVC-compatible struct packing]) if test -z "$ac_cv_prog_CC"; then our_gcc="$CC" else our_gcc="$ac_cv_prog_CC" fi case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in 2.) if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then msnative_struct='-fnative-struct' fi ;; *) if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then msnative_struct='-mms-bitfields' fi ;; esac if test x"$msnative_struct" = x ; then AC_MSG_RESULT([no way]) AC_MSG_WARN([produced libraries might be incompatible with MSVC-compiled code]) else CFLAGS="$CFLAGS $msnative_struct" AC_MSG_RESULT([${msnative_struct}]) fi fi fi # Honor aclocal flags ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" ## Initial sanity check, done here so that users get told they ## have the wrong dependencies as early in the process as possible. ## Later on we actually use the cflags/libs from separate pkg-config ## calls. Oh, also the later pkg-config calls don't include ## the version requirements since those make the module lists ## annoying to construct PKG_CHECK_MODULES(BASE_DEPENDENCIES, [glib-2.0 >= glib_required_version dnl atk >= atk_required_version dnl pango >= pango_required_version dnl cairo >= cairo_required_version]) if test "$os_win32" != yes; then # libtool option to control which symbols are exported # right now, symbols starting with _ are not exported LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"' else # We currently use .def files on Windows (for gdk-pixbuf, gdk and gtk) LIBTOOL_EXPORT_OPTIONS= fi AC_SUBST(LIBTOOL_EXPORT_OPTIONS) dnl ****************************************************** dnl * See whether to include shared library dependencies * dnl ****************************************************** AC_ARG_ENABLE(explicit-deps, [AC_HELP_STRING([--enable-explicit-deps=@<:@yes/no/auto@:>@], [use explicit dependencies in .pc files [default=auto]])],, [enable_explicit_deps=auto]) AC_MSG_CHECKING([Whether to write dependencies into .pc files]) case $enable_explicit_deps in auto) export SED deplibs_check_method=`(./libtool --config; echo 'eval echo $deplibs_check_method') | sh` if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then enable_explicit_deps=yes else enable_explicit_deps=no fi ;; yes|no) ;; *) AC_MSG_ERROR([Value given to --enable-explicit-deps must be one of yes, no or auto]) ;; esac AC_MSG_RESULT($enable_explicit_deps) AM_CONDITIONAL(DISABLE_EXPLICIT_DEPS, test $enable_explicit_deps = no) # define a MAINT-like variable REBUILD which is set if Perl # and awk are found, so autogenerated sources can be rebuilt AC_PATH_PROGS(PERL, perl5 perl) # We would like indent, but don't require it. AC_CHECK_PROG(INDENT, indent, indent) REBUILD=\# if test "x$enable_rebuilds" = "xyes" && \ test -n "$PERL" && \ $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then REBUILD= fi AC_SUBST(REBUILD) AC_CHECK_FUNCS(lstat mkstemp flockfile getc_unlocked) AC_CHECK_FUNCS(localtime_r) # _NL_TIME_FIRST_WEEKDAY is an enum and not a define AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY]) AC_TRY_LINK([#include ], [ char c; c = *((unsigned char *) nl_langinfo(_NL_TIME_FIRST_WEEKDAY)); ], gtk_ok=yes, gtk_ok=no) AC_MSG_RESULT($gtk_ok) if test "$gtk_ok" = "yes"; then AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1], [Define if _NL_TIME_FIRST_WEEKDAY is available]) fi # _NL_MEASUREMENT_MEASUREMENT is an enum and not a define AC_MSG_CHECKING([for _NL_MEASUREMENT_MEASUREMENT]) AC_TRY_LINK([#include ], [ char c; c = *((unsigned char *) nl_langinfo(_NL_MEASUREMENT_MEASUREMENT)); ], gtk_ok=yes, gtk_ok=no) AC_MSG_RESULT($gtk_ok) if test "$gtk_ok" = "yes"; then AC_DEFINE([HAVE__NL_MEASUREMENT_MEASUREMENT], [1], [Define if _NL_MEASUREMENT_MEASUREMENT is available]) fi # _NL_PAPER_HEIGHT is an enum and not a define AC_MSG_CHECKING([for _NL_PAPER_HEIGHT]) AC_TRY_LINK([#include ], [ char c; c = *((unsigned char *) nl_langinfo(_NL_PAPER_HEIGHT)); ], gtk_ok=yes, gtk_ok=no) AC_MSG_RESULT($gtk_ok) if test "$gtk_ok" = "yes"; then AC_DEFINE([HAVE__NL_PAPER_HEIGHT], [1], [Define if _NL_PAPER_HEIGHT is available]) fi # _NL_PAPER_WIDTH is an enum and not a define AC_MSG_CHECKING([for _NL_PAPER_WIDTH]) AC_TRY_LINK([#include ], [ char c; c = *((unsigned char *) nl_langinfo(_NL_PAPER_WIDTH)); ], gtk_ok=yes, gtk_ok=no) AC_MSG_RESULT($gtk_ok) if test "$gtk_ok" = "yes"; then AC_DEFINE([HAVE__NL_PAPER_WIDTH], [1], [Define if _NL_PAPER_WIDTH is available]) fi # sigsetjmp is a macro on some platforms, so AC_CHECK_FUNCS is not reliable AC_MSG_CHECKING(for sigsetjmp) AC_TRY_LINK([#include ], [ sigjmp_buf env; sigsetjmp(env, 0); ], gtk_ok=yes, gtk_ok=no) AC_MSG_RESULT($gtk_ok) if test "$gtk_ok" = "yes"; then AC_DEFINE(HAVE_SIGSETJMP) fi # i18n stuff # TRANSLATORS: Please note that gtk+ has both po/ and po-properties/ # directories. If you add a new language to ALL_LINGUAS, please make # sure that both po/ and po-properties/ have .po files that correspond # to your language. If you only add one to po/, the build will break # in po-properties/. ALL_LINGUAS="af am ang ar as az az_IR be be@latin bg bn bn_IN br bs ca cs cy da de dz el en_CA en_GB eo es et eu fa fi fr ga gl gu he hi hr hu hy ia id io is it ja ka kn ko ku li lt lv mi mk ml mn mr ms nb ne nl nn nso oc or pa pl pt pt_BR ro ru rw sk sl sq sr sr@Latn sr@ije sv ta te th tk tr tt uk ur uz uz@cyrillic vi wa xh yi zh_CN zh_HK zh_TW" AM_GLIB_GNU_GETTEXT LIBS="$LIBS $INTLLIBS" AC_OUTPUT_COMMANDS([case "$CONFIG_FILES" in *po-properties/Makefile.in*) sed -e "/POTFILES =/r po-properties/POTFILES" po-properties/Makefile.in > po-properties/Makefile esac]) AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR) dnl The DU4 header files don't provide library prototypes unless dnl -std1 is given to the native cc. AC_MSG_CHECKING([for extra flags to get ANSI library prototypes]) gtk_save_LIBS=$LIBS LIBS="$LIBS -lm" AC_TRY_RUN([#include int main (void) { return (log(1) != log(1.)); }], AC_MSG_RESULT(none needed), gtk_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -std1" AC_TRY_RUN([#include int main (void) { return (log(1) != log(1.)); }], AC_MSG_RESULT(-std1), AC_MSG_RESULT() CFLAGS="$gtk_save_CFLAGS" AC_MSG_WARN( [No ANSI prototypes found in library. (-std1 didn't work.)]), true ), AC_MSG_RESULT(none needed) ) LIBS=$gtk_save_LIBS AC_MSG_CHECKING(for the BeOS) case $host in *-*-beos*) AC_MSG_RESULT(yes) MATH_LIB= ;; *) AC_MSG_RESULT(no) ;; esac # # see bug 162979 # AC_MSG_CHECKING(for HP-UX) case $host_os in hpux9* | hpux10* | hpux11*) AC_MSG_RESULT(yes) CFLAGS="$CFLAGS -DHPPEX -DSHMLINK" ;; *) AC_MSG_RESULT(no) ;; esac dnl NeXTStep cc seems to need this AC_MSG_CHECKING([for extra flags for POSIX compliance]) AC_TRY_COMPILE([#include ], [DIR *dir;], AC_MSG_RESULT(none needed), gtk_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -posix" AC_TRY_COMPILE([#include ], [DIR *dir;], AC_MSG_RESULT(-posix), AC_MSG_RESULT() CFLAGS="$gtk_save_CFLAGS" AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)]))) # # Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working # GLIB_PACKAGES="gobject-2.0 gmodule-no-export-2.0" AM_PATH_GLIB_2_0(glib_required_version, :, AC_MSG_ERROR([ *** GLIB glib_required_version or better is required. The latest version of *** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]), gobject gmodule-no-export gthread) # See if it's safe to turn G_DISABLE_DEPRECATED on. GLIB_VERSION_MAJOR_MINOR=`$PKG_CONFIG --modversion glib-2.0 | sed "s/\.@<:@^.@:>@*\$//"` GLIB_REQUIRED_VERSION_MAJOR_MINOR=`echo glib_required_version | sed "s/\.@<:@^.@:>@*\$//"` if test "x$GLIB_VERSION_MAJOR_MINOR" = "x$GLIB_REQUIRED_VERSION_MAJOR_MINOR"; then CFLAGS="-DG_DISABLE_DEPRECATED $CFLAGS" fi dnl dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in. dnl gtk_save_LIBS=$LIBS LIBS="$LIBS $GLIB_LIBS" AC_CHECK_FUNCS(bind_textdomain_codeset) LIBS=$gtk_save_LIBS AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H)) AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H)) AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H)) AC_CHECK_HEADERS(ftw.h, AC_DEFINE(HAVE_FTW_H)) AC_MSG_CHECKING([for GNU ftw extensions]) AC_TRY_COMPILE([#define _XOPEN_SOURCE 500 #define _GNU_SOURCE #include ], [int flags = FTW_ACTIONRETVAL;], gtk_ok=yes, gtk_ok=no) if test $gtk_ok = yes; then AC_MSG_RESULT([yes]) AC_DEFINE(HAVE_GNU_FTW,1,[Have GNU ftw]) else AC_MSG_RESULT([no]) fi saved_cflags="$CFLAGS" saved_ldflags="$LDFLAGS" # Checks for header files. AC_HEADER_STDC # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST # Checks for library functions. AC_TYPE_SIGNAL AC_FUNC_MMAP AC_CHECK_FUNCS(mallinfo) AC_CHECK_FUNCS(getresuid) AC_TYPE_UID_T # Check if needs to be included for fd_set AC_MSG_CHECKING([for fd_set]) AC_TRY_COMPILE([#include ], [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no) if test $gtk_ok = yes; then AC_MSG_RESULT([yes, found in sys/types.h]) else AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes) if test $gtk_ok = yes; then AC_DEFINE(HAVE_SYS_SELECT_H) AC_MSG_RESULT([yes, found in sys/select.h]) else AC_DEFINE(NO_FD_SET) AC_MSG_RESULT(no) fi fi # `widechar' tests for gdki18n.h AC_MSG_CHECKING(for wchar.h) AC_TRY_CPP([#include ], gdk_wchar_h=yes, gdk_wchar_h=no) if test $gdk_wchar_h = yes; then AC_DEFINE(HAVE_WCHAR_H,1,[Have wchar.h include file]) fi AC_MSG_RESULT($gdk_wchar_h) # Check for wctype.h (for iswalnum) AC_MSG_CHECKING(for wctype.h) AC_TRY_CPP([#include ], gdk_wctype_h=yes, gdk_wctype_h=no) if test $gdk_wctype_h = yes; then AC_DEFINE(HAVE_WCTYPE_H,1,[Have wctype.h include file]) fi AC_MSG_RESULT($gdk_wctype_h) # in Solaris 2.5, `iswalnum' is in -lw GDK_WLIBS= AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)]) oLIBS="$LIBS" LIBS="$LIBS $GDK_WLIBS" # The following is necessary for Linux libc-5.4.38 AC_MSG_CHECKING(if iswalnum() and friends are properly defined) AC_TRY_LINK([#include ],[ #if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H)) # ifdef HAVE_WCTYPE_H # include # else # ifdef HAVE_WCHAR_H # include # endif # endif #else # define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c)) #endif iswalnum((wchar_t) 0); ], gdk_working_wctype=yes, gdk_working_wctype=no) LIBS="$oLIBS" if test $gdk_working_wctype = no; then AC_DEFINE(HAVE_BROKEN_WCTYPE,1,[Is the wctype implementation broken]) GDK_WLIBS= fi AC_MSG_RESULT($gdk_working_wctype) AC_SUBST(GDK_WLIBS) # Check for uxtheme.h (for MS-Windows Engine) AC_MSG_CHECKING(for uxtheme.h) AC_TRY_CPP([#include ], gtk_uxtheme_h=yes, gtk_uxtheme_h=no) if test $gtk_uxtheme_h = yes; then AC_DEFINE(HAVE_UXTHEME_H,1,[Have uxtheme.h include file]) fi AC_MSG_RESULT($gtk_uxtheme_h) # Checks for gdkspawn AC_CHECK_HEADERS(crt_externs.h) AC_CHECK_FUNCS(_NSGetEnviron) ################################################## # Checks for gdk-pixbuf ################################################## dnl ******************************************************** dnl * See whether we need to load our modules as .la files * dnl ******************************************************** use_la_modules=false case $host in *-aix*) use_la_modules=true esac if $use_la_modules ; then AC_DEFINE(USE_LA_MODULES, 1, [Whether to load modules via .la files rather than directly]) fi AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf) AC_ARG_ENABLE(modules, [AC_HELP_STRING([--disable-modules], [disable dynamic module loading])]) dynworks=false deps= if test x$enable_modules = xno; then AC_MSG_RESULT(no) else AC_MSG_RESULT(yes) AC_MSG_CHECKING(whether dynamic modules work) ## for loop is to strip newline tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-no-export-2.0` for I in $tmp; do dynworks=$I done dnl Now we check to see if our libtool supports shared lib deps dnl (in a rather ugly way even) if $dynworks; then pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config" pixbuf_deplibs_check=`$pixbuf_libtool_config | \ grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \ sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'` if test "x$pixbuf_deplibs_check" = "xnone" || \ test "x$pixbuf_deplibs_check" = "xunknown" || \ test "x$pixbuf_deplibs_check" = "x"; then dynworks=false fi fi if $dynworks; then AC_DEFINE(USE_GMODULE) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi fi dnl We allow people to disable image loaders explicitely, but if they don't we error dnl out so that people don't accidentally build without them. AC_ARG_WITH(libpng, [AC_HELP_STRING([--without-libpng], [disable PNG loader for gdk-pixbuf])]) AC_ARG_WITH(libjpeg, [AC_HELP_STRING([--without-libjpeg], [disable JPEG loader for gdk-pixbuf])]) AC_ARG_WITH(libtiff, [AC_HELP_STRING([--without-libtiff], [disable TIFF loader for gdk-pixbuf])]) AC_ARG_WITH(libjasper, [AC_HELP_STRING([--without-libjasper], [disable JPEG2000 loader for gdk-pixbuf])]) dnl Test for libtiff if test x$with_libtiff != xno && test -z "$LIBTIFF"; then AC_CHECK_LIB(tiff, TIFFReadRGBAImageOriented, [AC_CHECK_HEADER(tiffio.h, TIFF='tiff'; LIBTIFF='-ltiff', AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))], [AC_CHECK_LIB(tiff, TIFFWriteScanline, [AC_CHECK_HEADER(tiffio.h, TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz', AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))], [AC_CHECK_LIB(tiff34, TIFFFlushData, [AC_CHECK_HEADER(tiffio.h, TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz', AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))], AC_MSG_WARN(*** TIFF loader will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm) fi if test x$with_libtiff != xno && test -z "$LIBTIFF"; then AC_MSG_ERROR([ *** Checks for TIFF loader failed. You can build without it by passing *** --without-libtiff to configure but some programs using GTK+ may *** not work properly]) fi dnl Test for libjpeg if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then AC_CHECK_LIB(jpeg, jpeg_destroy_decompress, jpeg_ok=yes, jpeg_ok=no AC_MSG_WARN(*** JPEG loader will not be built (JPEG library not found) ***)) if test "$jpeg_ok" = yes; then AC_MSG_CHECKING([for jpeglib.h]) AC_TRY_CPP( [#include #undef PACKAGE #undef VERSION #undef HAVE_STDLIB_H #include ], jpeg_ok=yes, jpeg_ok=no) AC_MSG_RESULT($jpeg_ok) if test "$jpeg_ok" = yes; then LIBJPEG='-ljpeg' AC_CHECK_LIB(jpeg, jpeg_simple_progression, AC_DEFINE(HAVE_PROGRESSIVE_JPEG), AC_MSG_WARN(JPEG library does not support progressive saving.)) else AC_MSG_WARN(*** JPEG loader will not be built (JPEG header file not found) ***) fi fi fi if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then AC_MSG_ERROR([ *** Checks for JPEG loader failed. You can build without it by passing *** --without-libjpeg to configure but some programs using GTK+ may *** not work properly]) fi dnl Test for libpng if test x$with_libpng != xno && test -z "$LIBPNG"; then AC_MSG_CHECKING(for libpng12) if $PKG_CONFIG --exists libpng12 ; then AC_MSG_RESULT(yes) PNG='png' PNG_DEP_CFLAGS_PACKAGES=libpng12 LIBPNG=`$PKG_CONFIG --libs libpng12` else AC_MSG_RESULT(no) AC_CHECK_LIB(png, png_read_info, [AC_CHECK_HEADER(png.h, png_ok=yes, png_ok=no)], AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm) if test "$png_ok" = yes; then AC_MSG_CHECKING([for png_structp in png.h]) AC_TRY_COMPILE([#include ], [png_structp pp; png_infop info; png_colorp cmap; png_create_read_struct;], png_ok=yes, png_ok=no) AC_MSG_RESULT($png_ok) if test "$png_ok" = yes; then PNG='png'; LIBPNG='-lpng -lz' else AC_MSG_WARN(*** PNG loader will not be built (PNG library is too old) ***) fi else AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***) fi fi fi if test x$with_libpng != xno && test -z "$LIBPNG"; then AC_MSG_ERROR([ *** Checks for PNG loader failed. You can build without it by passing *** --without-libpng to configure but many programs using GTK+ will *** not work properly. The PNG loader is also needed if you are compiling *** from CVS.]) fi dnl Test for libjasper if test x$with_libjasper != xno && test -z "$LIBJASPER"; then AC_CHECK_LIB(jasper, jas_init, LIBJASPER=-ljasper, []) fi if test x$with_libjasper != xno && test -z "$LIBJASPER"; then AC_MSG_ERROR([ *** Checks for JPEG2000 loader failed. You can build without it by passing *** --without-libjasper to configure]) fi AC_SUBST(LIBTIFF) AC_SUBST(LIBJPEG) AC_SUBST(LIBPNG) AC_SUBST(LIBJASPER) AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks) # # Allow building some or all gdk-pixbuf loaders included # AC_MSG_CHECKING(pixbuf loaders to build) dnl due to an autoconf bug, commas in the first arg to dnl AC_HELP_STRING cause problems. dnl AC_HELP_STRING([--with-included-loaders=LOADER1 LOADER2 ...], dnl [build the specified loaders into gdk-pixbuf]) AC_ARG_WITH(included_loaders, [ --with-included-loaders=LOADER1,LOADER2,... build the specified loaders into gdk-pixbuf]) if $dynworks; then : else ## if the option was specified, leave it; otherwise disable included loaders if test x$with_included_loaders = xno; then with_included_loaders=yes fi fi all_loaders="png,bmp,wbmp,gif,ico,ani,jpeg,pnm,ras,tiff,xpm,xbm,tga,pcx,icns" if test x$with_libjasper != xno; then all_loaders="$all_loaders,jasper" fi included_loaders="" # If no loaders specified, include all if test "x$with_included_loaders" = xyes ; then included_loaders="$all_loaders" else included_loaders="$with_included_loaders" fi AC_MSG_RESULT($included_loaders) INCLUDED_LOADER_OBJ= INCLUDED_LOADER_DEFINE= IFS="${IFS= }"; gtk_save_ifs="$IFS"; IFS="," for loader in $included_loaders; do if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then : else AC_MSG_ERROR([the specified loader $loader does not exist]) fi INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libstatic-pixbufloader-$loader.la" INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader" eval INCLUDE_$loader=yes done IFS="$gtk_save_ifs" AC_SUBST(INCLUDED_LOADER_OBJ) AC_SUBST(INCLUDED_LOADER_DEFINE) AM_CONDITIONAL(INCLUDE_PNG, [test x"$INCLUDE_png" = xyes]) AM_CONDITIONAL(INCLUDE_BMP, [test x"$INCLUDE_bmp" = xyes]) AM_CONDITIONAL(INCLUDE_WBMP, [test x"$INCLUDE_wbmp" = xyes]) AM_CONDITIONAL(INCLUDE_GIF, [test x"$INCLUDE_gif" = xyes]) AM_CONDITIONAL(INCLUDE_ICO, [test x"$INCLUDE_ico" = xyes]) AM_CONDITIONAL(INCLUDE_ANI, [test x"$INCLUDE_ani" = xyes]) AM_CONDITIONAL(INCLUDE_JPEG, [test x"$INCLUDE_jpeg" = xyes]) AM_CONDITIONAL(INCLUDE_PNM, [test x"$INCLUDE_pnm" = xyes]) AM_CONDITIONAL(INCLUDE_RAS, [test x"$INCLUDE_ras" = xyes]) AM_CONDITIONAL(INCLUDE_TIFF, [test x"$INCLUDE_tiff" = xyes]) AM_CONDITIONAL(INCLUDE_XPM, [test x"$INCLUDE_xpm" = xyes]) AM_CONDITIONAL(INCLUDE_XBM, [test x"$INCLUDE_xbm" = xyes]) AM_CONDITIONAL(INCLUDE_TGA, [test x"$INCLUDE_tga" = xyes]) AM_CONDITIONAL(INCLUDE_PCX, [test x"$INCLUDE_pcx" = xyes]) AM_CONDITIONAL(INCLUDE_ICNS, [test x"$INCLUDE_icns" = xyes]) AM_CONDITIONAL(INCLUDE_JASPER, [test x"$INCLUDE_jasper" = xyes]) AC_HEADER_SYS_WAIT AC_TYPE_SIGNAL AM_CONDITIONAL(HAVE_TIFF, test "x$LIBTIFF" != x) AM_CONDITIONAL(HAVE_PNG, test "x$LIBPNG" != x) AM_CONDITIONAL(HAVE_JPEG, test "x$LIBJPEG" != x) AM_CONDITIONAL(HAVE_JASPER, test "x$LIBJASPER" != x) if $dynworks ; then STATIC_LIB_DEPS= if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF" fi if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG" fi if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG" fi else STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG" fi # Checks to see whether we should include mediaLib # support. # AC_CHECK_HEADER(sys/systeminfo.h, AC_DEFINE(HAVE_SYS_SYSTEMINFO_H)) AC_CHECK_HEADER(sys/sysinfo.h, AC_DEFINE(HAVE_SYS_SYSINFO_H)) AC_MSG_CHECKING(for mediaLib 2.3) use_mlib25=no # Check for a mediaLib 2.3 function since that is what the GTK+ mediaLib # patch requires. AC_CHECK_LIB(mlib, mlib_ImageSetStruct, use_mlib=yes, use_mlib=no) if test $use_mlib = yes; then AC_DEFINE(USE_MEDIALIB) MEDIA_LIB=-lmlib AC_MSG_CHECKING(for mediaLib 2.5) # Check for a mediaLib 2.5 function since that is what is needed for # gdk_rgb_convert integration. AC_CHECK_LIB(mlib, mlib_VideoColorRGBint_to_BGRAint, use_mlib25=yes, use_mlib25=no) if test $use_mlib25 = yes; then AC_DEFINE(USE_MEDIALIB25) fi fi AM_CONDITIONAL(USE_MEDIALIB, test $use_mlib = yes) AM_CONDITIONAL(USE_MEDIALIB25, test $use_mlib25 = yes) # Checks to see if we should compile in MMX support (there will be # a runtime test when the code is actually run to see if it should # be used - this just checks if we can compile it.) # # This code is partially taken from Mesa # AC_MSG_CHECKING(for x86 platform) case $host_cpu in i386|i486|i586|i686|i786|k6|k7) use_x86_asm=yes ;; *) use_x86_asm=no esac AC_MSG_RESULT($use_x86_asm) use_mmx_asm=no if test $use_x86_asm = yes; then save_ac_ext=$ac_ext ac_ext=S AC_MSG_CHECKING(compiler support for MMX) cp $srcdir/gdk-pixbuf/pixops/scale_line_22_33_mmx.S conftest.S if AC_TRY_EVAL(ac_compile); then use_mmx_asm=yes fi rm -rf conftest* ac_ext=$save_ac_ext if test $use_mmx_asm = yes; then AC_DEFINE(USE_MMX) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi fi AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes) REBUILD_PNGS= if test -z "$LIBPNG"; then REBUILD_PNGS=# fi dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes) if test $cross_compiling = yes; then AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no) AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache, no) if test x$GTK_UPDATE_ICON_CACHE = xno; then REBUILD_PNGS=# fi fi if test ! -f $srcdir/gtk/gtkbuiltincache.h && test "x$REBUILD_PNGS" = "x#" ; then AC_MSG_ERROR([ *** gtkbuiltincache.h is not in the tree, and cannot be built *** because you don't have libpng, or (when cross-compiling) you *** don't have a prebuilt gtk-update-icon-cache on the build system.]) fi AC_SUBST(REBUILD_PNGS) GDK_PIXBUF_PACKAGES="gmodule-no-export-2.0 gobject-2.0 gio-2.0" GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB $MEDIA_LIB" GDK_PIXBUF_EXTRA_CFLAGS= GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS" GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS" ######################################## # Windowing system checks ######################################## GDK_PIXBUF_XLIB_PACKAGES= GDK_PIXBUF_XLIB_EXTRA_CFLAGS= GDK_PIXBUF_XLIB_EXTRA_LIBS= X_PACKAGES=fontconfig GDK_EXTRA_LIBS="$GDK_WLIBS" GDK_EXTRA_CFLAGS= # GTK+ uses some X calls, so needs to link against X directly GTK_DEP_PACKAGES_FOR_X= GTK_DEP_LIBS_FOR_X= if test "x$gdktarget" = "xx11"; then # # We use fontconfig very peripherally when decoding the default # settings. # if $PKG_CONFIG --exists fontconfig; then : ; else AC_MSG_ERROR([ *** fontconfig (http://www.fontconfig.org) is required by the X11 backend.]) fi # # Check for basic X packages; we use pkg-config if available # if $PKG_CONFIG --exists x11 xext xrender; then have_base_x_pc=true X_PACKAGES="$X_PACKAGES x11 xext xrender" x_libs="`$PKG_CONFIG --libs x11 xext xrender`" X_CFLAGS="`$PKG_CONFIG --cflags x11 xext xrender`" # Strip out any .la files that pkg-config might give us (this happens # with -uninstalled.pc files) x_libs_for_checks= for I in $x_libs ; do case $I in *.la) ;; *) x_libs_for_checks="$x_libs_for_checks $I" ;; esac done GDK_PIXBUF_XLIB_PACKAGES="x11" GTK_PACKAGES_FOR_X="x11" else have_base_x_pc=false AC_PATH_XTRA if test x$no_x = xyes ; then AC_MSG_ERROR([X development libraries not found]) fi x_cflags="$X_CFLAGS" x_libs_for_checks="$X_LIBS -lXext -lXrender -lX11 $X_EXTRA_LIBS" GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags" GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $X_EXTRA_LIBS" GTK_DEP_LIBS_FOR_X="$X_LIBS -lXrender -lX11 $X_EXTRA_LIBS" fi # Extra libraries found during checks (-lXinerama, etc), not from pkg-config. x_extra_libs= gtk_save_cppflags="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $X_CFLAGS" gtk_save_LIBS=$LIBS LIBS="$x_libs_for_checks $LIBS" # Sanity check for the X11 and Xext libraries. While everything we need from # Xext is optional, the chances a system has *none* of these things is so # small that we just unconditionally require it. AC_CHECK_FUNC(XOpenDisplay, :, AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.])) AC_CHECK_FUNC(XextFindDisplay, :, AC_MSG_ERROR([*** libXext not found. Check 'config.log' for more details.])) AC_CHECK_FUNC(XRenderQueryExtension, :, AC_MSG_ERROR([*** libXrender not found. Check 'config.log' for more details.])) # Check for xReply AC_MSG_CHECKING([if is needed for xReply]) AC_TRY_COMPILE([#include ], [xReply *rep;], [AC_MSG_RESULT([no])], [AC_TRY_COMPILE([#include #include ], [xReply *rep;], [AC_MSG_RESULT([yes]) AC_DEFINE([NEED_XIPROTO_H_FOR_XREPLY], 1, [Define if needed for xReply])], [AC_MSG_RESULT([unknown]) AC_MSG_ERROR([xReply type unavailable. X11 is too old])])]) # Check for XConvertCase, XInternAtoms (X11R6 specific) AC_CHECK_FUNCS(XConvertCase XInternAtoms) # Generic X11R6 check needed for XIM support; we could # probably use this to replace the above, but we'll # leave the separate checks for XConvertCase and XInternAtoms # for clarity have_x11r6=false AC_CHECK_FUNC(XAddConnectionWatch, have_x11r6=true) if $have_x11r6; then AC_DEFINE(HAVE_X11R6,1,[Define if we have X11R6]) fi AM_CONDITIONAL(HAVE_X11R6, $have_x11r6) # Check for XKB support. if test "x$enable_xkb" = "xyes"; then AC_MSG_WARN(XKB support explicitly enabled) AC_DEFINE(HAVE_XKB) elif test "x$enable_xkb" = "xmaybe"; then AC_CHECK_FUNC(XkbQueryExtension, AC_DEFINE(HAVE_XKB)) else AC_MSG_WARN(XKB support explicitly disabled) fi # Check for shaped window extension AC_CHECK_FUNC(XShapeCombineMask, AC_DEFINE(HAVE_SHAPE_EXT)) # X SYNC check gtk_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $x_cflags" AC_CHECK_FUNC(XSyncQueryExtension, [AC_CHECK_HEADER(X11/extensions/sync.h, AC_DEFINE(HAVE_XSYNC, 1, Have the SYNC extension library), :, [#include ])]) CFLAGS="$gtk_save_CFLAGS" # Xshm checks if test "x$enable_shm" = "xyes"; then # Check for the XShm extension, normally in Xext AC_CHECK_FUNC(XShmAttach, :, # On AIX, it is in XextSam instead [AC_CHECK_LIB(XextSam, XShmAttach, [GTK_ADD_LIB(x_extra_libs,XextSam)])]) fi if test "x$enable_shm" = "xyes"; then # Check for shared memory AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes) AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes) # Check for the X shared memory extension header file have_xshm=no AC_MSG_CHECKING(X11/extensions/XShm.h) if test "x$no_xext_lib" = "xyes"; then : else gtk_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $x_cflags" AC_TRY_COMPILE([ #include #include #include #include #include #include #include ], [XShmSegmentInfo *x_shm_info;], have_xshm=yes) CFLAGS="$gtk_save_CFLAGS" fi AC_MSG_RESULT($have_xshm) if test $have_xshm = yes ; then AC_DEFINE(HAVE_XSHM_H) fi fi if test "x$enable_xinerama" = "xyes"; then # Check for Xinerama extension (Solaris impl or Xfree impl) gtk_save_cppflags="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $x_cflags" case "$host" in *-*-solaris*) # Check for solaris AC_MSG_CHECKING(for Xinerama support on Solaris) have_solaris_xinerama=false AC_CHECK_FUNC(XineramaGetInfo, [AC_CHECK_HEADER(X11/extensions/xinerama.h, [have_solaris_xinerama=true], :, [#include ])]) if $have_solaris_xinerama ; then AC_DEFINE(HAVE_SOLARIS_XINERAMA) AC_DEFINE(HAVE_XINERAMA) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi ;; *) # Check for XFree AC_MSG_CHECKING(for Xinerama support on XFree86) have_xfree_xinerama=false if $PKG_CONFIG --exists xinerama ; then have_xfree_xinerama=true X_PACKAGES="$X_PACKAGES xinerama" else AC_CHECK_LIB(Xinerama, XineramaQueryExtension, [AC_CHECK_HEADER(X11/extensions/Xinerama.h, [GTK_ADD_LIB(x_extra_libs,Xinerama) have_xfree_xinerama=true], :, [#include ])]) fi if $have_xfree_xinerama ; then AC_DEFINE(HAVE_XFREE_XINERAMA) AC_DEFINE(HAVE_XINERAMA) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi ;; esac fi # set up things for XInput if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then AC_DEFINE(XINPUT_XFREE) if $PKG_CONFIG --exists xi ; then X_PACKAGES="$X_PACKAGES xi" else GTK_ADD_LIB(x_extra_libs, Xi) fi else AC_DEFINE(XINPUT_NONE) fi AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes) # Check for the RANDR extension if $PKG_CONFIG --exists "xrandr >= 1.2" ; then AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library) X_PACKAGES="$X_PACKAGES xrandr" fi # Checks for Xcursor library if $PKG_CONFIG --exists xcursor ; then AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library) X_PACKAGES="$X_PACKAGES xcursor" fi # Checks for XFixes extension if $PKG_CONFIG --exists xfixes ; then AC_DEFINE(HAVE_XFIXES, 1, Have the XFIXES X extension) X_PACKAGES="$X_PACKAGES xfixes" GTK_PACKAGES_FOR_X="$GTK_PACKAGES_FOR_X xfixes" fi # Checks for Xcomposite extension if $PKG_CONFIG --exists xcomposite ; then AC_DEFINE(HAVE_XCOMPOSITE, 1, Have the XCOMPOSITE X extension) X_PACKAGES="$X_PACKAGES xcomposite" GTK_PACKAGES_FOR_X="$GTK_PACKAGES_FOR_X xcomposite" fi # Checks for Xdamage extension if $PKG_CONFIG --exists xdamage ; then AC_DEFINE(HAVE_XDAMAGE, 1, Have the XDAMAGE X extension) X_PACKAGES="$X_PACKAGES xdamage" GTK_PACKAGES_FOR_X="$GTK_PACKAGES_FOR_X xdamage" fi if $have_base_x_pc ; then GDK_EXTRA_LIBS="$x_extra_libs" else GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs -lXext -lX11 $GDK_EXTRA_LIBS" fi CPPFLAGS="$gtk_save_cppflags" LIBS="$gtk_save_libs" AM_CONDITIONAL(USE_X11, true) else AM_CONDITIONAL(XINPUT_XFREE, false) AM_CONDITIONAL(USE_X11, false) AM_CONDITIONAL(HAVE_X11R6, false) fi if test "x$gdktarget" = "xwin32"; then GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid" AM_CONDITIONAL(USE_WIN32, true) else AM_CONDITIONAL(USE_WIN32, false) fi if test "x$gdktarget" = "xquartz"; then GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -framework Cocoa" AM_CONDITIONAL(USE_QUARTZ, true) else AM_CONDITIONAL(USE_QUARTZ, false) fi GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS" GDK_PIXBUF_XLIB_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_PIXBUF_XLIB_EXTRA_CFLAGS" AC_SUBST(GDK_PIXBUF_XLIB_PACKAGES) AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_LIBS) AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_CFLAGS) AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS) AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS) if test "x$gdktarget" = "xdirectfb"; then DIRECTFB_REQUIRED_VERSION=0.9.24 AC_MSG_CHECKING(for DirectFB) if $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb && $PKG_CONFIG --exists cairo-directfb ; then AC_MSG_RESULT(found) GDK_EXTRA_CFLAGS="`$PKG_CONFIG --cflags cairo-directfb` $GDK_EXTRA_CFLAGS" GDK_EXTRA_LIBS="`$PKG_CONFIG --libs cairo-directfb` $GDK_EXTRA_LIBS" else AC_MSG_ERROR([ *** DirectFB $DIRECTFB_REQUIRED_VERSION or newer and the cairo backend *** are required. The latest version of DirectFB is always available *** from http://www.directfb.org/. ]) fi AM_CONDITIONAL(USE_DIRECTFB, true) else AM_CONDITIONAL(USE_DIRECTFB, false) fi # Check for Pango flags if test "x$gdktarget" = "xwin32"; then PANGO_PACKAGES="pangowin32 pangocairo" else PANGO_PACKAGES="pango pangocairo" fi AC_MSG_CHECKING(Pango flags) if $PKG_CONFIG --exists $PANGO_PACKAGES ; then PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES` PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES` AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS) else AC_MSG_ERROR([ *** Pango not found. Pango built with Cairo support is required *** to build GTK+. See http://www.pango.org for Pango information. ]) fi CFLAGS="$CFLAGS $PANGO_CFLAGS" if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then : else gtk_save_LIBS="$LIBS" LIBS="$PANGO_LIBS $LIBS" AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([ *** Can't link to Pango. Pango is required to build *** GTK+. For more information see http://www.pango.org])) LIBS="$gtk_save_LIBS" fi CFLAGS="$saved_cflags" LDFLAGS="$saved_ldflags" GDK_PACKAGES="$PANGO_PACKAGES gio-2.0" if test "x$gdktarget" = "xx11"; then GDK_PACKAGES="$GDK_PACKAGES $X_PACKAGES" fi GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS" GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS" # # If we aren't writing explicit dependencies, then don't put the extra libraries we need # into the pkg-config files # if test $enable_explicit_deps != yes ; then GDK_PACKAGES="$PANGO_PACKAGES" GDK_EXTRA_LIBS= fi AC_SUBST(GDK_PACKAGES) AC_SUBST(GDK_EXTRA_LIBS) AC_SUBST(GDK_EXTRA_CFLAGS) AC_SUBST(GDK_DEP_LIBS) AC_SUBST(GDK_DEP_CFLAGS) ######################################## # Check for Accessibility Toolkit flags ######################################## ATK_PACKAGES=atk AC_MSG_CHECKING(ATK flags) if $PKG_CONFIG --exists $ATK_PACKAGES ; then ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES` ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES` AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS) else AC_MSG_ERROR([ *** Accessibility Toolkit not found. Accessibility Toolkit is required *** to build GTK+. ]) fi if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then : else gtk_save_LIBS="$LIBS" LIBS="$ATK_LIBS $LIBS" AC_TRY_LINK_FUNC(atk_object_get_type, : , AC_MSG_ERROR([ *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required *** to build GTK+])) LIBS="$gtk_save_LIBS" fi GTK_PACKAGES="atk cairo" GTK_EXTRA_LIBS= GTK_EXTRA_CFLAGS= GTK_DEP_LIBS="$GDK_EXTRA_LIBS $GTK_DEP_LIBS_FOR_X `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $PANGO_PACKAGES $GTK_PACKAGES_FOR_X $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS" GTK_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS $GTK_EXTRA_CFLAGS" if test x"$os_win32" = xyes; then GTK_EXTRA_CFLAGS="$msnative_struct" fi GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`" ATK_PREFIX="`$PKG_CONFIG --variable=prefix atk`" PANGO_PREFIX="`$PKG_CONFIG --variable=prefix pango`" CAIRO_PREFIX="`pkg-config --variable=prefix cairo`" if test $enable_explicit_deps != yes ; then GDK_PIXBUF_EXTRA_LIBS= fi AC_SUBST(GDK_PIXBUF_PACKAGES) AC_SUBST(GDK_PIXBUF_EXTRA_LIBS) AC_SUBST(GDK_PIXBUF_EXTRA_CFLAGS) AC_SUBST(GDK_PIXBUF_DEP_LIBS) AC_SUBST(GDK_PIXBUF_DEP_CFLAGS) AC_SUBST(GTK_PACKAGES) AC_SUBST(GTK_EXTRA_LIBS) AC_SUBST(GTK_EXTRA_CFLAGS) AC_SUBST(GTK_DEP_LIBS) AC_SUBST(GTK_DEP_CFLAGS) AC_SUBST(GLIB_PREFIX) AC_SUBST(ATK_PREFIX) AC_SUBST(PANGO_PREFIX) AC_SUBST(CAIRO_PREFIX) AC_SUBST(GTK_DEBUG_FLAGS) AC_SUBST(GTK_XIM_FLAGS) ######################## # Checks needed for gail ######################## old_LIBS="$LIBS" dnl Checks for inet libraries: AC_SEARCH_LIBS(gethostent, nsl) AC_SEARCH_LIBS(setsockopt, socket) AC_SEARCH_LIBS(connect, inet) dnl check for the sockaddr_un.sun_len member AC_CHECK_MEMBER([struct sockaddr_un.sun_len], [struct_sockaddr_un_sun_len=true], [struct_sockaddr_un_suin_len=false], [#include #include ] ) case $struct_sockaddr_un_sun_len in true) AC_DEFINE_UNQUOTED(HAVE_SOCKADDR_UN_SUN_LEN, 1, Have the sockaddr_un.sun_len member.) ;; *) ;; esac GAIL_INET_LIBS="$LIBS" AC_SUBST([GAIL_INET_LIBS]) LIBS="$old_LIBS" ################################################################ # Printing system checks ################################################################ AC_PATH_PROG(CUPS_CONFIG, cups-config, no) if test "x$CUPS_CONFIG" != "xno"; then CUPS_CFLAGS=`$CUPS_CONFIG --cflags | sed 's/-O[0-9]*//' | sed 's/-m[^\t]*//g'` CUPS_LIBS=`$CUPS_CONFIG --libs` CUPS_API_VERSION=`$CUPS_CONFIG --api-version` CUPS_API_MAJOR=`echo $ECHO_N $CUPS_API_VERSION | awk -F. '{print $1}'` CUPS_API_MINOR=`echo $ECHO_N $CUPS_API_VERSION | awk -F. '{print $2}'` if test $CUPS_API_MAJOR -gt 1 -o \ $CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -ge 2; then AC_DEFINE(HAVE_CUPS_API_1_2) fi AC_SUBST(CUPS_API_MAJOR) AC_SUBST(CUPS_API_MINOR) AC_SUBST(CUPS_CFLAGS) AC_SUBST(CUPS_LIBS) AC_CHECK_HEADER(cups/cups.h,,AC_MSG_ERROR([[*** Sorry, cups-config present but cups/cups.h missing.]])) fi AM_CONDITIONAL(HAVE_CUPS, test "x$CUPS_CONFIG" != "xno") gtk_save_cflags="$CFLAGS" CFLAGS="$CUPS_CFLAGS" AC_TRY_COMPILE([#include ], [http_t http; char *s = http.authstring;], [AC_DEFINE(HAVE_HTTP_AUTHSTRING,[],[Define if cups http_t authstring field is accessible])],) CFLAGS="$gtk_save_cflags" AC_SUBST(HAVE_HTTP_AUTHSTRING) gtk_save_libs="$LIBS" LIBS="$CUPS_LIBS" AC_CHECK_FUNCS(httpGetAuthString) LIBS="$gtk_save_libs" gtk_save_cppflags="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $GTK_DEP_CFLAGS" AC_CHECK_HEADER(cairo-pdf.h,,AC_MSG_ERROR([ *** Can't find cairo-pdf.h. You must build Cairo with the pdf *** backend enabled.])) if test "$os_win32" != "yes"; then AC_CHECK_HEADER(cairo-ps.h,,AC_MSG_ERROR([ *** Can't find cairo-ps.h. You must build Cairo with the *** postscript backend enabled.])) fi CPPFLAGS="$gtk_save_cppflags" AC_ARG_ENABLE(test-print-backend, [AC_HELP_STRING([--enable-test-print-backend], [build test print backend])],, [enable_test_print_backend=no]) AM_CONDITIONAL(TEST_PRINT_BACKEND, test "x$enable_test_print_backend" != "xno") ################################################################ # Strip -export-dynamic from the link lines of various libraries ################################################################ # # pkg-config --libs gmodule includes the "export_dynamic" flag, # but this flag is only meaningful for executables. For libraries # the effect is undefined; what it causes on Linux is that the # export list from -export-symbols-regex is ignored and everything # is exported # # We are using gmodule-no-export now, but I'm leaving the stripping # code in place for now, since pango and atk still require gmodule. export SED export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` if test -n "$export_dynamic"; then GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"` GDK_PIXBUF_XLIB_DEP_LIBS=`echo $GDK_PIXBUF_XLIB_DEP_LIBS | sed -e "s/$export_dynamic//"` GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"` GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"` fi ################################################## # Checks for gtk-doc and docbook-tools ################################################## GTK_DOC_CHECK([1.8]) AC_CHECK_PROG(DB2HTML, db2html, true, false) AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML) AC_ARG_ENABLE(man, [AC_HELP_STRING([--enable-man], [regenerate man pages from Docbook [default=no]])],enable_man=yes, enable_man=no) if test "${enable_man}" != no; then dnl dnl Check for xsltproc dnl AC_PATH_PROG([XSLTPROC], [xsltproc]) if test -z "$XSLTPROC"; then enable_man=no fi dnl check for DocBook DTD and stylesheets in the local catalog. JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN], [DocBook XML DTD V4.1.2],,enable_man=no) JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl], [DocBook XSL Stylesheets],,enable_man=no) fi AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno) ################################################## # Output commands ################################################## AC_CONFIG_COMMANDS([gdk/gdkconfig.h], [ outfile=gdkconfig.h-tmp cat > $outfile <<\_______EOF /* gdkconfig.h * * This is a generated file. Please modify `configure.in' */ #ifndef GDKCONFIG_H #define GDKCONFIG_H #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ _______EOF cat >>$outfile <<_______EOF $gdk_windowing $gdk_wc _______EOF cat >>$outfile <<_______EOF #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* GDKCONFIG_H */ _______EOF if cmp -s $outfile gdk/gdkconfig.h; then AC_MSG_NOTICE([gdk/gdkconfig.h is unchanged]) rm -f $outfile else mv $outfile gdk/gdkconfig.h fi ],[ if test "x$gdktarget" = "xx11" ; then gdk_windowing=' #define GDK_WINDOWING_X11' elif test "x$gdktarget" = "xwin32" ; then gdk_windowing=' #define GDK_WINDOWING_WIN32' elif test "x$gdktarget" = "xquartz" ; then gdk_windowing=' #define GDK_WINDOWING_QUARTZ' elif test "x$gdktarget" = "xdirectfb" ; then gdk_windowing=' #define GDK_WINDOWING_DIRECTFB' fi if test x$gdk_wchar_h = xyes; then gdk_wc=' #define GDK_HAVE_WCHAR_H 1' fi if test x$gdk_wctype_h = xyes; then gdk_wc="\$gdk_wc #define GDK_HAVE_WCTYPE_H 1" fi if test x$gdk_working_wctype = xno; then gdk_wc="\$gdk_wc #define GDK_HAVE_BROKEN_WCTYPE 1" fi ]) AC_CONFIG_FILES([ config.h.win32 gtk-zip.sh Makefile gdk-pixbuf-2.0.pc gdk-2.0.pc gtk+-2.0.pc gtk+-unix-print-2.0.pc gail.pc gdk-pixbuf-2.0-uninstalled.pc gdk-2.0-uninstalled.pc gtk+-2.0-uninstalled.pc gail-uninstalled.pc m4macros/Makefile po/Makefile.in po-properties/Makefile.in demos/Makefile demos/gtk-demo/Makefile demos/gtk-demo/geninclude.pl tests/Makefile docs/Makefile docs/reference/Makefile docs/reference/gdk-pixbuf/Makefile docs/reference/gdk-pixbuf/version.xml docs/reference/gdk/Makefile docs/reference/gdk/version.xml docs/reference/gtk/Makefile docs/reference/gtk/version.xml docs/reference/libgail-util/Makefile docs/faq/Makefile docs/tools/Makefile docs/tutorial/Makefile gdk-pixbuf/Makefile gdk-pixbuf/gdk_pixbuf.rc gdk-pixbuf/gdk-pixbuf-features.h gdk-pixbuf/pixops/Makefile gdk/Makefile gdk/x11/Makefile gdk/win32/Makefile gdk/win32/rc/Makefile gdk/win32/rc/gdk.rc gdk/quartz/Makefile gdk/directfb/Makefile gtk/Makefile gtk/makefile.msc gtk/gtkversion.h gtk/gtk-win32.rc gtk/theme-bits/Makefile gtk/tests/Makefile gtk/xdgmime/Makefile modules/Makefile modules/other/Makefile modules/other/gail/Makefile modules/other/gail/libgail-util/Makefile modules/other/gail/tests/Makefile modules/engines/Makefile modules/engines/pixbuf/Makefile modules/engines/ms-windows/Makefile modules/engines/ms-windows/Theme/Makefile modules/engines/ms-windows/Theme/gtk-2.0/Makefile modules/input/Makefile modules/printbackends/Makefile modules/printbackends/cups/Makefile modules/printbackends/lpr/Makefile modules/printbackends/file/Makefile modules/printbackends/test/Makefile perf/Makefile contrib/Makefile contrib/gdk-pixbuf-xlib/Makefile contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc ]) AC_OUTPUT echo "configuration: target: $gdktarget"