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.)])
+
+# This only ever existed in X11R4 and X11R5.
+#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.])
+
+# Using this extension will crash your X server and make fading not work.
+#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.)])
+
+# This only ever existed on SGI hardware.
+#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.])
+
+# This only ever existed on SGI hardware.
+#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_XINPUT],
+ [Define this if you have the Xinput extension. This is
+ standard since X11R5, and is thus almost everywhere.
+ (It's available if the file /usr/include/X11/extensions/XInput.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_JWZGLES],[Define this to target the OpenGL ES 1.x API
+ instead of OpenGL 1.3.])
+
+AH_TEMPLATE([HAVE_GLBITMAP],[Define this if glBitmap exists.])
+
+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_CHECK_ACCOUNT_TYPE],
+ [Whether PAM should check the result of account modules
+ when authenticating. Only do this if you have account
+ configured properly on your system.])
+
+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_GETIFADDRS],
+ [Define this if you have the getifaddrs() function.])
+
+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.
;;
esac])
+AC_DEFUN(AC_CHECK_GETIFADDRS,
+ [AC_CACHE_CHECK([for getifaddrs], ac_cv_have_getifaddrs,
+ [AC_TRY_COMPILE([#include <stdlib.h>
+ #include <unistd.h>
+ #include <arpa/inet.h>
+ #include <ifaddrs.h>],
+ [struct ifaddrs *ifa;
+ getifaddrs (&ifa);
+ ifa->ifa_next = 0;
+ ifa->ifa_addr->sa_family = 0;],
+ [ac_cv_have_getifaddrs=yes],
+ [ac_cv_have_getifaddrs=no])])
+ if test "$ac_cv_have_getifaddrs" = yes ; then
+ AC_DEFINE(HAVE_GETIFADDRS)
+ fi])
###############################################################################
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_HEADER_SYS_WAIT
AC_HEADER_DIRENT
AC_GETTIMEOFDAY_ARGS
+AC_SYS_LARGEFILE
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_GETIFADDRS
AC_CHECK_HEADERS(crypt.h sys/select.h)
AC_PROG_PERL
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"
Installation options:
--with-hackdir=DIR Where to install the hundreds of demo executables.
- Default: `EPREFIX/lib/xscreensaver/'],
+ Default: `PREFIX/libexec/xscreensaver/'],
[with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes])
if test x"$with_hackdir" = xyes; then
# 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.
#
###############################################################################
[ --with-configdir=DIR Where to install the data files that describe each
of the display modes to the GUI.
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])
#
###############################################################################
-have_sgi=no
-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
-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.
-
-By default, support for each of these options will be built in, if the
-relevant library routines exist. At run time, they will then be used
-only if the X server being used supports them. Each --with option has
-a corresponding --without option, to override building support for them
-at all.
-
-Screen blanking and idle-detection options:
-
- --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.],
- [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
-
-HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
-
-if test "$with_sgi" = yes; then
- AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
- [have_sgi=yes
- AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],,
- [#include <X11/Xlib.h>])
-
-elif test "$with_sgi" != no; then
- echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
- exit 1
-fi
+#have_sgi=no
+#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
+#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.
+#
+#By default, support for each of these options will be built in, if the
+#relevant library routines exist. At run time, they will then be used
+#only if the X server being used supports them. Each --with option has
+#a corresponding --without option, to override building support for them
+#at all.
+#
+#Screen blanking and idle-detection options:
+#
+# --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.],
+# [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
+#
+#HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
+#
+#if test "$with_sgi" = yes; then
+# AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
+# [have_sgi=yes
+# AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],,
+# [#include <X11/Xlib.h>])
+#
+#elif test "$with_sgi" != no; then
+# echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
+# exit 1
+#fi
###############################################################################
#
###############################################################################
-have_xidle=no
-with_xidle_req=unspecified
-AC_ARG_WITH(xidle-ext,
-[ --with-xidle-ext Include support for the XIDLE extension.],
- [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
-
-HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
-
-if test "$with_xidle" = yes; then
- AC_CHECK_X_HEADER(X11/extensions/xidle.h,
- [have_xidle=yes
- AC_DEFINE(HAVE_XIDLE_EXTENSION)],,
- [#include <X11/Xlib.h>])
-elif test "$with_xidle" != no; then
- echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
- exit 1
-fi
+#have_xidle=no
+#with_xidle_req=unspecified
+#AC_ARG_WITH(xidle-ext,
+#[ --with-xidle-ext Include support for the XIDLE extension.],
+# [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
+#
+#HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
+#
+#if test "$with_xidle" = yes; then
+# AC_CHECK_X_HEADER(X11/extensions/xidle.h,
+# [have_xidle=yes
+# AC_DEFINE(HAVE_XIDLE_EXTENSION)],,
+# [#include <X11/Xlib.h>])
+#elif test "$with_xidle" != no; then
+# echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
+# exit 1
+#fi
###############################################################################
#
###############################################################################
-have_sgivc=no
-with_sgivc_req=unspecified
-AC_ARG_WITH(sgivc-ext,
-[ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension.],
- [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
-
-HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
-
-if test "$with_sgivc" = yes; then
-
- # first check for XSGIvc.h
- AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],,
- [#include <X11/Xlib.h>])
-
- # if that succeeded, then check for the -lXsgivc
- if test "$have_sgivc" = yes; then
- have_sgivc=no
- AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
- [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
- -lXext -lX11)
- fi
-
- # if that succeeded, then we've really got it.
- if test "$have_sgivc" = yes; then
- AC_DEFINE(HAVE_SGI_VC_EXTENSION)
- fi
-
-elif test "$with_sgivc" != no; then
- echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
- exit 1
-fi
+#have_sgivc=no
+#with_sgivc_req=unspecified
+#AC_ARG_WITH(sgivc-ext,
+#[ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension.],
+# [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
+#
+#HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
+#
+#if test "$with_sgivc" = yes; then
+#
+# # first check for XSGIvc.h
+# AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],,
+# [#include <X11/Xlib.h>])
+#
+# # if that succeeded, then check for the -lXsgivc
+# if test "$have_sgivc" = yes; then
+# have_sgivc=no
+# AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
+# [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
+# -lXext -lX11)
+# fi
+#
+# # if that succeeded, then we've really got it.
+# if test "$have_sgivc" = yes; then
+# AC_DEFINE(HAVE_SGI_VC_EXTENSION)
+# fi
+#
+#elif test "$with_sgivc" != no; then
+# echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
+# exit 1
+#fi
###############################################################################
fi
+###############################################################################
+#
+# Check for the XINPUT server extension.
+#
+###############################################################################
+
+have_xinput=no
+with_xinput_req=unspecified
+AC_ARG_WITH(xinput-ext,
+[ --with-xinput-ext Include support for the XInput extension.],
+ [with_xinput="$withval"; with_xinput_req="$withval"], [with_xinput=yes])
+
+HANDLE_X_PATH_ARG(with_xinput, --with-xinput-ext, XINPUT)
+
+if test "$with_xinput" = yes; then
+
+ # first check for Xinput.h
+ AC_CHECK_X_HEADER(X11/extensions/XInput.h, [have_xinput=yes],,
+ [#include <X11/Xlib.h>])
+
+ # if that succeeded, then check for libXi
+ if test "$have_xinput" = yes; then
+ have_xinput=no
+ AC_CHECK_X_LIB(Xi, XListInputDevices,
+ [have_xinput=yes; SAVER_LIBS="$SAVER_LIBS -lXi"],
+ [true], -lXext -lX11)
+ fi
+
+ # if that succeeded, then we've really got it.
+ if test "$have_xinput" = yes; then
+ AC_DEFINE(HAVE_XINPUT)
+ fi
+
+elif test "$with_xinput" != no; then
+ echo "error: must be yes or no: --with-xinput-ext=$with_xinput"
+ exit 1
+fi
+
+
###############################################################################
#
# Check for the XF86VMODE server extension (for virtual screens.)
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:
--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 arg is the name of the PAM service that
+ xscreensaver will authenticate as.]),
+ [pam_service_name="$withval"],[pam_service_name="xscreensaver"])
+
+AC_ARG_ENABLE(pam-check-account-type,
+ [AC_HELP_STRING([--enable-pam-check-account-type],
+ [Whether PAM should check the result of account
+ modules when authenticating. Only do this if you
+ have account configured properly on your system.])],
+ [enable_pam_check_account_type="$enableval"],[enable_pam_check_account_type=no])
+if test "$enable_pam_check_account_type" = yes ; then
+ AC_DEFINE(PAM_CHECK_ACCOUNT_TYPE)
+ true
+elif test "$enable_pam_check_account_type" != no ; then
+ echo "error: must be yes or no: --enable-pam-check-account-type=$enable_pam_check_account_type"
+ exit 1
+fi
+
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
#
###############################################################################
-have_login_manager=no
with_login_manager_req=unspecified
-default_login_manager='gdmflexiserver -l'
+default_login_manager_1='gdmflexiserver -ls'
+default_login_manager_2='kdmctl reserve'
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.],
+ runs a login manager like gdmflexiserver or kdmctl.],
[with_login_manager="$withval"; with_login_manager_req="$withval"],
- [with_login_manager=no])
+ [with_login_manager=yes])
# no HANDLE_X_PATH_ARG for this one
if test "$enable_locking" = no ; then
with_login_manager=no
fi
-if test -n "$with_login_manager_req" ; then
- ac_cv_login_manager_program=""
+case "$with_login_manager_req" in
+ no)
+ with_login_manager=""
+ ;;
- if test "$with_login_manager_req" = "yes" ; then
- with_login_manager_req=$default_login_manager
- fi
+ yes|unspecified)
+ # Try both defaults, use the one that exists.
- 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
+ set dummy $default_login_manager_1 ; login_manager_tmp=$2
+ unset ac_cv_path_login_manager_tmp # don't cache
+ AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, [])
+ if test ! -z "$login_manager_tmp" ; then
+ with_login_manager="$default_login_manager_1"
+ else
+ set dummy $default_login_manager_2 ; login_manager_tmp=$2
+ unset ac_cv_path_login_manager_tmp # don't cache
AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, [])
- if test -z "$login_manager_tmp" ; then
- with_login_manager=""
+ if test ! -z "$login_manager_tmp" ; then
+ with_login_manager="$default_login_manager_2"
else
- with_login_manager="$login_manager_tmp"
+ with_login_manager=""
fi
- ;;
- esac
- ac_cv_login_manager_program="$with_login_manager"
+ fi
+ ;;
-elif test -n "$ac_cv_login_manager_program"; then
- AC_MSG_RESULT([checking for login_manager... (cached) $ac_cv_login_manager_program])
-fi
+ /*)
+ # absolute path specified on cmd line
+ 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 specified on cmd line
+ set dummy $with_login_manager_req ; login_manager_tmp=$2
+ unset ac_cv_path_login_manager_tmp # don't cache
+ 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"
NEW_LOGIN_COMMAND_P=''
NEW_LOGIN_COMMAND="$ac_cv_login_manager_program"
+AC_MSG_CHECKING(for login manager)
if test -z "$NEW_LOGIN_COMMAND" ; then
- NEW_LOGIN_COMMAND="$default_login_manager"
+ NEW_LOGIN_COMMAND="$default_login_manager_1"
NEW_LOGIN_COMMAND_P='! '
+ AC_MSG_RESULT($NEW_LOGIN_COMMAND (disabled))
+else
+ AC_MSG_RESULT($NEW_LOGIN_COMMAND)
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
# 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)
have_motif=no
with_motif_req=unspecified
AC_ARG_WITH(motif,[ --with-motif Use the Motif toolkit for the user interface
- (not recommended.)],
+ (no longer supported.)],
[with_motif="$withval"; with_motif_req="$withval"],[with_motif=no])
HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
#
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
+
+ # New lossage in 10.6.8: we can't allow -L/opt/local/lib to be in the
+ # link line, or at runtime XQueryExtension gets a segv due to some kind
+ # of library version skew. Libs must come from /usr/X11/lib even if
+ # $prefix and/or $exec_prefix are set to /opt/local/.
+ #
+ AC_MSG_RESULT(omitting "$libdir" from LDFLAGS)
+ libdir=''
+
+ fi
+
# Some versions of MesaGL are compiled to require -lpthread.
# So if the Mesa headers exist, and -lpthread exists, then always
fi
+###############################################################################
+#
+# Handle --with-gles
+#
+###############################################################################
+
+with_gles_req=unspecified
+AC_ARG_WITH(gles,
+[ --with-gles Target OpenGL ES 1.x API instead of OpenGL 1.3.],
+ [with_gles="$withval"; with_gles_req="$withval"],[with_gles=no])
+
+HANDLE_X_PATH_ARG(with_gles, --with-gles, JWZGLES)
+
+if test "$with_gles" = yes; then
+ have_gles=yes
+ AC_DEFINE(HAVE_JWZGLES)
+ JWZGLES_OBJS="jwzgles.o"
+ AC_MSG_RESULT(using OpenGL ES compatiblity shim)
+elif test "$with_gles" != no; then
+ echo "error: must be yes or no: --with-gles=$with_xpm"
+ exit 1
+fi
+
+# May want to phase out glBitmap even in a non-GLES world.
+#
+if test "$have_gles" = yes; then
+ GLFPS_OBJS="fps-gl.o glxfonts.o texfont.o"
+ GLFONT_OBJS=""
+else
+ AC_DEFINE(HAVE_GLBITMAP)
+ GLFPS_OBJS="fps-gl.o glxfonts.o"
+ GLFONT_OBJS="texfont.o"
+fi
+
+
###############################################################################
#
# Check for -lgdk_pixbuf.
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
###############################################################################
#
with_imagedir_req=unspecified
AC_ARG_WITH(image-directory,
-[ --with-image-directory=DIR By default, some screen savers may load
- random images out of this directory.],
+[ --with-image-directory Arg is the default directory from which some demos
+ will choose random images to display.],
[with_imagedir="$withval"; with_imagedir_req="$withval"],
[with_imagedir=yes])
# no HANDLE_X_PATH_ARG for this one
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".
+#
+###############################################################################
+
+have_textfile=no
+with_textfile_req=unspecified
+
+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
+
+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/libX11*/COPYING" \
+ "/usr/X11/share/X11/doc/README*" \
+ "/usr/share/doc/debian/debian-manifesto" \
+ ; do
+ if test -z "$with_textfile"; then
+ AC_MSG_CHECKING([for text file $f])
+ f=`/bin/ls $f 2>&- | head -1`
+ if test -f "$f" ; then
+ AC_MSG_RESULT(yes)
+ with_textfile="$f"
+ else
+ AC_MSG_RESULT(no)
+ fi
+ fi
+ done
+
+ ;;
+ no)
+ with_textfile=""
+ ;;
+
+ *)
+ echo "error: must be an absolute path: --with-text-file=$with_textfile_req"
+ exit 1
+ ;;
+esac
+ac_cv_textfile="$with_textfile"
+
+DEFAULT_TEXT_FILE="$ac_cv_textfile"
+
+
+###############################################################################
+#
+# Check the browser to see help URL
+#
+###############################################################################
+
+have_browser=no
+with_browser_req=unspecified
+
+AC_ARG_WITH(browser,
+[ --with-browser=BROWSER Specify the web browser used to show the 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"
+
###############################################################################
#
# Check whether it's ok to install some hacks as setuid (e.g., "sonar")
PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
INSTALL_PAM="install-pam"
fi
+if test "$enable_pam_check_account_type" = yes; then
+ COMMENT_PAM_CHECK_ACCOUNT=""
+else
+ COMMENT_PAM_CHECK_ACCOUNT="#"
+fi
if test "$have_passwd_helper" = yes; then
PASSWD_SRCS="$PASSWD_SRCS \$(PWHELPER_SRCS)"
PASSWD_OBJS="$PASSWD_OBJS \$(PWHELPER_OBJS)"
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
# 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(INSTALL_DIRS)
AC_SUBST(NEED_SETUID)
AC_SUBST(INSTALL_PAM)
+AC_SUBST(HAVE_PAM_FAIL_DELAY)
+AC_SUBST(COMMENT_PAM_CHECK_ACCOUNT)
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(GLE_EXES)
AC_SUBST(GLE_KLUDGE)
+AC_SUBST(JWZGLES_OBJS)
+AC_SUBST(GLFPS_OBJS)
+AC_SUBST(GLFONT_OBJS)
AC_SUBST(GNOME24)
AC_SUBST(GNOME22)
AC_SUBST(NOGNOME)
AC_SUBST(HACKDIR)
+AC_SUBST(HACKDIR_FULL)
AC_SUBST(GTK_DATADIR)
AC_SUBST(PO_DATADIR)
AC_SUBST(HACK_CONF_DIR)
AC_OUTPUT(Makefile
utils/Makefile
driver/Makefile
+ driver/xscreensaver.pam
hacks/Makefile
hacks/glx/Makefile
po/Makefile.in
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 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'`
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'`
+ rpmhdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/popsquares$@\1@p'`
warning=no
warnL "There is already an installed RPM of xscreensaver $rpmv"
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
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