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_RANDR_12],
+ [Define this if the RANDR library is version 1.2 or newer.])
+
+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_GDK_PIXBUF_APPLY_EMBEDDED_ORIENTATION],
+ [Define this if you have the gdk_pixbuf_apply_embedded_orientation
+ function (gdk-pixbuf 2.12).])
+
+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([ALLOW_ROOT_PASSWD],
+ [Define this to allow the root password to unlock the screen.])
+
+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([HAVE_PAM_FAIL_DELAY],
+ [Define this if you have pam_fail_delay function.
+ see driver/passwd-pam.c.])
+
+AH_TEMPLATE([PAM_STRERROR_TWO_ARGS],
+ [Define if you have PAM and pam_strerror() requires two
+ arguments.])
+
+AH_TEMPLATE([HAVE_SIGTIMEDWAIT],
+ [Define to 1 if you have the `sigtimedwait' function.])
+
+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_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,
if test -n "$GCC"; then
AC_MSG_RESULT(Turning on gcc compiler warnings.)
- CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs"
+ CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs -Wmissing-prototypes"
OBJCC="$OBJCC -Wall"
- # supposedly gcc 3.4 will have "-Wdeclaration-after-statement"
- # and then perhaps we can do without -pedantic?
+ # As of gcc 3.4, we have "-Wdeclaration-after-statement"
+ # and so perhaps now we can do without -pedantic?
else
case "$host" in
*-irix5* |*-irix6.[0-3]* )
###############################################################################
#
-# Functions to figure out how to disable // comments in ANSI C code.
+# Check for availability of various gcc command-line options.
+#
+###############################################################################
+
+AC_DEFUN(AC_CHECK_GCC_ARG,
+ [if test -n "$GCC"; then
+ AC_CACHE_CHECK([whether gcc accepts [$2]],
+ ac_cv_gcc_accepts_[$1],
+ [rm -rf conftest.$ac_ext
+ touch conftest.$ac_ext
+ if ( ( gcc -c [$2] conftest.$ac_ext -o/dev/null >/dev/null ) 2>&1 | \
+ grep unrecognized >/dev/null ); then
+ ac_cv_gcc_accepts_[$1]=no
+ else
+ ac_cv_gcc_accepts_[$1]=yes
+ CC="$CC [$2]"
+ fi])
+ ac_gcc_accepts_[$1]="$ac_cv_gcc_accepts_[$1]"
+ fi
+])
+
+AC_DEFUN(AC_NO_LONG_STRING_WARNINGS,
+ [AC_CHECK_GCC_ARG(no_overlength, -Wno-overlength-strings)])
+
+AC_DEFUN(AC_NO_MISPLACED_DECLARATIONS,
+ [AC_CHECK_GCC_ARG(no_decl_after, -Wdeclaration-after-statement)])
+
+# Need to disable Objective C extensions in ANSI C on MacOS X to work
+# around an Apple-specific gcc bug.
+#
+AC_DEFUN(AC_NO_OBJECTIVE_C,
+ [AC_CHECK_GCC_ARG(no_cpp_precomp, -no-cpp-precomp)])
+
+###############################################################################
+#
+# Function to figure out how to disable // comments in ANSI C code.
#
# (With recent gcc, this is done with "-std=c89". With older gcc, this
# is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to
#
###############################################################################
-AC_DEFUN(AC_GCC_ACCEPTS_STD,
- [if test -n "$GCC"; then
- AC_CACHE_CHECK([whether gcc accepts -std],
- ac_cv_gcc_accepts_std,
- [if ( ( gcc -E -std=c89 - </dev/null >/dev/null ) 2>&1 | \
- grep unrecognized >/dev/null ); then
- ac_cv_gcc_accepts_std=no
- else
- ac_cv_gcc_accepts_std=yes
- fi])
- ac_gcc_accepts_std="$ac_cv_gcc_accepts_std"
- fi
+AC_DEFUN(AC_GCC_ACCEPTS_STD, [
+ case "$host" in
+ *-darwin* )
+ # Fucking Apple let // comments sneak into OpenGL headers, so
+ # we *must* allow // comments when compiling on Mac OS 10.6! FUCK!
+ ;;
+ *)
+ AC_CHECK_GCC_ARG(std, -std=c89)
+ ;;
+ esac
])
AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE,
# before they were in the ANSI C 99 spec... (gcc 2.96 permits //
# with -std=gnu89 but not with -std=c89.)
#
- CC="$CC -std=c89 -U__STRICT_ANSI__"
- else
- # The old way:
- CC="$CC -Wp,-lang-c89"
- fi
- fi
-])
-
-
-###############################################################################
-#
-# 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"
+ # $CC already contains "-std=c89" via AC_GCC_ACCEPTS_STD
+ CC="$CC -U__STRICT_ANSI__"
+# else
+# # The old way:
+# CC="$CC -Wp,-lang-c89"
fi
fi
])
rm -fr conftestdir
fi])
+###############################################################################
+#
+# Handle the --with-x-app-defaults option HERE
+#
+###############################################################################
+
+AC_ARG_WITH(x-app-defaults,[],
+ [ac_cv_x_app_defaults="$withval"],
+ [eval ac_x_app_defaults="$withval"])
+
+
AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
# Look for the directory under a standard set of common directories.
# Check X11 before X11Rn because it's often a symlink to the current release.
CPPFLAGS="$CPPFLAGS -I$includedir"
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS`
AC_CHECK_HEADER([$1],[$2],[$3],[$4])
CPPFLAGS="$ac_save_CPPFLAGS"])
CPPFLAGS="$CPPFLAGS -I$includedir"
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS`
AC_EGREP_HEADER([$1], [$2], [$3], [$4])
CPPFLAGS="$ac_save_CPPFLAGS"])
CPPFLAGS="$CPPFLAGS -I$includedir"
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS`
AC_TRY_COMPILE([$1], [$2], [$3], [$4])
CPPFLAGS="$ac_save_CPPFLAGS"])
# note: $X_LIBS includes $x_libraries
LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
+ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS`
+ LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS`
AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
CPPFLAGS="$ac_save_CPPFLAGS"
LDFLAGS="$ac_save_LDFLAGS"
CPPFLAGS="$CPPFLAGS -I$includedir"
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS`
AC_TRY_RUN([$1], [$2], [$3], [$4])
CPPFLAGS="$ac_save_CPPFLAGS"])
###############################################################################
###############################################################################
+# WTF! autoconf emits this *way* too late. Do it earlier.
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+
# random compiler setup
AC_CANONICAL_HOST
AC_PROG_CC_ANSI
-AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
+AC_NO_LONG_STRING_WARNINGS
+AC_NO_MISPLACED_DECLARATIONS
AC_NO_OBJECTIVE_C
+AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
AC_PROG_CPP
AC_C_CONST
AC_C_INLINE
AC_GETTIMEOFDAY_ARGS
AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk)
AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
+AC_CHECK_FUNCS(setlocale)
AC_CHECK_ICMP
AC_CHECK_ICMPHDR
AC_CHECK_HEADERS(crypt.h sys/select.h)
AC_MSG_RESULT($ac_macosx)
-
###############################################################################
#
# Gettext support
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)
-ALL_LINGUAS="ca da de es et fi fr hu it ja ko nl no pl pt pt_BR ru sk sv vi wa zh_CN zh_TW"
+ALL_LINGUAS="ca da de es et fi fr hu it ja ko nb nl 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.
HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
+# Expand HACKDIR as HACKDIR_FULL
+HACKDIR_FULL=`eval eval eval eval eval eval eval eval eval echo $HACKDIR`
+
# This option used to be called --enable-subdir; make sure that is no longer
# used, since configure brain-damagedly ignores unknown --enable options.
###############################################################################
#
# Handle the --with-configdir option
+# Help for --with-x-app-defaults option added..
#
###############################################################################
AC_ARG_WITH(configdir,
[ --with-configdir=DIR Where to install the data files that describe each
of the display modes to the GUI.
- Default: `GTK_PREFIX/control-center/screensavers/'
- or `PREFIX/lib/xscreensaver/config/', depending on
- whether GTK is available.
+ Default: `PREFIX/share/xscreensaver/config/'
+ --with-x-app-defaults=DIR
+ Where to install xscreensaver configuration file.
],
[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
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.
# 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, XineramaQueryScreens,
- [have_xinerama=yes; SAVER_LIBS="$SAVER_LIBS -lXinerama"],
+ [have_xinerama=yes; XINERAMA_LIBS="-lXinerama"],
[true], -lXext -lX11)
fi
fi
if test "$with_randr" = yes; then
- # first check for Randr.h
+ # first check for Xrandr.h
AC_CHECK_X_HEADER(X11/extensions/Xrandr.h, [have_randr=yes],,
[#include <X11/Xlib.h>])
# if that succeeded, then we've really got it.
if test "$have_randr" = yes; then
AC_DEFINE(HAVE_RANDR)
+
+ # Now check for version 1.2 in the same libs.
+ # Try to compile, since on MacOS 10.5.7, headers are older than libs!
+ AC_CACHE_CHECK([for XRRGetScreenResources], ac_cv_randr_12,
+ [ac_cv_randr_12=no
+ AC_TRY_X_COMPILE([#include <stdlib.h>
+ #include <X11/Xlib.h>
+ #include <X11/extensions/Xrandr.h>],
+ [XRRScreenResources *res =
+ XRRGetScreenResources (0, 0);],
+ [ac_cv_randr_12=yes],
+ [ac_cv_randr_12=no])])
+ if test "$ac_cv_randr_12" = yes ; then
+ AC_DEFINE(HAVE_RANDR_12)
+ fi
+# AC_CHECK_X_LIB(c, XRRGetOutputInfo, [AC_DEFINE(HAVE_RANDR_12)],
+# [true], $SAVER_LIBS)
fi
+
elif test "$with_randr" != no; then
echo "error: must be yes or no: --with-randr-ext=$with_randr"
exit 1
if test "$with_proc_interrupts" = yes; then
+ # Note that we may be building in an environment (e.g. Debian buildd chroot)
+ # without a proper /proc filesystem. If /proc/interrupts exists, then we'll
+ # check that it has the bits we need, but otherwise we'll just go on faith.
+ #
+ have_proc_interrupts=yes
+
+ if test -f /proc/interrupts; then
AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
ac_cv_have_proc_interrupts,
[ac_cv_have_proc_interrupts=no
fi
])
have_proc_interrupts=$ac_cv_have_proc_interrupts
+ fi
if test "$have_proc_interrupts" = yes; then
AC_DEFINE(HAVE_PROC_INTERRUPTS)
#
###############################################################################
-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])
+ [enable_locking="$enableval"],
+ [if test "$ac_macosx" = yes; then
+ # We can't lock on MacOS X, so default to not compiling in support for it.
+ # But allow --enable-locking to override that, so I can debug Linux locking
+ # under MacOS X11.
+ enable_locking=no
+ else
+ enable_locking=yes
+ fi])
if test "$enable_locking" = yes; then
true
elif test "$enable_locking" = no; then
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
-
###############################################################################
#
-# The --enable-vt-locking option
+# Whether to allow root password to unblank.
#
###############################################################################
-
-#ac_vt_lockswitch=no
-#AC_ARG_ENABLE(vt-locking,[
-# --enable-vt-locking Compile in support for locking Virtual Terminals.
-# This is the default if the system supports it, and
-# if locking support is included (--enable-locking.)
-# --disable-vt-locking Do not allow locking of VTs, even if locking is
-# enabled.],
-# [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
-#if test "$enable_vt_locking" = yes; then
-#
-# AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
-# [AC_TRY_COMPILE([#include <fcntl.h>
-# #include <sys/ioctl.h>
-# #include <sys/vt.h>],
-# [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
-# [ac_cv_vt_lockswitch=yes],
-# [ac_cv_vt_lockswitch=no])])
-# ac_vt_lockswitch=$ac_cv_vt_lockswitch
-#
-#elif test "$enable_vt_locking" = no; then
-# true
-#else
-# echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
-# exit 1
-#fi
-#
-#if test "$ac_vt_lockswitch" = yes; then
-# AC_DEFINE(HAVE_VT_LOCKSWITCH)
-# # the VT_LOCKSWITCH ioctl can only be used when running as root.
-# # #### but it doesn't work yet, so don't worry about that for now.
-## need_setuid=yes
-#fi
-
+AC_ARG_ENABLE(root-passwd, [
+ --enable-root-passwd Allow root passwd to unlock screen.
+ --disable-root-passwd Do not allow that.],
+ [enable_root_passwd="$enableval"],[enable_root_passwd=yes])
+if test "$enable_root_passwd" = yes; then
+ AC_DEFINE(ALLOW_ROOT_PASSWD)
+ true
+elif test "$enable_root_passwd" != no; then
+ echo "error: must be yes or no: --enable-root-passwd=$enable_root_passwd"
+ exit 1
+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,
# On Linux, sigtimedwait() is in libc; on Solaris, it's in librt.
have_timedwait=no
- AC_CHECK_LIB(c, sigtimedwait, [have_timedwait=yes])
+ AC_CHECK_LIB(c, sigtimedwait,
+ [have_timedwait=yes
+ AC_DEFINE(HAVE_SIGTIMEDWAIT)])
if test "$have_timedwait" = no ; then
- AC_CHECK_LIB(rt, sigtimedwait, [PASSWD_LIBS="${PASSWD_LIBS} -lrt"])
+ AC_CHECK_LIB(rt, sigtimedwait, [have_timedwait=yes
+ AC_DEFINE(HAVE_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>
- #include <stdlib.h>
- #include <security/pam_appl.h>],
- [pam_handle_t *pamh = 0;
- char *s = pam_strerror(pamh, PAM_SUCCESS);],
- [ac_pam_strerror_args=2],
- [AC_TRY_COMPILE([#include <stdio.h>
- #include <stdlib.h>
- #include <security/pam_appl.h>],
- [char *s =
- pam_strerror(PAM_SUCCESS);],
- [ac_pam_strerror_args=1],
- [ac_pam_strerror_args=0])])
+ [AC_TRY_X_COMPILE([#include <stdio.h>
+ #include <stdlib.h>
+ #include <security/pam_appl.h>],
+ [pam_handle_t *pamh = 0;
+ char *s = pam_strerror(pamh, PAM_SUCCESS);],
+ [ac_pam_strerror_args=2],
+ [AC_TRY_X_COMPILE([#include <stdio.h>
+ #include <stdlib.h>
+ #include <security/pam_appl.h>],
+ [char *s =
+ pam_strerror(PAM_SUCCESS);],
+ [ac_pam_strerror_args=1],
+ [ac_pam_strerror_args=0])])
ac_cv_pam_strerror_args=$ac_pam_strerror_args])
ac_pam_strerror_args=$ac_cv_pam_strerror_args
if test "$ac_pam_strerror_args" = 1 ; then
else
AC_MSG_RESULT(unknown)
fi
+
+# Check pam_fail_delay
+ AC_MSG_CHECKING(pam_fail_delay in -lpam)
+ AC_CACHE_VAL(ac_cv_pam_fail_delay,
+ [ac_save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="-lpam"
+ AC_TRY_LINK([#include <security/pam_appl.h>],
+ [pam_handle_t *pamh = 0;
+ unsigned int usec = 1;
+ int status = pam_fail_delay (pamh, usec);],
+ [ac_pam_fail_delay=yes],
+ [ac_pam_fail_delay=no])
+ ac_cv_pam_fail_delay=$ac_pam_fail_delay,
+ LDFLAGS=$ac_save_LDFLAGS])
+
+ if test "$ac_pam_fail_delay" = yes ; then
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_PAM_FAIL_DELAY)
+ else
+ AC_MSG_RESULT(no)
+ fi
+
fi
fi
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 -ls'
+
+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 -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
+ no)
+ with_login_manager=""
+ ;;
+ /*)
+ # 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)
+ 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 -z "$NEW_LOGIN_COMMAND" ; then
+ NEW_LOGIN_COMMAND="$default_login_manager"
+ NEW_LOGIN_COMMAND_P='! '
+fi
+
+
+
###############################################################################
#
# Check for -lgtk (and Gnome stuff)
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
GTK_EXTRA_OBJS=""
- GNOME_DATADIR=""
- GNOME_PANELDIR='$(GNOME_PANELDIR2)'
+ GTK_DATADIR=""
if test "$have_gtk" = yes; then
- GNOME_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
- GNOME_DATADIR="$GNOME_DATADIR/share"
+ GTK_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
+ GTK_DATADIR="$GTK_DATADIR/share"
fi
if test "$have_gtk" = yes; then
# Check for the various Gnome help and URL loading programs.
#
+WITH_BROWSER=gnome-open
if test "$have_gtk" = yes; then
AC_CHECK_PROGS(gnome_open_program, gnome-open)
AC_CHECK_PROGS(gnome_url_show_program, gnome-url-show)
#
AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
[ac_cv_have_mesa_gl=no
- AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
- ])
+ if test "$ac_macosx" = no; then
+ # WTF! MacOS 10.5.0 ships the Mesa GL headers!
+ # It's not really Mesa, is it?
+ AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
+ fi])
ac_have_mesa_gl=$ac_cv_have_mesa_gl
-
gl_lib_1=""
GL_LIBS=""
+ if test "$ac_macosx" = yes; then
+
+ # Without these, every link against libGL gets a bunch of useless
+ # warnings.
+ #
+ osx_crud="-bind_at_load -multiply_defined suppress"
+ AC_MSG_RESULT(adding "$osx_crud" to GL_LIBS)
+ GL_LIBS="$GL_LIBS $osx_crud"
+ unset osx_crud
+
+ # New lossage in 10.5.0: without this, we get:
+ # ld: cycle in dylib re-exports with /usr/X11/lib/libGL.dylib
+ #
+ osx_crud="/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib"
+ osx_crud="-Wl,-dylib_file,${osx_crud}:${osx_crud}"
+
+ AC_MSG_RESULT(adding "$osx_crud" to GL_LIBS)
+ GL_LIBS="$GL_LIBS $osx_crud"
+ unset osx_crud
+ fi
+
# Some versions of MesaGL are compiled to require -lpthread.
# So if the Mesa headers exist, and -lpthread exists, then always
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
else
AC_MSG_RESULT(checking for gdk_pixbuf usability... no)
fi
+
+ if test "$have_gdk_pixbuf" = yes; then
+ AC_CHECK_X_LIB(c, gdk_pixbuf_apply_embedded_orientation,
+ [AC_DEFINE(HAVE_GDK_PIXBUF_APPLY_EMBEDDED_ORIENTATION)],,
+ $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
+ fi
fi
fi
fi
+if test "$XPM_LIBS" = "" ; then
+ XPM_LIBS=$(MINIXPM)
+fi
+
###############################################################################
#
###############################################################################
#
-# Check for pty support for 'phosphor'
+# Check for pty support: this allows 'phosphor' and 'apple2'
+# to run curses-based programs, or be used as terminal windows.
#
###############################################################################
AC_CHECK_HEADERS(pty.h util.h)
AC_CHECK_X_LIB(util, forkpty,
[PTY_LIBS="-lutil"
+ ac_have_forkpty=yes
AC_DEFINE(HAVE_FORKPTY)])
+if test "$ac_have_forkpty" != yes ; then
+ # we don't need (or have) -lutil on MacOS 10.4.2...
+ AC_CHECK_X_LIB(c, forkpty,
+ [PTY_LIBS=""
+ AC_DEFINE(HAVE_FORKPTY)])
+fi
###############################################################################
#
###############################################################################
#
-# 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])
+have_imagedir=no
+with_imagedir_req=unspecified
-if test "$with_fortune" = no || test "$with_fortune" = yes ; then
- with_fortune=""
- with_fortune_req=""
-fi
-
-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
+
+ ;;
+ no)
+ with_imagedir=""
+ ;;
-elif test -n "$ac_cv_fortune_program"; then
- AC_MSG_RESULT([checking for fortune... (cached) $ac_cv_fortune_program])
+ *)
+ echo "error: must be an absolute path: --with-image-directory=$with_imagedir_req"
+ exit 1
+ ;;
+esac
+ac_cv_imagedir="$with_imagedir"
+
+DEFAULT_IMAGES_P='True'
+DEFAULT_IMAGE_DIRECTORY="$ac_cv_imagedir"
+
+if test -z "$DEFAULT_IMAGE_DIRECTORY" ; then
+ DEFAULT_IMAGES_P='False'
fi
-unset ac_cv_path_fortune_tmp
-unset fortune_tmp
-if test -z "$ac_cv_fortune_program" ; then
+###############################################################################
+#
+# 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".
+#
+###############################################################################
- # first look for fortune in /usr/games/ (and use absolute path)
- AC_PATH_PROGS(fortune_tmp, fortune,, "/usr/games")
+have_textfile=no
+with_textfile_req=unspecified
- # 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
+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
- # if we didn't find anything, then just assume /usr/games/
- if test -z "$fortune_tmp" ; then
- fortune_tmp="/usr/games/fortune"
- fi
+case "$with_textfile" in
+ /*)
+ # absolute path
+ AC_MSG_CHECKING([for text file $with_textfile])
+ if test -f "$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/share/doc/xserver-xorg-core/copyright" \
+ "/usr/X11R6/README" \
+ "/usr/share/doc/debian/debian-manifesto" \
+ ; 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
- ac_cv_fortune_program="$fortune_tmp"
+ ;;
+ no)
+ with_textfile=""
+ ;;
- # 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
+ *)
+ echo "error: must be an absolute path: --with-text-file=$with_textfile_req"
+ exit 1
+ ;;
+esac
+ac_cv_textfile="$with_textfile"
-fi
+DEFAULT_TEXT_FILE="$ac_cv_textfile"
-unset ac_cv_path_fortune_tmp
-unset fortune_tmp
-AC_DEFINE_UNQUOTED(FORTUNE_PROGRAM, "$ac_cv_fortune_program")
+###############################################################################
+#
+# Check the browser to see help URL
+#
+###############################################################################
+have_browser=no
+with_browser_req=unspecified
+
+AC_ARG_WITH(browser,
+[ --with-browser=BROWSER Specify the browser to show help URL.],
+ [with_browser="$withval"; with_browser_req="$withval"],
+ [with_browser=no ])
+# no HANDLE_X_PATH_ARG for this one
+
+case "$with_browser" in
+ no )
+ ;;
+ * )
+ WITH_BROWSER=$with_browser
+ gnome_open_program=$with_browser
+ AC_MSG_CHECKING([for browser $with_browser])
+ with_browser_fullpath=`which $with_browser 2>/dev/null`
+ case $with_browser_fullpath in
+ /* )
+ AC_MSG_RESULT(yes)
+ have_browser=yes
+ ;;
+ * )
+ AC_MSG_RESULT(no)
+# Only warning: we don't want to install all packages for the
+# dependency of the browser in building stage...
+ echo "WARNING: browser not found: --with-browser=$with_browser"
+ ;;
+ esac
+ ;;
+esac
+ac_cv_browser="$with_browser"
###############################################################################
#
tab=' '
if test "$have_gl" = yes; then
GL_EXES='$(GL_EXES)'
+ SUID_EXES='$(SUID_EXES)'
+ RETIRED_GL_EXES='$(RETIRED_GL_EXES)'
GL_UTIL_EXES='$(GL_UTIL_EXES)'
GL_MEN='$(GL_MEN)'
- GL_KLUDGE="${tab} "
+ GL_KLUDGE=" "
else
- GL_KLUDGE="-${tab} "
+ GL_KLUDGE="-"
fi
if test "$have_gle" = yes; then
GLE_EXES='$(GLE_EXES)'
- GLE_KLUDGE="${tab} "
+ GLE_KLUDGE=" "
else
- GLE_KLUDGE="-${tab} "
+ GLE_KLUDGE="-"
fi
if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then
fi
-# Now that we know whether we have Gnome, we can decide where the XML
-# config files get installed.
-#
-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
-fi
-
-
-
-# After computing $HACK_CONF_DIR, make sure $GLADE_DATADIR has a value
-# so that we know where to install the Gtk pixmaps.
-#
-# It should usually be "/usr/share/pixmaps/", but we can't just use
-# "$(prefix)/share/pixmaps" because that would usually result in
-# "/usr/X11R6/share/pixmaps/", which is wrong. It needs to be the
-# Gtk prefix, not the overall prefix.
-#
-if test -n "$GNOME_DATADIR" ; then
- GLADE_DATADIR='$(GNOME_DATADIR)/xscreensaver'
-elif test "$have_gtk" = yes; then
- GLADE_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
- GLADE_DATADIR="$GLADE_DATADIR/share/xscreensaver"
-else
- GLADE_DATADIR=''
-fi
-
-
# Set PO_DATADIR to something sensible.
#
AC_MSG_CHECKING([for locale directory])
-if test -n "$GNOME_DATADIR" ; then
- PO_DATADIR="$GNOME_DATADIR"
+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"
# 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}
+ dd=`eval eval eval eval eval eval eval eval eval eval eval echo $datadir`
PO_DATADIR=`echo $dd | sed 's@/X11R6/@/@'`
fi
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(HAVE_PAM_FAIL_DELAY)
+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(WITH_BROWSER)
AC_SUBST(OBJCC)
AC_SUBST(EXES_OSX)
AC_SUBST(LOCK_OBJS)
AC_SUBST(JPEG_EXES)
AC_SUBST(GL_EXES)
+AC_SUBST(RETIRED_GL_EXES)
+AC_SUBST(SUID_EXES)
AC_SUBST(GL_UTIL_EXES)
AC_SUBST(GL_MEN)
AC_SUBST(GL_KLUDGE)
AC_SUBST(GNOME22)
AC_SUBST(NOGNOME)
AC_SUBST(HACKDIR)
-AC_SUBST(GNOME_DATADIR)
-AC_SUBST(GLADE_DATADIR)
+AC_SUBST(HACKDIR_FULL)
+AC_SUBST(GTK_DATADIR)
AC_SUBST(PO_DATADIR)
-AC_SUBST(GNOME_PANELDIR)
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
pgl="$preferred_mesagl"
if test "$ac_mesagl_version" = unknown; then
- warnL "Unable to determine the MesaGL version number!"
- warn2 "Make sure you are using version $preferred_mesagl or newer."
+ true
+ # warnL "Unable to determine the MesaGL version number!"
+ # warn2 "Make sure you are using version $preferred_mesagl or newer."
elif test \! "$ac_mesagl_version" -gt 2006; then
warnL "MesaGL version number is $mgv --"
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
warn 'Use of shadow passwords was requested, but they were not found.'
fi
+if test "$ac_macosx" = yes ; then
+ if test "$enable_locking" = yes ; then
+ warn "You have specified --enable-locking on MacOS X."
+ warn2 "THIS DOES NOT WORK! Don't do this!"
+ fi
+fi
+
# You are in a twisty maze of namespaces and syntaxes, all alike.
# Fuck the skull of Unix.
#
-eval bindir=${bindir}
-eval bindir=${bindir}
-eval bindir=${bindir}
-eval bindir=${bindir}
-eval bindir=${bindir}
-eval bindir=${bindir}
-eval HACKDIR=${HACKDIR}
-eval HACKDIR=${HACKDIR}
-eval HACKDIR=${HACKDIR}
-eval HACKDIR=${HACKDIR}
-eval HACKDIR=${HACKDIR}
-eval HACKDIR=${HACKDIR}
-eval HACK_CONF_DIR=${HACK_CONF_DIR}
-eval HACK_CONF_DIR=${HACK_CONF_DIR}
-eval HACK_CONF_DIR=${HACK_CONF_DIR}
-eval HACK_CONF_DIR=${HACK_CONF_DIR}
-eval HACK_CONF_DIR=${HACK_CONF_DIR}
-eval HACK_CONF_DIR=${HACK_CONF_DIR}
+bindir=`eval eval eval eval eval eval eval echo $bindir`
+HACKDIR=`eval eval eval eval eval eval eval echo $HACKDIR`
+HACK_CONF_DIR=`eval eval eval eval eval eval eval echo $HACK_CONF_DIR`
# canonicalize slashes.
bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
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. Try "rpmbuild -v -ba xscreensaver.spec".'
- warn2 "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/."
- do_dir_warning=yes
- else
- warn2 "The RPM version was installed in $rpmbdir/,"
- warn2 "with demos in $rpmhdir/."
+ if test \! -z "$rpmv" ; then
+ rpmbdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
+ rpmhdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/popsquares$@\1@p'`
+
+ 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
+# Also warn if there's a Debian package installed.
+#
+debnames="xscreensaver xscreensaver-data xscreensaver-data-extra"
+debv=''
+for dpkg in $debnames ; do
+ if test -z "$debv"; then
+ debv=`dpkg -s $dpkg 2>/dev/null | sed -n 's/^Version: \(.*\)$/\1/p'`
+ fi
+done
+
+if test \! -z "$debv" ; then
+ debbdir=`dpkg -L $debnames 2>/dev/null | \
+ sed -n 's@^\(.*/bin/\)xscreensaver$@\1@p'`
+ debhdir=`dpkg -L $debnames 2>/dev/null | \
+ sed -n 's@^\(.*/\)popsquares$@\1@p'`
+ if test -z "$debbdir" ; then debbdir='???'; fi
+ if test -z "$debhdir" ; then debhdir='???'; fi
+
+ warning=no
+ warnL "There is already an installed dpkg of xscreensaver"
+ warn2 "version \"$debv\" on this system."
+ echo ""
+ warn2 "The dpkg was installed in $debbdir,"
+ warn2 "with demos in $debhdir."
+fi
+
if test "${bindir}" = "${HACKDIR}" ; then
do_dir_warning=yes
fi
echo "User programs will be installed in ${bindir}/"
echo "Screen savers will be installed in ${HACKDIR}/"
- echo "Configuration will be installed in ${HACK_CONF_DIR}/"
+ echo "Configuration dialogs will be installed in ${HACK_CONF_DIR}/"
+ echo "System-wide default settings will be installed in ${APPDEFAULTS}/"
echo ''
fi