1404 lines
40 KiB
Plaintext
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)
|