X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=configure.in;h=59370a7ae95d4ba8ae19954d1d1a26ddb796197e;hb=60794564c4977132b13cc8db3248f756e1eb7310;hp=298e32c64452c45c7eb50da6e43b8ca306f96d1f;hpb=7bc2cb6e6ef4ed94a486cf1e41497ee2e46c045b;p=~andy%2Fgtk diff --git a/configure.in b/configure.in index 298e32c64..59370a7ae 100644 --- a/configure.in +++ b/configure.in @@ -1,23 +1,28 @@ # Process this file with autoconf to produce a configure script. AC_INIT(gdk/gdktypes.h) -# In the following, there are a the following variants -# of GLib cflags and libs variables # -# GLIB_CFLAGS: cflags for compiling libraries and example progs -# GLIB_LIBS: libraries for linking example programs -# GLIB_DEPLIBS: libraries for linking libraries against -# glib_cflags: cflags to store in gtk-config -# glib_libs: libs to store in gtk-config -# glib_thread_cflags: cflags to store in gtk-config for gtk-config gthread -# glib_thread_libs: libs to store in gtk-config for gtk-config gthread +# 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 + + +## We could have pkg-config uniquify the ldflags and cflags by calling +## it once with both the GLib and Pango package names, but we don't, +## someone should fix that. + # Save this value here, since automake will set cflags later cflags_set=${CFLAGS+set} dnl we to AC_DIVERT_PUSH/AC_DIVERT_POP these variable definitions so they dnl are available for $ac_help expansion (don't we all *love* autoconf?) -AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl +GLIB_AC_DIVERT_BEFORE_HELP([ # # Making releases: # GTK_MICRO_VERSION += 1; @@ -29,12 +34,12 @@ AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl # GTK_MAJOR_VERSION=1 GTK_MINOR_VERSION=3 -GTK_MICRO_VERSION=1 +GTK_MICRO_VERSION=10 GTK_INTERFACE_AGE=0 GTK_BINARY_AGE=0 GTK_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$GTK_MICRO_VERSION dnl -AC_DIVERT_POP()dnl +])dnl AC_SUBST(GTK_MAJOR_VERSION) AC_SUBST(GTK_MINOR_VERSION) @@ -53,19 +58,30 @@ AC_SUBST(LT_CURRENT) AC_SUBST(LT_REVISION) AC_SUBST(LT_AGE) +# Define a string for the earliest version that this release has +# binary compatibility with. This is used for module locations. +# +GTK_BINARY_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$LT_CURRENT +AC_SUBST(GTK_BINARY_VERSION) + # # gdk-pixbuf gets versioned separately, and for now, using standard # libtool versioning, not GTK+-style versioning # -GDK_PIXBUF_MAJOR=0 -GDK_PIXBUF_MINOR=8 -GDK_PIXBUF_MICRO=0 +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) +## Versions of dependencies +GLIB_REQUIRED_VERSION=1.3.10 +PANGO_REQUIRED_VERSION=0.20 +ATK_REQUIRED_VERSION=0.5 + # For automake. VERSION=$GTK_VERSION PACKAGE=gtk+ @@ -86,6 +102,12 @@ AM_CONFIG_HEADER(config.h) dnl Initialize libtool AM_PROG_LIBTOOL +dnl Set AS and ASFLAGS so that automake 1.5 will be happy +AS="\${CC}" +ASFLAGS="\${CFLAGS}" +AC_SUBST(AS) +AC_SUBST(ASFLAGS) + dnl Initialize maintainer mode AM_MAINTAINER_MODE @@ -93,13 +115,13 @@ AC_CANONICAL_HOST dnl figure debugging default, prior to $ac_help setup dnl -AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl +GLIB_AC_DIVERT_BEFORE_HELP([ if test `expr $GTK_MINOR_VERSION \% 2` = 1 ; then debug_default=yes else debug_default=minimum fi -AC_DIVERT_POP()dnl +])dnl dnl declare --enable-* args and collect ac_help strings AC_ARG_ENABLE(debug, [ --enable-debug=[no/minimum/yes] turn on debugging [default=$debug_default]],,enable_debug=$debug_default) @@ -107,41 +129,46 @@ AC_ARG_ENABLE(shm, [ --enable-shm support shared memory if available echo $enable_shm, enable_shm="yes") AC_ARG_ENABLE(ansi, [ --enable-ansi turn on strict ansi [default=no]], , enable_ansi=no) -AC_ARG_WITH(glib, [ --with-glib=DIR Use uninstalled copy of glib]) AC_ARG_ENABLE(xim, [ --enable-xim support XIM [default=yes]], , enable_xim="yes") AC_ARG_ENABLE(xim_inst, [ --disable-xim-inst does not use xim instantiate callback], , enable_xim_inst="maybe") +AC_ARG_ENABLE(xkb, [ --enable-xkb support XKB [default=maybe]], + , enable_xkb="maybe") AC_ARG_ENABLE(rebuilds, [ --disable-rebuilds disable all source autogeneration rules],,enable_rebuilds=yes) -AC_ARG_WITH(locale, [ --with-locale=LOCALE locale name you want to use ]) AC_ARG_WITH(xinput, [ --with-xinput=[no/gxi/xfree] support XInput ]) gdktarget=x11 gdktargetlib=libgdk-x11-1.3.la gtktargetlib=libgtk-x11-1.3.la -AC_ARG_WITH(gdktarget, [ --with-gdktarget=[x11/nanox/linux-fb] select GDK target [default=x11] ], +AC_ARG_WITH(gdktarget, [ --with-gdktarget=[x11/linux-fb] select GDK target [default=x11] ], gdktarget=$with_gdktarget) AC_SUBST(gdktarget) case $gdktarget in - x11|nanox|linux-fb) ;; - *) AC_MSG_ERROR([Invalid target for GDK: use x11, nanox or linux-fb.]);; + x11|linux-fb) ;; + *) AC_MSG_ERROR([Invalid target for GDK: use x11 or linux-fb.]);; esac +AC_ARG_ENABLE(shadowfb, [ --disable-shadowfb disable shadowfb support for linux-fb],,enable_shadowfb=yes) + +AC_ARG_ENABLE(fbmanager, [ --enable-fbmanager enable framebuffer manager support (GtkFB)],enable_fbmanager=yes,enable_fbmanager=no) + if test "x$enable_debug" = "xyes"; then test "$cflags_set" = set || CFLAGS="$CFLAGS -g" GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG" else if test "x$enable_debug" = "xno"; then - GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DGTK_NO_CHECK_CASTS" + GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS" else - GTK_DEBUG_FLAGS="-DGTK_NO_CHECK_CASTS" + GTK_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS" fi fi AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}") + # Build time sanity check... AM_SANITY_CHECK @@ -176,6 +203,19 @@ changequote([,])dnl # 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 atk >= $ATK_REQUIRED_VERSION pango >= $PANGO_REQUIRED_VERSION) + +# libtool option to control which symbols are exported +# right now, symbols starting with _ are not exported +LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"' +AC_SUBST(LIBTOOL_EXPORT_OPTIONS) + # define a MAINT-like variable REBUILD which is set if Perl # and awk are found, so autogenerated sources can be rebuilt @@ -194,7 +234,7 @@ if test "x$enable_rebuilds" = "xyes" && \ fi AC_SUBST(REBUILD) -AC_CHECK_FUNCS(lstat mkstemp sigsetjmp) +AC_CHECK_FUNCS(lstat mkstemp sigsetjmp bind_textdomain_codeset) AC_MSG_CHECKING(whether make is GNU Make) STRIP_BEGIN= @@ -212,11 +252,11 @@ AC_SUBST(STRIP_BEGIN) AC_SUBST(STRIP_END) # i18n stuff -ALL_LINGUAS="ca cs da de el es et eu fi fr ga gl he hr hu it ja ko lt nl no pl pt pt_BR ro ru sk sl sp sr sv tr uk wa zh_TW.Big5 zh_CN.GB2312" -AM_GTK_GNU_GETTEXT +ALL_LINGUAS="az ca cs da de el en_GB en@IPA es et eu fa fi fr ga gl he hr hu ia it ja ko lt nl nn no pl pt pt_BR ro ru sk sl sp sr sv tr uk vi wa zh_TW zh_CN" +AM_GLIB_GNU_GETTEXT LIBS="$LIBS $INTLLIBS" -# AM_GTK_GNU_GETTEXT above substs $DATADIRNAME +# AM_GLIB_GNU_GETTEXT above substs $DATADIRNAME # this is the directory where the *.{mo,gmo} files are installed gtklocaledir='${prefix}/${DATADIRNAME}/locale' AC_SUBST(gtklocaledir) @@ -246,20 +286,16 @@ AC_TRY_RUN([#include LIBS=$gtk_save_LIBS MATH_LIB=-lm -GTK_LIBS_EXTRA= AC_MSG_CHECKING(for the BeOS) case $host in *-*-beos*) AC_MSG_RESULT(yes) - GTK_LIBS_EXTRA="-L\$(top_builddir_full)/gdk/.libs -lgdk" MATH_LIB= ;; *) AC_MSG_RESULT(no) ;; esac -AC_SUBST(MATH_LIB) -AC_SUBST(GTK_LIBS_EXTRA) dnl NeXTStep cc seems to need this AC_MSG_CHECKING([for extra flags for POSIX compliance]) @@ -273,68 +309,17 @@ AC_TRY_COMPILE([#include ], [DIR *dir;], CFLAGS="$gtk_save_CFLAGS" AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)]))) -if test x$with_glib = xyes ; then - AC_MSG_ERROR([ -*** Directory must be specified for --with-glib]) -fi - -if test x$with_glib = x ; then - # Look for separately installed glib - - AM_PATH_GLIB_2_0(1.3.1,, - AC_MSG_ERROR([ -*** GLIB 1.3.1 or better is required. The latest version of GLIB -*** is always available from ftp://ftp.gtk.org/.]), - gobject gmodule gthread) - - # we do not want to make all gtk progs to link to thread libraries. - glib_cflags=`$GLIB_CONFIG_2_0 glib gobject gmodule --cflags` - glib_thread_cflags="$GLIB_CFLAGS" - glib_libs=`$GLIB_CONFIG_2_0 glib gobject gmodule --libs` - glib_thread_libs="$GLIB_LIBS" - GLIB_LIBS="$glib_libs" - GLIB_DEPLIBS="$glib_libs" -else - # Use uninstalled glib (assume they got the version right) - - GLIB_CONFIG_2_0=$with_glib/glib-config-2.0 - if test -x $GLIB_CONFIG_2_0 ; then - : - else - AC_MSG_ERROR([GLIB directory ($with_glib) not present or not configured]) - fi - - # For use in gtk-config - glib_cflags=`$GLIB_CONFIG_2_0 --cflags gmodule` - glib_thread_cflags=`$GLIB_CONFIG_2_0 --cflags gmodule gthread` - glib_libs=`$GLIB_CONFIG_2_0 --libs gmodule` - glib_thread_libs=`$GLIB_CONFIG_2_0 --libs gmodule gthread` - - glib_release=`$GLIB_CONFIG_2_0 --version | sed 's%\\.[[0-9]]*$%%'` - - # canonicalize relative paths - case $with_glib in - /*) - glib_dir=$with_glib - ;; - *) - glib_dir="\$(top_builddir)/$with_glib" - ;; - esac - - GLIB_CFLAGS="-I$glib_dir -I$glib_dir/gmodule" - GLIB_LIBS="$glib_dir/libglib-1.3.la $glib_dir/gmodule/libgmodule-1.3.la" - GLIB_DEPLIBS= +# +# Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working +# - AC_SUBST(GLIB_CFLAGS) - AC_SUBST(GLIB_LIBS) -fi +GLIB_PACKAGES="gobject-2.0 gmodule-2.0" -AC_SUBST(glib_cflags) -AC_SUBST(glib_libs) -AC_SUBST(glib_thread_cflags) -AC_SUBST(glib_thread_libs) -AC_SUBST(GLIB_DEPLIBS) +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/.]), + gobject gmodule gthread) AC_CHECK_HEADERS(dirent.h, AC_DEFINE(HAVE_DIRENT_H)) AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H)) @@ -344,247 +329,6 @@ AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H)) saved_cflags="$CFLAGS" saved_ldflags="$LDFLAGS" -if test "x$gdktarget" = "xx11"; then - # Find the X11 include and library directories - AC_PATH_X - AC_PATH_XTRA - - if test "x$x_includes" = "x"; then - x_includes="/usr/include" - fi - - CFLAGS="$CFLAGS $X_CFLAGS" - LDFLAGS="$LDFLAGS $X_LDFLAGS $X_LIBS" - - if test "x$no_x" = "xyes"; then - AC_MSG_ERROR([ -*** X libraries or include files not found. Check 'config.log' for -*** more details.]) - fi - - # Checks for libraries. - # Check for the X11 library - AC_CHECK_LIB(X11, XOpenDisplay, x_libs="-lX11 $X_EXTRA_LIBS", - AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]), - $X_EXTRA_LIBS) - - if test "x$enable_shm" = "xyes"; then - # Check for the Xext library (needed for XShm extention) - AC_CHECK_LIB(Xext, XShmAttach, - x_libs="-lXext $x_libs", - # On AIX, it is in XextSam instead, but we still need -lXext - AC_CHECK_LIB(XextSam, XShmAttach, - x_libs="-lXextSam -lXext $x_libs", - no_xext_lib=yes, $x_libs), - $x_libs) - fi - - # Check for shaped window extension - - AC_CHECK_LIB(Xext, XShapeCombineMask, - if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then - x_libs="-lXext $x_libs" - fi - AC_DEFINE(HAVE_SHAPE_EXT), - , - $x_libs) - - # Check for XConvertCase (X11R6 specific) - - AC_CHECK_LIB(X11, XConvertCase, - AC_DEFINE(HAVE_XCONVERTCASE), - , - $x_libs) - - # Check for XIM support. - - AC_CHECK_LIB(X11, XUnregisterIMInstantiateCallback, - : , - enable_xim_inst="no", - $x_libs) - - # On Solaris, calling XRegisterIMInstantiateCallback seems to - # cause an immediate segfault, so we disable it, unless - # the user specifically forces it to be on. - - if test x$enable_xim_inst = xmaybe ; then - case host in - *-*-solaris*) - enable_xim_inst="no" - ;; - *) - enable_xim_inst="yes" - ;; - esac - fi - - if test "x$enable_xim" = "xyes"; then - GTK_XIM_FLAGS="-DUSE_XIM" - if test "x$enable_xim_inst" = "xyes"; then - AC_DEFINE(USE_X11R6_XIM) - fi - fi - - x_cflags="$X_CFLAGS" - x_ldflags="$X_LDFLAGS $X_LIBS" - - # set up things for XInput - - if test "x$with_xinput" = "xgxi" || test "x$with_xinput" = "xyes"; then - AC_DEFINE(XINPUT_GXI) - xinput_progs=gxid - x_libs="-lXi $x_libs" - elif test "x$with_xinput" = "xxfree"; then - AC_DEFINE(XINPUT_XFREE) - x_libs="-lXi $x_libs" - else - AC_DEFINE(XINPUT_NONE) - fi - - AM_CONDITIONAL(XINPUT_GXI, test x$with_xinput = xgxi) - AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree) - - 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 - AC_MSG_CHECKING(X11/extensions/XShm.h) - if test "x$no_xext_lib" = "xyes"; then - AC_MSG_RESULT(no) - no_xshm=yes - else - if test -f "$x_includes/X11/extensions/XShm.h"; then - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_XSHM_H) - else - AC_MSG_RESULT(no) - no_xshm=yes - fi - fi - fi - - more_cflags="$x_cflags" - more_ldflags="$x_ldflags" - more_libs="$x_libs" - more_includes="$x_includes" - - # these are already defined above - #gdktargetlib = "libgdk-x11-1.3.la" - #gtktargetlib = "libgtk-x11-1.3.la" - - AM_CONDITIONAL(USE_X11, true) -else - AM_CONDITIONAL(USE_X11, false) -fi - -if test "x$gdktarget" = "xnanox"; then - AC_CHECK_LIB(nano-X, GrOpen,,AC_MSG_ERROR([nano-X libraries not found.])) - # nano-X may require additional libraries - more_cflags= - more_ldflags= - more_libs="-lnano-X" - more_includes= - - gdktargetlib="libgdk-nanox-1.3.la" - gtktargetlib="libgtk-nanox-1.3.la" - - with_xinput=no - AC_DEFINE(XINPUT_NONE) - x_cflags= - x_includes= - x_ldflags= - x_libs= - xinput_progs= - AM_CONDITIONAL(USE_NANOX, true) -else - AM_CONDITIONAL(USE_NANOX, false) -fi - -if test "x$gdktarget" = "xlinux-fb"; then - more_cflags= - more_ldflags= - more_libs= - more_includes= - - gdktargetlib="libgdk-linux-fb-1.3.la" - gtktargetlib="libgtk-linux-fb-1.3.la" - - with_xinput=no - AC_DEFINE(XINPUT_NONE) - x_cflags= - x_includes= - x_ldflags= - x_libs= - xinput_progs= - - AM_CONDITIONAL(USE_LINUX_FB, true) -else - AM_CONDITIONAL(USE_LINUX_FB, false) -fi - -# -# Check for Pango -# -AC_PATH_PROG(PANGO_CONFIG, pango-config, no) -if test x$PANGO_CONFIG = xno ; then - AC_MSG_ERROR([*** pango-config not found]) -fi - -if test "x$gdktarget" = "xx11"; then - PANGO_CFLAGS="`$PANGO_CONFIG --cflags pangox`" - PANGO_LIBS="`$PANGO_CONFIG --libs pangox`" -else - PANGO_CFLAGS="`$PANGO_CONFIG --cflags pango`" - PANGO_LIBS="`$PANGO_CONFIG --libs pango`" -fi -CFLAGS="$CFLAGS $PANGO_CFLAGS" -AC_SUBST(PANGO_LIBS) -AC_SUBST(PANGO_CFLAGS) - -AC_CHECK_LIB(pango, pango_context_new, :, AC_MSG_ERROR([ -*** Pango not found. Pango is required to build -*** GTK+. For more information see http://www.pango.org]), $PANGO_LIBS $x_ldflags $x_libs) - -CFLAGS="$saved_cflags" -LDFLAGS="$saved_ldflags" - -AC_SUBST(x_cflags) -AC_SUBST(x_includes) -AC_SUBST(x_ldflags) -AC_SUBST(x_libs) -AC_SUBST(xinput_progs) - -AC_SUBST(more_cflags) -AC_SUBST(more_includes) -AC_SUBST(more_ldflags) -AC_SUBST(more_libs) -AC_SUBST(gdktargetlib) -AC_SUBST(gtktargetlib) - - -# Check if X_LOCALE definition is necessary - -AC_MSG_CHECKING(need -DX_LOCALE) - -AC_TRY_RUN([ -#include -#include - -int -main () -{ - return setlocale (LC_ALL, "${with_locale}") == NULL; -}], -need_x_locale=no, -need_x_locale=yes, -need_x_locale=no) -AC_MSG_RESULT($need_x_locale) - -if test $need_x_locale = yes; then - GTK_LOCALE_FLAGS="-DX_LOCALE" -fi # Checks for header files. AC_HEADER_STDC @@ -596,6 +340,9 @@ AC_C_CONST AC_TYPE_SIGNAL AC_FUNC_MMAP +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 ], @@ -660,9 +407,7 @@ fi AC_MSG_RESULT($gdk_working_wctype) AC_SUBST(GDK_WLIBS) -AC_SUBST(GTK_DEBUG_FLAGS) -AC_SUBST(GTK_XIM_FLAGS) -AC_SUBST(GTK_LOCALE_FLAGS) + ################################################## # Checks for gdk-pixbuf @@ -685,23 +430,11 @@ if test x$with_modules = xno; then else AC_MSG_RESULT(yes) AC_MSG_CHECKING(whether dynamic modules work) - oLIBS="$LIBS" - oCFLAGS="$CFLAGS" - CFLAGS="$GLIB_CFLAGS" - LIBS="$GLIB_LIBS" - AC_TRY_RUN([ - #include - #include - main () - { - if (g_module_supported ()) - exit (0); - else - exit (1); - } - ], dynworks=true) - LIBS="$oLIBS" - CFLAGS="$oCFLAGS" + ## for loop is to strip newline + tmp=`pkg-config --variable=gmodule_supported gmodule-2.0` + for I in $tmp; do + dynworks=$I + done fi dnl Now we check to see if our libtool supports shared lib deps @@ -720,10 +453,6 @@ fi if $dynworks; then AC_DEFINE(USE_GMODULE) - GMODULE_LIBS="`$GLIB_CONFIG_2_0 --libs gmodule`" - GMODULE_FLAGS="`$GLIB_CONFIG_2_0 --cflags gmodule`" - AC_SUBST(GMODULE_LIBS) - AC_SUBST(GMODULE_FLAGS) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) @@ -797,15 +526,57 @@ dnl Test for libpng fi fi -deps="$LIBTIFF $LIBJPEG $LIBPNG" - AC_SUBST(LIBTIFF) AC_SUBST(LIBJPEG) AC_SUBST(LIBPNG) AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks) -AC_HEADER_STDC +# +# Allow building some or all gdk-pixbuf loaders included +# +AC_MSG_CHECKING(pixbuf loaders to build) + +AC_ARG_WITH(included_loaders, [ --with-included-loaders=LOADER1,LOADER2,... Build the specified loaders into gdk-pixbuf (only used if module loading disabled)]) + +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,jpeg,pnm,ras,tiff,xpm,tga" +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" | grep "\(^\|\,\)$loader\(\$\|\,\)" > /dev/null; then + : + else + AC_MSG_ERROR([the specified loader $loader does not exist]) + fi + + INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libpixbufloader-static-$loader.la" + INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader" +done +IFS="$gtk_save_ifs" +AC_SUBST(INCLUDED_LOADER_OBJ) +AC_SUBST(INCLUDED_LOADER_DEFINE) + AC_HEADER_DIRENT AC_HEADER_SYS_WAIT @@ -815,15 +586,20 @@ AM_CONDITIONAL(HAVE_TIFF, test "x$LIBTIFF" != x) AM_CONDITIONAL(HAVE_PNG, test "x$LIBPNG" != x) AM_CONDITIONAL(HAVE_JPEG, test "x$LIBJPEG" != x) -GDK_PIXBUF_LIBDIR='-L${libdir}' -GDK_PIXBUF_INCLUDEDIR="-I${includedir} $GTK_CFLAGS" -GDK_PIXBUF_LIBS="$GLIB_LIBS -lgdk_pixbuf $deps $GTK_LIBS" -AC_SUBST(STATIC_LIB_DEPS) -STATIC_LIB_DEPS="$deps" - -AC_SUBST(GDK_PIXBUF_LIBDIR) -AC_SUBST(GDK_PIXBUF_INCLUDEDIR) -AC_SUBST(GDK_PIXBUF_LIBS) +if $dynworks ; then + STATIC_LIB_DEPS= + if echo "$included_loaders" | grep "\(^\|\,\)tiff\(\$\|\,\)" > /dev/null; then + STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF" + fi + if echo "$included_loaders" | grep "\(^\|\,\)jpeg\(\$\|\,\)" > /dev/null; then + STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG" + fi + if echo "$included_loaders" | grep "\(^\|\,\)png\(\$\|\,\)" > /dev/null; then + STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG" + fi +else + STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG" +fi # 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 @@ -852,6 +628,8 @@ if test $use_x86_asm = yes; 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) @@ -864,19 +642,384 @@ fi AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes) +GDK_PIXBUF_PACKAGES="gmodule-2.0 gobject-2.0" +GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_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 $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS" + +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) + + +######################################## +# Windowing system checks +######################################## + +GDK_EXTRA_LIBS=$GDK_WLIBS +GDK_EXTRA_CFLAGS= + +if test "x$gdktarget" = "xx11"; then + # We start off with the libraries from Pango + + ## be sure we also have Pango built with xft support + if $PKG_CONFIG --exists pangoxft ; then + PANGO_PACKAGES="pangox pangoxft" + have_xft=true + AC_DEFINE(HAVE_XFT) + else + PANGO_PACKAGES="pangox" + have_xft=false + fi + + AM_CONDITIONAL(HAVE_XFT, $have_xft) + + x_libs="`$PKG_CONFIG --libs $PANGO_PACKAGES`" + x_cflags="`$PKG_CONFIG --cflags $PANGO_PACKAGES`" + x_extra_libs= + + ## Strip the .la 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 + + # Sanity check for the X11 library + AC_CHECK_LIB(X11, XOpenDisplay, :, + AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]), + $x_libs_for_checks) + + if test "x$enable_shm" = "xyes"; then + # Check for the Xext library (needed for XShm extention) + AC_CHECK_LIB(Xext, XShmAttach, + if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then + x_extra_libs="-lXext" + fi, + # On AIX, it is in XextSam instead, but we still need -lXext + AC_CHECK_LIB(XextSam, XShmAttach, + if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then + x_extra_libs="-lXextSam -lXext" + else + x_extra_libs="-lXextSam" + fi, , $x_libs_for_checks), + $x_libs_for_checks) + fi + + GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags" + # Don't ever pull in the pangoxft libraries for gdk-pixbuf-x11 + GDK_PIXBUF_XLIB_EXTRA_LIBS="$x_extra_libs `$PKG_CONFIG --libs pangox`" + + # Check for shaped window extension + + AC_CHECK_LIB(Xext, XShapeCombineMask, + if test -z "`echo $x_extra_libs $x_libs | grep "\-lXext" 2> /dev/null`"; then + x_extra_libs="-lXext $x_extra_libs" + fi + AC_DEFINE(HAVE_SHAPE_EXT), + , + $x_libs_for_checks) + + # Check for XConvertCase (X11R6 specific) + + AC_CHECK_LIB(X11, XConvertCase, + AC_DEFINE(HAVE_XCONVERTCASE), + , + $x_libs_for_checks) + + # Check for XIM support. + + AC_CHECK_LIB(X11, XUnregisterIMInstantiateCallback, + : , + enable_xim_inst="no", + $x_libs_for_checks) + + # On Solaris, calling XRegisterIMInstantiateCallback seems to + # cause an immediate segfault, so we disable it, unless + # the user specifically forces it to be on. + + if test x$enable_xim_inst = xmaybe ; then + case host in + *-*-solaris*) + enable_xim_inst="no" + ;; + *) + enable_xim_inst="yes" + ;; + esac + fi + + if test "x$enable_xim" = "xyes"; then + GTK_XIM_FLAGS="-DUSE_XIM" + if test "x$enable_xim_inst" = "xyes"; then + AC_DEFINE(USE_X11R6_XIM) + fi + fi + + # 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_LIB(X11, XkbQueryExtension, + AC_DEFINE(HAVE_XKB), + , + $x_libs_for_checks) + else + AC_MSG_WARN(XKB support explicitly disabled) + fi + + x_cflags="$X_CFLAGS" + x_ldflags="$X_LDFLAGS" + + # set up things for XInput + + if test "x$with_xinput" = "xgxi" || test "x$with_xinput" = "xyes"; then + AC_DEFINE(XINPUT_GXI) + xinput_progs=gxid + x_extra_libs="-lXi $x_extra_libs" + elif test "x$with_xinput" = "xxfree"; then + AC_DEFINE(XINPUT_XFREE) + x_extra_libs="-lXi $x_extra_libs" + else + AC_DEFINE(XINPUT_NONE) + fi + + AM_CONDITIONAL(XINPUT_GXI, test x$with_xinput = xgxi) + AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree) + + 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 + + GDK_EXTRA_CFLAGS= + GDK_EXTRA_LIBS="$x_extra_libs" + + # these are already defined above + #gdktargetlib = "libgdk-x11-1.3.la" + #gtktargetlib = "libgtk-x11-1.3.la" + + AM_CONDITIONAL(USE_X11, true) +else + AM_CONDITIONAL(USE_X11, false) +fi + +AC_SUBST(xinput_progs) + +GDK_PIXBUF_XLIB_PACKAGES= +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 $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" = "xlinux-fb"; then + gdktargetlib="libgdk-linux-fb-1.3.la" + gtktargetlib="libgtk-linux-fb-1.3.la" + + AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no) + if test x$FREETYPE_CONFIG = xno ; then + AC_MSG_ERROR([*** freetype-config not found]) + fi + + FREETYPE_CFLAGS="`$FREETYPE_CONFIG --cflags`" + FREETYPE_LIBS="`$FREETYPE_CONFIG --libs`" + CFLAGS="$CFLAGS $FREETYPE_CFLAGS" + + if test x$enable_shadowfb = xyes ; then + AC_DEFINE(ENABLE_SHADOW_FB) + fi + + if test x$enable_fbmanager = xyes ; then + AC_DEFINE(ENABLE_FB_MANAGER) + AM_CONDITIONAL(ENABLE_FB_MANAGER, true) + else + AM_CONDITIONAL(ENABLE_FB_MANAGER, false) + fi + + GDK_EXTRA_CFLAGS="$FREETYPE_CFLAGS" + GDK_EXTRA_LIBS="$FREETYPE_LIBS $GDK_EXTRA_LIBS" + + AM_CONDITIONAL(USE_LINUX_FB, true) +else + AM_CONDITIONAL(USE_LINUX_FB, false) + AM_CONDITIONAL(ENABLE_FB_MANAGER, false) +fi + +AC_SUBST(gdktargetlib) +AC_SUBST(gtktargetlib) + +# +# Pick correct Pango packages to use +# + +if test "x$gdktarget" = "xx11"; then + if $have_xft = true ; then + PANGO_PACKAGES="pangox pangoxft" + else + PANGO_PACKAGES=pangox + fi +elif test "x$gdktarget" = "xlinux-fb"; then + PANGO_PACKAGES=pangoft2 +else + PANGO_PACKAGES=pango +fi + +# Check for Pango flags + +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 is required to build GTK+. +*** See http://www.pango.org for Pango information. +*** For the framebuffer target, you will need to build +*** Pango with freetype support. +]) +fi + +CFLAGS="$CFLAGS $PANGO_CFLAGS" + +if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then + : +else + AC_CHECK_LIB(pango, 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]), $PANGO_LIBS) +fi + +CFLAGS="$saved_cflags" +LDFLAGS="$saved_ldflags" + +GDK_PACKAGES=$PANGO_PACKAGES +GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS" +GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS" + +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 + AC_CHECK_LIB(atk, atk_object_get_type, : , AC_MSG_ERROR([ + *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required + *** to build GTK+]), $ATK_LIBS $GLIB_LIBS) +fi + +GTK_PACKAGES=atk +GTK_EXTRA_LIBS= +GTK_EXTRA_CFLAGS= +GTK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GTK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS" +GTK_DEP_CFLAGS="`$PKG_CONFIG --cflags $GTK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS $GTK_EXTRA_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(GTK_DEBUG_FLAGS) +AC_SUBST(GTK_XIM_FLAGS) + ################################################## # Checks for gtk-doc and docbook-tools ################################################## +AC_ARG_WITH(html-dir, [ --with-html-dir=PATH path to installed docs ]) + +if test "x$with_html_dir" = "x" ; then + HTML_DIR='${datadir}/gtk-doc/html' +else + HTML_DIR=$with_html_dir +fi + +AC_SUBST(HTML_DIR) + AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false) -AM_CONDITIONAL(HAVE_GTK_DOC, $GTKDOC) -AC_SUBST(HAVE_GTK_DOC) + +gtk_doc_min_version=0.6 +if $GTKDOC ; then + gtk_doc_version=`gtkdoc-mkdb --version` + AC_MSG_CHECKING([gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version]) + if perl <= "$gtk_doc_min_version") ? 0 : 1); +EOF + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + GTKDOC=false + fi +fi AC_CHECK_PROG(DB2HTML, db2html, true, false) AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML) dnl Let people disable the gtk-doc stuff. -AC_ARG_ENABLE(gtk-doc, [ --enable-gtk-doc Use gtk-doc to build documentation [default=auto]], enable_gtk_doc="$enableval", enable_gtk_doc=auto) +AC_ARG_ENABLE(gtk-doc, [ --enable-gtk-doc Use gtk-doc to build documentation [default=auto]], enable_gtk_doc="$enableval", enable_gtk_doc=auto) if test x$enable_gtk_doc = xauto ; then if test x$GTKDOC = xtrue ; then @@ -890,9 +1033,6 @@ dnl NOTE: We need to use a separate automake conditional for this dnl to make this work with the tarballs. AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes) -GDK_PIXBUF_DIR=`(cd $srcdir; pwd)` -AC_SUBST(GDK_PIXBUF_DIR) - ################################################## # Output commands @@ -956,13 +1096,9 @@ _______EOF fi ;; esac ],[ -# Currently we always use X11 on those systems where we run configure... if test "x$gdktarget" = "xx11" ; then gdk_windowing=' #define GDK_WINDOWING_X11' -elif test "x$gdktarget" = "xnanox" ; then - gdk_windowing=' -#define GDK_WINDOWING_NANOX' elif test "x$gdktarget" = "xlinux-fb" ; then gdk_windowing=' #define GDK_WINDOWING_FB @@ -989,17 +1125,28 @@ AC_PATH_PROG(SGML2HTML, sgml2html, no) AM_CONDITIONAL(HAVE_SGML2HTML, ! test x$SGML2HTML = xno) AC_OUTPUT([ +config.h.win32 gtk+.spec -docs/gtk-config.1 Makefile -gtk-config-2.0 +gdk-pixbuf-2.0.pc +gdk-2.0.pc +gtk+-2.0.pc +gdk-pixbuf-2.0-uninstalled.pc +gdk-2.0-uninstalled.pc +gtk+-2.0-uninstalled.pc +m4macros/Makefile po/Makefile.in build/Makefile build/win32/Makefile +build/win32/dirent/Makefile demos/Makefile +demos/gtk-demo/Makefile +tests/Makefile docs/Makefile docs/reference/Makefile docs/reference/gdk-pixbuf/Makefile +docs/reference/gdk/Makefile +docs/reference/gtk/Makefile docs/faq/Makefile docs/tutorial/Makefile gdk-pixbuf/Makefile @@ -1012,11 +1159,18 @@ gdk/makefile.mingw gdk/x11/Makefile gdk/win32/Makefile gdk/win32/makefile.mingw -gdk/nanox/Makefile +gdk/win32/rc/Makefile +gdk/win32/rc/gdk.rc gdk/linux-fb/Makefile gtk/Makefile gtk/makefile.mingw -gtk/gtkcompat.h +gtk/makefile.msc +gtk/gtkversion.h +gtk/gtk-win32.rc +gtk/stock-icons/Makefile modules/Makefile -modules/linux-fb/Makefile -], [chmod +x gtk-config-2.0]) +modules/input/Makefile +contrib/Makefile +contrib/gdk-pixbuf-xlib/Makefile +contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc +])