-# configure.in --- xscreensaver, Copyright (c) 1997-2000 Jamie Zawinski.
+# configure.in --- xscreensaver, Copyright (c) 1997-2005 Jamie Zawinski.
#
AC_PREREQ(2.52)
echo "current directory: `pwd`"
echo "command line was: $0 $@"
+###############################################################################
+#
+# Autoheader stuff
+#
+###############################################################################
+
+AH_TOP([
+/* config.h.in --- xscreensaver, Copyright (c) 1998-2000 Jamie Zawinski.
+ *
+ * The best way to set these parameters is by running the included `configure'
+ * script. That examines your system, and generates `config.h' from
+ * `config.h.in'.
+ *
+ * If something goes very wrong, you can edit `config.h' directly, but beware
+ * that your changes will be lost if you ever run `configure' again.
+ */
+])
+
+AH_TEMPLATE([HAVE_READ_DISPLAY_EXTENSION],
+ [Define this if you have the XReadDisplay extension (I think
+ this is an SGI-only thing; it's in
+ <X11/extensions/readdisplay.h>.) A few of the screenhacks will
+ take advantage of this if it's available.])
+
+AH_TEMPLATE([HAVE_XHPDISABLERESET],
+ [Define this if you have the XHPDisableReset function (an HP only
+ thing which allows the Ctrl-Sh-Reset key sequence to be
+ temporarily disabled.)])
+
+AH_TEMPLATE([HAVE_XIDLE_EXTENSION],
+ [Define this if you have the XIDLE extension installed. If you
+ have the XIDLE extension, this is recommended. (You have this
+ extension if the file /usr/include/X11/extensions/xidle.h
+ exists.) Turning on this flag lets XScreenSaver work better with
+ servers which support this extension; but it will still work
+ with servers which do not suport it, so it's a good idea to
+ compile in support for it if you can.])
+
+AH_TEMPLATE([HAVE_MIT_SAVER_EXTENSION],
+ [Define this if you have the MIT-SCREEN-SAVER extension
+ installed. See the caveats about this extension, above.
+ (It's available if /usr/include/X11/extensions/scrnsaver.h
+ exists.)])
+
+AH_TEMPLATE([HAVE_SGI_SAVER_EXTENSION],
+ [Define this if you have the SGI SCREEN_SAVER extension. This is
+ standard on Irix systems, and not available elsewhere.])
+
+AH_TEMPLATE([HAVE_SGI_VC_EXTENSION],
+ [Define this if you have the SGI-VIDEO-CONTROL extension. This
+ is standard on Irix systems, and not available elsewhere.])
+
+AH_TEMPLATE([HAVE_DPMS_EXTENSION],
+ [Define this if you have the XDPMS extension. This is standard
+ on sufficiently-recent XFree86 systems, and possibly elsewhere.
+ (It's available if the file /usr/include/X11/extensions/dpms.h
+ exists.)])
+
+AH_TEMPLATE([HAVE_XF86VMODE],
+ [Define this if you have the functions XF86VidModeGetModeLine()
+ and XF86VidModeGetViewPort(), in support of virtual desktops
+ where the X server's root window is bigger than the actual
+ screen. This is an XFree86 thing, and probably doesn't exist
+ elsewhere. (It's available if the file
+ /usr/include/X11/extensions/xf86vmode.h exists.)])
+
+AH_TEMPLATE([HAVE_XF86VMODE_GAMMA],
+ [Define this if you have the functions XF86VidModeGetGamma() and
+ XF86VidModeSetGamma(), which allow clients to change the gamma
+ response of the monitor. This is an XFree86 4.0.x thing, and
+ probably doesn't exist elsewhere. (It's available if the file
+ /usr/include/X11/extensions/xf86vmode.h exists and has stuff about
+ gamma in it.)])
+
+AH_TEMPLATE([HAVE_XF86VMODE_GAMMA_RAMP],
+ [Define this if you have the functions XF86VidModeGetGammaRamp()
+ and XF86VidModeSetGammaRamp(), which provide finer-grained
+ control than XF86VidMode[GS]etGamma(). These appeared in
+ XFree86 4.1.0.])
+
+AH_TEMPLATE([HAVE_XINERAMA],
+ [Define this if you have the Xinerama extension. This is
+ standard on sufficiently-recent XFree86 systems, and possibly
+ elsewhere. (It's available if the file
+ /usr/include/X11/extensions/Xinerama.h exists.)])
+
+AH_TEMPLATE([HAVE_XF86MISCSETGRABKEYSSTATE],
+ [Define this if you have the XF86MiscSetGrabKeysState function
+ (which allows the Ctrl-Alt-KP_star and Ctrl-Alt-KP_slash key
+ sequences to be temporarily disabled. Sadly, it doesn't affect
+ Ctrl-Alt-BS or Ctrl-Alt-F1.)])
+
+AH_TEMPLATE([HAVE_RANDR],
+ [Define this if you have the Resize and Rotate extension.
+ This is standard on sufficiently-recent XFree86 systems, and
+ possibly elsewhere. (It's available if the file
+ /usr/include/X11/extensions/Xrandr.h exists.)])
+
+AH_TEMPLATE([HAVE_PROC_INTERRUPTS],
+ [Define this if you have a Linux-like /proc/interrupts file which
+ can be examined to determine when keyboard activity has
+ occurred.])
+
+AH_TEMPLATE([HAVE_MOTIF],[Define this if you have Motif.])
+
+AH_TEMPLATE([HAVE_XMCOMBOBOX],
+ [Define this if you have the XmComboBox Motif widget (Motif 2.0.)])
+
+AH_TEMPLATE([HAVE_GTK],[Define this if you have Gtk (any version.)])
+AH_TEMPLATE([HAVE_GTK2],[Define this if you have Gtk 2.x.])
+
+AH_TEMPLATE([HAVE_CRAPPLET],
+ [Define this if you have Gnome and want to build support for the
+ xscreensaver control panel in the Gnome Control Center
+ (gnomecc). (This is needed only with Gtk 1.x.)])
+
+AH_TEMPLATE([HAVE_CRAPPLET_IMMEDIATE],
+ [Define this if HAVE_CRAPPLET is defined, and the function
+ capplet_widget_changes_are_immediate() is available.])
+
+AH_TEMPLATE([HAVE_XML],[Define this if you have the XML library.])
+
+AH_TEMPLATE([HAVE_OLD_XML_HEADERS],
+ [Define this if you have the XML library headers in their old,
+ non-namespaced location (you lack the gnome-xml/libxml symlink)])
+
+AH_TEMPLATE([HAVE_XPM],
+ [Define this if you have the XPM library installed. Some of the
+ demos can make use of this if it is available.])
+
+AH_TEMPLATE([HAVE_GDK_PIXBUF],
+ [Define this if you have the GDK_Pixbuf library installed. Some
+ of the demos can make use of this if it is available.])
+
+AH_TEMPLATE([HAVE_JPEGLIB],
+ [Define this if you have the Independent JPEG Group's JPEG
+ library installed. Some of the demos can make use of this if it
+ is available.])
+
+AH_TEMPLATE([HAVE_XMU],
+ [Define this if you have the Xmu library. This is standard part
+ of X, and if your vendor doesn't ship it, you should report that
+ as a bug.])
+
+AH_TEMPLATE([HAVE_GL],
+ [Define this if you have OpenGL. Some of the demos require it,
+ so if you don't have it, then those particular demos won't be
+ built. (This won't affect the screen saver as a whole.)])
+
+AH_TEMPLATE([HAVE_MESA_GL],
+ [Define this if you have OpenGL, but it's the MesaGL variant.
+ (The libraries have different names.) (HAVE_GL should be defined
+ too.)])
+
+AH_TEMPLATE([HAVE_GLBINDTEXTURE],
+ [Define this if your version of OpenGL has the glBindTexture()
+ routine. This is the case for OpenGL 1.1, but not for OpenGL
+ 1.0.])
+
+AH_TEMPLATE([HAVE_GLE],
+ [Define this if you have the -lgle and -lmatrix libraries (GL
+ extrusion.)])
+
+AH_TEMPLATE([HAVE_GLE3],[Define this if you have the -lgle from GLE version 3])
+
+AH_TEMPLATE([HAVE_XSHM_EXTENSION],
+ [Define this if you have the X Shared Memory Extension.])
+
+AH_TEMPLATE([HAVE_DOUBLE_BUFFER_EXTENSION],
+ [Define this if you have the X Double Buffer Extension.])
+
+AH_TEMPLATE([FORTUNE_PROGRAM],
+ [Some screenhacks like to run an external program to generate
+ random pieces of text; set this to the one you like. Note that
+ this is just the default; X resources can be used to override
+ it.])
+
+AH_TEMPLATE([PASSWD_HELPER_PROGRAM],
+ [Set the name of the password helper program, if any])
+
+AH_TEMPLATE([NO_LOCKING],
+ [Define this to remove the option of locking the screen at all.])
+
+AH_TEMPLATE([HAVE_KERBEROS],
+ [Define this if you want to use Kerberos authentication to
+ lock/unlock the screen instead of your local password. This
+ currently uses Kerberos V4, but a V5 server with V4
+ compatibility will work. WARNING: DO NOT USE AFS string-to-key
+ passwords with this option. This option currently *only* works
+ with standard Kerberos des_string_to_key. If your password is
+ an AFS password and not a kerberos password, it will not
+ authenticate properly. See the comments in driver/kpasswd.c for
+ more information if you need it.])
+
+AH_TEMPLATE([HAVE_KERBEROS5],
+ [Define this if you have Kerberos 5, meaning we need to use the
+ Kerberos 4 compatibility layer.])
+
+AH_TEMPLATE([HAVE_PAM],
+ [Define this if you want to use PAM (Pluggable Authentication
+ Modules) to lock/unlock the screen, instead of standard
+ /etc/passwd authentication.])
+
+AH_TEMPLATE([PAM_SERVICE_NAME],
+ [If PAM is being used, this is the name of the PAM service that
+ xscreensaver will authenticate as. The default is
+ "xscreensaver", which means that the PAM library will look for
+ an "xscreensaver" line in /etc/pam.conf, or (on recent Linux
+ systems) will look for a file called /etc/pam.d/xscreensaver.
+ Some systems might already have a PAM installation that is
+ configured for xlock, so setting this to "xlock" would also work
+ in that case.])
+
+AH_TEMPLATE([PAM_STRERROR_TWO_ARGS],
+ [Define if you have PAM and pam_strerror() requires two
+ arguments.])
+
+AH_TEMPLATE([HAVE_SHADOW_PASSWD],
+ [Define this if your system uses 'shadow' passwords, that is, the
+ passwords live in /etc/shadow instead of /etc/passwd, and one
+ reads them with getspnam() instead of getpwnam(). (Note that
+ SCO systems do some random other thing; others might as well.
+ See the ifdefs in driver/passwd-pwent.c if you're having trouble
+ related to reading passwords.)])
+
+AH_TEMPLATE([HAVE_ENHANCED_PASSWD],
+ [Define this if your system is Digital or SCO Unix with so-called
+ ``Enhanced Security'', that is, the passwords live in
+ /tcb/files/auth/<x>/<xyz> instead of in /etc/passwd, and one
+ reads them with getprpwnam() instead of getpwnam().])
+
+AH_TEMPLATE([HAVE_ADJUNCT_PASSWD],
+ [Define this if your system is Solaris with ``adjunct'' passwords
+ (this is the version where one gets at the passwords with
+ getpwanam() instead of getpwnam().) I haven't tested this one,
+ let me know if it works.])
+
+AH_TEMPLATE([HAVE_HPUX_PASSWD],
+ [Define this if you are running HPUX with so-called ``Secure
+ Passwords'' (if you have /usr/include/hpsecurity.h, you probably
+ have this.) I haven't tested this one, let me know if it works.])
+
+AH_TEMPLATE([HAVE_VT_LOCKSWITCH],
+ [Define this if you are on a system that supports the
+ VT_LOCKSWITCH and VT_UNLOCKSWITCH ioctls. If this is defined,
+ then when the screen is locked, switching to another virtual
+ terminal will also be prevented. That is, the whole console
+ will be locked, rather than just the VT on which X is running.
+ (Well, that's the theory anyway -- in practice, I haven't yet
+ figured out how to make that work.)])
+
+AH_TEMPLATE([HAVE_SYSLOG],
+ [Define this if you the openlog(), syslog(), and closelog()
+ functions. This is used for logging failed login attempts.])
+
+AH_TEMPLATE([HAVE_ICMP],
+ [Define this if you do pings with a `struct icmp' and an
+ `icmp_id' slot.])
+
+AH_TEMPLATE([HAVE_ICMPHDR],
+ [Define this if you do pings with a `struct icmphdr' and an
+ `un.echo.id' slot.])
+
+AH_TEMPLATE([HAVE_FORKPTY],
+ [Define this if you have the 'forkpty' function:
+ This allows 'phosphor' and 'apple2' to run curses-based
+ programs, or be used as terminal windows.])
+
+AH_TEMPLATE([HAVE_GETTIMEOFDAY],
+ [Define this if you have the gettimeofday function.])
+
+AH_TEMPLATE([GETTIMEOFDAY_TWO_ARGS],
+ [Define this if gettimeofday() takes two arguments.])
+
+AH_TEMPLATE([XPointer],
+ [Define this to void* if you're using X11R4 or earlier.])
# After checking to see that --srcdir is correct (which AC_INIT does)
# check for some random other files that come later in the tar file,
[AC_PROG_CC
if test -z "$GCC"; then
+ # not using GCC
AC_MSG_CHECKING(how to request ANSI compilation)
case "$host" in
*-hpux* )
AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e)
CC="$CC -qlanglvl=ansi -qhalt=e"
;;
-
*-dec-* )
AC_MSG_RESULT(DEC: adding -std1 -ieee)
CC="$CC -std1"
;;
-
*)
AC_MSG_RESULT(no idea)
;;
esac
+ else
+ # using GCC
+ case "$host" in
+ *-solaris*)
+ AC_MSG_RESULT(Solaris: adding -D__EXTENSIONS__)
+ CC="$CC -D__EXTENSIONS__"
+ ;;
+ esac
fi
+ OBJCC="$CC"
+
AC_MSG_CHECKING([whether the compiler works on ANSI C])
AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
AC_MSG_RESULT(yes),
if test -n "$GCC"; then
AC_MSG_RESULT(Turning on gcc compiler warnings.)
- CC="$CC -Wall -Wstrict-prototypes -Wnested-externs -Wno-format"
+ CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs"
+ OBJCC="$OBJCC -Wall"
+ # 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.
###############################################################################
AC_DEFUN(AC_PROG_INSTALL_DIRS,
- [AC_CACHE_CHECK([whether \"\${INSTALL} -d\" creates intermediate directories],
+ [AC_CACHE_CHECK([whether "\${INSTALL} -d" creates intermediate directories],
ac_cv_install_d_creates_dirs,
[ac_cv_install_d_creates_dirs=no
rm -rf conftestdir
])
if test "$ac_cv_install_d_creates_dirs" = no ; then
- AC_CACHE_CHECK([whether \"mkdir -p\" creates intermediate directories],
+ AC_CACHE_CHECK([whether "mkdir -p" creates intermediate directories],
ac_cv_mkdir_p_creates_dirs,
[ac_cv_mkdir_p_creates_dirs=no
rm -rf conftestdir
#
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
AC_HEADER_DIRENT
AC_GETTIMEOFDAY_ARGS
AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk)
-
AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
AC_CHECK_ICMP
AC_CHECK_ICMPHDR
AC_PATH_XTRA
if test "$have_x" != yes; then
- AC_MSG_ERROR(Couldn't find X11 headers/libs. Try \`$0 --help'.)
+ AC_MSG_ERROR(Couldn't find X11 headers/libs. Try `$0 --help'.)
fi
AC_PATH_X_APP_DEFAULTS
AC_X_RANDOM_PATHS
AC_XPOINTER
+AC_MSG_CHECKING(whether this is MacOS X)
+ ac_macosx=no
+ case "$host" in
+ *-apple-darwin* )
+ ac_macosx=yes
+ ;;
+ esac
+AC_MSG_RESULT($ac_macosx)
+
+
###############################################################################
#
AC_PROG_INTLTOOL
GETTEXT_PACKAGE=xscreensaver
-AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE")
-AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE")
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
+ [This is the name of the gettext package to use.])
+AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE",
+ [This is the same as GETTEXT_PACKAGE, but for the glade
+ generated code.])
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 nb nl no pl pt pt_BR ru sk sv vi wa zh_CN zh_TW"
AM_GLIB_GNU_GETTEXT
+MKINSTALLDIRS="$INSTALL_DIRS"
###############################################################################
have_hackdir=yes
with_hackdir_req=unspecified
AC_ARG_WITH(hackdir,[
-Installation options:
+Installation options:
--with-hackdir=DIR Where to install the hundreds of demo executables.
- Default: \`PREFIX/lib/xscreensaver/'],
+ Default: `PREFIX/libexec/xscreensaver/'],
[with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes])
if test x"$with_hackdir" = xyes; then
- HACKDIR='${exec_prefix}/lib/xscreensaver'
+ HACKDIR='${libexecdir}/xscreensaver'
elif test x"$with_hackdir" = xno; then
HACKDIR='${bindir}'
else
- # there must be a better way than this...
- if test -z "`echo $with_hackdir | sed 's@^/.*@@'`" ; then
- # absolute path
- HACKDIR=$with_hackdir
- else
- # relative path
- HACKDIR="\${exec_prefix}$with_hackdir"
- fi
+ HACKDIR=$with_hackdir
fi
# canonicalize slashes.
AC_ARG_WITH(configdir,
[ --with-configdir=DIR Where to install the data files that describe each
of the display modes to the GUI.
- Default: \`GNOMEPREFIX/control-center/screensavers/'
- or \`PREFIX/lib/xscreensaver/config/', depending on
- whether GNOME is available.
+ Default: `PREFIX/share/xscreensaver/config/'
],
[with_configdir="$withval"; with_configdir_req="$withval"],
[with_configdir=yes])
if test x"$with_configdir" = xyes; then
- # filled in later...
- HACK_CONF_DIR=''
+ HACK_CONF_DIR='${datadir}/xscreensaver/config'
elif test x"$with_configdir" = xno; then
echo "error: must be yes, or a pathname: --with-configdir=$with_configdir"
exit 1
with_sgi_req=unspecified
AC_ARG_WITH(sgi-ext,
[Except where noted, all of the --with options below can also take a
-directory argument: for example, \`--with-motif=/opt/Motif'. That would
+directory argument: for example, `--with-motif=/opt/Motif'. That would
cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
to be added to the -L list, assuming those directories exist.
fi
-###############################################################################
-#
-# Check for the MIT-SCREEN-SAVER server extension.
-#
-###############################################################################
-
-have_mit=no
-with_mit_req=unspecified
-AC_ARG_WITH(mit-ext,
-[ --with-mit-ext Include support for the MIT-SCREEN-SAVER extension.],
- [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
-
-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],,
- [#include <X11/Xlib.h>])
-
- # 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!
- #
- if test "$have_mit" = yes; then
- AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [true], [have_mit=no], -lm)
-
- if test "$have_mit" = no; then
- # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead
- # of in Xext. Thank you master, may I have another.
- AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
- [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
- [true], -lX11 -lXext -lm)
- fi
-
- if test "$have_mit" = no; then
- # Double fuck! Looks like some versions of XFree86 (whichever version
- # it is that comes with RedHat Linux 2.0 -- I can't find a version
- # number) put this garbage in Xss instead of Xext. Thank you master,
- # may I have another.
- AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
- [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
- [true], -lX11 -lXext -lm)
- fi
-
- if test "$have_mit" = yes; then
- AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
- fi
-
- fi
-
-elif test "$with_mit" != no; then
- echo "error: must be yes or no: --with-mit-ext=$with_mit"
- exit 1
-fi
-
-
###############################################################################
#
# Check for the XIDLE server extension.
# 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
# first look in -lXext
have_xinerama=no
- AC_CHECK_X_LIB(Xext, XineramaQueryExtension, [have_xinerama=yes], [true],
+ AC_CHECK_X_LIB(Xext, XineramaQueryScreens, [have_xinerama=yes], [true],
-lXext -lX11)
# if that failed, look in -lXinerama (this is where it is in XFree86 4.1.)
if test "$have_xinerama" = no; then
- AC_CHECK_X_LIB(Xinerama, XineramaQueryExtension,
- [have_xinerama=yes; SAVER_LIBS="$SAVER_LIBS -lXinerama"],
+ AC_CHECK_X_LIB(Xinerama, XineramaQueryScreens,
+ [have_xinerama=yes; XINERAMA_LIBS="-lXinerama"],
[true], -lXext -lX11)
fi
fi
HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
+VIDMODE_LIBS=""
+
if test "$with_xf86vmode" = yes; then
# first check for xf86vmode.h
if test "$have_xf86vmode" = yes; then
have_xf86vmode=no
AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
- [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
+ [have_xf86vmode=yes;
+ VIDMODE_LIBS="-lXxf86vm";
+ SAVER_LIBS="$SAVER_LIBS $VIDMODE_LIBS"],
[true], -lXext -lX11)
fi
fi
+###############################################################################
+#
+# Check for the RANDR (Resize and Rotate) server extension.
+#
+# We need this to detect when the resolution of the desktop
+# has changed out from under us (this is a newer, different
+# mechanism than the XF86VMODE virtual viewports.)
+#
+###############################################################################
+
+have_randr=no
+with_randr_req=unspecified
+AC_ARG_WITH(randr-ext,
+[ --with-randr-ext Include support for the X Resize+Rotate extension.],
+ [with_randr="$withval"; with_randr_req="$withval"],[with_randr=yes])
+
+HANDLE_X_PATH_ARG(with_randr, --with-randr-ext, RANDR)
+
+if test "$with_randr" = yes; then
+
+ # first check for Randr.h
+ AC_CHECK_X_HEADER(X11/extensions/Xrandr.h, [have_randr=yes],,
+ [#include <X11/Xlib.h>])
+
+ # if that succeeded, then check for the XRR code in the libraries
+ if test "$have_randr" = yes; then
+
+ # RANDR probably needs -lXrender
+ xrender_libs=
+ AC_CHECK_X_LIB(Xrender, XRenderSetSubpixelOrder,
+ [xrender_libs="-lXrender"], [true], -lXext -lX11)
+
+ # first look for RANDR in -lXext
+ have_randr=no
+ AC_CHECK_X_LIB(Xext, XRRGetScreenInfo,
+ [have_randr=yes; SAVER_LIBS="$SAVER_LIBS $xrender_libs"],
+ [true], $xrender_libs -lXext -lX11)
+
+ # if that failed, look in -lXrandr
+ if test "$have_randr" = no; then
+ AC_CHECK_X_LIB(Xrandr, XRRGetScreenInfo,
+ [have_randr=yes; SAVER_LIBS="$SAVER_LIBS -lXrandr $xrender_libs"],
+ [true], $xrender_libs -lXext -lX11)
+ fi
+ fi
+
+ # if that succeeded, then we've really got it.
+ if test "$have_randr" = yes; then
+ AC_DEFINE(HAVE_RANDR)
+ fi
+
+elif test "$with_randr" != no; then
+ echo "error: must be yes or no: --with-randr-ext=$with_randr"
+ exit 1
+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)])
###############################################################################
AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
ac_cv_have_proc_interrupts,
[ac_cv_have_proc_interrupts=no
- if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
+ if grep 'keyboard\|i8042' /proc/interrupts >/dev/null 2>&1 ; then
ac_cv_have_proc_interrupts=yes
fi
])
#
###############################################################################
-AC_ARG_ENABLE(locking,[
-Screen locking options:
-
+AC_ARG_ENABLE(locking,[Screen locking options:
--enable-locking Compile in support for locking the display.
--disable-locking Do not allow locking at all.],
[enable_locking="$enableval"],[enable_locking=yes])
exit 1
fi
+# We can't lock on MacOS X, so don't even bother compiling in support for it.
+#
+if test "$ac_macosx" = yes; then
+ if test "$enable_locking" = yes; then
+ AC_MSG_RESULT(locking disabled: it doesn't work on MacOS X)
+ enable_locking=no
+ AC_DEFINE(NO_LOCKING)
+ fi
+fi
###############################################################################
[ --with-pam Include support for PAM (Pluggable Auth Modules.)],
[with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
+AC_ARG_WITH([pam_service_name],
+ AC_HELP_STRING([--with-pam-service-name=NAME],
+ [NAME is the name of the PAM service that
+ xscreensaver will authenticate as.]),
+ [pam_service_name="$withval"],[pam_service_name="xscreensaver"])
+
HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
if test "$enable_locking" = yes -a "$with_pam" = yes; then
if test "$ac_cv_pam" = yes ; then
have_pam=yes
AC_DEFINE(HAVE_PAM)
+ AC_DEFINE_UNQUOTED(PAM_SERVICE_NAME,"$pam_service_name")
+
PASSWD_LIBS="${PASSWD_LIBS} -lpam"
# libpam typically requires dlopen and dlsym. On FreeBSD,
# those are in libc. On Linux and Solaris, they're in libdl.
AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
+ # On Linux, sigtimedwait() is in libc; on Solaris, it's in librt.
+ have_timedwait=no
+ AC_CHECK_LIB(c, sigtimedwait, [have_timedwait=yes])
+ if test "$have_timedwait" = no ; then
+ AC_CHECK_LIB(rt, sigtimedwait, [PASSWD_LIBS="${PASSWD_LIBS} -lrt"])
+ fi
+
AC_MSG_CHECKING(how to call pam_strerror)
AC_CACHE_VAL(ac_cv_pam_strerror_args,
[AC_TRY_COMPILE([#include <stdio.h>
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"
###############################################################################
#
-# Check for -lXm.
+# Check for external password helper
+# On SuSE, instead of having xscreensaver be a setuid program, they
+# fork an external program that takes the password on stdin, and
+# returns true if that password is a valid one. Then only that
+# smaller program needs to be setuid.
+#
+# (Note that this external program is not a GUI: the GUI is still
+# all in xscreensaver itself; the external program just does auth.)
#
###############################################################################
-have_motif=no
-with_motif_req=unspecified
-AC_ARG_WITH(motif,[
-User interface options:
+have_passwd_helper=no
+with_passwd_helper_req=unspecified
- --with-motif Use the Motif toolkit for the user interface
- (not recommended.)],
- [with_motif="$withval"; with_motif_req="$withval"],[with_motif=yes])
+AC_ARG_WITH(passwd-helper,
+[ --with-passwd-helper Include support for an external password
+ verification helper program.],
+ [with_passwd_helper="$withval"; with_passwd_helper_req="$withval"],[with_passwd_helper=no])
+# no HANDLE_X_PATH_ARG for this one
-HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
+if test "$enable_locking" = no ; then
+ with_passwd_helper_req=no
+ with_passwd_helper=no
+fi
-if test "$with_motif" != yes -a "$with_motif" != no ; then
- echo "error: must be yes or no: --with-motif=$with_motif"
- exit 1
+case "$with_passwd_helper" in
+ ""|no) : ;;
+ /*)
+ AC_DEFINE_UNQUOTED(PASSWD_HELPER_PROGRAM, "$with_passwd_helper")
+ have_passwd_helper=yes;;
+ *)
+ echo "error: --with-passwd-helper needs full pathname of helper (not '$with_passwd_helper')." >&2
+ exit 1
+esac
+
+
+###############################################################################
+#
+# Check for a login manager for a "New Login" button on the lock dialog.
+# Usually this will be "/usr/bin/gdmflexiserver".
+#
+###############################################################################
+
+have_login_manager=no
+with_login_manager_req=unspecified
+default_login_manager='gdmflexiserver -l'
+
+AC_ARG_WITH(login-manager,
+[ --with-login-manager Put a "New Login" button on the unlock dialog that
+ runs a login manager such as gdmflexiserver.],
+ [with_login_manager="$withval"; with_login_manager_req="$withval"],
+ [with_login_manager=no])
+# no HANDLE_X_PATH_ARG for this one
+
+if test "$enable_locking" = no ; then
+ with_login_manager_req=no
+ with_login_manager=no
fi
-if test "$with_motif" = yes; then
- have_motif=no
- AC_CHECK_X_HEADER(Xm/Xm.h,
- [have_motif=yes
- AC_DEFINE(HAVE_MOTIF)
- MOTIF_LIBS="$MOTIF_LIBS -lXm"],,
- [#include <stdlib.h>
- #include <stdio.h>
- #include <X11/Intrinsic.h>])
+if test -n "$with_login_manager_req" ; then
+ ac_cv_login_manager_program=""
+
+ if test "$with_login_manager_req" = "yes" ; then
+ with_login_manager_req=$default_login_manager
+ fi
+
+ case "$with_login_manager_req" in
+ /*)
+ # absolute path
+ set dummy $with_login_manager_req ; login_manager_tmp=$2
+ AC_MSG_CHECKING([for $login_manager_tmp])
+ if test -x "$login_manager_tmp" ; then
+ AC_MSG_RESULT(yes)
+ with_login_manager="$login_manager_tmp"
+ else
+ AC_MSG_RESULT(no)
+ with_login_manager=""
+ fi
+ ;;
+ *)
+ # relative path
+ set dummy $with_login_manager_req ; login_manager_tmp=$2
+ # don't cache
+ unset ac_cv_path_login_manager_tmp
+ AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, [])
+ if test -z "$login_manager_tmp" ; then
+ with_login_manager=""
+ else
+ with_login_manager="$login_manager_tmp"
+ fi
+ ;;
+ esac
+ ac_cv_login_manager_program="$with_login_manager"
+
+elif test -n "$ac_cv_login_manager_program"; then
+ AC_MSG_RESULT([checking for login_manager... (cached) $ac_cv_login_manager_program])
fi
+NEW_LOGIN_COMMAND_P=''
+NEW_LOGIN_COMMAND="$ac_cv_login_manager_program"
-if test "$have_motif" = yes; then
- AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],,
- [#include <stdlib.h>
- #include <stdio.h>
- #include <X11/Intrinsic.h>])
+if test -z "$NEW_LOGIN_COMMAND" ; then
+ NEW_LOGIN_COMMAND="$default_login_manager"
+ NEW_LOGIN_COMMAND_P='! '
fi
+
###############################################################################
#
# Check for -lgtk (and Gnome stuff)
###############################################################################
have_gtk=no
-have_gtk2=no
with_gtk_req=unspecified
-AC_ARG_WITH(gtk,
-[ --with-gtk Use the Gtk toolkit for the user interface.],
+AC_ARG_WITH(gtk,[
+User interface options:
+
+ --with-gtk Use the Gtk toolkit for the user interface.],
[with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
# if --with-gtk=/directory/ was specified, remember that directory so that
exit 1
fi
-have_gnome=no
-with_gnome_req=unspecified
-AC_ARG_WITH(gnome,
-[ --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
-# we can also look for the `gnome-config' program in that directory.
-case "$with_gnome" in
- /*)
- gnome_dir="$with_gnome"
- ;;
- *)
- gnome_dir=""
- ;;
-esac
-
-HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome)
-
-if test "$with_gnome" != yes -a "$with_gnome" != no ; then
- echo "error: must be yes or no: --with-gnome=$with_gnome"
- exit 1
-fi
parse_gtk_version_string() {
# M4 sucks!!
fi
}
+# Find pkg-config... (need this for both gtk and gdk_pixbuf.)
+# if the user specified --with-gtk=/foo/ then look there.
+#
+gtk_path="$PATH"
+if test ! -z "$gtk_dir"; then
+ # canonicalize slashes.
+ foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
+ gtk_path="$foo:$gtk_path"
+fi
-jurassic_gtk=no
-if test "$with_gtk" = yes; then
- have_gtk=no
-
- # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
- # look in /foo/bin/ for glib-config, gtk-config, and gnome-config.
- #
- gtk_path="$PATH"
-
- if test ! -z "$gtk_dir"; then
- # canonicalize slashes.
- foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
- gtk_path="$foo:$gtk_path"
- fi
-
- if test ! -z "$gnome_dir"; then
- # canonicalize slashes.
- foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
- gtk_path="$foo:$gtk_path"
- fi
+AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path)
- AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path)
+if test -z "$pkg_config" ; then
+ AC_MSG_WARN([pkg-config not found!])
+ pkg_config="false"
+fi
- if test -n "$pkg_config" ; then
- #
- # the new way...
- # run pkg-config based tests.
- #
- 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
+# Utility function for running pkg-config-based tests...
+#
+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
- }
-
- 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
+ AC_MSG_RESULT(no)
+ ok=no
+ return 0
fi
+ fi
+}
- 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; 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 "$have_gtk" = yes; then
- parse_gtk_version_string
- jurassic_gtk=no
- else
- have_gnome=no
- fi
+jurassic_gtk=no
+gtk_halfassed=no
- 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`])
+if test "$with_gtk" = yes; then
+ have_gtk=no
+
+ 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 gdk-pixbuf-2.0 2.0.0
+ pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
+ have_gtk="$ok"
+
+ if test "$have_gtk" = no; then
+ if test -n "$ac_gtk_version_string" ; then
+ gtk_halfassed="$ac_gtk_version_string"
+ gtk_halfassed_lib="$req"
fi
- ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
- ac_gtk_config_libs=$ac_cv_gtk_config_libs
+ fi
- ac_gnome_config_cflags=$ac_gtk_config_cflags
- ac_gnome_config_libs=$ac_gtk_config_libs
+ if test "$have_gtk" = yes; then
+ parse_gtk_version_string
+ jurassic_gtk=no
+ fi
- else
- #
- # the old way...
- # run {gnome,gtk}-config based tests.
- #
+ 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
- AC_PATH_PROGS(glib_config, glib12-config glib-config,, $gtk_path)
- AC_PATH_PROGS(gtk_config, gtk12-config gtk-config,, $gtk_path)
+ GTK_EXTRA_OBJS=""
+ GTK_DATADIR=""
+ if test "$have_gtk" = yes; then
+ GTK_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
+ GTK_DATADIR="$GTK_DATADIR/share"
+ fi
- if test "$with_gnome" = yes; then
- AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
- 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)
+ AC_DEFINE(HAVE_GTK2)
+ AC_DEFINE(HAVE_XML)
+ fi
- 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
- 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
- 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
- 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
-
- # 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 >/dev/null 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 >/dev/null 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.
- 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_gnome" = yes -a "$have_gtk" = yes; then
- if test -n "$gnome_config"; then
- GNOME_DATADIR=`$gnome_config --datadir`
- else
- #### is this right?
- GNOME_DATADIR=`$pkg_config --variable=prefix gtk+`
- GNOME_DATADIR="$GNOME_DATADIR/share"
- fi
- 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
-
-
-# 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
-fi
+# Check for the various Gnome help and URL loading programs.
+#
+if test "$have_gtk" = yes; then
+ AC_CHECK_PROGS(gnome_open_program, gnome-open)
+ AC_CHECK_PROGS(gnome_url_show_program, gnome-url-show)
+fi
###############################################################################
#
-# Check for -lxml
+# Check for -lXm.
#
###############################################################################
-have_xml=no
-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. 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
-# we can also look for the `xml-config' program in that directory.
-case "$with_xml" in
- /*)
- xml_dir="$with_xml"
- ;;
- *)
- xml_dir=""
- ;;
-esac
+have_motif=no
+with_motif_req=unspecified
+AC_ARG_WITH(motif,[ --with-motif Use the Motif toolkit for the user interface
+ (not recommended.)],
+ [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no])
-HANDLE_X_PATH_ARG(with_xml, --with-xml, XML)
+HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
-if test "$with_xml" != yes -a "$with_xml" != no ; then
- echo "error: must be yes or no: --with-xml=$with_xml"
+if test "$with_motif" != yes -a "$with_motif" != no ; then
+ echo "error: must be yes or no: --with-motif=$with_motif"
exit 1
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.
- #
- xml_path="$PATH"
-
- if test ! -z "$gtk_dir"; then
- # canonicalize slashes.
- foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
- xml_path="$foo:$xml_path"
- fi
-
- if test ! -z "$gnome_dir"; then
- # canonicalize slashes.
- foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
- xml_path="$foo:$xml_path"
- fi
-
- if test -n "$pkg_config" ; then
- #
- # the new way...
- # run pkg-config based tests.
- #
- pkgs=""
- ok="yes"
- pkg_check_version xml2 1.0
-
- if test "$ok" = no; then
- ok=yes
- pkg_check_version xml 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 {gnome,gtk}-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 <libxml/parser.h> which is the new way...
- #
- AC_CHECK_X_HEADER(libxml/xmlIO.h, [have_xml=yes],,
- [#include <libxml/parser.h>])
-
- # if that didn't work, then try just <parser.h> 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 <parser.h>])
- fi
-
- CPPFLAGS="$ac_save_xml_CPPFLAGS"
- fi
-
-
- 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 "$with_motif" = yes; then
+ have_motif=no
+ AC_CHECK_X_HEADER(Xm/Xm.h,
+ [have_motif=yes
+ AC_DEFINE(HAVE_MOTIF)
+ MOTIF_LIBS="$MOTIF_LIBS -lXm"],,
+ [#include <stdlib.h>
+ #include <stdio.h>
+ #include <X11/Intrinsic.h>])
+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,
- [have_xml=yes
- xml_halfassed=no
- XML_LIBS="$ac_xml_config_libs"
- AC_DEFINE(HAVE_XML)],
- [true],
- $ac_xml_config_libs)
- fi
-
- if test "$have_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
+if test "$have_motif" = yes; then
+ AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],,
+ [#include <stdlib.h>
+ #include <stdio.h>
+ #include <X11/Intrinsic.h>])
fi
if test "$ac_have_mesa_gl" = yes ; then
AC_CHECK_X_LIB(MesaGL, glXCreateContext,
[gl_lib_1="MesaGL"
- GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
- [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
+ GL_LIBS="-lMesaGL -lMesaGLU $VIDMODE_LIBS $GL_LIBS"],
+ [], -lMesaGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm)
fi
if test "$gl_lib_1" = "" ; then
AC_CHECK_X_LIB(GL, glXCreateContext,
[gl_lib_1="GL"
- GL_LIBS="-lGL -lGLU $GL_LIBS"],
- [], -lGLU $GL_LIBS -lX11 -lXext -lm)
+ GL_LIBS="-lGL -lGLU $VIDMODE_LIBS $GL_LIBS"],
+ [], -lGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm)
fi
if test "$gl_lib_1" = "" ; then
#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
-
-###############################################################################
-#
-# Check for -lXpm.
-#
-###############################################################################
-
-have_xpm=no
-with_xpm_req=unspecified
-AC_ARG_WITH(xpm,
-[ --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)
-
-if test "$with_xpm" = yes; then
- AC_CHECK_X_HEADER(X11/xpm.h,
- [have_xpm=yes
- AC_DEFINE(HAVE_XPM)
- XPM_LIBS="-lXpm"],,
- [#include <X11/Xlib.h>])
-elif test "$with_xpm" != no; then
- echo "error: must be yes or no: --with-xpm=$with_xpm"
- exit 1
-fi
-
-# See comment near $motif_requires_xpm, above.
-# Need to do this here, after both Motif and XPM have been checked for.
-#
-if test "$have_motif" = yes -a "$have_xpm" = yes ; then
- if test "$motif_requires_xpm" = yes ; then
- MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
- fi
-fi
-
-
###############################################################################
#
# Check for -lgdk_pixbuf.
+# These tests are for gdk_pixbuf usage of the hacks,
+# not xscreensaver-demo (thus we have to test again to get
+# the libraries right: don't want to pull in all of GTK
+# for the hacks.)
#
###############################################################################
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. (The path here is
- ignored if GTK 2.x is being used.)],
+ GIF, JPEG, and PNG files as well.],
[with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
[with_gdk_pixbuf=yes])
if test "$with_gdk_pixbuf" = yes; then
have_gdk_pixbuf=no
- have_gdk_pixbuf2=no
-
- if test -n "$pkg_config" ; then
- #
- # the new way...
- # run pkg-config based tests.
- #
- 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
- #
- # We don't have pixbuf 2.x; check for 1.x.
- #
- pkgs=''
- ok="yes"
- pkg_check_version gdk-pixbuf 0.0
- pkg_check_version gdk-pixbuf-xlib 0.0
- have_gdk_pixbuf="$ok"
- fi
-
- 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
+ pkgs=''
+ ok="yes"
- AC_PATH_PROGS(gdk_pixbuf_config, gdk-pixbuf-config,, $gdk_pixbuf_path)
+ 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 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
+ 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
- ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
- if test "$have_gdk_pixbuf" = no; then
+ if test "$have_gdk_pixbuf" = yes; then
#
# we appear to have pixbuf; check for headers/libs to be sure.
#
+ ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
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
gdk_pixbuf_halfassed=no])
fi
fi
+ CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
fi
- CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
-
if test "$have_gdk_pixbuf" = yes; then
# we have the headers, now check for the libraries
have_gdk_pixbuf=no
gdk_pixbuf_halfassed=yes
- # library 1...
+ AC_MSG_RESULT(checking for gdk_pixbuf usability...)
+
+ # 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,
XPM_LIBS="$ac_gdk_pixbuf_config_libs"
AC_DEFINE(HAVE_GDK_PIXBUF)
else
- have_gdk_pixbuf2=no
+ AC_MSG_RESULT(checking for gdk_pixbuf usability... no)
+ fi
+fi
+
+
+###############################################################################
+#
+# Check for -lXpm.
+#
+###############################################################################
+
+have_xpm=no
+with_xpm_req=unspecified
+AC_ARG_WITH(xpm,
+[ --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)
+
+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"],,
+ [#include <X11/Xlib.h>])
+elif test "$with_xpm" != no; then
+ echo "error: must be yes or no: --with-xpm=$with_xpm"
+ exit 1
+fi
+
+# See comment near $motif_requires_xpm, above.
+# Need to do this here, after both Motif and XPM have been checked for.
+#
+if test "$have_motif" = yes -a "$have_xpm" = yes ; then
+ if test "$motif_requires_xpm" = yes ; then
+ MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
fi
fi
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
+###############################################################################
+#
+# Check for pty support: this allows 'phosphor' and 'apple2'
+# to run curses-based programs, or be used as terminal windows.
+#
+###############################################################################
+
+PTY_LIBS=
+AC_CHECK_HEADERS(pty.h util.h)
+AC_CHECK_X_LIB(util, forkpty,
+ [PTY_LIBS="-lutil"
+ AC_DEFINE(HAVE_FORKPTY)])
+
+
###############################################################################
#
# Check for the XSHM server extension.
###############################################################################
#
-# Check for a program to generate random text.
-#
-# Zippy is funnier than the idiocy generally spat out by `fortune',
-# so first see if "fortune zippy" works. Else, use plain "fortune".
-#
-# We used to dig around in Emacs to look for the "yow" program, but
-# most people who have Emacs also have "fortune zippy", so nevermind.
+# Check for a directory full of images to use as the default value
+# of the "imageDirectory" preference.
#
###############################################################################
-with_fortune_req=""
-AC_ARG_WITH(fortune,[
- --with-fortune=PROGRAM Some demos are able to run an external program and
- display its text; this names the program to use by
- default (though it can be overridden with X
- resources.) Default is \"/usr/games/fortune\".],
- [with_fortune_req="$withval"; with_fortune="$withval"],[with_fortune=yes])
-
-if test "$with_fortune" = no || test "$with_fortune" = yes ; then
- with_fortune=""
- with_fortune_req=""
-fi
+have_imagedir=no
+with_imagedir_req=unspecified
-if test -n "$with_fortune_req" ; then
- ac_cv_fortune_program=""
- case "$with_fortune_req" in
- /*)
+AC_ARG_WITH(image-directory,
+[ --with-image-directory=DIR By default, some demos may display random images
+ from this directory.],
+ [with_imagedir="$withval"; with_imagedir_req="$withval"],
+ [with_imagedir=yes])
+# no HANDLE_X_PATH_ARG for this one
- set dummy $with_fortune_req ; fortune_tmp=$2
- AC_MSG_CHECKING([for $fortune_tmp])
- if test -x "$fortune_tmp" ; then
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- with_fortune=""
- fi
- ;;
- *)
- set dummy $with_fortune_req ; fortune_tmp=$2
- # don't cache
- unset ac_cv_path_fortune_tmp
- AC_PATH_PROG(fortune_tmp, $fortune_tmp, [])
- if test -z "$fortune_tmp" ; then
- with_fortune=""
+case "$with_imagedir" in
+ /*)
+ # absolute path
+ AC_MSG_CHECKING([for image directory $with_imagedir])
+ if test -d "$with_imagedir" ; then
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ with_imagedir=""
+ fi
+ ;;
+ yes)
+ with_imagedir=""
+
+ #### Could use some more defaults here...
+ for dd in \
+ "/usr/share/backgrounds/images/" \
+ "/usr/share/wallpapers/" \
+ "/Library/Desktop Pictures/" \
+ ; do
+ if test -z "$with_imagedir"; then
+ AC_MSG_CHECKING([for image directory $dd])
+ if test -d "$dd" ; then
+ AC_MSG_RESULT(yes)
+ with_imagedir="$dd"
+ else
+ AC_MSG_RESULT(no)
+ fi
fi
- ;;
- esac
- ac_cv_fortune_program="$with_fortune"
+ done
-elif test -n "$ac_cv_fortune_program"; then
- AC_MSG_RESULT([checking for fortune... (cached) $ac_cv_fortune_program])
-fi
+ ;;
+ no)
+ with_imagedir=""
+ ;;
-unset ac_cv_path_fortune_tmp
-unset fortune_tmp
+ *)
+ echo "error: must be an absolute path: --with-image-directory=$with_imagedir_req"
+ exit 1
+ ;;
+esac
+ac_cv_imagedir="$with_imagedir"
-if test -z "$ac_cv_fortune_program" ; then
+DEFAULT_IMAGES_P='True'
+DEFAULT_IMAGE_DIRECTORY="$ac_cv_imagedir"
- # first look for fortune in /usr/games/ (and use absolute path)
- AC_PATH_PROGS(fortune_tmp, fortune,, "/usr/games")
+if test -z "$DEFAULT_IMAGE_DIRECTORY" ; then
+ DEFAULT_IMAGES_P='False'
+fi
- # if it's not there, look on $PATH (and don't use absolute path)
- if test -z "$fortune_tmp" ; then
- AC_CHECK_PROGS(fortune_tmp, fortune)
- fi
- # if we didn't find anything, then just assume /usr/games/
- if test -z "$fortune_tmp" ; then
- fortune_tmp="/usr/games/fortune"
- fi
+###############################################################################
+#
+# Pick a text file to use as the default of the "textFile" preference.
+# Any old file will do, but preferably one that will make interesting
+# shapes when displayed by "starwars" and "fontglide".
+#
+###############################################################################
- ac_cv_fortune_program="$fortune_tmp"
+have_textfile=no
+with_textfile_req=unspecified
- # now check to see whether "fortune zippy" works.
- #
- fortune_tmp="$fortune_tmp zippy"
- AC_MSG_CHECKING([for zippy quotes])
- if ( $fortune_tmp >/dev/null 2>&1 ); then
- ac_cv_fortune_program="$fortune_tmp"
- AC_MSG_RESULT($fortune_tmp)
- else
- AC_MSG_RESULT(no)
- fi
+AC_ARG_WITH(text-file,
+[ --with-text-file=FILE By default, some demos may display this file.],
+ [with_textfile="$withval"; with_textfile_req="$withval"],
+ [with_textfile=yes])
+# no HANDLE_X_PATH_ARG for this one
-fi
+case "$with_textfile" in
+ /*)
+ # absolute path
+ AC_MSG_CHECKING([for image directory $with_textfile])
+ if test -d "$with_textfile" ; then
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ with_textfile=""
+ fi
+ ;;
+ yes)
+ with_textfile=""
+
+ #### Could use some more defaults here...
+ for f in \
+ "/usr/X11R6/lib/X11/doc/README" \
+ "/usr/share/doc/xserver-common/copyright" \
+ "/usr/X11R6/README" \
+ ; do
+ if test -z "$with_textfile"; then
+ AC_MSG_CHECKING([for text file $f])
+ if test -f "$f" ; then
+ AC_MSG_RESULT(yes)
+ with_textfile="$f"
+ else
+ AC_MSG_RESULT(no)
+ fi
+ fi
+ done
-unset ac_cv_path_fortune_tmp
-unset fortune_tmp
+ ;;
+ no)
+ with_textfile=""
+ ;;
-AC_DEFINE_UNQUOTED(FORTUNE_PROGRAM, "$ac_cv_fortune_program")
+ *)
+ echo "error: must be an absolute path: --with-image-directory=$with_textfile_req"
+ exit 1
+ ;;
+esac
+ac_cv_textfile="$with_textfile"
+
+DEFAULT_TEXT_FILE="$ac_cv_textfile"
###############################################################################
setuid_hacks_default=no
setuid_hacks="$setuid_hacks_default"
AC_ARG_WITH(setuid-hacks,
-[ --with-setuid-hacks Allow some demos to be installed \`setuid root'
+[ --with-setuid-hacks Allow some demos to be installed `setuid root'
(which is needed in order to ping other hosts.)
],
[setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
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
PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
INSTALL_PAM="install-pam"
+fi
+if test "$have_passwd_helper" = yes; then
+ PASSWD_SRCS="$PASSWD_SRCS \$(PWHELPER_SRCS)"
+ PASSWD_OBJS="$PASSWD_OBJS \$(PWHELPER_OBJS)"
fi
PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
LOCK_OBJS='$(NOLOCK_OBJS_1)'
fi
+if test "$ac_macosx" = yes; then
+ EXES_OSX='$(EXES_OSX)'
+ SCRIPTS_OSX='$(SCRIPTS_OSX)'
+ MEN_OSX='$(MEN_OSX)'
+else
+ EXES_OSX=
+ SCRIPTS_OSX=
+ MEN_OSX=
+fi
+
+
INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)'
if test "$need_setuid" = yes; then
if test "$have_gle" = yes; then
GLE_EXES='$(GLE_EXES)'
- GLE_MEN='$(GLE_MEN)'
GLE_KLUDGE="${tab} "
else
GLE_KLUDGE="-${tab} "
# Another substitution in the XScreenSaver.ad.in file:
#
-if test "$have_gnome_help" = yes; then
- GNOMEHELP_Y=''
- GNOMEHELP_N='! '
+if test "$gnome_open_program" != ''; then
+ GNOME24=''
+ GNOME22='! '
+ NOGNOME='! '
+elif test "$gnome_url_show_program" != ''; then
+ GNOME24='! '
+ GNOME22=''
+ NOGNOME='! '
else
- GNOMEHELP_Y='! '
- GNOMEHELP_N=''
+ GNOME24='! '
+ GNOME22='! '
+ NOGNOME=''
fi
-# Now that we know whether we have Gnome, we can decide where the XML
-# config files get installed.
+# Set PO_DATADIR to something sensible.
#
-if test -z "$HACK_CONF_DIR" ; then
- if test -n "$GNOME_DATADIR" ; then
- HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers'
- else
- HACK_CONF_DIR='${prefix}/lib/xscreensaver/config'
- fi
+AC_MSG_CHECKING([for locale directory])
+if test -n "$GTK_DATADIR" ; then
+ PO_DATADIR="$GTK_DATADIR"
+elif test "$have_gtk" = yes; then
+ PO_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
+ PO_DATADIR="$PO_DATADIR/share"
fi
-
-
-# After computing $HACK_CONF_DIR, make sure $GLADE_DATADIR has a value
-# so that we know where to install the Gtk pixmaps.
-#
-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'
-else
- GLADE_DATADIR=''
+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(JPEG_LIBS)
AC_SUBST(HACK_LIBS)
AC_SUBST(XPM_LIBS)
+AC_SUBST(PTY_LIBS)
AC_SUBST(GL_LIBS)
AC_SUBST(GLE_LIBS)
AC_SUBST(XDPMS_LIBS)
+AC_SUBST(XINERAMA_LIBS)
AC_SUBST(PASSWD_LIBS)
AC_SUBST(INSTALL_SETUID)
AC_SUBST(SETUID_HACKS)
AC_SUBST(INSTALL_DIRS)
AC_SUBST(NEED_SETUID)
AC_SUBST(INSTALL_PAM)
+AC_SUBST(NEW_LOGIN_COMMAND)
+AC_SUBST(NEW_LOGIN_COMMAND_P)
+AC_SUBST(DEFAULT_IMAGES_P)
+AC_SUBST(DEFAULT_IMAGE_DIRECTORY)
+AC_SUBST(DEFAULT_TEXT_FILE)
+
+AC_SUBST(OBJCC)
+AC_SUBST(EXES_OSX)
+AC_SUBST(SCRIPTS_OSX)
+AC_SUBST(MEN_OSX)
AC_SUBST(PASSWD_SRCS)
AC_SUBST(PASSWD_OBJS)
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(GNOME24)
+AC_SUBST(GNOME22)
+AC_SUBST(NOGNOME)
AC_SUBST(HACKDIR)
-AC_SUBST(GNOME_DATADIR)
-AC_SUBST(GLADE_DATADIR)
-AC_SUBST(GNOME_PANELDIR)
+AC_SUBST(GTK_DATADIR)
+AC_SUBST(PO_DATADIR)
AC_SUBST(HACK_CONF_DIR)
AC_SUBST(GTK_EXTRA_OBJS)
warn 'The SGI saver extension was requested, but was not found.'
fi
-if test "$with_mit_req" = yes -a "$have_mit" = no ; then
- warn 'The MIT saver extension was requested, but was not found.'
-fi
-
if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
warn 'The XIdle extension was requested, but was not found.'
fi
warn 'The XF86VMODE extension was requested, but was not found.'
fi
+if test "$with_randr_req" = yes -a "$have_randr" = no ; then
+ warn 'The RANDR extension was requested, but was not found.'
+fi
+
if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
warn "Checking of /proc/interrupts was requested, but it's bogus."
fi
+if test "$pkg_config" = false ; then
+ warnL 'The "pkg-config" program was not found. Without that,'
+ warn2 "detection of the various GTK libraries won't work."
+else
+ pkgerr=`$pkg_config --list-all 2>&1 >/dev/null`
+ if test "x$pkgerr" != "x" ; then
+ warnL 'The "pkg-config" program produces errors. This often causes'
+ warn2 "detection of the various GTK libraries to malfunction."
+ warn2 "The errors are:"
+ echo ''
+ echo "$pkgerr" | sed 's/^/ > /g'
+ fi
+fi
+
+if test "$gtk_halfassed" != no ; then
+ warnL "GTK version $gtk_halfassed was found, but at least one supporting"
+ warn2 "library ($gtk_halfassed_lib) was not, so GTK can't be used."
+ warn2 "Perhaps some of the development packages are not installed?"
+ if test "$have_gtk" = yes ; then
+ 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
+
+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;"
elif test "$jurassic_gtk" = yes ; then
- pref_gtk=1.2
+ pref_gtk=2.0
v="$ac_gtk_version_string"
if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
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;"
- warn2 "Motif will be used instead."
+ warnL "Use of Gtk was requested, but it wasn't found."
fi
-if test "$with_gnome_req" = yes -a "$have_gnome" = no ; then
- warn 'Use of the Gnome Control Panel was requested, but the necessary'
- warn2 'headers and/or libraries were not found.'
-fi
-
-if test "$have_gtk" = yes ; then
- if test "$have_xml" = no ; then
- if test "$with_xml_req" = yes ; then
- warn 'Use of the XML library was requested, but the necessary'
- warn2 'headers and/or libraries were not found.'
- else
- warn 'GTK is being used, but the XML library was not found.'
- 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 "$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
-
- echo ''
- warn2 "Without XML, the per-display-mode \`Settings' dialogs"
- warn2 'will not be available. Specify the location of the XML'
- warn2 'library through the --with-xml option to configure.'
- 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
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
warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
fi
-if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no || \
- test "$gdk_pixbuf_halfassed" = yes; then
+if test "$have_gdk_pixbuf" = no -o "$gdk_pixbuf_halfassed" = yes || \
+ test "$have_gdk_pixbuf" = no -a "$have_xpm" = no ; then
+
+ if test "$with_gdk_pixbuf_req" = yes ; then
+ true
+ elif test "$with_gdk_pixbuf_req" = no ; then
+ warnL 'The GDK-Pixbuf library is not being used.'
+ else
+ warnL 'The GDK-Pixbuf library was not found.'
+ fi
if test "$with_xpm_req" = yes -o "$have_xpm" = yes ; then
true
warnL 'The XPM library was not found.'
fi
- if test "$with_gdk_pixbuf_req" = yes ; then
- true
- elif test "$with_gdk_pixbuf_req" = no ; then
- warnL 'The GDK-Pixbuf library is not being used.'
- else
- warnL 'The GDK-Pixbuf library was not found.'
+ if test "$have_gdk_pixbuf" = no -a "$have_xpm" = yes ; then
+ warn2 'The XPM library is being used instead.'
fi
if test "$gdk_pixbuf_halfassed" = yes ; then
fi
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 '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/>.'
- echo ''
- warn2 'GDK-Pixbuf is recommended over XPM, as it provides'
- warn2 'support for more image formats.'
+ warn2 'Some of the demos will not use images as much as they could.'
+ warn2 'You should consider installing GDK-Pixbuf and re-running'
+ warn2 'configure. (GDK-Pixbuf is recommended over XPM, as it'
+ warn2 'provides support for more image formats.)'
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
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
warn 'Use of XReadDisplay was requested, but it was not found.'
fi
-if test -n "$with_fortune_req"; then
- if test "$with_fortune_req" != "$ac_cv_fortune_program" ; then
- warnL "$with_fortune_req was requested as the Fortune program,"
- warn2 "but was not found. The default will be used instead."
- fi
-fi
-
if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
warn 'Use of Kerberos was requested, but it was not found.'
fi
do_dir_warning=no
-# Now let's see if there's a previous RPM version already installed. Blargh!
+# Now let's warn if there's a previous RPM version already installed.
+# But don't bother with this test if we are currently *building* an RPM.
-# M4 sucks!!
-changequote(X,Y)
-rpmv=`(rpm -qv xscreensaver) 2>/dev/null | \
- sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'`
-changequote([,])
+if test -z "$RPM_PACKAGE_VERSION" ; then
-if test \! -z "$rpmv" ; then
- rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
- rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
+ rpmnames="xscreensaver xscreensaver-base xscreensaver-extras"
- warning=no
- warnL "There is already an installed RPM of xscreensaver $rpmv"
- warn2 "on this system. You might want to remove it (with"
- warn2 '"rpm -ve xscreensaver") before running "make install"'
- warn2 "from this directory."
- echo ""
- warn2 "Alternately, you could build this version of xscreensaver"
- warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
- warn2 "file is included. See the RPM documentation for more info."
- echo ""
+ # M4 sucks!!
+ changequote(X,Y)
+ rpmv=`(rpm -qv $rpmnames) 2>/dev/null | \
+ sed -n 's/^[-a-z]*-\([0-9][0-9]*[.][0-9][0-9a-z]*\)-.*$/\1/p' | \
+ head -1`
+ changequote([,])
- if test "$rpmbdir" = "$rpmhdir" ; then
- warn2 "The RPM version was installed in $rpmbdir/."
- else
- warn2 "The RPM version was installed in $rpmbdir/,"
- warn2 "with demos in $rpmhdir/."
- fi
+ if test \! -z "$rpmv" ; then
+ rpmbdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
+ rpmhdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/attraction$@\1@p'`
- do_dir_warning=yes
-fi
+ warning=no
+ warnL "There is already an installed RPM of xscreensaver $rpmv"
+ warn2 'on this system. You might want to remove it ("rpm -ve")'
+ warn2 'before running "make install" in this directory.'
+ echo ""
+ warn2 "Alternately, you could build this version of xscreensaver"
+ warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
+ warn2 'file is included. Try "rpmbuild -v -ba xscreensaver.spec".'
+ warn2 "See the RPM documentation for more info."
+ echo ""
+ if test "$rpmbdir" = "$rpmhdir" ; then
+ warn2 "The RPM version was installed in $rpmbdir/."
+ do_dir_warning=yes
+ else
+ warn2 "The RPM version was installed in $rpmbdir/,"
+ warn2 "with demos in $rpmhdir/."
+ fi
+ fi
+fi
if test "${bindir}" = "${HACKDIR}" ; then
do_dir_warning=yes
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 (190+ different executables) will"
echo " be installed in ${HACKDIR}/."
echo ""
echo " If you would prefer the demos to be installed elsewhere,"