-# configure.in --- xscreensaver, Copyright (c) 1997-2002 Jamie Zawinski.
+# configure.in --- xscreensaver, Copyright (c) 1997-2003 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]* )
])
+###############################################################################
+#
+# 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 >/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.
# 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])
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
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
if test "$have_kerberos5" = yes ; then
# from Matt Knopp <mhat@infocalypse.netlag.com>
# (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 <tjs@psaux.com> for FreeBSD 4.2
PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err"
else
if test -n "$ac_gtk_version_string" ; then
gtk2_halfassed="$ac_gtk_version_string"
+ gtk2_halfassed_lib="$req"
fi
fi
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
- parse_gtk_version_string
-
- if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
- then
- have_gtk=no
- have_gnome=no
- jurassic_gtk=yes
+ 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 test "$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 >/dev/null 2>&1 | \
+ [if ( $gnome_config --cflags $gnome_config_libs 2>&1 | \
grep Unknown >/dev/null ) ; then
ac_cv_gnome_config_cflags=''
else
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 >/dev/null 2>&1 |
+ [if ( $gnome_config --libs $gnome_config_libs 2>&1 |
grep Unknown >/dev/null ) ; then
ac_cv_gnome_config_libs=''
else
GNOME_DATADIR=""
- if test "$have_gnome" = yes -a "$have_gtk" = yes; then
+ 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`
# 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
#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.
if test "$have_gle" = yes; then
GLE_EXES='$(GLE_EXES)'
- GLE_MEN='$(GLE_MEN)'
GLE_KLUDGE="${tab} "
else
GLE_KLUDGE="-${tab} "
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)
fi
if test "$gtk2_halfassed" != no ; then
- warnL "GTK version $gtk2_halfassed was found, but some other supporting"
- warn2 "libraries were not, so GTK 2.x can't be used. Please"
- warn2 "read the above output and the \`config.log' file to see"
- warn2 "which libraries are missing."
+ 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/>.'
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'
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
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,"