# 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
+
+
+## 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}
#
GTK_MAJOR_VERSION=1
GTK_MINOR_VERSION=3
-GTK_MICRO_VERSION=2
+GTK_MICRO_VERSION=4
GTK_INTERFACE_AGE=0
GTK_BINARY_AGE=0
GTK_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$GTK_MICRO_VERSION
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],
*) AC_MSG_ERROR([Invalid target for GDK: use x11, nanox or linux-fb.]);;
esac
+AC_ARG_ENABLE(shadowfb, [ --disable-shadowfb disable shadowfb support for linux-fb],,enable_shadowfb=yes)
+
if test "x$enable_debug" = "xyes"; then
test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}")
+
# Build time sanity check...
AM_SANITY_CHECK
AC_SUBST(STRIP_END)
# i18n stuff
-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 no pl pt pt_BR ro ru sk sl sp sr sv tr uk wa zh_TW zh_CN"
+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_GTK_GNU_GETTEXT
LIBS="$LIBS $INTLLIBS"
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)
+#
+# Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
+#
- 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
+GLIB_PACKAGES="gobject-2.0 gmodule-2.0"
+GLIB_REQUIRED_VERSION=1.3.4
- # 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=
+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_SUBST(GLIB_CFLAGS)
- AC_SUBST(GLIB_LIBS)
-fi
+dnl Call pkg-config again since we don't want -lgthread here
+GLIB_LIBS=`$PKG_CONFIG --libs $GLIB_PACKAGES`
+GLIB_DEPLIBS=$GLIB_LIBS
-AC_SUBST(glib_cflags)
-AC_SUBST(glib_libs)
-AC_SUBST(glib_thread_cflags)
-AC_SUBST(glib_thread_libs)
+CFLAGS="$CFLAGS $GLIB_CFLAGS"
+AC_SUBST(GLIB_CFLAGS)
+AC_SUBST(GLIB_LIBS)
AC_SUBST(GLIB_DEPLIBS)
AC_CHECK_HEADERS(dirent.h, AC_DEFINE(HAVE_DIRENT_H))
FREETYPE_CFLAGS=
have_freetype=false
AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
- if test "x$FREE_CONFIG" != "xno" ; then
+ if test "x$FREETYPE_CONFIG" != "xno" ; then
FREETYPE_CFLAGS=`freetype-config --cflags`
FREETYPE_LIBS=`freetype-config --libs`
AC_CHECK_LIB(Xft, XftFontOpen, have_xft=true, :, -lXrender -lXext $X_LIBS $FREETYPE_LIBS)
,:,-lXext $X_LIBS)
+ ## be sure we also have Pango built with xft support
+ if ! $PKG_CONFIG --exists pangoxft ; then
+ have_xft=false
+ AC_MSG_WARN([X render extension found, but Pango lacks Xft support])
+ fi
+
if $have_xft = 'true' ; then
X_LIBS="-lXft -lXrender -lXext $FREETYPE_LIBS $X_LIBS"
AC_DEFINE(HAVE_XFT)
fi
AC_SUBST(XFT_LIBS)
- AM_CONDITIONAL(HAVE_XFT, $have_xft)
+ AM_CONDITIONAL(HAVE_XFT, $have_xft)
# Check for XIM support.
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
AM_CONDITIONAL(USE_LINUX_FB, true)
else
AM_CONDITIONAL(USE_LINUX_FB, false)
fi
+AC_SUBST(ENABLE_SHADOW_FB)
AC_SUBST(FREETYPE_LIBS)
AC_SUBST(FREETYPE_CFLAGS)
#
-# Check for Pango
+# Pick correct Pango packages to use
#
-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`"
if $have_xft = true ; then
- PANGO_LIBS="$PANGO_LIBS -lpangoxft"
+ PANGO_PACKAGES="pangox pangoxft"
+ else
+ PANGO_PACKAGES=pangox
fi
elif test "x$gdktarget" = "xlinux-fb"; then
- PANGO_CFLAGS="`$PANGO_CONFIG --cflags pangoft2`"
- PANGO_LIBS="`$PANGO_CONFIG --libs pangoft2`"
+ PANGO_PACKAGES=pangoft2
else
- PANGO_CFLAGS="`$PANGO_CONFIG --cflags pango`"
- PANGO_LIBS="`$PANGO_CONFIG --libs pango`"
+ PANGO_PACKAGES=pango
fi
+
+AC_SUBST(PANGO_PACKAGES)
+
+# 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"
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
+*** Can't link to Pango. Pango is required to build
*** GTK+. For more information see http://www.pango.org]), $PANGO_LIBS $x_ldflags $x_libs)
CFLAGS="$saved_cflags"
AC_TYPE_SIGNAL
AC_FUNC_MMAP
+AC_CHECK_FUNCS(getresuid)
+AC_TYPE_UID_T
+
# Check if <sys/select.h> needs to be included for fd_set
AC_MSG_CHECKING([for fd_set])
AC_TRY_COMPILE([#include <sys/types.h>],
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)
AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
+#
+# 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)])
+
+all_loaders="png,bmp,wbmp,gif,ico,jpeg,pnm,ras,tiff,xpm"
+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
+ 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_STDC
AC_HEADER_DIRENT
AC_HEADER_SYS_WAIT
AC_SUBST(HTML_DIR)
AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false)
+
+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 <<EOF ; then
+ exit (("$gtk_doc_version" =~ /^[[0-9]]+\.[[0-9]]+$/) &&
+ ("$gtk_doc_version" >= "$gtk_doc_min_version") ? 0 : 1);
+EOF
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ GTKDOC=false
+ fi
+fi
+
AM_CONDITIONAL(HAVE_GTK_DOC, $GTKDOC)
AC_SUBST(HAVE_GTK_DOC)
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'
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
contrib/Makefile
contrib/gdk-pixbuf-xlib/Makefile
contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
-], [chmod +x gtk-config-2.0])
+])