-# configure.in --- xscreensaver, Copyright (c) 1997-2000 Jamie Zawinski.
+# configure.in --- xscreensaver, Copyright (c) 1997-2002 Jamie Zawinski.
#
AC_PREREQ(2.52)
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]* )
AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE")
AC_SUBST(GETTEXT_PACKAGE)
-# #### no sign of en_GB
-#ALL_LINGUAS="ca de en_GB et fr it ko pl sv da es fi hu ja no pt pt_BR ru wa"
-ALL_LINGUAS="ca de et fr it ko pl sv da es fi hu ja no pt pt_BR ru wa"
+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
jurassic_gtk=no
+gtk2_halfassed=no
+
if test "$with_gtk" = yes; then
have_gtk=no
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
if test "$have_gtk" = no; then
# Now check for Gnome...
#
- if test "$have_gtk" = yes; then
+ if test "$have_gtk" = yes -a "$with_gnome" = yes; then
old_pkgs="$pkgs"
ok=yes
pkg_check_version capplet 1.0
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"
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)
GNOME_DATADIR=""
- if test "$have_gnome" = yes -a "$have_gtk" = yes; then
- if test -n "$gnome_config"; then
- GNOME_DATADIR=`$gnome_config --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
- #### is this right?
- GNOME_DATADIR=`$pkg_config --variable=prefix gtk+`
- GNOME_DATADIR="$GNOME_DATADIR/share"
+ 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...
# 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
#
pkgs=""
ok="yes"
- pkg_check_version xml2 1.0
- if test "$ok" = no; then
+ # 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 xml 1.0
+ pkg_check_version libxml 1.0
fi
have_xml="$ok"
else
#
# the old way...
- # run {gnome,gtk}-config based tests.
+ # run {xml2,xml}-config based tests.
#
AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path)
# 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="$ac_xml_config_libs"
#include <GL/gl.h>
#ifndef MESA_MAJOR_VERSION
# include <GL/xmesa.h>
-# 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 <GL/osmesa.h>
+# 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
# M4 sucks!!
changequote(X,Y)
mglv=`echo "$mglv" | sed -n \
- 's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
+ 's/^configure: *\([0-9][0-9]*\) \([0-9].*\)$/\1.\2/p'`
changequote([,])
rm -f conftest.$ac_ext
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
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,
[#include <GL/gl.h>])
fi
fi
-
###############################################################################
#
# Check for -lgdk_pixbuf.
#
pkgs=''
ok="yes"
- 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"
- if test "$have_gdk_pixbuf2" = no; then
+ # 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 "$have_gtk" = no -o "$have_gtk2" = yes; then
#
- # We don't have pixbuf 2.x; check for 1.x.
+ # we don't have Gtk; or we have Gtk 2.x. Check for pixbuf 2.x.
#
- pkgs=''
- ok="yes"
- pkg_check_version gdk-pixbuf 0.0
- pkg_check_version gdk-pixbuf-xlib 0.0
+ 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
+
+ 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 test "$have_gdk_pixbuf" = yes; then
ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
fi
+
if test "$have_gdk_pixbuf" = no; then
#
# the old way...
have_gdk_pixbuf=no
- # check for header 1...
+ # check for header A...
AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
- # if that worked, check for header 2...
+ # if that worked, check for header B...
if test "$have_gdk_pixbuf" = yes; then
have_gdk_pixbuf=no
gdk_pixbuf_halfassed=yes
[have_gdk_pixbuf=yes
gdk_pixbuf_halfassed=no])
- # yay, it has a new name in GTK2...
+ # 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
have_gdk_pixbuf=no
gdk_pixbuf_halfassed=yes
- # library 1...
+ # 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 2...
+ # library B...
if test "$have_gdk_pixbuf" = yes; then
have_gdk_pixbuf=no
AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init,
if test "$have_gle" = yes; then
GLE_EXES='$(GLE_EXES)'
- GLE_MEN='$(GLE_MEN)'
GLE_KLUDGE="${tab} "
else
GLE_KLUDGE="-${tab} "
# 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
GLADE_DATADIR='$(GNOME_DATADIR)/xscreensaver'
elif test "$have_gtk" = yes; then
- # should this be "$(prefix)/share/pixmaps"? But /usr/X11R6/share/ is wrong...
- GLADE_DATADIR='/usr/share/xscreensaver'
+ 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
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;'`
###############################################################################
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(GLADE_DATADIR)
+AC_SUBST(PO_DATADIR)
AC_SUBST(GNOME_PANELDIR)
AC_SUBST(HACK_CONF_DIR)
AC_SUBST(GTK_EXTRA_OBJS)
hacks/Makefile
hacks/glx/Makefile
po/Makefile.in
- driver/XScreenSaver.ad)
+ driver/XScreenSaver.ad
+ driver/xscreensaver.kss)
###############################################################################
#
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
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
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 <http://sunsite.unc.edu/>.'
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
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 <http://www.mesa3d.org/>. For general OpenGL'
warn2 'info, see <http://www.opengl.org/>.'
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 <http://www.linas.org/gle/>. For general OpenGL info,'
- warn2 'see <http://www.opengl.org/>.'
+ warn2 'installing GLE and re-running configure. You can find the'
+ warn2 'GLE library at <http://www.linas.org/gle/>. For general'
+ warn2 'OpenGL info, see <http://www.opengl.org/>.'
fi
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,"