-# configure.in --- xscreensaver, Copyright (c) 1997 Jamie Zawinski.
+# configure.in --- xscreensaver, Copyright (c) 1997-2005 Jamie Zawinski.
#
+AC_PREREQ(2.52)
AC_INIT(driver/subprocs.c)
AC_CONFIG_HEADER(config.h)
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_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,
fi
done
-
###############################################################################
#
# Function to figure out how to run the compiler.
[AC_PROG_CC
if test -z "$GCC"; then
+ # not using GCC
AC_MSG_CHECKING(how to request ANSI compilation)
case "$host" in
*-hpux* )
AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e)
CC="$CC -qlanglvl=ansi -qhalt=e"
;;
-
*-dec-* )
- AC_MSG_RESULT(DEC: adding -std1)
+ AC_MSG_RESULT(DEC: adding -std1 -ieee)
CC="$CC -std1"
;;
-
*)
AC_MSG_RESULT(no idea)
;;
esac
+ else
+ # using GCC
+ case "$host" in
+ *-solaris*)
+ AC_MSG_RESULT(Solaris: adding -D__EXTENSIONS__)
+ CC="$CC -D__EXTENSIONS__"
+ ;;
+ esac
fi
+ OBJCC="$CC"
+
AC_MSG_CHECKING([whether the compiler works on ANSI C])
AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
AC_MSG_RESULT(yes),
if test -n "$GCC"; then
AC_MSG_RESULT(Turning on gcc compiler warnings.)
- CC="$CC -Wall -Wstrict-prototypes -Wnested-externs -Wno-format"
+ CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs -Wmissing-prototypes"
+ OBJCC="$OBJCC -Wall"
+ # 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]* )
])
+###############################################################################
+#
+# 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
+# gcc. Old gcc doesn't support -std, and new gcc doesn't support -lang.
+# so much for compatibility!)
+#
+# UPDATE: apparently there is NO WAY to tell gcc 3.2.2 to require that
+# declarations preceed statements, without resorting to "-pedantic".
+# This means that there is no way to get gcc3 to issue warnings that
+# ensure that your code complies with the ANSI/ISO C89 standard, without
+# also drowning in totally useless warnings. Thank you master may I
+# have another.
+#
+# So, I give up, let's just use -pedantic.
+#
+###############################################################################
+
+AC_DEFUN(AC_GCC_ACCEPTS_STD, [
+ 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,
+ [if test -n "$GCC"; then
+ AC_GCC_ACCEPTS_STD
+ AC_MSG_RESULT(Disabling C++ comments in ANSI C code.)
+ #
+ # The reason that // comments are banned from xscreensaver is that gcc is
+ # basically the only compiler in the world that supports them in C code.
+ # All other vendors support them only in their C++ compilers, not in their
+ # ANSI C compilers. This means that it's a portability problem: every time
+ # these comments have snuck into the xscreensaver source code, I've gotten
+ # complaints about it the next day. So we turn off support for them in gcc
+ # as well to prevent them from accidentially slipping in.
+ #
+ if test "$ac_gcc_accepts_std" = yes ; then
+ #
+ # -std=c89 defines __STRICT_ANSI__, which we don't want.
+ # (That appears to be the only additional preprocessor symbol
+ # it defines, in addition to the syntax changes it makes.)
+ #
+ # -std=gnu89 is no good, because // comments were a GNU extension
+ # before they were in the ANSI C 99 spec... (gcc 2.96 permits //
+ # with -std=gnu89 but not with -std=c89.)
+ #
+ # $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
+])
+
+
###############################################################################
#
# Function to figure out how to create directory trees.
###############################################################################
AC_DEFUN(AC_PROG_INSTALL_DIRS,
- [AC_CACHE_CHECK([whether \"\${INSTALL} -d\" creates intermediate directories],
+ [AC_CACHE_CHECK([whether "\${INSTALL} -d" creates intermediate directories],
ac_cv_install_d_creates_dirs,
[ac_cv_install_d_creates_dirs=no
rm -rf conftestdir
if mkdir conftestdir; then
- cd conftestdir >&-
- ${INSTALL} -d `pwd`/dir1/dir2 >&- 2>&-
+ cd conftestdir 2>/dev/null
+ ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1
if test -d dir1/dir2/. ; then
ac_cv_install_d_creates_dirs=yes
fi
- cd .. >&-
+ cd .. 2>/dev/null
rm -rf conftestdir
fi
])
if test "$ac_cv_install_d_creates_dirs" = no ; then
- AC_CACHE_CHECK([whether \"mkdir -p\" creates intermediate directories],
+ AC_CACHE_CHECK([whether "mkdir -p" creates intermediate directories],
ac_cv_mkdir_p_creates_dirs,
[ac_cv_mkdir_p_creates_dirs=no
rm -rf conftestdir
if mkdir conftestdir; then
- cd conftestdir >&-
- mkdir -p dir1/dir2 >&- 2>&-
+ cd conftestdir 2>/dev/null
+ mkdir -p dir1/dir2 >/dev/null 2>&1
if test -d dir1/dir2/. ; then
ac_cv_mkdir_p_creates_dirs=yes
fi
- cd .. >&-
+ cd .. 2>/dev/null
rm -rf conftestdir
fi
])
changequote([,])
AC_DEFUN(AC_PROG_PERL,
- [PERL=''
- AC_PATH_PROGS(PERL, [perl5 perl],,)
+ [AC_PATH_PROGS(PERL, [perl5 perl],,)
if test -z "$PERL" ; then
PERL_VERSION=0
else
])
+###############################################################################
+#
+# Function to demand "bc". Losers.
+#
+###############################################################################
+
+AC_DEFUN(AC_DEMAND_BC,
+ [ac_bc_result=`echo 6+9 | bc 2>/dev/null`
+ AC_MSG_CHECKING([for bc])
+ if test "$ac_bc_result" = "15" ; then
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ echo ''
+ AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard
+ part of Unix since the 1970s. Come back when your vendor
+ has grown a clue.])
+ fi
+ ])
+
###############################################################################
#
# Functions to check how to do ICMP PING requests.
i.icmp_id = 0;
i.icmp_seq = 0;
si.sin_family = AF_INET;
- ip.ip_hl = 0;],
+ #if defined(__DECC) || defined(_IP_VHL)
+ ip.ip_vhl = 0;
+ #else
+ ip.ip_hl = 0;
+ #endif
+ ],
[ac_cv_have_icmp=yes],
[ac_cv_have_icmp=no])])
if test "$ac_cv_have_icmp" = yes ; then
struct ip ip;
i.type = ICMP_ECHO;
i.code = 0;
- i.cksum = 0;
+ i.checksum = 0;
i.un.echo.id = 0;
i.un.echo.sequence = 0;
si.sin_family = AF_INET;
AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
rm -fr conftestdir
if mkdir conftestdir; then
- cd conftestdir >&-
+ cd conftestdir 2>/dev/null
# Make sure to not put "make" in the Imakefile rules, since we grep it out.
cat > Imakefile <<'EOF'
acfindx:
@echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
EOF
- if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
+ if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then
# GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
fi
- cd .. >&-
+ cd .. 2>/dev/null
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.
#
for version in X11R6 X11R5 X11R4 ; do
# if either pair of directories exists...
- if test -d /usr/lib/$version || test -d /usr/contrib/$version/lib
+ if test -d /usr/include/$version || test -d /usr/contrib/$version/include
then
# if contrib exists, use it...
- if test -d /usr/contrib/$version/lib ; then
+ if test -d /usr/contrib/$version/include ; then
X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
fi
# if the "standard" one exists, use it.
- if test -d /usr/lib/$version ; then
+ if test -d /usr/include/$version ; then
X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
X_LIBS="$X_LIBS -L/usr/lib/$version"
fi
# Now find Motif. Thanks for not making xmkmf find this by
# default, you losers.
#
- if test -d /usr/lib/Motif1.2 ; then
+ if test -d /usr/include/Motif2.1 ; then
+ X_CFLAGS="$X_CFLAGS -I/usr/include/Motif2.1"
+ X_LIBS="$X_LIBS -L/usr/lib/Motif2.1"
+ elif test -d /usr/include/Motif1.2 ; then
X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
- elif test -d /usr/lib/Motif1.1 ; then
+ elif test -d /usr/include/Motif1.1 ; then
X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
fi
# Now let's check for the pseudo-standard locations for OpenGL and XPM.
#
- if test -d /opt/Mesa/lib ; then
+ if test -d /opt/graphics/OpenGL/include ; then
+ # HP-UX 10.20 puts it here
+ X_CFLAGS="-I/opt/graphics/OpenGL/include $X_CFLAGS"
+ X_LIBS="-L/opt/graphics/OpenGL/lib $X_LIBS"
+ elif test -d /opt/Mesa/lib ; then
X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
X_LIBS="-L/opt/Mesa/lib $X_LIBS"
fi
+
if test -d /opt/xpm/lib/X11 ; then
X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
#
if test -f /usr/dt/include/Xm/Xm.h ; then
X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
- X_LIBS="$X_LIBS -L/usr/dt/lib -R:/usr/dt/lib"
+ MOTIF_LIBS="$MOTIF_LIBS -L/usr/dt/lib -R/usr/dt/lib"
# Some versions of Slowlaris Motif require -lgen. But not all. Why?
- AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"])
+ AC_CHECK_LIB(gen, regcmp, [MOTIF_LIBS="$MOTIF_LIBS -lgen"])
+ fi
+
+ ;;
+ *-darwin*)
+
+ # On MacOS X (10.x with "fink"), many things are under /sw/.
+ #
+ if test -d /sw/include ; then
+ X_CFLAGS="-I/sw/include $X_CFLAGS"
+ X_LIBS="-L/sw/lib $X_LIBS"
fi
;;
esac])
CPPFLAGS="$CPPFLAGS -I$includedir"
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
- AC_CHECK_HEADER([$1], [$2])
+ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS`
+ AC_CHECK_HEADER([$1],[$2],[$3],[$4])
CPPFLAGS="$ac_save_CPPFLAGS"])
# Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
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"])
LDFLAGS="$LDFLAGS -L$libdir"
fi
# note: $X_LIBS includes $x_libraries
- LDFLAGS="$LDFLAGS $X_LIBS"
+ 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_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_EXEEXT
+AC_DEMAND_BC
# stuff for Makefiles
AC_PROG_INSTALL
AC_PROG_INSTALL_DIRS
AC_PROG_MAKE_SET
+# By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'.
+# That's wrong: it should be set to '${INSTALL}', so that one can
+# implement the "install-strip" target properly (strip executables,
+# but do not try to strip scripts.)
+#
+INSTALL_SCRIPT='${INSTALL}'
+
# random libc stuff
AC_HEADER_STDC
AC_CHECK_HEADERS(unistd.h)
AC_HEADER_SYS_WAIT
AC_HEADER_DIRENT
AC_GETTIMEOFDAY_ARGS
-AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv)
-
-AC_CHECK_FUNCS(sigaction syslog realpath)
+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)
if test -z "$PERL" ; then
# don't let it be blank...
- PERL=/usr/local/bin/perl5
+ PERL=/usr/bin/perl
fi
AC_PATH_XTRA
if test "$have_x" != yes; then
- AC_MSG_ERROR(Couldn't find X11 headers/libs. Try \`$0 --help'.)
+ AC_MSG_ERROR(Couldn't find X11 headers/libs. Try `$0 --help'.)
fi
AC_PATH_X_APP_DEFAULTS
AC_X_RANDOM_PATHS
AC_XPOINTER
+AC_MSG_CHECKING(whether this is MacOS X)
+ ac_macosx=no
+ case "$host" in
+ *-apple-darwin* )
+ ac_macosx=yes
+ ;;
+ esac
+AC_MSG_RESULT($ac_macosx)
+
+
+###############################################################################
+#
+# Gettext support
+#
+###############################################################################
+
+AC_PROG_INTLTOOL
+GETTEXT_PACKAGE=xscreensaver
+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 nb nl pl pt pt_BR ru sk sv vi wa zh_CN zh_TW"
+AM_GLIB_GNU_GETTEXT
+MKINSTALLDIRS="$INSTALL_DIRS"
###############################################################################
###############################################################################
have_xmu=no
-AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes])
+AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes],,
+ [#include <stdlib.h>
+ #include <stdio.h>
+ #include <X11/Intrinsic.h>])
if test "$have_xmu" = no ; then
XMU_SRCS='$(UTILS_SRC)/xmu.c'
XMU_OBJS='$(UTILS_BIN)/xmu.o'
+ XMU_LIBS=''
else
XMU_SRCS=''
XMU_OBJS=''
- SAVER_LIBS="-lXmu $SAVER_LIBS"
- HACK_LIBS="-lXmu $HACK_LIBS"
- MOTIF_LIBS="-lXmu $MOTIF_LIBS"
- GTK_LIBS="-lXmu $GTK_LIBS"
- ATHENA_LIBS="-lXmu $ATHENA_LIBS"
- ATHENA3D_LIBS="-lXmu $ATHENA3D_LIBS"
+ XMU_LIBS='-lXmu'
AC_DEFINE(HAVE_XMU)
fi
###############################################################################
#
-# Handle the --enable-subdir option
+# Handle the --with-hackdir option
#
###############################################################################
-AC_ARG_ENABLE(subdir,[
+have_hackdir=yes
+with_hackdir_req=unspecified
+AC_ARG_WITH(hackdir,[
+
Installation options:
+ --with-hackdir=DIR Where to install the hundreds of demo executables.
+ Default: `PREFIX/libexec/xscreensaver/'],
+ [with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes])
+
+if test x"$with_hackdir" = xyes; then
+ HACKDIR='${libexecdir}/xscreensaver'
+elif test x"$with_hackdir" = xno; then
+ HACKDIR='${bindir}'
+else
+ 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`
- --enable-subdir=DIR Put the demo programs in a subdirectory of \`bindir',
- instead of putting them in bindir itself. You can
- specify the name of the subdirectory. For example,
- \`--exec-prefix=/usr/local --enable-subdir=demos'
- would put xscreensaver in /usr/local/bin/, and would
- put the demos in /usr/local/bin/demos/. (If DIR
- begins with /, then bindir will not be prepended.)
+# This option used to be called --enable-subdir; make sure that is no longer
+# used, since configure brain-damagedly ignores unknown --enable options.
- --disable-subdir Just put the demos in \`bindir' (this is the default.)
+obsolete_enable=
+AC_ARG_ENABLE(subdir,,[obsolete_enable=yes])
+if test -n "$obsolete_enable"; then
+ echo "error: the --enable-subdir option has been replaced with"
+ echo " the new --with-hackdir option; see \`configure --help'"
+ echo " for more information."
+ exit 1
+fi
+
+
+###############################################################################
+#
+# Handle the --with-configdir option
+# Help for --with-x-app-defaults option added.
+#
+###############################################################################
+
+have_configdir=yes
+with_configdir_req=unspecified
+AC_ARG_WITH(configdir,
+[ --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.
],
- [enable_subdir="$enableval"],[enable_subdir=no])
-if test x"$enable_subdir" = xno; then
- HACKDIR='${bindir}'
-elif test x"$enable_subdir" = xyes -o x"$enable_subdir" = x ; then
- echo "error: must be a subdirectory name: --enable-subdir=$enable_subdir"
+ [with_configdir="$withval"; with_configdir_req="$withval"],
+ [with_configdir=yes])
+
+if test x"$with_configdir" = xyes; then
+ 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
else
# there must be a better way than this...
- if test -z "`echo $enable_subdir | sed 's@^/.*@@'`" ; then
+ if test -z "`echo $with_configdir | sed 's@^/.*@@'`" ; then
# absolute path
- HACKDIR=$enable_subdir
+ HACK_CONF_DIR=$with_configdir
else
# relative path
- HACKDIR='${bindir}/'$enable_subdir
+ HACK_CONF_DIR="\${exec_prefix}$with_configdir"
fi
fi
-# canonicalize slashes.
-HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
+
###############################################################################
#
###############################################################################
-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.
+#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
-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:
+###############################################################################
+#
+# Check for the XIDLE server extension.
+#
+###############################################################################
- --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.],
- [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
+#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
-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)])
+###############################################################################
+#
+# Check for the SGI-VIDEO-CONTROL server extension.
+#
+###############################################################################
-elif test "$with_sgi" != no; then
- echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
- 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
###############################################################################
#
-# Check for the MIT-SCREEN-SAVER server extension.
+# Check for the DPMS 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])
+have_dpms=no
+with_dpms_req=unspecified
+AC_ARG_WITH(dpms-ext,
+[ --with-dpms-ext Include support for the DPMS extension.],
+ [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
-HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
+HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
-if test "$with_mit" = yes; then
- AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes])
+if test "$with_dpms" = yes; then
- # 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
+ # first check for dpms.h
+ AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes],,
+ [#include <X11/Xlib.h>
+ #include <X11/Xmd.h>])
- 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 that succeeded, then check for the DPMS code in the libraries
+ if test "$have_dpms" = yes; then
- if test "$have_mit" = yes; then
- AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
- fi
+ # first look in -lXext (this is where it is with XFree86 4.0)
+ have_dpms=no
+ AC_CHECK_X_LIB(Xext, DPMSInfo, [have_dpms=yes], [true], -lXext -lX11)
+ # if that failed, look in -lXdpms (this is where it was in XFree86 3.x)
+ if test "$have_dpms" = no; then
+ AC_CHECK_X_LIB(Xdpms, DPMSInfo,
+ [have_dpms=yes; XDPMS_LIBS="-lXdpms"], [true],
+ -lXext -lX11)
+ 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.
-#
-###############################################################################
-
-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 that succeeded, then we've really got it.
+ if test "$have_dpms" = yes; then
+ AC_DEFINE(HAVE_DPMS_EXTENSION)
+ fi
-if test "$with_xidle" = yes; then
- AC_CHECK_X_HEADER(X11/extensions/xidle.h,
- [have_xidle=yes
- AC_DEFINE(HAVE_XIDLE_EXTENSION)])
-elif test "$with_xidle" != no; then
- echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
+elif test "$with_dpms" != no; then
+ echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
exit 1
fi
###############################################################################
#
-# Check for the SGI-VIDEO-CONTROL server extension.
+# Check for the XINERAMA server extension.
#
###############################################################################
-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])
+have_xinerama=no
+with_xinerama_req=unspecified
+AC_ARG_WITH(xinerama-ext,
+[ --with-xinerama-ext Include support for the XINERAMA extension.],
+ [with_xinerama="$withval"; with_xinerama_req="$withval"],[with_xinerama=yes])
+
+HANDLE_X_PATH_ARG(with_xinerama, --with-xinerama-ext, XINERAMA)
-HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
+if test "$with_xinerama" = yes; then
-if test "$with_sgivc" = yes; then
+ # first check for Xinerama.h
+ AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes],,
+ [#include <X11/Xlib.h>])
- # first check for XSGIvc.h
- AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes])
+ # if that succeeded, then check for the XINERAMA code in the libraries
+ if test "$have_xinerama" = yes; then
- # 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],
+ # first look in -lXext
+ have_xinerama=no
+ AC_CHECK_X_LIB(Xext, XineramaQueryScreens, [have_xinerama=yes], [true],
-lXext -lX11)
+
+ # if that failed, look in -lXinerama (this is where it is in XFree86 4.1.)
+ if test "$have_xinerama" = no; then
+ AC_CHECK_X_LIB(Xinerama, XineramaQueryScreens,
+ [have_xinerama=yes; XINERAMA_LIBS="-lXinerama"],
+ [true], -lXext -lX11)
+ fi
fi
# if that succeeded, then we've really got it.
- if test "$have_sgivc" = yes; then
- AC_DEFINE(HAVE_SGI_VC_EXTENSION)
+ if test "$have_xinerama" = yes; then
+ AC_DEFINE(HAVE_XINERAMA)
fi
-elif test "$with_sgivc" != no; then
- echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
+elif test "$with_xinerama" != no; then
+ echo "error: must be yes or no: --with-xinerama-ext=$with_xinerama"
exit 1
fi
###############################################################################
#
-# Check for the DPMS server extension.
+# Check for the XINPUT server extension.
#
###############################################################################
-have_dpms=no
-with_dpms_req=unspecified
-AC_ARG_WITH(dpms-ext,
-[ --with-dpms-ext Include support for the DPMS extension.],
- [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
+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_dpms, --with-dpms-ext, DPMS)
+HANDLE_X_PATH_ARG(with_xinput, --with-xinput-ext, XINPUT)
-if test "$with_dpms" = yes; then
+if test "$with_xinput" = yes; then
- # first check for dpms.h
- AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes])
+ # 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 the -lXdpms
- if test "$have_dpms" = yes; then
- have_dpms=no
- AC_CHECK_X_LIB(Xdpms, DPMSInfo,
- [have_dpms=yes; SAVER_LIBS="$SAVER_LIBS -lXdpms"], [true],
- -lXext -lX11)
+ # 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_dpms" = yes; then
- AC_DEFINE(HAVE_DPMS_EXTENSION)
+ if test "$have_xinput" = yes; then
+ AC_DEFINE(HAVE_XINPUT)
fi
-elif test "$with_dpms" != no; then
- echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
+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.
+# Check for the XF86VMODE server extension (for virtual screens.)
#
###############################################################################
HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
+VIDMODE_LIBS=""
+
if test "$with_xf86vmode" = yes; then
# first check for xf86vmode.h
- AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes])
+ AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],,
+ [#include <X11/Xlib.h>])
# if that succeeded, then check for the -lXxf86vm
if test "$have_xf86vmode" = yes; then
have_xf86vmode=no
AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
- [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
+ [have_xf86vmode=yes;
+ VIDMODE_LIBS="-lXxf86vm";
+ SAVER_LIBS="$SAVER_LIBS $VIDMODE_LIBS"],
[true], -lXext -lX11)
fi
###############################################################################
#
-# Check for HP XHPDisableReset and XHPEnableReset.
+# Check for the XF86VMODE server extension (for gamma fading.)
#
###############################################################################
-AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
- [AC_DEFINE(HAVE_XHPDISABLERESET)
- SAVER_LIBS="-lXhp11 $SAVER_LIBS"])
+have_xf86gamma=no
+have_xf86gamma_ramp=no
+with_xf86gamma_req=unspecified
+AC_ARG_WITH(xf86gamma-ext,
+[ --with-xf86gamma-ext Include support for XFree86 gamma fading.],
+ [with_xf86gamma="$withval"; with_xf86gamma_req="$withval"],
+ [with_xf86gamma=yes])
+HANDLE_X_PATH_ARG(with_xf86gamma, --with-xf86gamma-ext, xf86gamma)
-###############################################################################
-#
-# Check for /proc/interrupts.
-#
-###############################################################################
+if test "$with_xf86gamma" = yes; then
-have_proc_interrupts=no
-with_proc_interrupts_req=unspecified
-AC_ARG_WITH(proc-interrupts,
-[ --with-proc-interrupts Include support for consulting the /proc/interrupts
- file to notice keyboard activity.],
- [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
- [with_proc_interrupts=yes])
+ # first check for xf86vmode.h, if we haven't already
+ if test "$have_xf86vmode" = yes; then
+ have_xf86gamma=yes
+ else
+ AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],,
+ [#include <X11/Xlib.h>])
+ fi
-if test "$with_proc_interrupts" = yes; then
+ # if that succeeded, then check for the -lXxf86vm
+ if test "$have_xf86gamma" = yes; then
+ have_xf86gamma=no
+ AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGamma,
+ [have_xf86gamma=yes],
+ [true], -lXext -lX11)
+ fi
- AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
- ac_cv_have_proc_interrupts,
- [ac_cv_have_proc_interrupts=no
- if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
- ac_cv_have_proc_interrupts=yes
- fi
- ])
- have_proc_interrupts=$ac_cv_have_proc_interrupts
+ # check for the Ramp versions of the functions too.
+ if test "$have_xf86gamma" = yes; then
+ have_xf86gamma_ramp=no
+ AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGammaRamp,
+ [have_xf86gamma_ramp=yes],
+ [true], -lXext -lX11)
+ fi
- if test "$have_proc_interrupts" = yes; then
- AC_DEFINE(HAVE_PROC_INTERRUPTS)
+ # if those tests succeeded, then we've really got the functions.
+ if test "$have_xf86gamma" = yes; then
+ AC_DEFINE(HAVE_XF86VMODE_GAMMA)
fi
-elif test "$with_proc_interrupts" != no; then
- echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
+ if test "$have_xf86gamma_ramp" = yes; then
+ AC_DEFINE(HAVE_XF86VMODE_GAMMA_RAMP)
+ fi
+
+ # pull in the lib, if we haven't already
+ if test "$have_xf86gamma" = yes -a "$have_xf86vmode" = no; then
+ SAVER_LIBS="$SAVER_LIBS -lXxf86vm"
+ fi
+
+elif test "$with_xf86gamma" != no; then
+ echo "error: must be yes or no: --with-xf86gamma-ext=$with_xf86vmode"
exit 1
fi
###############################################################################
#
-# The --enable-locking option
+# Check for the RANDR (Resize and Rotate) server extension.
+#
+# We need this to detect when the resolution of the desktop
+# has changed out from under us (this is a newer, different
+# mechanism than the XF86VMODE virtual viewports.)
#
###############################################################################
-AC_ARG_ENABLE(locking,[
-Screen locking options:
+have_randr=no
+with_randr_req=unspecified
+AC_ARG_WITH(randr-ext,
+[ --with-randr-ext Include support for the X Resize+Rotate extension.],
+ [with_randr="$withval"; with_randr_req="$withval"],[with_randr=yes])
- --enable-locking Compile in support for locking the display.
- --disable-locking Do not allow locking at all.
-],
- [enable_locking="$enableval"],[enable_locking=yes])
-if test "$enable_locking" = yes; then
- true
-elif test "$enable_locking" = no; then
- AC_DEFINE(NO_LOCKING)
-else
- echo "error: must be yes or no: --enable-locking=$enable_locking"
- exit 1
-fi
+HANDLE_X_PATH_ARG(with_randr, --with-randr-ext, RANDR)
+if test "$with_randr" = yes; then
+ # first check for Xrandr.h
+ AC_CHECK_X_HEADER(X11/extensions/Xrandr.h, [have_randr=yes],,
+ [#include <X11/Xlib.h>])
-###############################################################################
-#
-# The --enable-vt-locking option
-#
-###############################################################################
+ # if that succeeded, then check for the XRR code in the libraries
+ if test "$have_randr" = yes; then
-#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
+ # RANDR probably needs -lXrender
+ xrender_libs=
+ AC_CHECK_X_LIB(Xrender, XRenderSetSubpixelOrder,
+ [xrender_libs="-lXrender"], [true], -lXext -lX11)
+
+ # first look for RANDR in -lXext
+ have_randr=no
+ AC_CHECK_X_LIB(Xext, XRRGetScreenInfo,
+ [have_randr=yes; SAVER_LIBS="$SAVER_LIBS $xrender_libs"],
+ [true], $xrender_libs -lXext -lX11)
+
+ # if that failed, look in -lXrandr
+ if test "$have_randr" = no; then
+ AC_CHECK_X_LIB(Xrandr, XRRGetScreenInfo,
+ [have_randr=yes; SAVER_LIBS="$SAVER_LIBS -lXrandr $xrender_libs"],
+ [true], $xrender_libs -lXext -lX11)
+ fi
+ fi
+
+ # if that succeeded, then we've really got it.
+ if test "$have_randr" = yes; then
+ AC_DEFINE(HAVE_RANDR)
+
+ # 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
+fi
+
+
+###############################################################################
+#
+# Check for XF86MiscSetGrabKeysState (but only bother if we are already
+# using other XF86 stuff.)
+#
+###############################################################################
+
+have_xf86miscsetgrabkeysstate=no
+if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then
+ AC_CHECK_X_LIB(Xxf86misc, XF86MiscSetGrabKeysState,
+ [have_xf86miscsetgrabkeysstate=yes],
+ [true], -lXext -lX11)
+ if test "$have_xf86miscsetgrabkeysstate" = yes ; then
+ SAVER_LIBS="$SAVER_LIBS -lXxf86misc"
+ AC_DEFINE(HAVE_XF86MISCSETGRABKEYSSTATE)
+ fi
+fi
+
+
+###############################################################################
+#
+# Check for HP XHPDisableReset and XHPEnableReset.
+#
+###############################################################################
+
+AC_MSG_CHECKING([for XHPDisableReset in X11/XHPlib.h])
+AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
+ [AC_DEFINE(HAVE_XHPDISABLERESET)
+ SAVER_LIBS="-lXhp11 $SAVER_LIBS"
+ AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT(no)])
+
+
+###############################################################################
+#
+# Check for /proc/interrupts.
+#
+###############################################################################
+
+have_proc_interrupts=no
+with_proc_interrupts_req=unspecified
+AC_ARG_WITH(proc-interrupts,
+[ --with-proc-interrupts Include support for consulting the /proc/interrupts
+ file to notice keyboard activity.],
+ [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
+ [with_proc_interrupts=yes])
+
+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
+ if grep 'keyboard\|i8042' /proc/interrupts >/dev/null 2>&1 ; then
+ ac_cv_have_proc_interrupts=yes
+ fi
+ ])
+ have_proc_interrupts=$ac_cv_have_proc_interrupts
+ fi
+
+ if test "$have_proc_interrupts" = yes; then
+ AC_DEFINE(HAVE_PROC_INTERRUPTS)
+ fi
+elif test "$with_proc_interrupts" != no; then
+ echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
+ exit 1
+fi
+
+
+###############################################################################
+#
+# The --enable-locking option
+#
+###############################################################################
+
+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"],
+ [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
+ AC_DEFINE(NO_LOCKING)
+else
+ echo "error: must be yes or no: --enable-locking=$enable_locking"
+ exit 1
+fi
+###############################################################################
+#
+# Whether to allow root password to unblank.
+#
+###############################################################################
+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
+
###############################################################################
#
# Check for PAM.
[ --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,
# those are in libc. On Linux and Solaris, they're in libdl.
AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
+ # On Linux, sigtimedwait() is in libc; on Solaris, it's in librt.
+ have_timedwait=no
+ AC_CHECK_LIB(c, sigtimedwait,
+ [have_timedwait=yes
+ AC_DEFINE(HAVE_SIGTIMEDWAIT)])
+ if test "$have_timedwait" = no ; then
+ 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_kerberos=no
+have_kerberos5=no
with_kerberos_req=unspecified
AC_ARG_WITH(kerberos,
HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
- AC_CACHE_CHECK([for Kerberos], ac_cv_kerberos,
+ AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
[AC_TRY_X_COMPILE([#include <krb.h>],,
[ac_cv_kerberos=yes],
[ac_cv_kerberos=no])])
+ AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
+ [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
+ [ac_cv_kerberos5=yes],
+ [ac_cv_kerberos5=no])])
+
if test "$ac_cv_kerberos" = yes ; then
have_kerberos=yes
AC_DEFINE(HAVE_KERBEROS)
+ fi
+
+ if test "$ac_cv_kerberos5" = yes ; then
+
+ # Andrew Snare <ajs@pigpond.com> wrote:
+ #
+ # You were assuming that if kerberosV (krb5) was found, then kerberosIV
+ # (krb4) was also available. This turns out not to be the case with
+ # mit-krb-1.2.7; apparently backwards-compatibility with KerberosIV
+ # is optional.
+ #
+ # So, disable kerberosV support if libkrb4 can't be found.
+ # This is not the best solution, but it makes the compile not fail.
+ #
+ AC_CHECK_X_LIB(krb4, krb_get_tf_realm,
+ [have_kerberos=yes],
+ [have_kerberos=no])
+ if test "$have_kerberos" = yes ; then
+ have_kerberos5=yes
+ AC_DEFINE(HAVE_KERBEROS)
+ AC_DEFINE(HAVE_KERBEROS5)
+ else
+ have_kerberos5=no
+ AC_MSG_WARN([Cannot find compat lib (libkrb4) needed to use Kerberos 5])
+ fi
+
+ fi
+
+ if test "$have_kerberos5" = yes ; then
+ # from Matt Knopp <mhat@infocalypse.netlag.com>
+ # (who got it from amu@mit.edu)
+
+ PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"
+
+ # jwz: MacOS X uses -lkrb5, but not -lcrypt
+ AC_CHECK_X_LIB(crypt, crypt, [PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
- # from Tim Showalter <tjs+@andrew.cmu.edu>
- PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes"
+ elif test "$have_kerberos" = yes ; then
+ # from Tim Showalter <tjs@psaux.com> for FreeBSD 4.2
+ PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err"
+ fi
+
+ if test "$have_kerberos" = yes ; then
AC_CHECK_FUNC(res_search,,
AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
))
-
fi
fi
###############################################################################
#
-# Check for -lXm.
+# Check for external password helper
+# On SuSE, instead of having xscreensaver be a setuid program, they
+# fork an external program that takes the password on stdin, and
+# returns true if that password is a valid one. Then only that
+# smaller program needs to be setuid.
+#
+# (Note that this external program is not a GUI: the GUI is still
+# all in xscreensaver itself; the external program just does auth.)
#
###############################################################################
-have_motif=no
-with_motif_req=unspecified
-AC_ARG_WITH(motif,[
-User interface options:
+have_passwd_helper=no
+with_passwd_helper_req=unspecified
- --with-motif Use the Motif toolkit for the user interface.],
- [with_motif="$withval"; with_motif_req="$withval"],[with_motif=yes])
+AC_ARG_WITH(passwd-helper,
+[ --with-passwd-helper Include support for an external password
+ verification helper program.],
+ [with_passwd_helper="$withval"; with_passwd_helper_req="$withval"],[with_passwd_helper=no])
+# no HANDLE_X_PATH_ARG for this one
-HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
+if test "$enable_locking" = no ; then
+ with_passwd_helper_req=no
+ with_passwd_helper=no
+fi
-if test "$with_motif" != yes -a "$with_motif" != no ; then
- echo "error: must be yes or no: --with-motif=$with_motif"
- exit 1
+case "$with_passwd_helper" in
+ ""|no) : ;;
+ /*)
+ AC_DEFINE_UNQUOTED(PASSWD_HELPER_PROGRAM, "$with_passwd_helper")
+ have_passwd_helper=yes;;
+ *)
+ echo "error: --with-passwd-helper needs full pathname of helper (not '$with_passwd_helper')." >&2
+ exit 1
+esac
+
+
+###############################################################################
+#
+# Check for a login manager for a "New Login" button on the lock dialog.
+# Usually this will be "/usr/bin/gdmflexiserver".
+#
+###############################################################################
+
+with_login_manager_req=unspecified
+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 like gdmflexiserver or kdmctl.],
+ [with_login_manager="$withval"; with_login_manager_req="$withval"],
+ [with_login_manager=yes])
+# no HANDLE_X_PATH_ARG for this one
+
+if test "$enable_locking" = no ; then
+ with_login_manager_req=no
+ with_login_manager=no
fi
-if test "$with_motif" = yes; then
- have_motif=no
- AC_CHECK_X_HEADER(Xm/Xm.h,
- [have_motif=yes
- AC_DEFINE(HAVE_MOTIF)
- MOTIF_LIBS="$MOTIF_LIBS -lXm"])
+case "$with_login_manager_req" in
+ no)
+ with_login_manager=""
+ ;;
+
+ yes|unspecified)
+ # Try both defaults, use the one that exists.
+
+ 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="$default_login_manager_2"
+ else
+ with_login_manager=""
+ fi
+ 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_1"
+ NEW_LOGIN_COMMAND_P='! '
+ AC_MSG_RESULT($NEW_LOGIN_COMMAND (disabled))
+else
+ AC_MSG_RESULT($NEW_LOGIN_COMMAND)
fi
###############################################################################
#
-# Check for -lgtk.
+# Check for -lgtk (and Gnome stuff)
#
###############################################################################
have_gtk=no
with_gtk_req=unspecified
-AC_ARG_WITH(gtk,
-[ --with-gtk Use the Gtk toolkit for the user interface.],
+AC_ARG_WITH(gtk,[
+User interface options:
+
+ --with-gtk Use the Gtk toolkit for the user interface.],
[with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
# if --with-gtk=/directory/ was specified, remember that directory so that
exit 1
fi
+
+parse_gtk_version_string() {
+ # M4 sucks!!
+ changequote(X,Y)
+ maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
+ min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
+ changequote([,])
+ ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
+ if test -z "$ac_gtk_version"; then
+ ac_gtk_version=unknown
+ ac_gtk_version_string=unknown
+ fi
+}
+
+# Find pkg-config... (need this for both gtk and gdk_pixbuf.)
+# if the user specified --with-gtk=/foo/ then look there.
+#
+gtk_path="$PATH"
+if test ! -z "$gtk_dir"; then
+ # canonicalize slashes.
+ foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
+ gtk_path="$foo:$gtk_path"
+fi
+
+AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path)
+
+if test -z "$pkg_config" ; then
+ AC_MSG_WARN([pkg-config not found!])
+ pkg_config="false"
+fi
+
+
+# Utility function for running pkg-config-based tests...
+#
+pkgs=''
+pkg_check_version() {
+ if test "$ok" = yes ; then
+ req="$1"
+ min="$2"
+ AC_MSG_CHECKING(for $req)
+ if $pkg_config --exists "$req" ; then
+ vers=`$pkg_config --modversion "$req"`
+ if $pkg_config --exists "$req >= $min" ; then
+ AC_MSG_RESULT($vers)
+ pkgs="$pkgs $req"
+ return 1
+ else
+ AC_MSG_RESULT($vers (wanted >= $min))
+ ok=no
+ return 0
+ fi
+ else
+ AC_MSG_RESULT(no)
+ ok=no
+ return 0
+ fi
+ fi
+}
+
+
jurassic_gtk=no
+gtk_halfassed=no
+
if test "$with_gtk" = yes; then
have_gtk=no
- # if the user specified --with-gtk=/foo/ then look in /foo/bin/
- # for glib-config and gtk-config.
- #
- gtk_path="$PATH"
-
- if test ! -z "$gtk_dir"; then
- # canonicalize slashes.
- gtk_dir=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
- gtk_path="$gtk_dir:$gtk_dir:$gtk_path"
+ ok="yes"
+ pkg_check_version gtk+-2.0 2.0.1 ; ac_gtk_version_string="$vers"
+ pkg_check_version gmodule-2.0 2.0.0
+ pkg_check_version libxml-2.0 2.4.6
+ pkg_check_version libglade-2.0 1.99.0
+ pkg_check_version gdk-pixbuf-2.0 2.0.0
+ pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
+ have_gtk="$ok"
+
+ if test "$have_gtk" = no; then
+ if test -n "$ac_gtk_version_string" ; then
+ gtk_halfassed="$ac_gtk_version_string"
+ gtk_halfassed_lib="$req"
+ fi
fi
- AC_PATH_PROGS(glib_config, glib-config,, $gtk_path)
- AC_PATH_PROGS(gtk_config, gtk-config,, $gtk_path)
-
- if test -n "$glib_config" -a -n "gtk_config" ; then
- have_gtk=yes
- fi
if test "$have_gtk" = yes; then
- AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
- [ac_cv_gtk_version_string=`$glib_config --version`])
- ac_gtk_version_string=$ac_cv_gtk_version_string
- # M4 sucks!!
- changequote(X,Y)
- maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
- min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
- changequote([,])
- ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
- if test -z "$ac_gtk_version"; then
- ac_gtk_version=unknown
- ac_gtk_version_string=unknown
- fi
- if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
- then
- have_gtk=no
- jurassic_gtk=yes
- fi
+ parse_gtk_version_string
+ jurassic_gtk=no
fi
+
if test "$have_gtk" = yes; then
AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
- [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
+ [ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`])
AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
- [ac_cv_gtk_config_libs=`$gtk_config --libs`])
- INCLUDES="$INCLUDES $ac_cv_gtk_config_cflags"
- GTK_LIBS="$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=""
+ GTK_DATADIR=""
+ if test "$have_gtk" = yes; then
+ GTK_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
+ GTK_DATADIR="$GTK_DATADIR/share"
+ fi
+
+ if test "$have_gtk" = yes; then
+ INCLUDES="$INCLUDES $ac_gtk_config_cflags"
+ GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
AC_DEFINE(HAVE_GTK)
+ AC_DEFINE(HAVE_GTK2)
+ AC_DEFINE(HAVE_XML)
fi
+
+fi
+
+
+# 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)
fi
###############################################################################
#
-# Check for -lXaw and -lXaw3d.
+# Check for -lXm.
#
###############################################################################
-have_athena=no
-have_athena3d=no
-with_athena_req=unspecified
-AC_ARG_WITH(athena,
-[ --with-athena Use the Athena toolkit for the user interface.],
- [with_athena="$withval"; with_athena_req="$withval"],[with_athena=yes])
-
-HANDLE_X_PATH_ARG(with_athena, --with-athena, Athena)
+have_motif=no
+with_motif_req=unspecified
+AC_ARG_WITH(motif,[ --with-motif Use the Motif toolkit for the user interface
+ (no longer supported.)],
+ [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no])
+HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
-if test "$with_athena" != yes -a "$with_athena" != no ; then
- echo "error: must be yes or no: --with-athena=$with_athena"
+if test "$with_motif" != yes -a "$with_motif" != no ; then
+ echo "error: must be yes or no: --with-motif=$with_motif"
exit 1
fi
-
-if test "$with_athena" = yes; then
- have_athena=no
- AC_CHECK_X_HEADER(X11/Xaw/Dialog.h, [have_athena=yes])
- if test "$have_athena" = yes; then
- AC_CHECK_X_LIB(Xaw3d, Xaw3dComputeTopShadowRGB,
- [have_athena=yes; have_athena3d=yes], [true],
- -lXt -lXmu -lXext -lX11)
- fi
-fi
-
-if test "$have_athena" = yes; then
- AC_DEFINE(HAVE_ATHENA)
- ATHENA_LIBS="-lXaw $ATHENA_LIBS"
-fi
-
-if test "$have_athena3d" = yes; then
- ATHENA3D_LIBS="-lXaw3d $ATHENA3D_LIBS"
+if test "$with_motif" = yes; then
+ have_motif=no
+ AC_CHECK_X_HEADER(Xm/Xm.h,
+ [have_motif=yes
+ AC_DEFINE(HAVE_MOTIF)
+ MOTIF_LIBS="$MOTIF_LIBS -lXm"],,
+ [#include <stdlib.h>
+ #include <stdio.h>
+ #include <X11/Intrinsic.h>])
fi
-# If we have Athena, check whether it's a version that includes
-# XawViewportSetCoordinates in Viewport.h (R3 (or R4?) don't.)
-if test "$have_athena" = yes ; then
- AC_CACHE_CHECK([for XawViewportSetCoordinates in Viewport.h],
- ac_cv_have_XawViewportSetCoordinates,
- [ac_cv_have_XawViewportSetCoordinates=no
- AC_EGREP_X_HEADER(XawViewportSetCoordinates,
- X11/Xaw/Viewport.h,
- ac_cv_have_XawViewportSetCoordinates=yes)])
- if test "$ac_cv_have_XawViewportSetCoordinates" = yes ; then
- AC_DEFINE(HAVE_XawViewportSetCoordinates)
- fi
+if test "$have_motif" = yes; then
+ AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],,
+ [#include <stdlib.h>
+ #include <stdio.h>
+ #include <X11/Intrinsic.h>])
fi
###############################################################################
#
-# Check for -lGL or -lMesa.
+# Check for -lGL or -lMesaGL.
#
###############################################################################
have_gl=no
ac_have_mesa_gl=no
with_gl_req=unspecified
+gl_halfassed=no
AC_ARG_WITH(gl,[
Graphics options:
if test "$with_gl" = yes; then
AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
if test "$have_gl" = yes ; then
- AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no)
+ AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no,
+ [#include <GL/gl.h>])
fi
# If we have the headers, try and figure out which vendor it's from.
#
AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
[ac_cv_have_mesa_gl=no
- AC_EGREP_X_HEADER(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
-
- # If we have Mesa headers, check to see if we can link against -lMesaGL.
- # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
- # Else, warn that GL is busted. (We have the headers, but no libs.)
- #
gl_lib_1=""
GL_LIBS=""
- if test "$ac_have_mesa_gl" = yes ; then
- AC_CHECK_X_LIB(MesaGL, glXCreateContext,
- [gl_lib_1="MesaGL"
- GL_LIBS="-lMesaGL -lMesaGLU"],
- [], -lMesaGLU -lX11 -lXext -lm)
- fi
+ if test "$ac_macosx" = yes; then
- if test "$gl_lib_1" = "" ; then
- AC_CHECK_X_LIB(GL, glXCreateContext,
- [gl_lib_1="GL"
- GL_LIBS="-lGL -lGLU"],
- [], -lGLU -lX11 -lXext -lm)
- fi
+ # 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
- if test "$gl_lib_1" = "" ; then
- # we have headers, but no libs -- bail.
- have_gl=no
+ # 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
+ # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
+ #
+ if test "$ac_have_mesa_gl" = yes; then
+ AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
+ fi
+
+
+ # If we have Mesa headers, check to see if we can link against -lMesaGL.
+ # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
+ # Else, warn that GL is busted. (We have the headers, but no libs.)
+ #
+
+ if test "$ac_have_mesa_gl" = yes ; then
+ AC_CHECK_X_LIB(MesaGL, glXCreateContext,
+ [gl_lib_1="MesaGL"
+ GL_LIBS="-lMesaGL -lMesaGLU $VIDMODE_LIBS $GL_LIBS"],
+ [], -lMesaGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm)
+ fi
+
+ if test "$gl_lib_1" = "" ; then
+ AC_CHECK_X_LIB(GL, glXCreateContext,
+ [gl_lib_1="GL"
+ GL_LIBS="-lGL -lGLU $VIDMODE_LIBS $GL_LIBS"],
+ [], -lGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm)
+ fi
+
+ if test "$gl_lib_1" = "" ; then
+ # we have headers, but no libs -- bail.
+ have_gl=no
ac_have_mesa_gl=no
+ gl_halfassed=yes
else
# linking works -- we can build the GL hacks.
AC_DEFINE(HAVE_GL)
#line __oline__ "configure"
#include "confdefs.h"
#include <GL/gl.h>
+#ifndef MESA_MAJOR_VERSION
+# include <GL/xmesa.h>
+# ifdef XMESA_MAJOR_VERSION
+ /* Around Mesa 3.2, they took out the Mesa version number, so instead,
+ we have to check the XMesa version number (the number of the X protocol
+ support, which seems to be the same as the Mesa version number.)
+ */
+# define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
+# define MESA_MINOR_VERSION XMESA_MINOR_VERSION
+# else
+ /* Oh great. Some time after 3.4, they took out the xmesa.h header file,
+ so we have no way of telling what version of Mesa this is at all.
+ So, we'll guess that the osmesa version (the "offscreen protocol")
+ is less than or equal to the real mesa version number. Except that
+ if OSmesa is 3.3, assume at least Mesa 3.4, since OSmesa was 3.3 in
+ Mesa 3.4. And Mesa 3.3 had xmesa.h. What a complete load of shit!
+ */
+# include <GL/osmesa.h>
+# define MESA_MAJOR_VERSION OSMESA_MAJOR_VERSION
+# define MESA_MINOR_VERSION OSMESA_MINOR_VERSION or newer, probably?
+# if OSMESA_MAJOR_VERSION == 3 && OSMESA_MINOR_VERSION == 3
+# undef MESA_MINOR_VERSION
+# define MESA_MINOR_VERSION 4 or newer, probably?
+# endif
+# endif
+#endif
configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
EOF
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
- # M4 sucks!!
+ mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | grep configure:`
+
+ # M4 sucks!!
changequote(X,Y)
- mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \
- 's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
+ mglv=`echo "$mglv" | sed -n \
+ 's/^configure: *\([0-9][0-9]*\) *\([0-9].*\)$/\1.\2/p'`
changequote([,])
rm -f conftest.$ac_ext
ac_mesagl_version=unknown
ac_mesagl_version_string=unknown
else
- ac_mesagl_version_string=$mglv
- maj=`echo $mglv | sed -n 's/\..*//p'`
- min=`echo $mglv | sed -n 's/.*\.//p'`
+ ac_mesagl_version_string="$mglv"
+ # M4 sucks!!
+ changequote(X,Y)
+ maj=`echo "$mglv" | sed -n 's/^\([0-9][0-9]*\)\..*$/\1/p'`
+ min=`echo "$mglv" | sed -n 's/^.*\.\([0-9][0-9]*\).*$/\1/p'`
+ changequote([,])
ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
if test -z "$ac_mesagl_version"; then
ac_mesagl_version=unknown
fi
- # If it's MesaGL, check to see if it requires -lpthread.
+ # Check for OpenGL 1.1 features.
#
- have_pthread=no
- mesa_requires_pthread=no
- if test "$ac_have_mesa_gl" = yes; then
+ AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
+ [true], $GL_LIBS -lX11 -lXext -lm)
+ fi
- AC_CHECK_LIB(pthread, pthread_create, [have_pthread=yes], [],)
- if test "$have_pthread" = yes; then
- AC_CHECK_X_LIB($gl_lib_1, gl_get_thread_context,
- [mesa_requires_pthread=yes], [true],
- $GL_LIBS -lpthread -lX11 -lXext -lm)
- fi
+elif test "$with_gl" != no; then
+ echo "error: must be yes or no: --with-gl=$with_gl"
+ exit 1
+fi
- if test "$mesa_requires_pthread" = yes; then
- GL_LIBS="$GL_LIBS -lpthread"
- fi
+
+###############################################################################
+#
+# Check for -lgle.
+#
+###############################################################################
+
+have_gle=no
+with_gle_req=unspecified
+gle_halfassed=no
+AC_ARG_WITH(gle,
+[ --with-gle Build those demos which depend on GLE
+ (the OpenGL "extrusion" library.)],
+ [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
+
+HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
+
+GLE_LIBS=""
+
+if test "$have_gl" = no ; then
+ true
+elif test "$with_gle" = yes; then
+
+ AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no,
+ [#include <GL/gl.h>])
+ if test "$have_gle3" = yes ; then
+ have_gle=yes;
+ else
+ AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no,
+ [#include <GL/gl.h>])
+ if test "$have_gle" = yes ; then
+ AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no,
+ [#include <GL/gl.h>])
fi
+ fi
- # Check for OpenGL 1.1 features.
- #
- AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
- [true], $GL_LIBS -lX11 -lXext -lm)
+ if test "$have_gle" = yes ; then
+ have_gle=no
+ gle_halfassed=yes
+ AC_CHECK_X_LIB(gle, gleCreateGC,
+ [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
+ [], $GL_LIBS -lX11 -lXext -lm)
+ fi
+ if test "$have_gle" = yes ; then
+ have_gle=no
+ gle_halfassed=yes
+
+ # sometimes the libmatrix stuff is included in libgle. look there first.
+#
+# I don't get it. For some reason, this test passes on SGI, as if
+# uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
+# Yet the link is succeeding. Why???
+#
+# AC_CHECK_X_LIB(gle, uview_direction_d,
+# [have_gle=yes; gle_halfassed=no],
+# [], $GL_LIBS -lX11 -lXext -lm)
+
+ # As of GLE 3 this is in libgle, and has changed name to uview_direction!
+ # *sigh*
+ if test "$have_gle3" = yes ; then
+ AC_CHECK_X_LIB(gle, uview_direction,
+ [have_gle=yes; gle_halfassed=no],
+ [], $GL_LIBS -lX11 -lXext -lm)
+ fi
+ # if it wasn't in libgle, then look in libmatrix.
+ if test "$have_gle" = no ; then
+ AC_CHECK_X_LIB(matrix, uview_direction_d,
+ [have_gle=yes; gle_halfassed=no;
+ GLE_LIBS="$GLE_LIBS -lmatrix"],
+ [], $GL_LIBS -lX11 -lXext -lm)
+ fi
+ fi
+
+ if test "$have_gle" = yes ; then
+ AC_DEFINE(HAVE_GLE)
+ if test "$have_gle3" = yes ; then
+ AC_DEFINE(HAVE_GLE3)
+ fi
+ fi
+
+elif test "$with_gle" != no; then
+ echo "error: must be yes or no: --with-gle=$with_gle"
+ exit 1
+
+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.
+# These tests are for gdk_pixbuf usage of the hacks,
+# not xscreensaver-demo (thus we have to test again to get
+# the libraries right: don't want to pull in all of GTK
+# for the hacks.)
+#
+###############################################################################
+
+have_gdk_pixbuf=no
+with_gdk_pixbuf_req=unspecified
+AC_ARG_WITH(pixbuf,
+[ --with-pixbuf Include support for the GDK-Pixbuf library in some
+ demos, which will make it possible for them to read
+ GIF, JPEG, and PNG files as well.],
+ [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
+ [with_gdk_pixbuf=yes])
+
+# if --with-pixbuf=/directory/ was specified, remember that directory so that
+# we can also look for the `gdk-pixbuf-config' program in that directory.
+case "$with_gdk_pixbuf" in
+ /*)
+ gdk_pixbuf_dir="$with_gdk_pixbuf"
+ ;;
+ *)
+ gdk_pixbuf_dir=""
+ ;;
+esac
+
+HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF)
+
+if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then
+ echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
+ exit 1
+fi
+
+if test "$with_gdk_pixbuf" = yes; then
+ have_gdk_pixbuf=no
+
+ pkgs=''
+ ok="yes"
+
+ pkg_check_version gdk-pixbuf-2.0 2.0.0
+ pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
+ have_gdk_pixbuf="$ok"
+
+ if test "$have_gdk_pixbuf" = yes; then
+ AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
+ [ac_cv_gdk_pixbuf_config_cflags=`$pkg_config --cflags $pkgs`])
+ AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
+ [ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs`])
+ fi
+ ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
+ ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
- # Check whether the `xscreensaver' executable should link against GL.
- # See comments in utils/visual-gl.c for why this is sometimes necessary.
+
+ if test "$have_gdk_pixbuf" = yes; then
#
- AC_MSG_CHECKING(whether drastic GL measures must be taken)
- case "$host" in
- *-sgi*)
- AC_MSG_RESULT([yes -- hello, SGI.])
- AC_DEFINE(DAEMON_USE_GL)
- SAVER_GL_SRCS='$(UTILS_SRC)/visual-gl.c'
- SAVER_GL_OBJS='$(UTILS_BIN)/visual-gl.o'
- SAVER_GL_LIBS="$GL_LIBS"
- ;;
- *)
- AC_MSG_RESULT([no -- non-SGI.])
- SAVER_GL_SRCS=''
- SAVER_GL_OBJS=''
- SAVER_GL_LIBS=''
- ;;
- esac
+ # we appear to have pixbuf; check for headers/libs to be sure.
+ #
+ ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
+
+ have_gdk_pixbuf=no
+
+ # check for header A...
+ AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
+
+ # if that worked, check for header B...
+ if test "$have_gdk_pixbuf" = yes; then
+ have_gdk_pixbuf=no
+ gdk_pixbuf_halfassed=yes
+ AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h,
+ [have_gdk_pixbuf=yes
+ gdk_pixbuf_halfassed=no])
+
+ # yay, it has a new name in Gtk 2.x...
+ if test "$have_gdk_pixbuf" = no; then
+ have_gdk_pixbuf=no
+ gdk_pixbuf_halfassed=yes
+ AC_CHECK_X_HEADER(gdk-pixbuf-xlib/gdk-pixbuf-xlib.h,
+ [have_gdk_pixbuf=yes
+ gdk_pixbuf_halfassed=no])
+ fi
+ fi
+ CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
+ fi
+ if test "$have_gdk_pixbuf" = yes; then
+ # we have the headers, now check for the libraries
+ have_gdk_pixbuf=no
+ gdk_pixbuf_halfassed=yes
+
+ AC_MSG_RESULT(checking for gdk_pixbuf usability...)
+
+ # library A...
+ AC_CHECK_X_LIB(c, gdk_pixbuf_new_from_file, [have_gdk_pixbuf=yes],,
+ $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
+ # library B...
+ if test "$have_gdk_pixbuf" = yes; then
+ have_gdk_pixbuf=no
+ AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init,
+ [have_gdk_pixbuf=yes
+ gdk_pixbuf_halfassed=no],,
+ $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
+ fi
fi
-elif test "$with_gl" != no; then
- echo "error: must be yes or no: --with-gl=$with_gl"
- exit 1
+ if test "$have_gdk_pixbuf" = yes; then
+ INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
+ XPM_LIBS="$ac_gdk_pixbuf_config_libs"
+ AC_DEFINE(HAVE_GDK_PIXBUF)
+ 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
have_xpm=no
with_xpm_req=unspecified
AC_ARG_WITH(xpm,
-[ --with-xpm Include support for XPM files in some demos.],
+[ --with-xpm Include support for XPM files in some demos.
+ (Not needed if Pixbuf is used.)],
[with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
AC_CHECK_X_HEADER(X11/xpm.h,
[have_xpm=yes
AC_DEFINE(HAVE_XPM)
- XPM_LIBS="-lXpm"])
+ XPM_LIBS="-lXpm $XPM_LIBS"],,
+ [#include <X11/Xlib.h>])
elif test "$with_xpm" != no; then
echo "error: must be yes or no: --with-xpm=$with_xpm"
exit 1
fi
fi
+if test "$XPM_LIBS" = "" ; then
+ XPM_LIBS=$(MINIXPM)
+fi
+
+
+###############################################################################
+#
+# Check for -ljpeg
+#
+###############################################################################
+
+have_jpeg=no
+with_jpeg_req=unspecified
+jpeg_halfassed=no
+AC_ARG_WITH(jpeg,
+[ --with-jpeg Include support for the JPEG library.],
+ [with_jpeg="$withval"; with_jpeg_req="$withval"],
+ [with_jpeg=yes])
+
+HANDLE_X_PATH_ARG(with_jpeg, --with-jpeg, JPEG)
+
+if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then
+ echo "error: must be yes or no: --with-jpeg=$with_jpeg"
+ exit 1
+fi
+
+if test "$with_jpeg" = yes; then
+
+ have_jpeg=no
+ AC_CHECK_X_HEADER(jpeglib.h, [have_jpeg=yes])
+
+ if test "$have_jpeg" = yes; then
+ # we have the header, now check for the library
+ have_jpeg=no
+ jpeg_halfassed=yes
+ AC_CHECK_X_LIB(jpeg, jpeg_start_compress,
+ [have_jpeg=yes
+ jpeg_halfassed=no
+ JPEG_LIBS="-ljpeg"
+ AC_DEFINE(HAVE_JPEGLIB)])
+ fi
+fi
+
+
+###############################################################################
+#
+# Check for pty support: this allows 'phosphor' and 'apple2'
+# to run curses-based programs, or be used as terminal windows.
+#
+###############################################################################
+
+PTY_LIBS=
+AC_CHECK_HEADERS(pty.h util.h)
+AC_CHECK_X_LIB(util, forkpty,
+ [PTY_LIBS="-lutil"
+ ac_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
###############################################################################
#
have_xshm=no
with_xshm_req=unspecified
AC_ARG_WITH(xshm-ext,
-[ --with-xshm-ext Include support for the XSHM extension.],
+[ --with-xshm-ext Include support for the Shared Memory extension.],
[with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
if test "$with_xshm" = yes; then
# first check for Xshm.h.
- AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes])
+ AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],,
+ [#include <X11/Xlib.h>])
# if that succeeded, then check for sys/ipc.h.
if test "$have_xshm" = yes; then
#
case "$host" in
*-aix*)
- have_xshm=no
- AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
- [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
- [true], -lX11 -lXext -lm)
+ if [ `uname -v` -eq 3 ]; then
+ have_xshm=no
+ AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
+ [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
+ [true], -lX11 -lXext -lm)
+ fi
;;
esac
if test "$with_xdbe" = yes; then
- AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes])
+ AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],,
+ [#include <X11/Xlib.h>])
if test "$have_xdbe" = yes; then
AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
fi
if test "$with_readdisplay" = yes; then
AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
- AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION))
+ AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),,
+ [#include <X11/Xlib.h>])
elif test "$with_readdisplay" != no; then
echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
exit 1
###############################################################################
#
-# Check for the SGI Iris Video Library.
+# Check for a directory full of images to use as the default value
+# of the "imageDirectory" preference.
#
###############################################################################
-have_sgivideo=no
-with_sgivideo_req=unspecified
-AC_ARG_WITH(sgivideo,
-[ --with-sgivideo Include support for SGI's Iris Video Library.],
- [with_sgivideo="$withval"; with_sgivideo_req="$withval"],
- [with_sgivideo=yes])
+have_imagedir=no
+with_imagedir_req=unspecified
-HANDLE_X_PATH_ARG(with_sgivideo, --with-sgivideo, Iris Video)
+AC_ARG_WITH(image-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
-if test "$with_sgivideo" = yes; then
- AC_CHECK_X_HEADER(dmedia/vl.h, have_sgivideo=yes)
- if test "$have_sgivideo" = yes; then
- have_sgivideo=no
- AC_CHECK_LIB(vl, vlOpenVideo, [have_sgivideo=yes])
- if test "$have_sgivideo" = yes; then
- SGI_VIDEO_OBJS="$(UTILS_BIN)/sgivideo.o"
- SGI_VIDEO_LIBS="-lvl"
- AC_DEFINE(HAVE_SGI_VIDEO)
+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
- fi
-elif test "$with_sgivideo" != no; then
- echo "error: must be yes or no: --with-sgivideo=$with_sgivideo"
- exit 1
+ ;;
+ 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
+ done
+
+ ;;
+ no)
+ with_imagedir=""
+ ;;
+
+ *)
+ 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
###############################################################################
#
-# Check for a program to generate random text.
-#
-# Zippy is funnier than the idiocy generally spat out by `fortune',
-# so try to find that, by invoking Emacs and asking it where its
-# libexec directory is ("yow" lives in there.)
-#
-# If that doesn't work, see if fortune, zippy, or yow are on $PATH,
-# and if so, use them.
-#
-# If that doesn't work, look in /usr/games, and if it's there, use
-# the full pathname.
+# 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".
#
###############################################################################
-with_zippy_req=""
-AC_ARG_WITH(zippy,[
- --with-zippy=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.) If you don't specify this, the default
- is to use \"yow\" from the Emacs distribution (if you
- have it) or else to use \"fortune\".
-],
- [with_zippy_req="$withval"; with_zippy="$withval"],[with_zippy=yes])
+have_textfile=no
+with_textfile_req=unspecified
-if test "$with_zippy" = no || test "$with_zippy" = yes ; then
- with_zippy=""
- with_zippy_req=""
-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 test -n "$with_zippy_req" ; then
- ac_cv_zippy_program=""
- case "$with_zippy_req" in
- /*)
- AC_MSG_CHECKING([for $with_zippy_req])
- if test -x "$with_zippy_req" ; then
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- with_zippy=""
- fi
- ;;
- *)
- # don't cache
- unset ac_cv_path_zip2
- AC_PATH_PROG(zip2, $with_zippy_req, [])
- if test "$zip2" = ""; then
- with_zippy=""
+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
- ;;
- esac
- ac_cv_zippy_program="$with_zippy"
+ done
-elif test -n "$ac_cv_zippy_program"; then
- AC_MSG_RESULT([checking for zippy... (cached) $ac_cv_zippy_program])
-fi
+ ;;
+ no)
+ with_textfile=""
+ ;;
-if test ! -n "$ac_cv_zippy_program"; then
+ *)
+ echo "error: must be an absolute path: --with-text-file=$with_textfile_req"
+ exit 1
+ ;;
+esac
+ac_cv_textfile="$with_textfile"
- AC_CHECK_PROGS(emacs_exe, emacs)
- AC_CHECK_PROGS(xemacs_exe, xemacs)
+DEFAULT_TEXT_FILE="$ac_cv_textfile"
- ac_cv_zippy_program=""
- eargs='-batch -q -nw --eval'
- if test -n "$emacs_exe" ; then
- AC_MSG_CHECKING([for emacs yow])
- #
- # get emacs to tell us where the libexec directory is.
- #
- dir=`$emacs_exe $eargs '(princ (concat exec-directory "\n"))' \
- 2>/dev/null | tail -1`
- dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
- #
- # try running libexec/yow and see if it exits without error.
- #
- if test x"$dir" != x -a -x "$dir/yow" ; then
- if $dir/yow >&- 2>&- ; then
- ac_cv_zippy_program="$dir/yow"
- AC_MSG_RESULT($ac_cv_zippy_program)
- else
- AC_MSG_RESULT(no)
- fi
- fi
- fi
+###############################################################################
+#
+# Check the browser to see help URL
+#
+###############################################################################
- if test -z "$ac_cv_zippy_program" ; then
- AC_MSG_CHECKING([for xemacs yow])
- if test -n "$xemacs_exe" ; then
- #
- # get xemacs to tell us where the libexec directory is.
- #
- dir=`$xemacs_exe $eargs '(princ (concat exec-directory "\n"))' \
- 2>/dev/null | tail -1`
- dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
- #
- # try running libexec/yow and see if it exits without error.
- #
- if test x"$dir" != x -a -x "$dir/yow" ; then
- if $dir/yow >&- 2>&- ; then
- ac_cv_zippy_program="$dir/yow"
- AC_MSG_RESULT($ac_cv_zippy_program)
- else
- #
- # in some xemacs installations, the pathname of the yow.lines file
- # isn't hardcoded into the yow executable, and must be passed on
- # the command line. See if it's in libexec/../etc/.
-
- # M4 sucks!!
- changequote(X,Y)
- dir_up=`echo "$dir" | sed 's@/[^/]*$@@'`
- changequote([,])
-
- yowlines="$dir_up/etc/yow.lines"
- if $dir/yow -f $yowlines >&- 2>&- ; then
- ac_cv_zippy_program="$dir/yow -f $yowlines"
- AC_MSG_RESULT($ac_cv_zippy_program)
- else
- #
- # In newer XEmacs releases, yow.lines is in a different place,
- # and the easiest way to get it is by calling the new function
- # `locate-data-file'.
- #
- yowlines=`$xemacs_exe $eargs \
- '(princ (concat (locate-data-file "yow.lines") "\n"))' \
- 2>/dev/null | tail -1`
- if $dir/yow -f $yowlines >&- 2>&- ; then
- ac_cv_zippy_program="$dir/yow -f $yowlines"
- AC_MSG_RESULT($ac_cv_zippy_program)
- else
- AC_MSG_RESULT(no)
- fi
- fi
- fi
- fi
- fi
- fi
+have_browser=no
+with_browser_req=unspecified
- # if that didn't work, try for some other programs...
- if test -z "$ac_cv_zippy_program" ; then
- fortune=''
- AC_CHECK_PROGS(fortune, [fortune zippy yow])
- # if that didn't work, try for those programs in /usr/games...
- if test -z "$fortune" ; then
- AC_PATH_PROGS(fortune, [fortune zippy yow], fortune,
- /usr/games:/usr/local/games:$PATH)
- fi
- fi
-fi
+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
-if test -z "$ac_cv_zippy_program" ; then
- ac_cv_zippy_program=fortune
-fi
+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"
-AC_DEFINE_UNQUOTED(ZIPPY_PROGRAM, "$ac_cv_zippy_program")
+###############################################################################
+#
+# Check whether it's ok to install some hacks as setuid (e.g., "sonar")
+# This should be safe, but let's give people the option.
+#
+###############################################################################
+
+setuid_hacks_default=no
+setuid_hacks="$setuid_hacks_default"
+AC_ARG_WITH(setuid-hacks,
+[ --with-setuid-hacks Allow some demos to be installed `setuid root'
+ (which is needed in order to ping other hosts.)
+],
+ [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
+
+HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks)
+
+if test "$setuid_hacks" = yes; then
+ true
+elif test "$setuid_hacks" != no; then
+ echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks"
+ exit 1
+fi
###############################################################################
fi
+PREFERRED_DEMO_PROGRAM=''
ALL_DEMO_PROGRAMS=
-if test "$have_athena3d" = yes; then
- PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xaw3d
- ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
-fi
-if test "$have_athena" = yes; then
- PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xaw
+if test "$have_motif" = yes; then
+ PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
fi
if test "$have_gtk" = yes; then
PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
fi
-if test "$have_motif" = yes; then
- PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
- ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
-fi
if test "$have_kerberos" = yes; then
PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
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)"
fi
PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
else
- LOCK_SRCS=''
- LOCK_OBJS=''
+ LOCK_SRCS='$(NOLOCK_SRCS_1)'
+ LOCK_OBJS='$(NOLOCK_OBJS_1)'
+fi
+
+if test "$ac_macosx" = yes; then
+ EXES_OSX='$(EXES_OSX)'
+ SCRIPTS_OSX='$(SCRIPTS_OSX)'
+ MEN_OSX='$(MEN_OSX)'
+else
+ EXES_OSX=
+ SCRIPTS_OSX=
+ MEN_OSX=
fi
+
+INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)'
+
if test "$need_setuid" = yes; then
NEED_SETUID=yes
- INSTALL_SETUID='$(INSTALL) $(SUID_FLAGS)'
else
NEED_SETUID=no
- INSTALL_SETUID='$(INSTALL_PROGRAM)'
+fi
+
+if test "$setuid_hacks" = yes; then
+ SETUID_HACKS=yes
+else
+ SETUID_HACKS=no
fi
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="-"
+fi
+
+if test "$have_gle" = yes; then
+ GLE_EXES='$(GLE_EXES)'
+ GLE_KLUDGE=" "
+else
+ GLE_KLUDGE="-"
+fi
+
+if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then
+ JPEG_EXES='$(JPEG_EXES)'
+fi
+
+
+# Another substitution in the XScreenSaver.ad.in file:
+#
+if test "$gnome_open_program" != ''; then
+ GNOME24=''
+ GNOME22='! '
+ NOGNOME='! '
+elif test "$gnome_url_show_program" != ''; then
+ GNOME24='! '
+ GNOME22=''
+ NOGNOME='! '
else
- GL_KLUDGE=" -${tab} "
+ GNOME24='! '
+ GNOME22='! '
+ NOGNOME=''
+fi
+
+
+# Set PO_DATADIR to something sensible.
+#
+AC_MSG_CHECKING([for locale directory])
+if test -n "$GTK_DATADIR" ; then
+ PO_DATADIR="$GTK_DATADIR"
+elif test "$have_gtk" = yes; then
+ PO_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
+ PO_DATADIR="$PO_DATADIR/share"
+fi
+
+if test -z "$PO_DATADIR" ; then
+ #
+ # #### Total fucking kludge --
+ # Map /build/prefix/usr/X11R6/share/ to /build/prefix/usr/share/
+ # but of course we need to expand all the nested variables to do that...
+ #
+ dd=`eval eval eval eval eval eval eval eval eval eval eval echo $datadir`
+ PO_DATADIR=`echo $dd | sed 's@/X11R6/@/@'`
fi
+AC_MSG_RESULT($PO_DATADIR/locale)
+
+
+# canonicalize slashes.
+HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
+
+# gcc 3.0 likes to issue this warning for every file:
+#
+# cc1: warning: changing search order for system directory "/usr/local/include"
+# cc1: warning: as it has already been specified as a non-system directory
+#
+# Yay. We can only avoid that by deleting "-I${prefix}/include" from the list.
+# Which *should* be totally redundant, and thus an ok thing to delete?
+#
+INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'`
+
###############################################################################
#
AC_SUBST(SAVER_LIBS)
AC_SUBST(MOTIF_LIBS)
AC_SUBST(GTK_LIBS)
-AC_SUBST(ATHENA_LIBS)
-AC_SUBST(ATHENA3D_LIBS)
+AC_SUBST(XML_LIBS)
+AC_SUBST(JPEG_LIBS)
AC_SUBST(HACK_LIBS)
AC_SUBST(XPM_LIBS)
+AC_SUBST(PTY_LIBS)
AC_SUBST(GL_LIBS)
+AC_SUBST(GLE_LIBS)
+AC_SUBST(XDPMS_LIBS)
+AC_SUBST(XINERAMA_LIBS)
AC_SUBST(PASSWD_LIBS)
AC_SUBST(INSTALL_SETUID)
+AC_SUBST(SETUID_HACKS)
AC_SUBST(INSTALL_DIRS)
AC_SUBST(NEED_SETUID)
AC_SUBST(INSTALL_PAM)
-AC_SUBST(SGI_VIDEO_OBJS)
-AC_SUBST(SGI_VIDEO_LIBS)
+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(SCRIPTS_OSX)
+AC_SUBST(MEN_OSX)
AC_SUBST(PASSWD_SRCS)
AC_SUBST(PASSWD_OBJS)
AC_SUBST(XMU_SRCS)
AC_SUBST(XMU_OBJS)
+AC_SUBST(XMU_LIBS)
AC_SUBST(SAVER_GL_SRCS)
AC_SUBST(SAVER_GL_OBJS)
AC_SUBST(SAVER_GL_LIBS)
AC_SUBST(LOCK_SRCS)
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_SUBST(GTK_EXTRA_OBJS)
APPDEFAULTS=$ac_x_app_defaults
AC_SUBST(APPDEFAULTS)
AC_OUTPUT(Makefile
utils/Makefile
driver/Makefile
+ driver/xscreensaver.pam
hacks/Makefile
hacks/glx/Makefile
+ po/Makefile.in
driver/XScreenSaver.ad)
###############################################################################
warnpre
if test "$warning" = long ; then echo '' ; fi
warning=yes
- echo "$warn_prefix $@"
+ rest="$@"
+ echo "$warn_prefix $rest"
}
warnL() {
warnpre
warning=yes
if test "$was" != no ; then echo '' ; fi
- echo "$warn_prefix $@"
+ rest="$@"
+ echo "$warn_prefix $rest"
}
warn2() {
- echo " $@"
+ rest="$@"
+ echo " $rest"
warning=long
}
warn 'The SGI saver extension was requested, but was not found.'
fi
-if test "$with_mit_req" = yes -a "$have_mit" = no ; then
- warn 'The MIT saver extension was requested, but was not found.'
-fi
-
if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
warn 'The XIdle extension was requested, but was not found.'
fi
warn 'The DPMS extension was requested, but was not found.'
fi
+if test "$with_xinerama_req" = yes -a "$have_xinerama" = no ; then
+ warn 'The Xinerama extension was requested, but was not found.'
+fi
+
if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
warn 'The XF86VMODE extension was requested, but was not found.'
fi
+if test "$with_randr_req" = yes -a "$have_randr" = no ; then
+ warn 'The RANDR extension was requested, but was not found.'
+fi
+
if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
warn "Checking of /proc/interrupts was requested, but it's bogus."
fi
+if test "$pkg_config" = false ; then
+ warnL 'The "pkg-config" program was not found. Without that,'
+ warn2 "detection of the various GTK libraries won't work."
+else
+ pkgerr=`$pkg_config --list-all 2>&1 >/dev/null`
+ if test "x$pkgerr" != "x" ; then
+ warnL 'The "pkg-config" program produces errors. This often causes'
+ warn2 "detection of the various GTK libraries to malfunction."
+ warn2 "The errors are:"
+ echo ''
+ echo "$pkgerr" | sed 's/^/ > /g'
+ fi
+fi
-if test "$have_motif" = no -a "$have_gtk" = no -a "$have_athena" = no ; then
- warnL "None of Motif, Gtk, or Athena widgets seem to be available;"
- warn2 "the \`xscreensaver-demo' program requires one of these."
+if test "$gtk_halfassed" != no ; then
+ warnL "GTK version $gtk_halfassed was found, but at least one supporting"
+ warn2 "library ($gtk_halfassed_lib) was not, so GTK can't be used."
+ warn2 "Perhaps some of the development packages are not installed?"
+ if test "$have_gtk" = yes ; then
+ v="$ac_gtk_version_string"
+ warn2 "GTK $v is also installed, so it will be used instead."
+ warn2 "Please read the above output and the \`config.log' file"
+ warn2 "for more details."
+ fi
+fi
-elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
- warnL "Use of Motif was requested, but it wasn't found;"
- if test "$have_gtk" = yes; then
- warn2 "Gtk will be used instead."
+motif_warn2() {
+ warn2 'Though the Motif front-end to xscreensaver is still'
+ warn2 'maintained, it is no longer being updated with new'
+ warn2 'features: all new development on the xscreensaver-demo'
+ warn2 'program is happening in the GTK version, and not in the'
+ warn2 'Motif version. It is recommended that you build against'
+ warn2 'GTK instead of Motif. See <http://www.gtk.org/>.'
+}
+
+if test "$have_motif" = no -a "$have_gtk" = no; then
+
+ if test "$with_motif" = yes; then
+ warnL "Neither the GTK nor Motif libraries were found; the"
+ warn2 "\`xscreensaver-demo' program requires one of these."
+ echo ''
+ motif_warn2
else
- warn2 "Athena will be used instead."
+ warnL "The GTK libraries do not seem to be available; the"
+ warn2 "\`xscreensaver-demo' program requires them."
+# echo ''
+# warn2 'You can use Motif or Lesstif instead of GTK (use the'
+# warn2 "\`--with-motif' option) but that is NOT recommended."
+# motif_warn2
fi
+elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
+ warnL "Use of Motif was requested, but it wasn't found;"
+ warn2 "Gtk will be used instead."
+
elif test "$jurassic_gtk" = yes ; then
- pref_gtk=1.2
+ pref_gtk=2.0
v="$ac_gtk_version_string"
if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
warnL "Gtk was found on this system, but it is version $v;"
fi
- if test "$have_motif" = yes; then
- which="Motif"
- else
- which="Athena"
- fi
-
- warn2 "Gtk $pref_gtk or newer is required. $which will be used instead."
+ warn2 "Gtk $pref_gtk or newer is required."
elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
- warnL "Use of Gtk was requested, but it wasn't found;"
- if test "$have_motif" = yes; then
- warn2 "Motif will be used instead."
- else
- warn2 "Athena will be used instead."
- fi
-
-elif test "$with_athena_req" = yes -a "$have_athena" = no ; then
- warnL "Use of Athena was requested, but it wasn't found;"
- if test "$have_gtk" = yes; then
- warn2 "Gtk will be used instead."
- else
- warn2 "Motif will be used instead."
- fi
+ warnL "Use of Gtk was requested, but it wasn't found."
fi
+if test "$have_gtk" = yes -a "$have_gdk_pixbuf" = no ; then
+ warn "GTK is being used, but the GDK-Pixbuf library and/or"
+ warn2 "headers were not found. That can't be good. Please"
+ warn2 "install the GDK-Pixbuf development kit and re-configure."
+fi
+
if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
- preferred_lesstif=0.86
+ preferred_lesstif=0.92
if test "$lesstif_version" = unknown; then
warnL "Unable to determine the LessTif version number!"
fi
fi
-if test "$have_athena" = yes -a "$have_motif" = no -a "$have_gtk" = no; then
- warnL "Athena widgets are being used instead of Motif or Gtk."
- warn2 "The \`xscreensaver-demo' program looks much better"
- warn2 "with Motif or Gtk. Wouldn't you rather be using Motif?"
- warn2 "Motif is shipped by every commercial Unix vendor,"
- warn2 "and there is a free implementation available as"
- warn2 "well: see <http://www.lesstif.org/>. Gtk is shipped"
- warn2 "with most Linux and BSD distributions."
+
+if test "$have_motif" = yes -a "$have_gtk" = no ; then
+ warn 'Motif is being used, and GTK is not.'
+ echo ''
+ motif_warn2
+fi
+
+
+if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
+ warnL 'Use of XPM was requested, but it was not found.'
+fi
+
+if test "$with_gdk_pixbuf_req" = yes -a "$have_gdk_pixbuf" = no; then
+ warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
fi
+if test "$have_gdk_pixbuf" = no -o "$gdk_pixbuf_halfassed" = yes || \
+ test "$have_gdk_pixbuf" = no -a "$have_xpm" = no ; then
+
+ if test "$with_gdk_pixbuf_req" = yes ; then
+ true
+ elif test "$with_gdk_pixbuf_req" = no ; then
+ warnL 'The GDK-Pixbuf library is not being used.'
+ else
+ warnL 'The GDK-Pixbuf library was not found.'
+ fi
-if test "$have_xpm" = no ; then
- if test "$with_xpm_req" = yes ; then
- warnL 'Use of XPM was requested, but it was not found.'
+ if test "$with_xpm_req" = yes -o "$have_xpm" = yes ; then
+ true
elif test "$with_xpm_req" = no ; then
- noteL 'The XPM library is not being used.'
+ warnL 'The XPM library is not being used.'
else
- noteL 'The XPM library was not found.'
+ warnL 'The XPM library was not found.'
+ fi
+
+ if test "$have_gdk_pixbuf" = no -a "$have_xpm" = yes ; then
+ warn2 'The XPM library is being used instead.'
+ fi
+
+ if test "$gdk_pixbuf_halfassed" = yes ; then
+ echo ''
+ warn2 'More specifically, we found the headers, but not the'
+ warn2 'libraries; so either GDK-Pixbuf is half-installed on this'
+ warn2 "system, or something else went wrong. The \`config.log'"
+ warn2 'file might contain some clues.'
fi
echo ''
- warn2 'Some of the demos will not be as colorful as they'
- warn2 'could be. You might want to consider installing XPM'
- warn2 'and re-running configure. (Remember to delete the'
- warn2 'config.cache file first.) You can find XPM at most'
- warn2 'X11 archive sites, such as <http://sunsite.unc.edu/>.'
+ warn2 'Some of the demos will not use images as much as they could.'
+ warn2 'You should consider installing GDK-Pixbuf and re-running'
+ warn2 'configure. (GDK-Pixbuf is recommended over XPM, as it'
+ warn2 'provides support for more image formats.)'
+fi
+
+
+if test "$have_jpeg" = no ; then
+ if test "$with_jpeg_req" = yes ; then
+ warnL 'Use of libjpeg was requested, but it was not found.'
+ elif test "$with_jpeg_req" = no ; then
+ noteL 'The JPEG library is not being used.'
+ else
+ noteL 'The JPEG library was not found.'
+ fi
+
+ if test "$jpeg_halfassed" = yes ; then
+ echo ''
+ warn2 'More specifically, we found the headers, but not the'
+ warn2 'library; so either JPEG is half-installed on this'
+ warn2 "system, or something else went wrong. The \`config.log'"
+ warn2 'file might contain some clues.'
+ echo ''
+ fi
+
+ if test "$have_gdk_pixbuf" = no ; then
+ warn2 "This means that it won't be possible for the image-manipulating"
+ warn2 "display modes to load files from disk; and it also means that"
+ warn2 "the \`webcollage' program will be much slower."
+ else
+ warn2 "This means the \`webcollage' program will be much slower."
+ fi
fi
if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
- preferred_mesagl=3.0
+ preferred_mesagl=3.4
+ mgv="$ac_mesagl_version_string"
+ 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 $ac_mesagl_version_string is being used."
- warn2 "MesaGL versions 2.6 and earlier have a security bug."
- warn2 "It is strongly recommended that you upgrade to at"
- warn2 "least version $preferred_mesagl."
+ warnL "MesaGL version number is $mgv --"
+ warn2 "MesaGL 2.6 and earlier have a security bug. It is strongly"
+ warn2 "recommended that you upgrade to at least version $preferred_mesagl."
+
+ elif test \! "$ac_mesagl_version" -gt 3003; then
+ warnL "MesaGL version number is $mgv --"
+ warn2 "MesaGL 3.3 and earlier have some bugs; it is recommended"
+ warn2 "that you upgrade to $pgl or newer."
fi
fi
-
if test "$have_gl" = no ; then
if test "$with_gl_req" = yes ; then
warnL 'Use of GL was requested, but it was not found.'
noteL 'The OpenGL 3D library was not found.'
fi
+ if test "$gl_halfassed" = yes ; then
+ echo ''
+ warn2 'More specifically, we found the headers, but not the'
+ warn2 'libraries; so either GL is half-installed on this'
+ warn2 "system, or something else went wrong. The \`config.log'"
+ warn2 'file might contain some clues.'
+ fi
+
echo ''
warn2 'Those demos which use 3D will not be built or installed.'
warn2 'You might want to consider installing OpenGL and'
- warn2 're-running configure. (Remember to delete the'
- warn2 "config.cache file first.) If your vendor doesn't ship"
+ warn2 "re-running configure. If your vendor doesn't ship"
warn2 'their own implementation of OpenGL, you can get a free'
warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
warn2 'info, see <http://www.opengl.org/>.'
fi
-if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
- warn 'Use of XReadDisplay was requested, but it was not found.'
-fi
-if test "$with_sgivideo_req" = yes -a "$have_sgivideo" = no ; then
- warn 'Use of the Iris Video Library was requested, but it was not found.'
-fi
+if test "$have_gl" = yes -a "$have_gle" = no ; then
+
+ # nobody cares about this; don't print the warning unless it was
+ # requested and not found, or halfway-found.
+ if test "$with_gle_req" = yes -o "$gle_halfassed" = yes ; then
+
+ if test "$with_gle_req" = yes ; then
+ noteL 'Use of the GLE (GL Extrusion) library was requested, but'
+ warn2 'it was not found (though the OpenGL library was found, and'
+ warn2 'is being used.)'
+ elif test "$with_gle_req" = no ; then
+ noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
+ warn2 'library is not.'
+ else
+ noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
+ warn2 'was not.'
+ fi
-if test -n "$with_zippy_req"; then
- if test "$with_zippy_req" != "$ac_cv_zippy_program" ; then
- warnL "$with_zippy_req was requested as the Zippy program,"
- warn2 "but was not found. The default will be used instead."
+ if test "$gle_halfassed" = yes ; then
+ echo ''
+ warn2 'More specifically, we found the headers, but not the'
+ warn2 'libraries; so either GLE is half-installed on this'
+ warn2 "system, or something else went wrong. The \`config.log'"
+ warn2 'file might contain some clues.'
fi
+
+ echo ''
+ warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
+ warn2 'will not be built or installed. You might want to consider'
+ warn2 'installing GLE and re-running configure. You can find the'
+ warn2 'GLE library at <http://www.linas.org/gle/>. For general'
+ warn2 'OpenGL info, see <http://www.opengl.org/>.'
+
+ fi
+fi
+
+
+if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
+ warn 'Use of XReadDisplay was requested, but it was not found.'
fi
if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
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}
+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'`
-HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
+bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
+HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
+HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
-# Sanity check the subdir
+# Sanity check the hackdir
for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
echo ""
- AC_MSG_ERROR([\"--enable-subdir=${bindir}/${bad_choice}\" won't work.
+ AC_MSG_ERROR([\"--with-hackdir=${bindir}/${bad_choice}\" won't work.
There will be an executable installed with that name, so
that can't be the name of a directory as well. Please
re-configure with a different directory name.])
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>&- | \
- sed 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-[0-9][0-9]*$/\1/'`
-changequote([,])
+if test -z "$RPM_PACKAGE_VERSION" ; then
-if test \! -z "$rpmv" ; then
- rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
- rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
+ rpmnames="xscreensaver xscreensaver-base xscreensaver-extras"
- warning=no
- warnL "There is already an installed RPM of xscreensaver $rpmv"
- warn2 "on this system. You might want to remove it (with"
- warn2 '"rpm -ve xscreensaver") before running "make install"'
- warn2 "from this directory."
- echo ""
- warn2 "Alternately, you could build this version of xscreensaver"
- warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
- warn2 "file is included. See the RPM documentation for more info."
- echo ""
+ # M4 sucks!!
+ changequote(X,Y)
+ rpmv=`(rpm -qv $rpmnames) 2>/dev/null | \
+ sed -n 's/^[-a-z]*-\([0-9][0-9]*[.][0-9][0-9a-z]*\)-.*$/\1/p' | \
+ head -1`
+ changequote([,])
- if test "$rpmbdir" = "$rpmhdir" ; then
- warn2 "The RPM version was installed in $rpmbdir."
- else
- warn2 "The RPM version was installed in $rpmbdir,"
- warn2 "with demos in $rpmhdir."
- fi
+ if test \! -z "$rpmv" ; then
+ rpmbdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
+ rpmhdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/popsquares$@\1@p'`
- do_dir_warning=yes
-fi
+ warning=no
+ warnL "There is already an installed RPM of xscreensaver $rpmv"
+ warn2 'on this system. You might want to remove it ("rpm -ve")'
+ warn2 'before running "make install" in this directory.'
+ echo ""
+ warn2 "Alternately, you could build this version of xscreensaver"
+ warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
+ warn2 'file is included. Try "rpmbuild -v -ba xscreensaver.spec".'
+ warn2 "See the RPM documentation for more info."
+ echo ""
+ if test "$rpmbdir" = "$rpmhdir" ; then
+ warn2 "The RPM version was installed in $rpmbdir/."
+ do_dir_warning=yes
+ else
+ warn2 "The RPM version was installed in $rpmbdir/,"
+ warn2 "with demos in $rpmhdir/."
+ fi
+ fi
+fi
-# Warn about egregious GNOME bogosity.
+# Also warn if there's a Debian package installed.
#
-if (rpm -qv control-center) >&- 2>&- ; then
+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 "The Gnome Control Center seems to be installed."
- echo ""
- warn2 "Note that simply installing this version of xscreensaver"
- warn2 "will not cause GNOME to know about the newly-added display"
- warn2 "modes -- GNOME is just lame that way. Instead of using the"
- warn2 "Control Center, try using the \`xscreensaver-demo' command."
+ 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
echo ""
echo ' When you run "make install", the "xscreensaver",'
echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
- echo " will be installed in ${bindir}."
+ echo " will be installed in ${bindir}/."
echo ""
- echo " The various graphics demos (100+ different executables) will"
- echo " also be installed in ${HACKDIR}."
+ echo " The various graphics demos (190+ different executables) will"
+ echo " be installed in ${HACKDIR}/."
echo ""
- echo " If you would prefer the demos to be installed elsewhere"
- echo " (for example, in a dedicated directory) you should re-run"
- echo " configure with the --enable-subdir=DIR option. For more"
- echo " information, run $0 --help."
+ echo " If you would prefer the demos to be installed elsewhere,"
+ echo " you should re-run configure with the --with-hackdir=DIR"
+ echo " option. For more information, run \`./configure --help'."
warning=yes
fi
if test "$warning" != no; then
echo '' ; echo "$warnsep" ; echo ''
fi
+
+if test "$do_dir_warning" = no; then
+ if test "$warning" = no; then
+ echo ''
+ fi
+ echo "User programs will be installed in ${bindir}/"
+ echo "Screen savers will be installed in ${HACKDIR}/"
+ echo "Configuration dialogs will be installed in ${HACK_CONF_DIR}/"
+ echo "System-wide default settings will be installed in ${APPDEFAULTS}/"
+ echo ''
+fi