xenocara/app/xlockmore/xscreensaver/configure.in
2006-11-26 11:07:42 +00:00

1404 lines
40 KiB
Plaintext

# configure.in --- xscreensaver, Copyright (c) 1997 Jamie Zawinski.
#
AC_INIT(driver/subprocs.c)
AC_CONFIG_HEADER(config.h)
AC_CANONICAL_HOST
AC_PROG_CC
if test -z "$GCC"; then
AC_MSG_CHECKING(how to request ANSI compilation)
case "$host" in
*-hpux*)
AC_MSG_RESULT(HPUX: adding -Ae)
CC="$CC -Ae"
;;
*-aix*)
AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e)
CC="$CC -qlanglvl=ansi -qhalt=e"
;;
*)
AC_MSG_RESULT(no idea)
;;
esac
fi
AC_MSG_CHECKING([whether the compiler works on ANSI C])
AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
case "$host" in
*-irix*)
if test -n "$GCC"; then
AC_MSG_RESULT(Turning on gcc compiler warnings.)
CC="$CC -Wall -Wstrict-prototypes -Wnested-externs -Wno-format"
else
# not gcc
AC_MSG_RESULT(Turning on SGI compiler warnings.)
CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
fi
;;
esac
AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_MAKE_SET
AC_C_CONST
AC_C_INLINE
AC_HEADER_STDC
AC_HEADER_TIME
AC_HEADER_SYS_WAIT
AC_HEADER_DIRENT
AC_TYPE_MODE_T
AC_TYPE_PID_T
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],
[AC_TRY_COMPILE([#include <stdlib.h>
#include <sys/time.h>],
[struct timeval tv; struct timezone tzp;
gettimeofday(&tv, &tzp);],
[ac_gettimeofday_args=2],
[ac_gettimeofday_args=0])])
ac_cv_gettimeofday_args=$ac_gettimeofday_args])
ac_gettimeofday_args=$ac_cv_gettimeofday_args
if test $ac_gettimeofday_args = 1 ; then
AC_DEFINE(HAVE_GETTIMEOFDAY)
AC_MSG_RESULT(one argument)
elif test $ac_gettimeofday_args = 2 ; then
AC_DEFINE(HAVE_GETTIMEOFDAY)
AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
AC_MSG_RESULT(two arguments)
else
AC_MSG_RESULT(unknown)
fi
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)
AC_ARG_ENABLE(subdir,[
Installation options:
--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/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.
--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)'
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
fi
AC_PATH_XTRA
# Try and find the app-defaults directory.
# It sucks that autoconf doesn't do this already...
#
AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,
[
rm -fr conftestdir
if mkdir conftestdir; then
cd conftestdir
# 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
# GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
fi
cd ..
rm -fr conftestdir
fi])
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 ac_dir in \
/usr/X11/lib/app-defaults \
/usr/X11R6/lib/app-defaults \
/usr/X11R6/lib/X11/app-defaults \
/usr/X11R5/lib/app-defaults \
/usr/X11R5/lib/X11/app-defaults \
/usr/X11R4/lib/app-defaults \
/usr/X11R4/lib/X11/app-defaults \
\
/usr/lib/X11/app-defaults \
/usr/lib/X11R6/app-defaults \
/usr/lib/X11R5/app-defaults \
/usr/lib/X11R4/app-defaults \
\
/usr/local/X11/lib/app-defaults \
/usr/local/X11R6/lib/app-defaults \
/usr/local/X11R5/lib/app-defaults \
/usr/local/X11R4/lib/app-defaults \
\
/usr/local/lib/X11/app-defaults \
/usr/local/lib/X11R6/app-defaults \
/usr/local/lib/X11R6/X11/app-defaults \
/usr/local/lib/X11R5/app-defaults \
/usr/local/lib/X11R5/X11/app-defaults \
/usr/local/lib/X11R4/app-defaults \
/usr/local/lib/X11R4/X11/app-defaults \
\
/usr/X386/lib/X11/app-defaults \
/usr/x386/lib/X11/app-defaults \
/usr/XFree86/lib/X11/app-defaults \
\
/usr/lib/X11/app-defaults \
/usr/local/lib/X11/app-defaults \
/usr/unsupported/lib/X11/app-defaults \
/usr/athena/lib/X11/app-defaults \
/usr/local/x11r5/lib/X11/app-defaults \
/usr/lpp/Xamples/lib/X11/app-defaults \
/lib/usr/lib/X11/app-defaults \
\
/usr/openwin/lib/app-defaults \
/usr/openwin/lib/X11/app-defaults \
/usr/openwin/share/lib/app-defaults \
/usr/openwin/share/lib/X11/app-defaults \
\
/X11R6/lib/app-defaults \
/X11R5/lib/app-defaults \
/X11R4/lib/app-defaults \
; \
do
if test -d "$ac_dir"; then
ac_x_app_defaults=$ac_dir
break
fi
done
])
AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
[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_cv_x_app_defaults="/usr/lib/X11/app-defaults"
else
# Record where we found app-defaults for the cache.
ac_cv_x_app_defaults="$ac_x_app_defaults"
fi])
eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
AC_PATH_X_APP_DEFAULTS
APPDEFAULTS=$ac_x_app_defaults
# Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
#
AC_DEFUN(AC_CHECK_X_HEADER, [
ac_save_CPPFLAGS="$CPPFLAGS"
if test \! -z "$includedir" ; then
CPPFLAGS="$CPPFLAGS -I$includedir"
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
AC_CHECK_HEADER([$1], [$2])
CPPFLAGS="$ac_save_CPPFLAGS"])
# Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
#
AC_DEFUN(AC_EGREP_X_HEADER, [
ac_save_CPPFLAGS="$CPPFLAGS"
if test \! -z "$includedir" ; then
CPPFLAGS="$CPPFLAGS -I$includedir"
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
AC_EGREP_HEADER([$1], [$2], [$3], [$4])
CPPFLAGS="$ac_save_CPPFLAGS"])
# Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
#
AC_DEFUN(AC_TRY_X_COMPILE, [
ac_save_CPPFLAGS="$CPPFLAGS"
if test \! -z "$includedir" ; then
CPPFLAGS="$CPPFLAGS -I$includedir"
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
AC_TRY_COMPILE([$1], [$2], [$3], [$4])
CPPFLAGS="$ac_save_CPPFLAGS"])
# Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
# Use this sparingly; it probably doesn't work very well on X programs.
#
AC_DEFUN(AC_CHECK_X_LIB, [
ac_save_CPPFLAGS="$CPPFLAGS"
ac_save_LDFLAGS="$LDFLAGS"
if test \! -z "$includedir" ; then
CPPFLAGS="$CPPFLAGS -I$includedir"
fi
if test \! -z "$includedir" ; then
CPPFLAGS="$CPPFLAGS -I$includedir"
fi
if test \! -z "$libdir" ; then
LDFLAGS="$LDFLAGS -L$libdir"
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
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"])
# check for the HP XHPDisableReset server extension headers.
#
AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
[AC_DEFINE(HAVE_XHPDISABLERESET)
SAVER_LIBS="-lXhp11 $SAVER_LIBS"])
# Check for the availability of the XPointer typedef, and define it otherwise.
#
AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
[AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
[XPointer foo = (XPointer) 0;],
[ac_cv_xpointer=yes],
[ac_cv_xpointer=no])])
if test $ac_cv_xpointer != yes; then
AC_DEFINE(XPointer,[char*])
fi
case "$host" in
*-hpux*)
# Thanks for not making xmkmf find this by default, you losers.
if test -d /usr/lib/Motif1.2 ; then
X_CFLAGS="-I/usr/include/Motif1.2 $X_CFLAGS"
X_LIBS="-L/usr/lib/Motif1.2 $X_LIBS"
elif test -d /usr/lib/Motif1.1 ; then
X_CFLAGS="-I/usr/include/Motif1.1 $X_CFLAGS"
X_LIBS="-L/usr/lib/Motif1.1 $X_LIBS"
fi
# This too. You losers.
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"
# Some versions of Slowlaris Motif require -lgen. But not all. Why?
AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"])
fi
;;
esac
# Check for Xmu (some fucked up vendors don't ship it...)
#
have_xmu=no
AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes])
if test $have_xmu = no ; then
XMU_SRCS='$(UTILS_SRC)/xmu.c'
XMU_OBJS='$(UTILS_BIN)/xmu.o'
else
XMU_SRCS=''
XMU_OBJS=''
SAVER_LIBS="-lXmu $SAVER_LIBS"
HACK_LIBS="-lXmu $HACK_LIBS"
AC_DEFINE(HAVE_XMU)
fi
# See comp.windows.x FAQ question 124 about _get_wmShellWidgetClass on 4.1.x.
# The right fix is to get OpenWindows 3.0 patches 100512-02 and 100573-03.
#
if test $have_xmu = yes ; then
case "$host" in
*-sunos4*)
AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
ac_cv_sunos_xmu_bug,
[ac_save_LDFLAGS="$LDFLAGS"
if test \! -z "$x_libraries" ; then
LDFLAGS="$LDFLAGS -L$x_libraries"
fi
# Note: this trick never works! (Generally.)
# We're only getting away with using AC_TRY_LINK
# with X libraries because we know it's SunOS.
LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
AC_TRY_LINK(,,
[ac_cv_sunos_xmu_bug=no],
[ac_cv_sunos_xmu_bug=yes])
LDFLAGS="$ac_save_LDFLAGS"])
if test $ac_cv_sunos_xmu_bug = yes ; then
AC_CACHE_CHECK([whether the compiler understands -static],
ac_cv_ld_static,
[ac_save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -static"
AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
LDFLAGS="$ac_save_LDFLAGS"])
if test $ac_cv_ld_static = yes ; then
LDFLAGS="$LDFLAGS -static"
else
LDFLAGS="$LDFLAGS -Bstatic"
fi
fi
;;
esac
fi
# Check for the SGI SCREEN_SAVER server extension header.
#
have_sgi=no
with_sgi_req=unspecified
AC_ARG_WITH(sgi-ext,[
Server options:
--with-sgi-ext Include support for the SGI SCREEN_SAVER
server extension, if possible (this is the default).
--without-sgi-ext Do not compile in support for this extension.],
[with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
if test $with_sgi = yes; then
AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
[have_sgi=yes
AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)])
elif test $with_sgi != no; then
echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
exit 1
fi
# Check for the MIT-SCREEN-SAVER server extension header,
# unless the SGI extension has already been found.
#
have_mit=no
with_mit_req=unspecified
AC_ARG_WITH(mit-ext,
[ --with-mit-ext Include support for the MIT-SCREEN-SAVER
server extension, if possible (this is the default).
--without-mit-ext Do not compile in support for this extension.],
[with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
if test $have_sgi != yes; then
if test $with_mit = yes; then
AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes])
# 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, [], [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"],
[], -lX11 -lXext -lm)
fi
if test $have_mit = no; then
# Double fuck! Looks like some versions of XFree86 (whichever version
# it is that comes with RedHat Linux 2.0 -- I can't find a version
# number) put this garbage in Xss instead of Xext. Thank you master,
# may I have another.
AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
[have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
[], -lX11 -lXext -lm)
fi
if test $have_mit = yes; then
AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
fi
fi
elif test $with_mit != no; then
echo "error: must be yes or no: --with-mit-ext=$with_mit"
exit 1
fi
fi
# Check for the XIDLE server extension header.
#
have_xidle=no
with_xidle_req=unspecified
AC_ARG_WITH(xidle-ext,
[ --with-xidle-ext Include support for the XIDLE server extension,
if possible (this is the default).
--without-xidle-ext Do not compile in support for this extension.],
[with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
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"
exit 1
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
# 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 Motif and Athena --with and --without arguments.
#
have_motif=no
have_athena=no
with_motif_req=unspecified
with_athena_req=unspecified
AC_ARG_WITH(motif,[
Toolkit options:
--with-motif Use the Motif toolkit for the user interface,
if possible (this is the default).
--without-motif Do not use Motif.],
[with_motif="$withval"; with_motif_req="$withval"],[with_motif=no])
AC_ARG_WITH(athena,
[ --with-athena Use the Athena toolkit for the user interface, if
possible (this is the default if Motif isn't used.)
--without-athena Do not use Athena.],
[with_athena="$withval"; with_athena_req="$withval"],[with_athena=no])
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 -a $with_athena != no ; then
echo "error: must be yes or no: --with-athena=$with_athena"
exit 1
fi
# Saying --without-motif is the same as saying --with-athena.
if test $with_motif_req = no ; then
with_athena_req=yes
with_athena=yes
fi
# Saying --without-athena is the same as saying --with-motif.
if test $with_athena_req = no ; then
with_motif_req=yes
with_motif=yes
fi
# Check for Motif and Athena headers.
check_motif() {
AC_CHECK_X_HEADER(Xm/Xm.h,
[have_motif=yes
AC_DEFINE(HAVE_MOTIF)
SAVER_LIBS="-lXm $SAVER_LIBS"])
}
check_athena() {
AC_CHECK_X_HEADER(X11/Xaw/Dialog.h,
[have_athena=yes
AC_DEFINE(HAVE_ATHENA)
SAVER_LIBS="-lXaw $SAVER_LIBS"])
}
# If they asked for both motif and athena, check motif then athena.
# If they asked for only motif, check motif then athena.
# 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
if test $have_motif = yes; then
with_athena=no
with_athena_req=no
else
check_athena
fi
elif test $with_athena = yes; then
# asked for athena only
check_athena
if test $have_athena = yes; then
with_motif=no
proselytize_motif=no
else
check_motif
fi
else
# asked for neither
check_motif
if test $have_motif = yes; then
with_athena=no
else
check_athena
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 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
fi
# 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,
[AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
[long vers = LesstifVersion;],
[ac_cv_have_lesstif=yes],
[ac_cv_have_lesstif=no])])
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
# check for XPM header.
#
have_xpm=no
with_xpm_req=unspecified
AC_ARG_WITH(xpm,[
Demo options:
--with-xpm Include support for XPM files in some demos,
if possible (this is the default).
--without-xpm Do not compile in support for XPM files.],
[with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
if test $with_xpm = yes; then
AC_CHECK_X_HEADER(X11/xpm.h,
[have_xpm=yes
AC_DEFINE(HAVE_XPM)
XPM_LIBS="-lXpm"])
elif test $with_xpm != no; then
echo "error: must be yes or no: --with-xpm=$with_xpm"
exit 1
fi
# check for the GL header
#
have_gl=no
with_gl_req=unspecified
AC_ARG_WITH(gl,
[ --with-gl Build those demos which depend on OpenGL,
if possible (this is the default).
--without-gl Do not build the OpenGL demos.],
[with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
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)
fi
# If we have the headers, try and figure out which vendor it's from.
#
if test $have_gl = yes ; then
AC_DEFINE(HAVE_GL)
have_mesa_gl=no
AC_EGREP_X_HEADER(Mesa, GL/glx.h, [have_mesa_gl=yes])
if test $have_mesa_gl = no ; then
GL_LIBS="-lGL -lGLU"
else
AC_DEFINE(HAVE_MESA_GL)
GL_LIBS="-lMesaGL -lMesaGLU"
fi
fi
elif test $with_gl != no; then
echo "error: must be yes or no: --with-gl=$with_gl"
exit 1
fi
# check for SGI XReadDisplay server extension header.
#
have_readdisplay=no
with_readdisplay_req=unspecified
AC_ARG_WITH(readdisplay,
[ --with-readdisplay Include support for the XReadDisplay server
extension if possible (this is the default).
--without-readdisplay Do not compile in support for this extension.],
[with_readdisplay="$withval"; with_readdisplay_req="$withval"],
[with_readdisplay=yes])
if test $with_readdisplay = yes; then
AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION))
elif test $with_readdisplay != no; then
echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
exit 1
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.
#
# 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.
#
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_req="$withval"; with_zippy="$withval" ])
if test "$with_zippy" = no || test "$with_zippy" = yes ; then
with_zippy=""
with_zippy_req=""
fi
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
if test ! -n "$ac_cv_zippy_program"; then
AC_CHECK_PROGS(emacs_exe, emacs)
AC_CHECK_PROGS(xemacs_exe, xemacs)
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
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([,])
yow="yow -f $dir_up/etc/yow.lines"
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
fi
fi
# 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)
fi
fi
fi
if test -z "$ac_cv_zippy_program" ; then
ac_cv_zippy_program=fortune
fi
AC_DEFINE_UNQUOTED(ZIPPY_PROGRAM, "$ac_cv_zippy_program")
# Allow locking to be disabled at compile-time.
#
have_locking=yes
have_kerberos=no
with_kerberos_req=unspecified
have_shadow=no
with_shadow_req=unspecified
need_setuid=no
AC_ARG_ENABLE(locking,[
Locking options:
--enable-locking Compile in support for locking the display
(this is the default.)
--disable-locking Do not allow locking at all.],
[enable_locking="$enableval"],[enable_locking=yes])
if test $enable_locking = yes; then
# Check for Kerberos.
#
AC_ARG_WITH(kerberos, [
--with-kerberos Include support for Kerberos authentication,
if possible (this is the default.)
--without-kerberos Do not compile in support for Kerberos.],
[with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
if test $with_kerberos = yes; then
AC_CACHE_CHECK([for Kerberos], ac_cv_kerberos,
[AC_TRY_X_COMPILE([#include <krb.h>],,
[ac_cv_kerberos=yes],
[ac_cv_kerberos=no])])
if test $ac_cv_kerberos = yes ; then
have_kerberos=yes
AC_DEFINE(HAVE_KERBEROS)
PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lnsl -lsocket"
fi
elif test $with_kerberos != no; then
echo "error: must be yes or no: --with-kerberos=$with_kerberos"
exit 1
fi
# Next, check for the nine billion variants of shadow passwords...
passwd_cruft_done=no
AC_ARG_WITH(shadow,
[ --with-shadow Include support for shadow password authentication,
if possible (this is the default, if no Kerberos.)
--without-shadow Do not compile in support for shadow passwords.
],
[with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
if test $with_shadow = no; then
passwd_cruft_done=yes
elif test $with_shadow != yes; then
echo "error: must be yes or no: --with-shadow=$with_shadow"
exit 1
fi
# Sun's "adjunct" passwords.
#
if test $passwd_cruft_done = no ; then
AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
[AC_TRY_X_COMPILE([#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/label.h>
#include <sys/audit.h>
#include <pwdadj.h>],
[struct passwd_adjunct *p = getpwanam("nobody");
const char *pw = p->pwa_passwd;],
[ac_cv_sun_adjunct=yes],
[ac_cv_sun_adjunct=no])])
if test $ac_cv_sun_adjunct = yes; then
have_shadow=yes
need_setuid=yes
passwd_cruft_done=yes
AC_DEFINE(HAVE_ADJUNCT_PASSWD)
fi
fi
# DEC and SCO so-called "enhanced" security.
#
if test $passwd_cruft_done = no ; then
AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
[AC_TRY_X_COMPILE([#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#include <sys/security.h>
#include <prot.h>],
[struct pr_passwd *p;
const char *pw;
set_auth_parameters(0, 0);
check_auth_parameters();
p = getprpwnam("nobody");
pw = p->ufld.fd_encrypt;],
[ac_cv_enhanced_passwd=yes],
[ac_cv_enhanced_passwd=no])])
if test $ac_cv_enhanced_passwd = yes; then
have_shadow=yes
need_setuid=yes
passwd_cruft_done=yes
AC_DEFINE(HAVE_ENHANCED_PASSWD)
# On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
# (I'm told it needs -lcurses too, but I don't understand why.)
AC_CHECK_LIB(prot, getprpwnam,
[PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
[# On DEC, getprpwnam() is in -lsecurity
AC_CHECK_LIB(security, getprpwnam,
[PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
[-lx])
fi
fi
# HP's entry in the "Not Invented Here" Sweepstakes.
#
if test $passwd_cruft_done = no ; then
AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
[AC_TRY_X_COMPILE([#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#include <hpsecurity.h>
#include <prot.h>],
[struct s_passwd *p = getspwnam("nobody");
const char *pw = p->pw_passwd;],
[ac_cv_hpux_passwd=yes],
[ac_cv_hpux_passwd=no])])
if test $ac_cv_hpux_passwd = yes; then
have_shadow=yes
need_setuid=yes
passwd_cruft_done=yes
AC_DEFINE(HAVE_HPUX_PASSWD)
# on HPUX, bigcrypt is in -lsec
AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
fi
fi
# Traditional (ha!) shadow passwords.
#
if test $passwd_cruft_done = no ; then
AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
[AC_TRY_X_COMPILE([#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#include <shadow.h>],
[struct spwd *p = getspnam("nobody");
const char *pw = p->sp_pwdp;],
[ac_cv_shadow=yes],
[ac_cv_shadow=no])])
if test $ac_cv_shadow = yes; then
have_shadow=yes
need_setuid=yes
passwd_cruft_done=yes
AC_DEFINE(HAVE_SHADOW_PASSWD)
# On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
have_getspnam=no
AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
if test $have_getspnam = no ; then
AC_CHECK_LIB(gen, getspnam,
[have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
fi
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 $have_crypt = no ; then
AC_CHECK_LIB(crypt, crypt,
[have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
fi
# Most of the above shadow mechanisms will have set need_setuid to yes,
# if they were found. But, on some systems, we need setuid even when
# using plain old vanilla passwords.
#
if test $need_setuid = no ; then
case "$host" in
*-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
need_setuid=yes
;;
esac
fi
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
if test \! -z "$includedir" ; then
INCLUDES="-I$includedir"
fi
if test \! -z "$libdir" ; then
LDFLAGS="$LDFLAGS -L$libdir"
fi
##### should have options to override the DEPEND crap, I guess...
DEPEND=makedepend
DEPEND_FLAGS=
DEPEND_DEFINES=
# Done testing things -- now substitute in some stuff for the Makefiles.
#
if test $have_motif = yes; then
AC_DEFINE(HAVE_MOTIF)
DIALOG_SRCS='$(MOTIF_SRCS)'
DIALOG_OBJS='$(MOTIF_OBJS)'
elif test $have_athena = yes; then
AC_DEFINE(HAVE_ATHENA)
DIALOG_SRCS='$(ATHENA_SRCS)'
DIALOG_OBJS='$(ATHENA_OBJS)'
else
DIALOG_SRCS=''
DIALOG_OBJS=''
fi
if test $have_kerberos = yes; then
PASSWD_SRCS='$(KERBEROS_SRCS)'
PASSWD_OBJS='$(KERBEROS_OBJS)'
else
PASSWD_SRCS='$(PWENT_SRCS)'
PASSWD_OBJS='$(PWENT_OBJS)'
fi
if test $enable_locking = yes; then
LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
else
LOCK_SRCS=''
LOCK_OBJS=''
fi
if test $need_setuid = yes; then
NEED_SETUID=yes
INSTALL_SETUID='$(INSTALL) $(SUID_FLAGS)'
else
NEED_SETUID=no
INSTALL_SETUID='$(INSTALL_PROGRAM)'
fi
tab=' '
if test $have_gl = yes; then
GL_EXES='$(GL_EXES)'
GL_KLUDGE_1=${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}' \'
GL_KLUDGE_2=${tab}
else
GL_KLUDGE_1=${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}'\n'
GL_KLUDGE_2='!'${tab}
fi
AC_SUBST(INCLUDES)
AC_SUBST(SAVER_LIBS)
AC_SUBST(HACK_LIBS)
AC_SUBST(XPM_LIBS)
AC_SUBST(GL_LIBS)
AC_SUBST(PASSWD_LIBS)
AC_SUBST(INSTALL_SETUID)
AC_SUBST(NEED_SETUID)
AC_SUBST(SGI_VIDEO_OBJS)
AC_SUBST(SGI_VIDEO_LIBS)
AC_SUBST(DIALOG_SRCS)
AC_SUBST(DIALOG_OBJS)
AC_SUBST(PASSWD_SRCS)
AC_SUBST(PASSWD_OBJS)
AC_SUBST(XMU_SRCS)
AC_SUBST(XMU_OBJS)
AC_SUBST(LOCK_SRCS)
AC_SUBST(LOCK_OBJS)
AC_SUBST(GL_EXES)
AC_SUBST(GL_KLUDGE_1)
AC_SUBST(GL_KLUDGE_2)
AC_SUBST(HACKDIR)
AC_SUBST(APPDEFAULTS)
AC_SUBST(DEPEND)
AC_SUBST(DEPEND_FLAGS)
AC_SUBST(DEPEND_DEFINES)
# Print some warnings before emitting the Makefiles.
#
warning=no
warnsep=' #################################################################'
warnpre() {
if test $warning = no ; then
echo '' ; echo "$warnsep" ; echo ''
warning=yes
fi
}
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 " $@"
warning=long
}
if test $with_sgi_req = yes -a $have_sgi = no ; then
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
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 $have_motif = no -a $have_athena = no ; then
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
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
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
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 XPM was requested, but it was not found.'
fi
if test $with_gl_req = yes -a $have_gl = no ; then
warn 'Use of GL was requested, but it was not found.'
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 $with_kerberos_req = yes -a $have_kerberos = no ; then
warn 'Use of Kerberos was requested, but it was not found.'
fi
if test $with_shadow_req = yes -a $have_shadow = no ; then
warn 'Use of shadow passwords was requested, but they were not found.'
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."
fi
fi
if test $warning != no; then
echo '' ; echo "$warnsep" ; echo ''
fi
AC_OUTPUT(Makefile
utils/Makefile
driver/Makefile
xlockmore/xlock/Makefile
xlockmore/modes/Makefile
hacks/Makefile
hacks/glx/Makefile
driver/XScreenSaver.ad)