-# 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"
+ CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs"
+ # supposedly gcc 3.4 will have "-Wdeclaration-after-statement"
+ # and then perhaps we can do without -pedantic?
else
case "$host" in
*-irix5* |*-irix6.[0-3]* )
# gcc. Old gcc doesn't support -std, and new gcc doesn't support -lang.
# so much for compatibility!)
#
+# UPDATE: apparently there is NO WAY to tell gcc 3.2.2 to require that
+# declarations preceed statements, without resorting to "-pedantic".
+# This means that there is no way to get gcc3 to issue warnings that
+# ensure that your code complies with the ANSI/ISO C89 standard, without
+# also drowning in totally useless warnings. Thank you master may I
+# have another.
+#
+# So, I give up, let's just use -pedantic.
+#
###############################################################################
AC_DEFUN(AC_GCC_ACCEPTS_STD,
])
+###############################################################################
+#
+# 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.
#
if test -f /usr/dt/include/Xm/Xm.h ; then
X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
- X_LIBS="$X_LIBS -L/usr/dt/lib -R:/usr/dt/lib"
+ MOTIF_LIBS="$MOTIF_LIBS -L/usr/dt/lib -R/usr/dt/lib"
# Some versions of Slowlaris Motif require -lgen. But not all. Why?
- AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"])
+ AC_CHECK_LIB(gen, regcmp, [MOTIF_LIBS="$MOTIF_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
# first check for dpms.h
AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes],,
- [#include <X11/Xlib.h>])
+ [#include <X11/Xlib.h>
+ #include <X11/Xmd.h>])
# if that succeeded, then check for the DPMS code in the libraries
if test "$have_dpms" = yes; then
fi
+###############################################################################
+#
+# Check for XF86MiscSetGrabKeysState (but only bother if we are already
+# using other XF86 stuff.)
+#
+###############################################################################
+
+have_xf86miscsetgrabkeysstate=no
+if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then
+ AC_CHECK_X_LIB(Xxf86misc, XF86MiscSetGrabKeysState,
+ [have_xf86miscsetgrabkeysstate=yes],
+ [true], -lXext -lX11)
+ if test "$have_xf86miscsetgrabkeysstate" = yes ; then
+ SAVER_LIBS="$SAVER_LIBS -lXxf86misc"
+ AC_DEFINE(HAVE_XF86MISCSETGRABKEYSSTATE)
+ fi
+fi
+
+
###############################################################################
#
# Check for HP XHPDisableReset and XHPEnableReset.
#
###############################################################################
+AC_MSG_CHECKING([for XHPDisableReset in X11/XHPlib.h])
AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
[AC_DEFINE(HAVE_XHPDISABLERESET)
- SAVER_LIBS="-lXhp11 $SAVER_LIBS"])
+ SAVER_LIBS="-lXhp11 $SAVER_LIBS"
+ AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT(no)])
###############################################################################
fi
if test "$ac_cv_kerberos5" = yes ; then
- have_kerberos=yes
- have_kerberos5=yes
- AC_DEFINE(HAVE_KERBEROS)
- AC_DEFINE(HAVE_KERBEROS5)
+
+ # Andrew Snare <ajs@pigpond.com> wrote:
+ #
+ # You were assuming that if kerberosV (krb5) was found, then kerberosIV
+ # (krb4) was also available. This turns out not to be the case with
+ # mit-krb-1.2.7; apparently backwards-compatibility with KerberosIV
+ # is optional.
+ #
+ # So, disable kerberosV support if libkrb4 can't be found.
+ # This is not the best solution, but it makes the compile not fail.
+ #
+ AC_CHECK_X_LIB(krb4, krb_get_tf_realm,
+ [have_kerberos=yes],
+ [have_kerberos=no])
+ if test "$have_kerberos" = yes ; then
+ have_kerberos5=yes
+ AC_DEFINE(HAVE_KERBEROS)
+ AC_DEFINE(HAVE_KERBEROS5)
+ else
+ have_kerberos5=no
+ AC_MSG_WARN([Cannot find compat lib (libkrb4) needed to use Kerberos 5])
+ fi
+
fi
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"
--with-motif Use the Motif toolkit for the user interface
(not recommended.)],
- [with_motif="$withval"; with_motif_req="$withval"],[with_motif=yes])
+ [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no])
HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
# the new way...
# run pkg-config based tests.
#
-
pkgs=''
pkg_check_version() {
if test "$ok" = yes ; then
fi
}
+ AC_MSG_RESULT(checking for GTK 2.x with pkg-config based tests...)
+
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
+ 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
+# pkg_check_version gdk_pixbuf 0.1
have_gtk="$ok"
if test "$have_gtk" = yes; then
#
# we don't have GTK 2. Let's look for GTK 1.
#
+ AC_MSG_RESULT(checking for GTK 1.x with pkg-config based tests...)
+
pkgs=''
ok="yes"
- pkg_check_version gtk+ 1.2 ; ac_gtk_version_string="$vers"
- pkg_check_version glib 1.0
+ pkg_check_version gtk+ 1.2 ; ac_gtk_version_string="$vers"
+ pkg_check_version glib 1.0
+ pkg_check_version gdk_pixbuf 0.1
have_gtk="$ok"
# Now check for Gnome...
# the old way...
# run {gnome,gtk}-config based tests.
#
+ AC_MSG_RESULT(checking for GTK 1.x with 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)
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
# M4 sucks!!
changequote(X,Y)
mglv=`echo "$mglv" | sed -n \
- 's/^configure: *\([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
#
# we don't have Gtk; or we have Gtk 2.x. Check for pixbuf 2.x.
#
+ AC_MSG_RESULT(checking for gdk_pixbuf 2.x with gtk-config based tests...)
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"
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
+ AC_MSG_RESULT(checking for gdk_pixbuf 1.x with gtk-config based tests...)
+ pkg_check_version gdk_pixbuf 0.0
+ pkg_check_version gdk_pixbuf_xlib 0.0
have_gdk_pixbuf="$ok"
fi
fi
# pkg-config exists, but doesn't know about pixbuf.
#
+ AC_MSG_RESULT(checking for gdk_pixbuf with gdk-pixbuf-config based tests...)
+
# if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
# look in /foo/bin/ for for gdk-pixbuf-config.
#
with_jpeg_req=unspecified
jpeg_halfassed=no
AC_ARG_WITH(jpeg,
-[ --with-jpeg Include support for the JPEG library in some demos.
- (If this library is available, webcollage will be a
- . lot faster.)],
+[ --with-jpeg Include support for the JPEG library.],
[with_jpeg="$withval"; with_jpeg_req="$withval"],
[with_jpeg=yes])
fi
-PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
+PREFERRED_DEMO_PROGRAM=''
ALL_DEMO_PROGRAMS=
if test "$have_motif" = yes; then
PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
warn "Checking of /proc/interrupts was requested, but it's bogus."
fi
+motif_warn2() {
+ warn2 'Though the Motif front-end to xscreensaver is still'
+ warn2 'maintained, it is no longer being updated with new'
+ warn2 'features: all new development on the xscreensaver-demo'
+ warn2 'program is happening in the GTK version, and not in the'
+ warn2 'Motif version. It is recommended that you build against'
+ warn2 'GTK instead of Motif. See <http://www.gtk.org/>.'
+}
if test "$have_motif" = no -a "$have_gtk" = no; then
- warnL "Neither Motif nor Gtk seem to be available;"
- warn2 "the \`xscreensaver-demo' program requires one of these."
+
+ if test "$with_motif" = yes; then
+ warnL "Neither the GTK nor Motif libraries were found; the"
+ warn2 "\`xscreensaver-demo' program requires one of these."
+ echo ''
+ motif_warn2
+ else
+ warnL "The GTK libraries do not seem to be available; the"
+ warn2 "\`xscreensaver-demo' program requires them."
+ echo ''
+ warn2 'You can use Motif or Lesstif instead of GTK (use the'
+ warn2 "\`--with-motif' option) but that is NOT recommended."
+ motif_warn2
+ fi
elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
warnL "Use of Motif was requested, but it wasn't found;"
warnL "Gtk was found on this system, but it is version $v;"
fi
- warn2 "Gtk $pref_gtk or newer is required. Motif will be used instead."
+ warn2 "Gtk $pref_gtk or newer is required."
elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
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
fi
-if test "$with_gnome_req" = yes -a "$have_gnome" = no ; then
+if test "$with_gnome_req" = yes -a "$have_gnome" = no \
+ -a "$have_gtk2" = no; then
+ # don't issue this warning if we have GTK2 -- in that case, the
+ # Gnome-specific code isn't needed.
warn 'Use of the Gnome Control Panel was requested, but the necessary'
warn2 'headers and/or libraries were not found.'
fi
if test "$have_motif" = yes -a "$have_gtk" = no ; then
warn 'Motif is being used, and GTK is not.'
echo ''
- warn2 'Though the Motif front-end to xscreensaver is still'
- warn2 'maintained, it is no longer being updated with new'
- warn2 'features: all new development on the xscreensaver-demo'
- warn2 'program is happening in the GTK version, and not in the'
- warn2 'Motif version. It is recommended that you build against'
- warn2 'GTK instead of Motif. See <http://www.gtk.org/>.'
+ motif_warn2
fi
echo ''
fi
- warn2 "This means the \`webcollage' program will be much slower."
+ if test "$have_gdk_pixbuf" = no ; then
+ warn2 "This means that it won't be possible for the image-manipulating"
+ warn2 "display modes to load files from disk; and it also means that"
+ warn2 "the \`webcollage' program will be much slower."
+ else
+ warn2 "This means the \`webcollage' program will be much slower."
+ fi
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'
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 (150+ different executables) will"
+ echo " The various graphics demos (160+ different executables) will"
echo " be installed in ${HACKDIR}/."
echo ""
echo " If you would prefer the demos to be installed elsewhere,"