X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=configure.in;h=dc100ebccc3c4e4a0df0ba2f12ca1cd7b5ae6903;hb=2c902d6065f9856adf31e8540a94f1e42e68e905;hp=f965a9cf5635694cd7683f9d760e3babd34faff7;hpb=cccbddbc4140cf9a06d7d95cc5c0ca36eb5d6e28;p=xscreensaver diff --git a/configure.in b/configure.in index f965a9cf..dc100ebc 100644 --- a/configure.in +++ b/configure.in @@ -1,7 +1,7 @@ -# configure.in --- xscreensaver, Copyright (c) 1997-2000 Jamie Zawinski. +# configure.in --- xscreensaver, Copyright (c) 1997-2003 Jamie Zawinski. # -AC_PREREQ(2.13) +AC_PREREQ(2.52) AC_INIT(driver/subprocs.c) AC_CONFIG_HEADER(config.h) @@ -24,7 +24,6 @@ for d in driver utils hacks hacks/glx ; do fi done - ############################################################################### # # Function to figure out how to run the compiler. @@ -66,7 +65,7 @@ AC_DEFUN(AC_PROG_CC_ANSI, if test -n "$GCC"; then AC_MSG_RESULT(Turning on gcc compiler warnings.) - CC="$CC -Wall -Wstrict-prototypes -Wnested-externs -Wno-format" + CC="$CC -Wall -Wstrict-prototypes -Wnested-externs" else case "$host" in *-irix5* |*-irix6.[0-3]* ) @@ -99,7 +98,7 @@ AC_DEFUN(AC_GCC_ACCEPTS_STD, [if test -n "$GCC"; then AC_CACHE_CHECK([whether gcc accepts -std], ac_cv_gcc_accepts_std, - [if ( gcc -E -std=c89 - &1 >/dev/null | \ + [if ( ( gcc -E -std=c89 - /dev/null ) 2>&1 | \ grep unrecognized >/dev/null ); then ac_cv_gcc_accepts_std=no else @@ -141,6 +140,38 @@ AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE, ]) +############################################################################### +# +# Function to figure out how to turn off Objective C on MacOS X. +# (We have to do this to work around an Apple-specific gcc bug.) +# +############################################################################### + +AC_DEFUN(AC_GCC_ACCEPTS_NO_CPP_PRECOMP, + [if test -n "$GCC"; then + AC_CACHE_CHECK([whether gcc accepts -no-cpp-precomp], + ac_cv_gcc_accepts_no_cpp_precomp, + [if ( ( gcc -E -no-cpp-precomp - /dev/null ) 2>&1 | \ + grep unrecognized >/dev/null ); then + ac_cv_gcc_accepts_no_cpp_precomp=no + else + ac_cv_gcc_accepts_no_cpp_precomp=yes + fi]) + ac_gcc_accepts_no_cpp_precomp="$ac_cv_gcc_accepts_no_cpp_precomp" + fi +]) + +AC_DEFUN(AC_NO_OBJECTIVE_C, + [if test -n "$GCC"; then + AC_GCC_ACCEPTS_NO_CPP_PRECOMP + if test "$ac_gcc_accepts_no_cpp_precomp" = yes ; then + AC_MSG_RESULT(Disabling Objective C extensions in ANSI C code.) + CC="$CC -no-cpp-precomp" + fi + fi +]) + + ############################################################################### # # Function to figure out how to create directory trees. @@ -153,12 +184,12 @@ AC_DEFUN(AC_PROG_INSTALL_DIRS, [ac_cv_install_d_creates_dirs=no rm -rf conftestdir if mkdir conftestdir; then - cd conftestdir >&- - ${INSTALL} -d `pwd`/dir1/dir2 >&- 2>&- + cd conftestdir 2>/dev/null + ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1 if test -d dir1/dir2/. ; then ac_cv_install_d_creates_dirs=yes fi - cd .. >&- + cd .. 2>/dev/null rm -rf conftestdir fi ]) @@ -169,12 +200,12 @@ AC_DEFUN(AC_PROG_INSTALL_DIRS, [ac_cv_mkdir_p_creates_dirs=no rm -rf conftestdir if mkdir conftestdir; then - cd conftestdir >&- - mkdir -p dir1/dir2 >&- 2>&- + cd conftestdir 2>/dev/null + mkdir -p dir1/dir2 >/dev/null 2>&1 if test -d dir1/dir2/. ; then ac_cv_mkdir_p_creates_dirs=yes fi - cd .. >&- + cd .. 2>/dev/null rm -rf conftestdir fi ]) @@ -369,17 +400,17 @@ AC_DEFUN(AC_CHECK_ICMPHDR, AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[ rm -fr conftestdir if mkdir conftestdir; then - cd conftestdir >&- + cd conftestdir 2>/dev/null # Make sure to not put "make" in the Imakefile rules, since we grep it out. cat > Imakefile <<'EOF' acfindx: @echo 'ac_x_app_defaults="${XAPPLOADDIR}"' EOF - if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then + if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then # GNU make sometimes prints "make[1]: Entering...", which'd confuse us. eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` fi - cd .. >&- + cd .. 2>/dev/null rm -fr conftestdir fi]) @@ -591,6 +622,16 @@ AC_DEFUN(AC_X_RANDOM_PATHS, # Some versions of Slowlaris Motif require -lgen. But not all. Why? AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"]) fi + + ;; + *-darwin*) + + # On MacOS X (10.x with "fink"), many things are under /sw/. + # + if test -d /sw/include ; then + X_CFLAGS="-I/sw/include $X_CFLAGS" + X_LIBS="-L/sw/lib $X_LIBS" + fi ;; esac]) @@ -610,7 +651,7 @@ AC_DEFUN(AC_CHECK_X_HEADER, [ CPPFLAGS="$CPPFLAGS -I$includedir" fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" - AC_CHECK_HEADER([$1], [$2]) + AC_CHECK_HEADER([$1],[$2],[$3],[$4]) CPPFLAGS="$ac_save_CPPFLAGS"]) # Like AC_EGREP_HEADER, but it uses the already-computed -I directories. @@ -744,6 +785,7 @@ AC_DEFUN(HANDLE_X_PATH_ARG, [ AC_CANONICAL_HOST AC_PROG_CC_ANSI AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE +AC_NO_OBJECTIVE_C AC_PROG_CPP AC_C_CONST AC_C_INLINE @@ -797,6 +839,21 @@ AC_X_RANDOM_PATHS AC_XPOINTER +############################################################################### +# +# Gettext support +# +############################################################################### + +AC_PROG_INTLTOOL +GETTEXT_PACKAGE=xscreensaver +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE") +AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE") +AC_SUBST(GETTEXT_PACKAGE) + +ALL_LINGUAS="ca da de es et fi fr hu it ja ko nl no pl pt pt_BR ru sk sv vi wa zh_CN zh_TW" +AM_GLIB_GNU_GETTEXT + ############################################################################### # @@ -805,7 +862,10 @@ AC_XPOINTER ############################################################################### have_xmu=no -AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes]) +AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes],, + [#include + #include + #include ]) if test "$have_xmu" = no ; then XMU_SRCS='$(UTILS_SRC)/xmu.c' XMU_OBJS='$(UTILS_BIN)/xmu.o' @@ -975,7 +1035,8 @@ HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER) if test "$with_sgi" = yes; then AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h, [have_sgi=yes - AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)]) + AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],, + [#include ]) elif test "$with_sgi" != no; then echo "error: must be yes or no: --with-sgi-ext=$with_sgi" @@ -998,7 +1059,8 @@ AC_ARG_WITH(mit-ext, HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER) if test "$with_mit" = yes; then - AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes]) + AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes],, + [#include ]) # Now check to see if it's really in the library; XF86Free-3.3 ships # scrnsaver.h, but doesn't include the code in libXext.a, the idiots! @@ -1053,7 +1115,8 @@ HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE) if test "$with_xidle" = yes; then AC_CHECK_X_HEADER(X11/extensions/xidle.h, [have_xidle=yes - AC_DEFINE(HAVE_XIDLE_EXTENSION)]) + AC_DEFINE(HAVE_XIDLE_EXTENSION)],, + [#include ]) elif test "$with_xidle" != no; then echo "error: must be yes or no: --with-xidle-ext=$with_xidle" exit 1 @@ -1077,7 +1140,8 @@ HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL) if test "$with_sgivc" = yes; then # first check for XSGIvc.h - AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes]) + AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],, + [#include ]) # if that succeeded, then check for the -lXsgivc if test "$have_sgivc" = yes; then @@ -1115,7 +1179,8 @@ HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS) if test "$with_dpms" = yes; then # first check for dpms.h - AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes]) + AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes],, + [#include ]) # if that succeeded, then check for the DPMS code in the libraries if test "$have_dpms" = yes; then @@ -1161,7 +1226,8 @@ HANDLE_X_PATH_ARG(with_xinerama, --with-xinerama-ext, XINERAMA) if test "$with_xinerama" = yes; then # first check for Xinerama.h - AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes]) + AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes],, + [#include ]) # if that succeeded, then check for the XINERAMA code in the libraries if test "$have_xinerama" = yes; then @@ -1208,7 +1274,8 @@ HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode) if test "$with_xf86vmode" = yes; then # first check for xf86vmode.h - AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes]) + AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],, + [#include ]) # if that succeeded, then check for the -lXxf86vm if test "$have_xf86vmode" = yes; then @@ -1251,7 +1318,8 @@ if test "$with_xf86gamma" = yes; then if test "$have_xf86vmode" = yes; then have_xf86gamma=yes else - AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes]) + AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],, + [#include ]) fi # if that succeeded, then check for the -lXxf86vm @@ -1346,8 +1414,7 @@ AC_ARG_ENABLE(locking,[ Screen locking options: --enable-locking Compile in support for locking the display. - --disable-locking Do not allow locking at all. -], + --disable-locking Do not allow locking at all.], [enable_locking="$enableval"],[enable_locking=yes]) if test "$enable_locking" = yes; then true @@ -1400,7 +1467,6 @@ fi #fi - ############################################################################### # # Check for PAM. @@ -1512,7 +1578,12 @@ if test "$enable_locking" = yes -a "$with_kerberos" = yes; then if test "$have_kerberos5" = yes ; then # from Matt Knopp # (who got it from amu@mit.edu) - PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcrypt -lcom_err" + + PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err" + + # jwz: MacOS X uses -lkrb5, but not -lcrypt + AC_CHECK_X_LIB(crypt, crypt, [PASSWD_LIBS="$PASSWD_LIBS -lcrypt"]) + elif test "$have_kerberos" = yes ; then # from Tim Showalter for FreeBSD 4.2 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err" @@ -1754,7 +1825,8 @@ with_motif_req=unspecified AC_ARG_WITH(motif,[ User interface options: - --with-motif Use the Motif toolkit for the user interface.], + --with-motif Use the Motif toolkit for the user interface + (not recommended.)], [with_motif="$withval"; with_motif_req="$withval"],[with_motif=yes]) HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif) @@ -1769,12 +1841,18 @@ if test "$with_motif" = yes; then AC_CHECK_X_HEADER(Xm/Xm.h, [have_motif=yes AC_DEFINE(HAVE_MOTIF) - MOTIF_LIBS="$MOTIF_LIBS -lXm"]) + MOTIF_LIBS="$MOTIF_LIBS -lXm"],, + [#include + #include + #include ]) fi if test "$have_motif" = yes; then - AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)]) + AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],, + [#include + #include + #include ]) fi @@ -1785,6 +1863,7 @@ fi ############################################################################### have_gtk=no +have_gtk2=no with_gtk_req=unspecified AC_ARG_WITH(gtk, [ --with-gtk Use the Gtk toolkit for the user interface.], @@ -1811,7 +1890,9 @@ fi have_gnome=no with_gnome_req=unspecified AC_ARG_WITH(gnome, -[ --with-gnome Include support for the Gnome Control Center.], +[ --with-gnome Include support for the Gnome 1.x Control Center. + (This option is not needed with GTK 2.x / Gnome 2.x.) +], [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes]) # if --with-gnome=/directory/ was specified, remember that directory so that @@ -1832,8 +1913,23 @@ if test "$with_gnome" != yes -a "$with_gnome" != no ; then exit 1 fi +parse_gtk_version_string() { + # M4 sucks!! + changequote(X,Y) + maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'` + min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'` + changequote([,]) + ac_gtk_version=`echo "$maj * 1000 + $min" | bc` + if test -z "$ac_gtk_version"; then + ac_gtk_version=unknown + ac_gtk_version_string=unknown + fi +} + jurassic_gtk=no +gtk2_halfassed=no + if test "$with_gtk" = yes; then have_gtk=no @@ -1854,115 +1950,244 @@ if test "$with_gtk" = yes; then gtk_path="$foo:$gtk_path" fi - AC_PATH_PROGS(glib_config, glib12-config glib-config,, $gtk_path) - AC_PATH_PROGS(gtk_config, gtk12-config gtk-config,, $gtk_path) + AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path) - if test "$with_gnome" = yes; then - AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path) - fi + if test -n "$pkg_config" ; then + # + # the new way... + # run pkg-config based tests. + # - if test -n "$glib_config" -a -n "$gtk_config" ; then - have_gtk=yes - if test "$with_gnome" = yes -a -n "$gnome_config" ; then - have_gnome=yes + pkgs='' + pkg_check_version() { + if test "$ok" = yes ; then + req="$1" + min="$2" + AC_MSG_CHECKING(for $req) + if $pkg_config --exists "$req" ; then + vers=`$pkg_config --modversion "$req"` + if $pkg_config --exists "$req >= $min" ; then + AC_MSG_RESULT($vers) + pkgs="$pkgs $req" + return 1 + else + AC_MSG_RESULT($vers (wanted >= $min)) + ok=no + return 0 + fi + else + AC_MSG_RESULT(no) + ok=no + return 0 + fi + fi + } + + ok="yes" + pkg_check_version gtk+-2.0 2.0.1 ; ac_gtk_version_string="$vers" + pkg_check_version gmodule-2.0 2.0.0 + pkg_check_version libxml-2.0 2.4.6 + pkg_check_version libglade-2.0 1.99.0 + have_gtk="$ok" + + if test "$have_gtk" = yes; then + have_gtk2=yes + AC_DEFINE(HAVE_GTK2) + else + if test -n "$ac_gtk_version_string" ; then + gtk2_halfassed="$ac_gtk_version_string" + gtk2_halfassed_lib="$req" + fi fi - fi - if test "$have_gtk" = yes; then - AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string, - [ac_cv_gtk_version_string=`$gtk_config --version`]) - ac_gtk_version_string=$ac_cv_gtk_version_string - # M4 sucks!! - changequote(X,Y) - maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'` - min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'` - changequote([,]) - ac_gtk_version=`echo "$maj * 1000 + $min" | bc` - if test -z "$ac_gtk_version"; then - ac_gtk_version=unknown - ac_gtk_version_string=unknown + if test "$have_gtk" = no; then + # + # we don't have GTK 2. Let's look for GTK 1. + # + pkgs='' + ok="yes" + pkg_check_version gtk+ 1.2 ; ac_gtk_version_string="$vers" + pkg_check_version glib 1.0 + have_gtk="$ok" + + # Now check for Gnome... + # + if test "$have_gtk" = yes -a "$with_gnome" = yes; then + old_pkgs="$pkgs" + ok=yes + pkg_check_version capplet 1.0 + pkg_check_version gnomeui 1.0 + pkg_check_version gdk_pixbuf 0.1 + have_gnome="$ok" + + if test "$have_gnome" = no; then + pkgs="$old_pkgs" + else + AC_DEFINE(HAVE_CRAPPLET) + fi + fi fi - if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002 - then - have_gtk=no + + if test "$have_gtk" = yes; then + parse_gtk_version_string + jurassic_gtk=no + else have_gnome=no - jurassic_gtk=yes fi - fi - if test "$have_gtk" = yes; then - AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags, - [ac_cv_gtk_config_cflags=`$gtk_config --cflags`]) - AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs, - [ac_cv_gtk_config_libs=`$gtk_config --libs`]) - fi - ac_gtk_config_cflags=$ac_cv_gtk_config_cflags - ac_gtk_config_libs=$ac_cv_gtk_config_libs + if test "$have_gtk" = yes; then + AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags, + [ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`]) + AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs, + [ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs`]) + fi + ac_gtk_config_cflags=$ac_cv_gtk_config_cflags + ac_gtk_config_libs=$ac_cv_gtk_config_libs - # Check for Gnome Capplet support. - # - if test "$have_gnome" = yes -a "$have_gtk" = yes; then - gnome_config_libs="gtk capplet gnomeui gdk_pixbuf" - AC_MSG_CHECKING(for Gnome capplet includes) - AC_CACHE_VAL(ac_cv_gnome_config_cflags, - [if ( $gnome_config --cflags $gnome_config_libs 2>&1 >/dev/null | \ - grep Unknown >/dev/null ) ; then - ac_cv_gnome_config_cflags='' - else - ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs` - fi]) - ac_gnome_config_cflags=$ac_cv_gnome_config_cflags - if test "$ac_gnome_config_cflags" = "" ; then - have_gnome=no - AC_MSG_RESULT(no) - else - AC_MSG_RESULT($ac_gnome_config_cflags) + ac_gnome_config_cflags=$ac_gtk_config_cflags + ac_gnome_config_libs=$ac_gtk_config_libs + + else + # + # the old way... + # run {gnome,gtk}-config based tests. + # + + AC_PATH_PROGS(glib_config, glib12-config glib-config,, $gtk_path) + AC_PATH_PROGS(gtk_config, gtk12-config gtk-config,, $gtk_path) + + if test "$with_gnome" = yes; then + AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path) fi - fi - if test "$have_gnome" = yes -a "$have_gtk" = yes; then - AC_MSG_CHECKING(for Gnome capplet libs) - AC_CACHE_VAL(ac_cv_gnome_config_libs, - [if ( $gnome_config --libs $gnome_config_libs 2>&1 >/dev/null | - grep Unknown >/dev/null ) ; then - ac_cv_gnome_config_libs='' - else - ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs` - fi]) - ac_gnome_config_libs=$ac_cv_gnome_config_libs - if test "$ac_gnome_config_libs" = "" ; then - have_gnome=no - AC_MSG_RESULT(no) - else - AC_MSG_RESULT($ac_gnome_config_libs) + if test -n "$glib_config" -a -n "$gtk_config" ; then + have_gtk=yes + if test "$with_gnome" = yes -a -n "$gnome_config" ; then + have_gnome=yes + fi fi - fi - GNOME_DATADIR="" - if test "$have_gnome" = yes -a "$have_gtk" = yes; then - GNOME_DATADIR=`$gnome_config --datadir` - fi + if test "$have_gtk" = yes; then + AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string, + [ac_cv_gtk_version_string=`$gtk_config --version`]) + ac_gtk_version_string=$ac_cv_gtk_version_string + parse_gtk_version_string + fi + if test "$have_gtk" = yes; then + if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002 + then + have_gtk=no + have_gnome=no + jurassic_gtk=yes + fi + fi - # If we have Gnome, then override the gtk-config values with - # the gnome-config values. - # - if test "$have_gnome" = yes -a "$have_gtk" = yes; then - ac_gtk_config_cflags=$ac_gnome_config_cflags - ac_gtk_config_libs=$ac_gnome_config_libs - AC_DEFINE(HAVE_CRAPPLET) + if test "$have_gtk" = yes; then + AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags, + [ac_cv_gtk_config_cflags=`$gtk_config --cflags`]) + AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs, + [ac_cv_gtk_config_libs=`$gtk_config --libs`]) + fi + ac_gtk_config_cflags=$ac_cv_gtk_config_cflags + ac_gtk_config_libs=$ac_cv_gtk_config_libs + + # Check for Gnome Capplet support. + # Note that this is only needed with Gnome 1.x, not Gnome 2.x. + # In a Gnome 2.x world, libcapplet will not exist. + # (In fact, this likely won't even be checked, since in a Gnome 2.x + # world, we will probably be up in the "$pkg_config" branch instead + # of here in the "$gnome_config" branch.) + # + if test "$have_gnome" = yes -a "$have_gtk" = yes; then + gnome_config_libs="gtk capplet gnomeui gdk_pixbuf" + AC_MSG_CHECKING(for Gnome capplet includes) + AC_CACHE_VAL(ac_cv_gnome_config_cflags, + [if ( $gnome_config --cflags $gnome_config_libs 2>&1 | \ + grep Unknown >/dev/null ) ; then + ac_cv_gnome_config_cflags='' + else + ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs` + fi]) + ac_gnome_config_cflags=$ac_cv_gnome_config_cflags + if test "$ac_gnome_config_cflags" = "" ; then + have_gnome=no + AC_MSG_RESULT(no) + else + AC_MSG_RESULT($ac_gnome_config_cflags) + fi + fi + + if test "$have_gnome" = yes -a "$have_gtk" = yes; then + AC_MSG_CHECKING(for Gnome capplet libs) + AC_CACHE_VAL(ac_cv_gnome_config_libs, + [if ( $gnome_config --libs $gnome_config_libs 2>&1 | + grep Unknown >/dev/null ) ; then + ac_cv_gnome_config_libs='' + else + ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs` + fi]) + ac_gnome_config_libs=$ac_cv_gnome_config_libs + if test "$ac_gnome_config_libs" = "" ; then + have_gnome=no + AC_MSG_RESULT(no) + else + AC_MSG_RESULT($ac_gnome_config_libs) + fi + fi + # If we have Gnome, then override the gtk-config values with + # the gnome-config values. + # + if test "$have_gnome" = yes -a "$have_gtk" = yes; then + ac_gtk_config_cflags=$ac_gnome_config_cflags + ac_gtk_config_libs=$ac_gnome_config_libs + AC_DEFINE(HAVE_CRAPPLET) + fi + + fi # end of {gnome,gtk}-config based tests + + if test "$have_gtk" = yes -a "$have_gtk2" = no; then # check for this function that was not in libcapplet 1.2. + # (only needed in Gnome/Gtk 1.x, not Gnome/Gtk 2.x) AC_CHECK_X_LIB(capplet, capplet_widget_changes_are_immediate, [AC_DEFINE(HAVE_CRAPPLET_IMMEDIATE)], [true], $ac_gnome_config_libs) fi + GNOME_DATADIR="" + if test "$have_gtk" = yes; then + if test -n "$pkg_config"; then + if test "$have_gtk2" = yes; then + GNOME_DATADIR=`$pkg_config --variable=prefix gtk+-2.0` + else + GNOME_DATADIR=`$pkg_config --variable=prefix gtk+` + fi + else + GNOME_DATADIR=`$gtk_config --prefix` + fi + GNOME_DATADIR="$GNOME_DATADIR/share" + fi + + # .desktop files go in different places in Gnome 1.x and Gnome 2.x... + if test "$have_gtk2" = yes; then + GNOME_PANELDIR='$(GNOME_PANELDIR2)' + else + GNOME_PANELDIR='$(GNOME_PANELDIR1)' + fi + + if test "$have_gtk" = yes; then INCLUDES="$INCLUDES $ac_gtk_config_cflags" GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs" AC_DEFINE(HAVE_GTK) + + if test "$have_gtk2" = yes; then + GTK_EXTRA_OBJS="" + else + GTK_EXTRA_OBJS="\$(GTK_EXTRA_OBJS)" + fi fi fi @@ -1970,10 +2195,11 @@ fi # Check for the Gnome Help Browser. # -if test "$have_gnome" = yes; then - AC_CHECK_PROG(have_gnome_help, gnome-help-browser, yes, no) -else - have_gnome_help=no +if test "$have_gtk" = yes; then + AC_CHECK_PROGS(have_gnome_help, yelp gnome-help-browser, no) + if test "$have_gnome_help" != no; then + have_gnome_help=yes + fi fi @@ -1988,7 +2214,8 @@ with_xml_req=unspecified xml_halfassed=no AC_ARG_WITH(xml, [ --with-xml The XML toolkit is needed for some parts of - the Gtk interface.], + the Gtk interface. Without it, the configuration + interface will be much less featureful.], [with_xml="$withval"; with_xml_req="$withval"],[with_xml=yes]) # if --with-xml=/directory/ was specified, remember that directory so that @@ -2011,6 +2238,7 @@ fi if test "$with_xml" = yes; then have_xml=no + have_old_xml=no # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then # look in /foo/bin/ for for xml-config. @@ -2029,32 +2257,99 @@ if test "$with_xml" = yes; then xml_path="$foo:$xml_path" fi - AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path) + if test -n "$pkg_config" ; then + # + # the new way... + # run pkg-config based tests. + # + pkgs="" + ok="yes" - # If we found the xml-config program, run it to get flags. - # - if test -n "$xml_config" ; then - AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags, - [ac_cv_xml_config_cflags=`$xml_config --cflags`]) - AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs, - [ac_cv_xml_config_libs=`$xml_config --libs`]) - ac_xml_config_cflags=$ac_cv_xml_config_cflags - ac_xml_config_libs=$ac_cv_xml_config_libs + # If we have Gtk 2.x, then *only* XML 2.x will work. + # If we have Gtk 1.x, or don't have Gtk at all, then + # either XML 1.x or 2.x will work. + + # First check for XML 2.x. + # + pkg_check_version libxml-2.0 2.4.6 + + # If that didn't work (we don't have XML 2.x) and we *don't* have + # Gtk 2.x, then check to see if we have XML 1.x + # + if test "$ok" = no -a "$have_gtk2" = no; then + ok=yes + pkg_check_version libxml 1.0 + fi + + have_xml="$ok" + + if test "$have_xml" = yes; then + AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags, + [ac_cv_xml_config_cflags=`$pkg_config --cflags $pkgs`]) + AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs, + [ac_cv_xml_config_libs=`$pkg_config --libs $pkgs`]) + ac_xml_config_cflags=$ac_cv_xml_config_cflags + ac_xml_config_libs=$ac_cv_xml_config_libs + fi + + else + # + # the old way... + # run {xml2,xml}-config based tests. + # + + AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path) + + # If we found the xml-config program, run it to get flags. + # + if test -n "$xml_config" ; then + AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags, + [ac_cv_xml_config_cflags=`$xml_config --cflags`]) + AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs, + [ac_cv_xml_config_libs=`$xml_config --libs`]) + ac_xml_config_cflags=$ac_cv_xml_config_cflags + ac_xml_config_libs=$ac_cv_xml_config_libs + fi + + ac_save_xml_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $ac_xml_config_cflags" + + # first try which is the new way... + # + AC_CHECK_X_HEADER(libxml/xmlIO.h, [have_xml=yes],, + [#include ]) + + # if that didn't work, then try just which is the old way... + # + if test "$have_xml" = no; then + AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes; have_old_xml=yes],, + [#include ]) + fi + + CPPFLAGS="$ac_save_xml_CPPFLAGS" fi - ac_save_xml_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $ac_xml_config_cflags" - AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes]) - CPPFLAGS="$ac_save_xml_CPPFLAGS" + + have_zlib=no + if test "$have_xml" = yes; then + # we have the XML headers; now make sure zlib is around. + # yes, it's stupid we have to do this too, but there is + # dependency screwage in Gnome. + AC_CHECK_X_LIB(z, zlibVersion, [have_zlib=yes]) + if test "$have_zlib" = no; then + xml_halfassed=yes + have_xml=no + fi + fi if test "$have_xml" = yes; then # we have the header, now check for the library have_xml=no xml_halfassed=yes - AC_CHECK_X_LIB(xml, xmlParseChunk, + AC_CHECK_X_LIB(c, xmlParseChunk, [have_xml=yes xml_halfassed=no - XML_LIBS="-lxml" + XML_LIBS="$ac_xml_config_libs" AC_DEFINE(HAVE_XML)], [true], $ac_xml_config_libs) @@ -2064,6 +2359,9 @@ if test "$with_xml" = yes; then INCLUDES="$INCLUDES $ac_xml_config_cflags" GTK_LIBS="$GTK_LIBS $ac_xml_config_libs" AC_DEFINE(HAVE_XML) + if test "$have_old_xml" = yes; then + AC_DEFINE(HAVE_OLD_XML_HEADERS) + fi fi fi @@ -2235,7 +2533,8 @@ ac_mesagl_version_string=unknown if test "$with_gl" = yes; then AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no) if test "$have_gl" = yes ; then - AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no) + AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no, + [#include ]) fi # If we have the headers, try and figure out which vendor it's from. @@ -2315,8 +2614,29 @@ if test "$with_gl" = yes; then #include #ifndef MESA_MAJOR_VERSION # include -# define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION -# define MESA_MINOR_VERSION XMESA_MINOR_VERSION +# ifdef XMESA_MAJOR_VERSION + /* Around Mesa 3.2, they took out the Mesa version number, so instead, + we have to check the XMesa version number (the number of the X protocol + support, which seems to be the same as the Mesa version number.) + */ +# define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION +# define MESA_MINOR_VERSION XMESA_MINOR_VERSION +# else + /* Oh great. Some time after 3.4, they took out the xmesa.h header file, + so we have no way of telling what version of Mesa this is at all. + So, we'll guess that the osmesa version (the "offscreen protocol") + is less than or equal to the real mesa version number. Except that + if OSmesa is 3.3, assume at least Mesa 3.4, since OSmesa was 3.3 in + Mesa 3.4. And Mesa 3.3 had xmesa.h. What a complete load of shit! + */ +# include +# define MESA_MAJOR_VERSION OSMESA_MAJOR_VERSION +# define MESA_MINOR_VERSION OSMESA_MINOR_VERSION or newer, probably? +# if OSMESA_MAJOR_VERSION == 3 && OSMESA_MINOR_VERSION == 3 +# undef MESA_MINOR_VERSION +# define MESA_MINOR_VERSION 4 or newer, probably? +# endif +# endif #endif configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION EOF @@ -2327,10 +2647,12 @@ EOF fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" - # M4 sucks!! + mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | grep configure:` + + # M4 sucks!! changequote(X,Y) - mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \ - 's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'` + mglv=`echo "$mglv" | sed -n \ + 's/^configure: *\([0-9][0-9]*\) *\([0-9].*\)$/\1.\2/p'` changequote([,]) rm -f conftest.$ac_ext @@ -2341,9 +2663,12 @@ EOF ac_mesagl_version=unknown ac_mesagl_version_string=unknown else - ac_mesagl_version_string=$mglv - maj=`echo $mglv | sed -n 's/\..*//p'` - min=`echo $mglv | sed -n 's/.*\.//p'` + ac_mesagl_version_string="$mglv" + # M4 sucks!! + changequote(X,Y) + maj=`echo "$mglv" | sed -n 's/^\([0-9][0-9]*\)\..*$/\1/p'` + min=`echo "$mglv" | sed -n 's/^.*\.\([0-9][0-9]*\).*$/\1/p'` + changequote([,]) ac_mesagl_version=`echo "$maj * 1000 + $min" | bc` if test -z "$ac_mesagl_version"; then ac_mesagl_version=unknown @@ -2388,15 +2713,20 @@ HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE) GLE_LIBS="" -if test "$with_gle" = yes; then +if test "$have_gl" = no ; then + true +elif test "$with_gle" = yes; then - AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no) + AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no, + [#include ]) if test "$have_gle3" = yes ; then have_gle=yes; else - AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no) + AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no, + [#include ]) if test "$have_gle" = yes ; then - AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no) + AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no, + [#include ]) fi fi @@ -2461,7 +2791,8 @@ fi have_xpm=no with_xpm_req=unspecified AC_ARG_WITH(xpm, -[ --with-xpm Include support for XPM files in some demos.], +[ --with-xpm Include support for XPM files in some demos. + (Not needed if Pixbuf is used.)], [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes]) HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM) @@ -2470,7 +2801,8 @@ if test "$with_xpm" = yes; then AC_CHECK_X_HEADER(X11/xpm.h, [have_xpm=yes AC_DEFINE(HAVE_XPM) - XPM_LIBS="-lXpm"]) + XPM_LIBS="-lXpm"],, + [#include ]) elif test "$with_xpm" != no; then echo "error: must be yes or no: --with-xpm=$with_xpm" exit 1 @@ -2485,7 +2817,6 @@ if test "$have_motif" = yes -a "$have_xpm" = yes ; then fi fi - ############################################################################### # # Check for -lgdk_pixbuf. @@ -2497,7 +2828,8 @@ with_gdk_pixbuf_req=unspecified AC_ARG_WITH(pixbuf, [ --with-pixbuf Include support for the GDK-Pixbuf library in some demos, which will make it possible for them to read - GIF, JPEG, and PNG files as well.], + GIF, JPEG, and PNG files as well. (The path here is + ignored if GTK 2.x is being used.)], [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"], [with_gdk_pixbuf=yes]) @@ -2521,47 +2853,136 @@ fi if test "$with_gdk_pixbuf" = yes; then have_gdk_pixbuf=no + have_gdk_pixbuf2=no - # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then - # look in /foo/bin/ for for gdk-pixbuf-config. - # - gdk_pixbuf_path="$PATH" + if test -n "$pkg_config" ; then + # + # the new way... + # run pkg-config based tests. + # + pkgs='' + ok="yes" - if test ! -z "$gtk_dir"; then - # canonicalize slashes. - foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'` - gdk_pixbuf_path="$foo:$gdk_pixbuf_path" - fi + # If we have Gtk 2.x, then *only* gdk-pixbuf 2.x will work. + # If we have Gtk 1.x, then *only* gdk-pixbuf 1.x will work. + # If we don't have Gtk at all, then either will work. - if test ! -z "$gnome_dir"; then - # canonicalize slashes. - foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'` - gdk_pixbuf_path="$foo:$gdk_pixbuf_path" - fi + if test "$have_gtk" = no -o "$have_gtk2" = yes; then + # + # we don't have Gtk; or we have Gtk 2.x. Check for pixbuf 2.x. + # + pkg_check_version gdk-pixbuf-2.0 2.0.0 + pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0 + have_gdk_pixbuf="$ok" + have_gdk_pixbuf2="$ok" + fi - AC_PATH_PROGS(gdk_pixbuf_config, gdk-pixbuf-config,, $gdk_pixbuf_path) + if test "$have_gtk" = no -o "$have_gtk2" = no; then + # + # we don't have Gtk; or we have Gtk 1.x. + # If we don't have pixbuf 2.x, then check for pixbuf 1.x. + # + if test "$have_gdk_pixbuf2" = no; then + pkgs='' + ok="yes" + pkg_check_version gdk-pixbuf 0.0 + pkg_check_version gdk-pixbuf-xlib 0.0 + have_gdk_pixbuf="$ok" + fi + fi - # If we found the gdk-pixbuf-config program, run it to get flags. - # - if test -n "$gdk_pixbuf_config" ; then - AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags, - [ac_cv_gdk_pixbuf_config_cflags=`$gdk_pixbuf_config --cflags`]) - AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs, - [ac_cv_gdk_pixbuf_config_libs=`$gdk_pixbuf_config --libs`]) + if test "$have_gdk_pixbuf" = yes; then + AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags, + [ac_cv_gdk_pixbuf_config_cflags=`$pkg_config --cflags $pkgs`]) + AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs, + [ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs`]) + fi ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs fi + + if test "$have_gdk_pixbuf" = no; then + # + # the old way... + # run gdk-pixbuf-config based tests. + # note that we can't assume that the existence of "pkg-config" means + # that we don't have to look for gdk-pixbuf-config -- in Gnome 1.4, + # pkg-config exists, but doesn't know about pixbuf. + # + + # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then + # look in /foo/bin/ for for gdk-pixbuf-config. + # + gdk_pixbuf_path="$PATH" + + if test ! -z "$gtk_dir"; then + # canonicalize slashes. + foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'` + gdk_pixbuf_path="$foo:$gdk_pixbuf_path" + fi + + if test ! -z "$gnome_dir"; then + # canonicalize slashes. + foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'` + gdk_pixbuf_path="$foo:$gdk_pixbuf_path" + fi + + AC_PATH_PROGS(gdk_pixbuf_config, gdk-pixbuf-config,, $gdk_pixbuf_path) + + # If we found the gdk-pixbuf-config program, run it to get flags. + # + if test -n "$gdk_pixbuf_config" ; then + AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags, + [ac_cv_gdk_pixbuf_config_cflags=`$gdk_pixbuf_config --cflags`]) + AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs, + [ac_cv_gdk_pixbuf_config_libs=`$gdk_pixbuf_config --libs`]) + + # note that "gdk-pixbuf-config --libs" produces a link line including + # -lgdk_pixbuf, but there's no way to get it to produce one that also + # includes -lgdk_pixbuf_xlib. Since we don't know *exactly* what the + # name of the library will be, construct it with sed... + # M4 sucks!! + changequote(X,Y) + ac_cv_gdk_pixbuf_config_libs=`echo $ac_cv_gdk_pixbuf_config_libs | \ + sed 's@ \(-lgdk_pixbuf\([-_a-zA-Z0-9.]*\)\) @ \1 -lgdk_pixbuf_xlib\2 @'` + changequote([,]) + + ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags + ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs + fi + fi + ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags" - # check for header 1... - AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes]) + if test "$have_gdk_pixbuf" = no; then + # + # we appear to have pixbuf; check for headers/libs to be sure. + # - # if that worked, check for header 2... - if test "$have_gdk_pixbuf" = yes; then have_gdk_pixbuf=no - AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h, [have_gdk_pixbuf=yes]) + + # check for header A... + AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes]) + + # if that worked, check for header B... + if test "$have_gdk_pixbuf" = yes; then + have_gdk_pixbuf=no + gdk_pixbuf_halfassed=yes + AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h, + [have_gdk_pixbuf=yes + gdk_pixbuf_halfassed=no]) + + # yay, it has a new name in Gtk 2.x... + if test "$have_gdk_pixbuf" = no; then + have_gdk_pixbuf=no + gdk_pixbuf_halfassed=yes + AC_CHECK_X_HEADER(gdk-pixbuf-xlib/gdk-pixbuf-xlib.h, + [have_gdk_pixbuf=yes + gdk_pixbuf_halfassed=no]) + fi + fi fi CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS" @@ -2570,24 +2991,26 @@ if test "$with_gdk_pixbuf" = yes; then # we have the headers, now check for the libraries have_gdk_pixbuf=no gdk_pixbuf_halfassed=yes - # library 1... - AC_CHECK_X_LIB(gdk_pixbuf, gdk_pixbuf_new_from_file, - [have_gdk_pixbuf=yes], [true], - $ac_gdk_pixbuf_config_libs) - # library 2... + + # library A... + AC_CHECK_X_LIB(c, gdk_pixbuf_new_from_file, [have_gdk_pixbuf=yes],, + $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm) + # library B... if test "$have_gdk_pixbuf" = yes; then - AC_CHECK_X_LIB(gdk_pixbuf_xlib, gdk_pixbuf_xlib_init, + have_gdk_pixbuf=no + AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init, [have_gdk_pixbuf=yes - gdk_pixbuf_halfassed=no], - [true], - $ac_gdk_pixbuf_config_libs) + gdk_pixbuf_halfassed=no],, + $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm) fi fi if test "$have_gdk_pixbuf" = yes; then INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags" - XPM_LIBS="$ac_gdk_pixbuf_config_libs -lgdk_pixbuf -lgdk_pixbuf_xlib" + XPM_LIBS="$ac_gdk_pixbuf_config_libs" AC_DEFINE(HAVE_GDK_PIXBUF) + else + have_gdk_pixbuf2=no fi fi @@ -2602,9 +3025,9 @@ have_jpeg=no with_jpeg_req=unspecified jpeg_halfassed=no AC_ARG_WITH(jpeg, -[ --with-jpeg Include support for the JPEG library in some demos, - which will make it possible for them to read JPEG - files as well.], +[ --with-jpeg Include support for the JPEG library in some demos. + (If this library is available, webcollage will be a + . lot faster.)], [with_jpeg="$withval"; with_jpeg_req="$withval"], [with_jpeg=yes]) @@ -2650,7 +3073,8 @@ HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM) if test "$with_xshm" = yes; then # first check for Xshm.h. - AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes]) + AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],, + [#include ]) # if that succeeded, then check for sys/ipc.h. if test "$have_xshm" = yes; then @@ -2708,7 +3132,8 @@ HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER) if test "$with_xdbe" = yes; then - AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes]) + AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],, + [#include ]) if test "$have_xdbe" = yes; then AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION) fi @@ -2740,7 +3165,8 @@ HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay) if test "$with_readdisplay" = yes; then AC_CHECK_X_HEADER(X11/extensions/readdisplay.h, - AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION)) + AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),, + [#include ]) elif test "$with_readdisplay" != no; then echo "error: must be yes or no: --with-readdisplay=$with_readdisplay" exit 1 @@ -2946,7 +3372,6 @@ fi if test "$have_gle" = yes; then GLE_EXES='$(GLE_EXES)' - GLE_MEN='$(GLE_MEN)' GLE_KLUDGE="${tab} " else GLE_KLUDGE="-${tab} " @@ -2981,22 +3406,80 @@ fi -# After computing $HACK_CONF_DIR, make sure $GTK_ICONDIR has a value +# After computing $HACK_CONF_DIR, make sure $GLADE_DATADIR has a value # so that we know where to install the Gtk pixmaps. # +# It should usually be "/usr/share/pixmaps/", but we can't just use +# "$(prefix)/share/pixmaps" because that would usually result in +# "/usr/X11R6/share/pixmaps/", which is wrong. It needs to be the +# Gnome/Gtk prefix, not the overall prefix. +# if test -n "$GNOME_DATADIR" ; then - GTK_ICONDIR='$(GNOME_DATADIR)/pixmaps' + GLADE_DATADIR='$(GNOME_DATADIR)/xscreensaver' elif test "$have_gtk" = yes; then - # should this be "$(prefix)/share/pixmaps"? But /usr/X11R6/share/ is wrong... - GTK_ICONDIR='/usr/share/pixmaps' + if test -n "$pkg_config"; then + if test "$have_gtk2" = yes; then + GLADE_DATADIR=`$pkg_config --variable=prefix gtk+-2.0` + else + GLADE_DATADIR=`$pkg_config --variable=prefix gtk+` + fi + else + GLADE_DATADIR=`$gtk_config --prefix` + fi + GLADE_DATADIR="$GLADE_DATADIR/share/xscreensaver" else - GTK_ICONDIR='' + GLADE_DATADIR='' fi +# Set PO_DATADIR to something sensible. +# +AC_MSG_CHECKING([for locale directory]) +if test -n "$GNOME_DATADIR" ; then + PO_DATADIR="$GNOME_DATADIR" +elif test "$have_gtk" = yes; then + if test -n "$pkg_config"; then + if test "$have_gtk2" = yes; then + PO_DATADIR=`$pkg_config --variable=prefix gtk+-2.0` + else + PO_DATADIR=`$pkg_config --variable=prefix gtk+` + fi + else + PO_DATADIR=`$gtk_config --prefix` + fi + PO_DATADIR="$PO_DATADIR/share" +fi + +if test -z "$PO_DATADIR" ; then + # + # #### Total fucking kludge -- + # Map /build/prefix/usr/X11R6/share/ to /build/prefix/usr/share/ + # but of course we need to expand all the nested variables to do that... + # + dd=$datadir + eval dd=${dd} + eval dd=${dd} + eval dd=${dd} + eval dd=${dd} + eval dd=${dd} + PO_DATADIR=`echo $dd | sed 's@/X11R6/@/@'` +fi + +AC_MSG_RESULT($PO_DATADIR/locale) + + # canonicalize slashes. HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'` +# gcc 3.0 likes to issue this warning for every file: +# +# cc1: warning: changing search order for system directory "/usr/local/include" +# cc1: warning: as it has already been specified as a non-system directory +# +# Yay. We can only avoid that by deleting "-I${prefix}/include" from the list. +# Which *should* be totally redundant, and thus an ok thing to delete? +# +INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'` ############################################################################### @@ -3042,14 +3525,16 @@ AC_SUBST(GL_UTIL_EXES) AC_SUBST(GL_MEN) AC_SUBST(GL_KLUDGE) AC_SUBST(GLE_EXES) -AC_SUBST(GLE_MEN) AC_SUBST(GLE_KLUDGE) AC_SUBST(GNOMEHELP_Y) AC_SUBST(GNOMEHELP_N) AC_SUBST(HACKDIR) AC_SUBST(GNOME_DATADIR) -AC_SUBST(GTK_ICONDIR) +AC_SUBST(GLADE_DATADIR) +AC_SUBST(PO_DATADIR) +AC_SUBST(GNOME_PANELDIR) AC_SUBST(HACK_CONF_DIR) +AC_SUBST(GTK_EXTRA_OBJS) APPDEFAULTS=$ac_x_app_defaults AC_SUBST(APPDEFAULTS) @@ -3064,7 +3549,9 @@ AC_OUTPUT(Makefile driver/Makefile hacks/Makefile hacks/glx/Makefile - driver/XScreenSaver.ad) + po/Makefile.in + driver/XScreenSaver.ad + driver/xscreensaver.kss) ############################################################################### # @@ -3187,9 +3674,19 @@ elif test "$jurassic_gtk" = yes ; then warn2 "Gtk $pref_gtk or newer is required. Motif will be used instead." elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then - warnL "Use of Gtk was requested, but it wasn't found;" - warn2 "Motif will be used instead." + warnL "Use of Gtk was requested, but it wasn't found." + if test "$have_motif" = yes; then + warn2 "Motif will be used instead." + fi +fi +if test "$gtk2_halfassed" != no ; then + warnL "GTK version $gtk2_halfassed was found, but at least one supporting" + warn2 "library ($gtk2_halfassed_lib) was not, so GTK 2.x can't be used." + v="$ac_gtk_version_string" + warn2 "GTK $v is also installed, so it will be used instead." + warn2 "Please read the above output and the \`config.log' file" + warn2 "for more details." fi @@ -3208,9 +3705,16 @@ if test "$have_gtk" = yes ; then fi if test "$xml_halfassed" = yes ; then + + if test "$have_zlib" = yes ; then + which="XML libraries" + else + which="\`zlib' library" + fi + echo '' warn2 'More specifically, we found the headers, but not the' - warn2 'libraries; so either XML is half-installed on this' + warn2 "$which; so either XML is half-installed on this" warn2 "system, or something else went wrong. The \`config.log'" warn2 'file might contain some clues.' fi @@ -3222,6 +3726,12 @@ if test "$have_gtk" = yes ; then fi fi +if test "$have_gtk" = yes -a "$have_gdk_pixbuf" = no ; then + warn "GTK is being used, but the GDK-Pixbuf library and/or" + warn2 "headers were not found. That can't be good. Please" + warn2 "install the GDK-Pixbuf development kit and re-configure." +fi + if test "$have_motif" = yes -a "$have_lesstif" = yes ; then preferred_lesstif=0.92 @@ -3261,9 +3771,10 @@ if test "$with_gdk_pixbuf_req" = yes -a "$have_gdk_pixbuf" = no; then warnL 'Use of GDK-Pixbuf was requested, but it was not found.' fi -if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no; then +if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no || \ + test "$gdk_pixbuf_halfassed" = yes; then - if test "$with_xpm_req" = yes ; then + if test "$with_xpm_req" = yes -o "$have_xpm" = yes ; then true elif test "$with_xpm_req" = no ; then warnL 'The XPM library is not being used.' @@ -3290,8 +3801,7 @@ if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no; then echo '' warn2 'Some of the demos will not be as colorful as they' warn2 'could be. You should consider installing Pixbuf or' - warn2 'XPM and re-running configure. (Remember to delete' - warn2 'the config.cache file first.) The Pixbuf library is' + warn2 'XPM and re-running configure. The Pixbuf library is' warn2 'a part of GNOME. The XPM library comes with most' warn2 'X11 installations; you can also find it at the X11' warn2 'archive sites, such as .' @@ -3333,13 +3843,14 @@ if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then warn2 "Make sure you are using version $preferred_mesagl or newer." elif test \! "$ac_mesagl_version" -gt 2006; then - warnL "MesaGL version $mgv is being used. MesaGL 2.6 and earlier" - warn2 "have a security bug. It is strongly recommended that you" - warn2 "upgrade to at least version $preferred_mesagl." + warnL "MesaGL version number is $mgv --" + warn2 "MesaGL 2.6 and earlier have a security bug. It is strongly" + warn2 "recommended that you upgrade to at least version $preferred_mesagl." elif test \! "$ac_mesagl_version" -gt 3003; then - warnL "MesaGL version $mgv is being used. That version has some" - warn2 "bugs; it is recommended that you upgrade to $pgl or newer." + warnL "MesaGL version number is $mgv --" + warn2 "MesaGL 3.3 and earlier have some bugs; it is recommended" + warn2 "that you upgrade to $pgl or newer." fi fi @@ -3363,8 +3874,7 @@ if test "$have_gl" = no ; then echo '' warn2 'Those demos which use 3D will not be built or installed.' warn2 'You might want to consider installing OpenGL and' - warn2 're-running configure. (Remember to delete the' - warn2 "config.cache file first.) If your vendor doesn't ship" + warn2 "re-running configure. If your vendor doesn't ship" warn2 'their own implementation of OpenGL, you can get a free' warn2 'version at . For general OpenGL' warn2 'info, see .' @@ -3373,6 +3883,11 @@ fi if test "$have_gl" = yes -a "$have_gle" = no ; then + + # nobody cares about this; don't print the warning unless it was + # requested and not found, or halfway-found. + if test "$with_gle_req" = yes -o "$gle_halfassed" = yes ; then + if test "$with_gle_req" = yes ; then noteL 'Use of the GLE (GL Extrusion) library was requested, but' warn2 'it was not found (though the OpenGL library was found, and' @@ -3396,11 +3911,11 @@ if test "$have_gl" = yes -a "$have_gle" = no ; then echo '' warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)' warn2 'will not be built or installed. You might want to consider' - warn2 'installing GLE and re-running configure. (Remember to delete' - warn2 'the config.cache file first.) You can find the GLE library' - warn2 'at . For general OpenGL info,' - warn2 'see .' + warn2 'installing GLE and re-running configure. You can find the' + warn2 'GLE library at . For general' + warn2 'OpenGL info, see .' + fi fi @@ -3474,7 +3989,7 @@ do_dir_warning=no # M4 sucks!! changequote(X,Y) -rpmv=`(rpm -qv xscreensaver) 2>&- | \ +rpmv=`(rpm -qv xscreensaver) 2>/dev/null | \ sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'` changequote([,]) @@ -3516,7 +4031,7 @@ if test "$do_dir_warning" = yes; then echo ' "xscreensaver-demo", and "xscreensaver-command" executables' echo " will be installed in ${bindir}/." echo "" - echo " The various graphics demos (140+ different executables) will" + echo " The various graphics demos (150+ different executables) will" echo " be installed in ${HACKDIR}/." echo "" echo " If you would prefer the demos to be installed elsewhere,"