AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e)
CC="$CC -qlanglvl=ansi -qhalt=e"
;;
+
+# NOTE: for Digital, need to add -std1 to get ANSI, but I'm not sure
+# yet what $host pattern we should be testing for...
+
*)
AC_MSG_RESULT(no idea)
;;
AC_TYPE_MODE_T
AC_TYPE_PID_T
-AC_TYPE_SIGNAL
AC_TYPE_SIZE_T
-
+AC_TYPE_SIGNAL
AC_MSG_CHECKING(how to call gettimeofday)
AC_CACHE_VAL(ac_cv_gettimeofday_args,
[AC_TRY_COMPILE([#include <stdlib.h>
#include <sys/time.h>],
- [struct timeval tv; gettimeofday(&tv);],
- [ac_gettimeofday_args=1],
+ [struct timeval tv; struct timezone tzp;
+ gettimeofday(&tv, &tzp);],
+ [ac_gettimeofday_args=2],
[AC_TRY_COMPILE([#include <stdlib.h>
#include <sys/time.h>],
- [struct timeval tv; struct timezone tzp;
- gettimeofday(&tv, &tzp);],
- [ac_gettimeofday_args=2],
+ [struct timeval tv; gettimeofday(&tv);],
+ [ac_gettimeofday_args=1],
[ac_gettimeofday_args=0])])
ac_cv_gettimeofday_args=$ac_gettimeofday_args])
ac_gettimeofday_args=$ac_cv_gettimeofday_args
AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv)
+AC_CHECK_FUNCS(sigaction)
+
AC_CHECK_HEADERS(unistd.h)
dnl /usr/local/src/ssh-1.2.17/putenv.c -- AC_REPLACE_FUNCS(putenv)
specify the name of the subdirectory. For example,
--exec-prefix=/usr/local/bin --enable-subdir=demos
would put xscreensaver in /usr/local/bin/, and would
- put the demos in /usr/local/bin/demos/. Note that if
- you do this, you must make sure that the directory
- is on your \$PATH before xscreensaver is started: the
- directory name is not hardcoded into the program.
- This merely sets the default installation location.
+ put the demos in /usr/local/bin/demos/. (If DIR
+ begins with /, then bindir will not be prepended.)
--disable-subdir Just put the demos in \`bindir' (this is the default.)
],
[enable_subdir="$enableval"],[enable_subdir=no])
if test x"$enable_subdir" = xno; then
- HACKDIR='$(bindir)'
+ 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"
exit 1
else
- HACKDIR='$(bindir)/'$enable_subdir
+ # there must be a better way than this...
+ if test -z "`echo $enable_subdir | sed 's@^/.*@@'`" ; then
+ # absolute path
+ HACKDIR=$enable_subdir
+ else
+ # relative path
+ HACKDIR='${bindir}/'$enable_subdir
+ fi
fi
[AC_REQUIRE_CPP()
AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
[AC_PATH_X_APP_DEFAULTS_XMKMF
- AC_PATH_X_APP_DEFAULTS_DIRECT
+ if test x"$ac_x_app_defaults" = x; then
+ AC_PATH_X_APP_DEFAULTS_DIRECT
+ fi
if test x"$ac_x_app_defaults" = x; then
ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
else
LDFLAGS="$LDFLAGS -L$libdir"
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
- LDFLAGS="$LDFLAGS -L$x_libraries"
+ if test \! -z "$x_libraries" ; then
+ LDFLAGS="$LDFLAGS -L$x_libraries"
+ fi
AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
CPPFLAGS="$ac_save_CPPFLAGS"
LDFLAGS="$ac_save_LDFLAGS"])
+# Like AC_TRY_RUN, but it uses the already-computed -I directories.
+# (But not the -L directories!)
+#
+AC_DEFUN(AC_TRY_X_RUN, [
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ if test \! -z "$includedir" ; then
+ CPPFLAGS="$CPPFLAGS -I$includedir"
+ fi
+ CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+ AC_TRY_RUN([$1], [$2], [$3], [$4])
+ CPPFLAGS="$ac_save_CPPFLAGS"])
+
+
if test -d /usr/contrib/X11R6/include ; then
X_CFLAGS="-I/usr/contrib/X11R6/include $X_CFLAGS"
X_LIBS="-L/usr/contrib/X11R6/lib $X_LIBS"
+ elif test -d /usr/X11R6/include ; then
+ X_CFLAGS="-I/usr/X11R6/include $X_CFLAGS"
+ X_LIBS="-L/usr/X11R6/lib $X_LIBS"
elif test -d /usr/contrib/X11R5/include ; then
X_CFLAGS="-I/usr/contrib/X11R5/include $X_CFLAGS"
X_LIBS="-L/usr/contrib/X11R5/lib $X_LIBS"
+ elif test -d /usr/X11R5/include ; then
+ X_CFLAGS="-I/usr/X11R5/include $X_CFLAGS"
+ X_LIBS="-L/usr/X11R5/lib $X_LIBS"
fi
;;
*-solaris*)
# Same to you, pinheads. (Is this really the standard location now?
# What happened to the joke that this kind of thing went in /opt?)
+ # cthomp says "answer: CDE (Common Disorganized Environment)"
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"
have_sgi=no
with_sgi_req=unspecified
AC_ARG_WITH(sgi-ext,[
-Server options:
+X Server Extension options:
--with-sgi-ext Include support for the SGI SCREEN_SAVER
server extension, if possible (this is the default).
fi
-# Check for the XIDLE server extension header,
+# Check for the XIDLE server extension header.
#
have_xidle=no
with_xidle_req=unspecified
fi
+# Check for the XSHM server extension header.
+#
+have_xshm=no
+with_xshm_req=unspecified
+AC_ARG_WITH(xshm-ext,
+[ --with-xshm-ext Include support for the XSHM (Shared Memory) server
+ extension, if possible (this is the default).
+ --without-xshm-ext Do not compile in support for this extension.],
+ [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
+if test $with_xshm = yes; then
+
+ # first check for Xshm.h.
+ AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes])
+
+ # if that succeeded, then check for sys/ipc.h.
+ if test $have_xshm = yes; then
+ have_xshm=no
+ AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
+ fi
+
+ # if that succeeded, then check for sys/shm.h.
+ if test $have_xshm = yes; then
+ have_xshm=no
+ AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
+ fi
+
+ # AIX is pathological, as usual: apparently it's normal for the Xshm headers
+ # to exist, but the library code to not exist. And even better, the library
+ # code is in its own library: libXextSam.a. So, if we're on AIX, and that
+ # lib doesn't exist, give up.
+ #
+ case "$host" in
+ *-aix*)
+ have_xshm=no
+ AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
+ [have_xshm=yes; SAVER_LIBS="$SAVER_LIBS -lXextSam"],
+ [], -lX11 -lXext -lm)
+ ;;
+ esac
+
+ # if that succeeded, then we've really got it.
+ if test $have_xshm = yes; then
+ AC_DEFINE(HAVE_XSHM_EXTENSION)
+ fi
+
+elif test $with_xshm != no; then
+ echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
+ exit 1
+fi
+
+
+# Check for the SGI-VIDEO-CONTROL server extension header.
+#
+have_sgivc=no
+with_sgivc_req=unspecified
+AC_ARG_WITH(sgivc-ext,
+[ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL server
+ extension, if possible (this is the default).
+ --without-sgivc-ext Do not compile in support for this extension.],
+ [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
+if test $with_sgivc = yes; then
+
+ # first check for XSGIvc.h
+ AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes])
+
+ # 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"], [],
+ -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 DPMS server extension header.
+#
+have_dpms=no
+with_dpms_req=unspecified
+AC_ARG_WITH(dpms-ext,
+[ --with-dpms-ext Include support for the DPMS server extension,
+ if possible (this is the default).
+ --without-dpms-ext Do not compile in support for this extension.],
+ [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
+if test $with_dpms = yes; then
+
+ # first check for dpms.h
+ AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes])
+
+ # 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"], [],
+ -lXext -lX11)
+ fi
+
+ # if that succeeded, then we've really got it.
+ if test $have_dpms = yes; then
+ AC_DEFINE(HAVE_DPMS_EXTENSION)
+ fi
+
+elif test $with_dpms != no; then
+ echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
+ exit 1
+fi
+
+
+
# Check for Motif and Athena --with and --without arguments.
#
have_motif=no
have_athena=no
+have_athena3d=no
with_motif_req=unspecified
with_athena_req=unspecified
AC_ARG_WITH(motif,[
-Toolkit options:
+X Client Toolkit options:
--with-motif Use the Motif toolkit for the user interface,
if possible (this is the default).
}
check_athena() {
- AC_CHECK_X_HEADER(X11/Xaw/Dialog.h,
- [have_athena=yes
- AC_DEFINE(HAVE_ATHENA)
- SAVER_LIBS="-lXaw $SAVER_LIBS"])
+ have_athena=no
+ have_athena3d=no
+ AC_CHECK_X_HEADER(X11/Xaw/Dialog.h, [have_athena=yes])
+ AC_CHECK_X_LIB(Xaw3d, Xaw3dComputeTopShadowRGB,
+ [have_athena=yes; have_athena3d=yes], [],
+ -lXt -lXmu -lXext -lX11)
+
+ if test $have_athena3d = yes; then
+ SAVER_LIBS="-lXaw3d $SAVER_LIBS"
+ elif test $have_athena = yes; then
+ SAVER_LIBS="-lXaw $SAVER_LIBS"
+ fi
}
# If they asked for only athena, check athena then motif.
# If they asked for neither, check motif then athena.
+proselytize_motif=yes
if test $with_motif = yes; then
# asked for both, or for motif only
check_motif
check_athena
if test $have_athena = yes; then
with_motif=no
+ proselytize_motif=no
else
check_motif
fi
fi
+if test $have_motif = yes; then
+ proselytize_motif=no
+fi
# If we have Athena, check whether it's a version that includes
# XawViewportSetCoordinates in Viewport.h (R3 (or R4?) don't.)
# If we have Motif, check whether it's really LessTif.
#
+have_lesstif=no
if test $have_motif = yes ; then
AC_CACHE_CHECK([whether Motif is really LessTif],
ac_cv_have_lesstif,
have_lesstif=$ac_cv_have_lesstif
fi
+# don't cache this
+unset ac_cv_good_lesstif
+
+good_lesstif=no
+if test $have_lesstif = yes ; then
+ # It must be at least "GNU Lesstif 0.82".
+ # #### If you change this, also sync the warning message lower down.
+ AC_CACHE_CHECK([whether LessTif is of a recent enough vintage],
+ ac_cv_good_lesstif,
+ [AC_TRY_X_RUN([#include <Xm/Xm.h>
+ int main() { exit(LesstifVersion < 82); }],
+ [ac_cv_good_lesstif=yes],
+ [ac_cv_good_lesstif=no],
+ # cross compiling? Make an ass out of umption.
+ [ac_cv_good_lesstif=yes])])
+ good_lesstif=$ac_cv_good_lesstif
+fi
+
+
+# Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
+# Extension". Why this extension isn't in -lXext with all the others,
+# I have no idea.
+#
+have_xp_ext=no
+if test $have_motif = yes ; then
+ have_xp_ext=no
+ AC_CHECK_X_LIB(Xp, XpQueryExtension,
+ [have_xp_ext=yes; SAVER_LIBS="$SAVER_LIBS -lXp"],
+ [], -lX11 -lXext -lm)
+fi
+
# check for XPM header.
#
have_xpm=no
with_xpm_req=unspecified
AC_ARG_WITH(xpm,[
-Demo options:
+Graphics Demo options:
--with-xpm Include support for XPM files in some demos,
if possible (this is the default).
fi
+# check for SGI's Iris Video Library header.
+#
+have_sgivideo=no
+with_sgivideo_req=unspecified
+AC_ARG_WITH(sgivideo,
+[ --with-sgivideo Include support for SGI's Iris Video Library
+ if possible (this is the default).
+ --without-sgivideo Do not compile in support for this library.],
+ [with_sgivideo="$withval"; with_sgivideo_req="$withval"],
+ [with_sgivideo=yes])
+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)
+ fi
+ fi
+elif test $with_sgivideo != no; then
+ echo "error: must be yes or no: --with-sgivideo=$with_sgivideo"
+ exit 1
+fi
+
+
# Try to find a program to generate random text.
#
# If that doesn't work, look in /usr/games, and if it's there, use
# the full pathname.
#
-with_zippy=""
+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
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="$withval"])
+ [ with_zippy_req="$withval"; with_zippy="$withval" ],
+ [ with_zippy_req="$withval"; with_zippy="$withval" ])
if test "$with_zippy" = no || test "$with_zippy" = yes ; then
- $with_zippy=""
+ with_zippy=""
+ with_zippy_req=""
fi
-if test -n "$with_zippy" ; then
+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=""
+ fi
+ ;;
+ esac
ac_cv_zippy_program="$with_zippy"
elif test -n "$ac_cv_zippy_program"; then
AC_MSG_RESULT([checking for zippy... (cached) $ac_cv_zippy_program])
+fi
-else
+if test ! -n "$ac_cv_zippy_program"; then
AC_CHECK_PROGS(emacs_exe, emacs)
AC_CHECK_PROGS(xemacs_exe, xemacs)
need_setuid=no
AC_ARG_ENABLE(locking,[
-Locking options:
+Screen Locking options:
--enable-locking Compile in support for locking the display
(this is the default.)
fi
fi
+ # On FreeBSD, getpwnam() and friends work just like on non-shadow-password
+ # systems -- except you only get stuff in the pw_passwd field if the running
+ # program is setuid. So, guess that we've got this lossage to contend with
+ # if /etc/master.passwd exists, and default to a setuid installation.
+ #
+ if test $passwd_cruft_done = no ; then
+ AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
+ [if test -f /etc/master.passwd ; then
+ ac_cv_master_passwd=yes
+ else
+ ac_cv_master_passwd=no
+ fi])
+ if test $ac_cv_master_passwd = yes; then
+ need_setuid=yes
+ passwd_cruft_done=yes
+ fi
+ fi
+
# On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
have_crypt=no
AC_CHECK_LIB(c, crypt, [have_crypt=yes])
#
if test $need_setuid = no ; then
case "$host" in
- *-hpux* | *-aix* | *-netbsd* )
+ *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
need_setuid=yes
;;
esac
DEPEND_DEFINES=
+# Autoconf doesn't seem to have an INSTALL_DIRS, so let's define our own...
+INSTALL_DIRS='$(INSTALL) -d'
# Done testing things -- now substitute in some stuff for the Makefiles.
#
AC_SUBST(GL_LIBS)
AC_SUBST(PASSWD_LIBS)
AC_SUBST(INSTALL_SETUID)
+AC_SUBST(INSTALL_DIRS)
AC_SUBST(NEED_SETUID)
+AC_SUBST(SGI_VIDEO_OBJS)
+AC_SUBST(SGI_VIDEO_LIBS)
AC_SUBST(DIALOG_SRCS)
AC_SUBST(DIALOG_OBJS)
#
warning=no
warnsep=' #################################################################'
-warn() {
+warnpre() {
if test $warning = no ; then
echo '' ; echo "$warnsep" ; echo ''
warning=yes
fi
- echo " Warning:" $*
+}
+
+warn() {
+ warnpre
+ if test $warning = long ; then echo '' ; fi
+ warning=yes
+ echo " Warning: $@"
+}
+
+warnL() {
+ was=$warning
+ warnpre
+ warning=yes
+ if test $was != no ; then echo '' ; fi
+ echo " Warning: $@"
}
warn2() {
- echo " " $*
+ echo " $@"
+ warning=long
}
if test $with_sgi_req = yes -a $have_sgi = no ; then
warn 'The XIdle extension was requested, but was not found.'
fi
+if test $with_xshm_req = yes -a $have_xshm = no ; then
+ warn 'The XSHM extension was requested, but was not found.'
+fi
+
+if test $with_sgivc_req = yes -a $have_sgivc = no ; then
+ warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
+fi
+
+if test $with_dpms_req = yes -a $have_dpms = no ; then
+ warn 'The DPMS extension was requested, but was not found.'
+fi
+
if test $have_motif = no -a $have_athena = no ; then
- warn "Neither Motif nor Athena widgets seem to be available;"
+ warnL "Neither Motif nor Athena widgets seem to be available;"
warn2 "one or the other is required."
+ proselytize_motif=no
elif test $with_motif_req = yes -a $have_motif = no ; then
- warn "Use of Motif was requested, but it wasn't found;"
+ warnL "Use of Motif was requested, but it wasn't found;"
warn2 "Athena will be used instead."
elif test $with_athena_req = yes -a $have_athena = no ; then
- warn "Use of Athena was requested, but it wasn't found;"
+ warnL "Use of Athena was requested, but it wasn't found;"
warn2 "Motif will be used instead."
fi
if test $have_motif = yes -a $have_lesstif = yes ; then
- warn "Motif is being used, but it appears to actually be LessTif."
- warn2 "XScreenSaver has been reported to have problems with some"
- warn2 "versions of LessTif (notably 0.79). You might want to use"
- warn2 "Athena instead."
+ if test $good_lesstif != yes ; then
+ warnL "Motif is being used, but it appears to actually be"
+ warn2 "LessTif, and the version number is less than 0.82!"
+ warn2 "Such old versions of LessTif are too buggy to use"
+ warn2 "with XScreenSaver; it is strongly recommended that"
+ warn2 "you upgrade! See <http://www.lesstif.org/>."
+ fi
+fi
+
+if test $proselytize_motif = yes ; then
+ warnL "Athena widgets are being used instead of Motif."
+ warn2 "XScreenSaver looks much better with Motif, and has"
+ warn2 "a few extra features as well. Wouldn't you rather"
+ warn2 "be using Motif? It is shipped by every commercial"
+ warn2 "Unix vendor; and there is a free implementation"
+ warn2 "available as well: see <http://www.lesstif.org/>."
fi
if test $with_xpm_req = yes -a $have_xpm = 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 $with_kerberos_req = yes -a $have_kerberos = no ; then
warn 'Use of Kerberos was requested, but it was not found.'
fi
warn 'Use of shadow passwords was requested, but they were not found.'
fi
-if test $warning = yes; then
+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."
+ fi
+fi
+
+if test $warning != no; then
echo '' ; echo "$warnsep" ; echo ''
fi
hacks/Makefile
hacks/glx/Makefile
driver/XScreenSaver.ad)
+
+# 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}
+
+echo ""
+echo "$warnsep"
+echo ""
+echo ' When you run "make install", the "xscreensaver" and'
+echo ' "xscreensaver-command" executables will be installed in'
+echo " ${bindir}."
+echo ""
+echo " The various graphics demos (60+ 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 ""
+echo "$warnsep"
+echo ""