-# configure.in --- xscreensaver, Copyright (c) 1997 Jamie Zawinski.
+# configure.in --- xscreensaver, Copyright (c) 1997-2004 Jamie Zawinski.
#
+AC_PREREQ(2.52)
AC_INIT(driver/subprocs.c)
+AC_CONFIG_HEADER(config.h)
echo "current directory: `pwd`"
echo "command line was: $0 $@"
-AC_CONFIG_HEADER(config.h)
-AC_CANONICAL_HOST
-AC_PROG_CC
+# After checking to see that --srcdir is correct (which AC_INIT does)
+# check for some random other files that come later in the tar file,
+# to make sure everything is here.
+#
+for d in driver utils hacks hacks/glx ; do
+ f=$srcdir/$d/Makefile.in
+ if test \! -r $f ; then
+ echo ""
+ echo "ERROR: The package is incomplete: $f does not exist."
+ echo " This probably means that your download was truncated."
+ echo ""
+ exit 1
+ fi
+done
-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"
- ;;
+###############################################################################
+#
+# Function to figure out how to run the compiler.
+#
+###############################################################################
- *-dec-*)
- AC_MSG_RESULT(DEC: adding -std1)
- CC="$CC -std1"
- ;;
+AC_DEFUN(AC_PROG_CC_ANSI,
+ [AC_PROG_CC
- *)
- AC_MSG_RESULT(no idea)
- ;;
- esac
-fi
+ 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"
+ ;;
+ *-dec-* )
+ AC_MSG_RESULT(DEC: adding -std1 -ieee)
+ CC="$CC -std1"
+ ;;
-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.))
+ *)
+ AC_MSG_RESULT(no idea)
+ ;;
+ esac
+ fi
-case "$host" in
- *-irix5* |*-irix6.[0-3]* )
- 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
- ;;
+ OBJCC="$CC"
+
+ AC_MSG_CHECKING([whether the compiler works on ANSI C])
+ AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
+ AC_MSG_RESULT(yes),
+ 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.))
+
+ if test -n "$GCC"; then
+ AC_MSG_RESULT(Turning on gcc compiler warnings.)
+ CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs"
+ OBJCC="$OBJCC -Wall"
+ # supposedly gcc 3.4 will have "-Wdeclaration-after-statement"
+ # and then perhaps we can do without -pedantic?
+ else
+ case "$host" in
+ *-irix5* |*-irix6.[0-3]* )
+ AC_MSG_RESULT(Turning on SGI compiler warnings.)
+ CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
+ ;;
+# *-dec-osf* )
+# if test -z "$GCC"; then
+# AC_MSG_RESULT(Turning on DEC C compiler warnings.)
+# CC="$CC -migrate -w0 -verbose -warnprotos"
+# fi
+# ;;
+ esac
+ fi
+])
- *-linux-*)
- AC_MSG_RESULT(Turning on gcc compiler warnings.)
- CC="$CC -Wall -Wstrict-prototypes -Wnested-externs -Wno-format"
- ;;
-# *-dec-osf*)
-# if test -z "$GCC"; then
-# AC_MSG_RESULT(Turning on DEC C compiler warnings.)
-# CC="$CC -migrate -w0 -verbose -warnprotos"
-# fi
-# ;;
+###############################################################################
+#
+# Functions to figure out how to disable // comments in ANSI C code.
+#
+# (With recent gcc, this is done with "-std=c89". With older gcc, this
+# is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to
+# gcc. Old gcc doesn't support -std, and new gcc doesn't support -lang.
+# so much for compatibility!)
+#
+# UPDATE: apparently there is NO WAY to tell gcc 3.2.2 to require that
+# declarations preceed statements, without resorting to "-pedantic".
+# This means that there is no way to get gcc3 to issue warnings that
+# ensure that your code complies with the ANSI/ISO C89 standard, without
+# also drowning in totally useless warnings. Thank you master may I
+# have another.
+#
+# So, I give up, let's just use -pedantic.
+#
+###############################################################################
+
+AC_DEFUN(AC_GCC_ACCEPTS_STD,
+ [if test -n "$GCC"; then
+ AC_CACHE_CHECK([whether gcc accepts -std],
+ ac_cv_gcc_accepts_std,
+ [if ( ( gcc -E -std=c89 - </dev/null >/dev/null ) 2>&1 | \
+ grep unrecognized >/dev/null ); then
+ ac_cv_gcc_accepts_std=no
+ else
+ ac_cv_gcc_accepts_std=yes
+ fi])
+ ac_gcc_accepts_std="$ac_cv_gcc_accepts_std"
+ fi
+])
-esac
+AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE,
+ [if test -n "$GCC"; then
+ AC_GCC_ACCEPTS_STD
+ AC_MSG_RESULT(Disabling C++ comments in ANSI C code.)
+ #
+ # The reason that // comments are banned from xscreensaver is that gcc is
+ # basically the only compiler in the world that supports them in C code.
+ # All other vendors support them only in their C++ compilers, not in their
+ # ANSI C compilers. This means that it's a portability problem: every time
+ # these comments have snuck into the xscreensaver source code, I've gotten
+ # complaints about it the next day. So we turn off support for them in gcc
+ # as well to prevent them from accidentially slipping in.
+ #
+ if test "$ac_gcc_accepts_std" = yes ; then
+ #
+ # -std=c89 defines __STRICT_ANSI__, which we don't want.
+ # (That appears to be the only additional preprocessor symbol
+ # it defines, in addition to the syntax changes it makes.)
+ #
+ # -std=gnu89 is no good, because // comments were a GNU extension
+ # before they were in the ANSI C 99 spec... (gcc 2.96 permits //
+ # with -std=gnu89 but not with -std=c89.)
+ #
+ CC="$CC -std=c89 -U__STRICT_ANSI__"
+ else
+ # The old way:
+ CC="$CC -Wp,-lang-c89"
+ fi
+ fi
+])
-# Try and determine whether ${INSTALL} can create intermediate directories,
-# and if not, whether "mkdir -p" works instead. This sets ${INSTALL_DIRS}.
-# (But autoconf should earn its keep and do this for us!)
+###############################################################################
#
-AC_DEFUN(AC_PROG_INSTALL_DIRS,
- [INSTALL_DIRS='${INSTALL} -d'
- AC_MSG_CHECKING(whether \"\${INSTALL} -d\" creates intermediate directories)
- rm -rf conftestdir
- if mkdir conftestdir; then
- cd conftestdir >&-
-
- ${INSTALL} -d `pwd`/dir1/dir2 >&- 2>&-
- if test -d dir1/dir2 ; then
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- AC_MSG_CHECKING(whether \"mkdir -p\" creates intermediate directories)
- rm -rf dir1
- mkdir -p dir1/dir2 >&- 2>&-
- if test -d dir1/dir2/. ; then
- AC_MSG_RESULT(yes)
- INSTALL_DIRS='mkdir -p'
- else
- AC_MSG_RESULT(no)
- fi
- fi
- cd .. >&-
- rm -rf conftestdir
- fi
+# Function to figure out how to turn off Objective C on MacOS X.
+# (We have to do this to work around an Apple-specific gcc bug.)
+#
+###############################################################################
+
+AC_DEFUN(AC_GCC_ACCEPTS_NO_CPP_PRECOMP,
+ [if test -n "$GCC"; then
+ AC_CACHE_CHECK([whether gcc accepts -no-cpp-precomp],
+ ac_cv_gcc_accepts_no_cpp_precomp,
+ [if ( ( gcc -E -no-cpp-precomp - </dev/null >/dev/null ) 2>&1 | \
+ grep unrecognized >/dev/null ); then
+ ac_cv_gcc_accepts_no_cpp_precomp=no
+ else
+ ac_cv_gcc_accepts_no_cpp_precomp=yes
+ fi])
+ ac_gcc_accepts_no_cpp_precomp="$ac_cv_gcc_accepts_no_cpp_precomp"
+ fi
])
+AC_DEFUN(AC_NO_OBJECTIVE_C,
+ [if test -n "$GCC"; then
+ AC_GCC_ACCEPTS_NO_CPP_PRECOMP
+ if test "$ac_gcc_accepts_no_cpp_precomp" = yes ; then
+ AC_MSG_RESULT(Disabling Objective C extensions in ANSI C code.)
+ CC="$CC -no-cpp-precomp"
+ fi
+ fi
+])
-AC_PROG_CPP
-AC_PROG_INSTALL
-AC_PROG_INSTALL_DIRS
-AC_PROG_MAKE_SET
-AC_C_CONST
-AC_C_INLINE
+###############################################################################
+#
+# Function to figure out how to create directory trees.
+#
+###############################################################################
-AC_HEADER_STDC
-AC_HEADER_TIME
-AC_HEADER_SYS_WAIT
-AC_HEADER_DIRENT
+AC_DEFUN(AC_PROG_INSTALL_DIRS,
+ [AC_CACHE_CHECK([whether "\${INSTALL} -d" creates intermediate directories],
+ ac_cv_install_d_creates_dirs,
+ [ac_cv_install_d_creates_dirs=no
+ rm -rf conftestdir
+ if mkdir conftestdir; then
+ cd conftestdir 2>/dev/null
+ ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1
+ if test -d dir1/dir2/. ; then
+ ac_cv_install_d_creates_dirs=yes
+ fi
+ cd .. 2>/dev/null
+ rm -rf conftestdir
+ fi
+ ])
+
+ if test "$ac_cv_install_d_creates_dirs" = no ; then
+ AC_CACHE_CHECK([whether "mkdir -p" creates intermediate directories],
+ ac_cv_mkdir_p_creates_dirs,
+ [ac_cv_mkdir_p_creates_dirs=no
+ rm -rf conftestdir
+ if mkdir conftestdir; then
+ cd conftestdir 2>/dev/null
+ mkdir -p dir1/dir2 >/dev/null 2>&1
+ if test -d dir1/dir2/. ; then
+ ac_cv_mkdir_p_creates_dirs=yes
+ fi
+ cd .. 2>/dev/null
+ rm -rf conftestdir
+ fi
+ ])
+ fi
-AC_TYPE_MODE_T
-AC_TYPE_PID_T
-AC_TYPE_SIZE_T
-AC_TYPE_SIGNAL
+ if test "$ac_cv_install_d_creates_dirs" = yes ; then
+ INSTALL_DIRS='${INSTALL} -d'
+ elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then
+ INSTALL_DIRS='mkdir -p'
+ else
+ # any other ideas?
+ INSTALL_DIRS='${INSTALL} -d'
+ fi
+])
-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; struct timezone tzp;
- gettimeofday(&tv, &tzp);],
- [ac_gettimeofday_args=2],
- [AC_TRY_COMPILE([#include <stdlib.h>
- #include <sys/time.h>],
- [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
-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
+###############################################################################
+#
+# Function to check whether gettimeofday() exists, and how to call it.
+# This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS.
+#
+###############################################################################
+
+AC_DEFUN(AC_GETTIMEOFDAY_ARGS,
+ [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; struct timezone tzp;
+ gettimeofday(&tv, &tzp);],
+ [ac_gettimeofday_args=2],
+ [AC_TRY_COMPILE([#include <stdlib.h>
+ #include <sys/time.h>],
+ [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
+ 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 syslog)
-AC_CHECK_HEADERS(unistd.h crypt.h sys/select.h)
+###############################################################################
+#
+# Function to find perl5 (defines PERL and PERL_VERSION.)
+#
+###############################################################################
-dnl /usr/local/src/ssh-1.2.17/putenv.c -- AC_REPLACE_FUNCS(putenv)
+# M4 sucks!! perl sucks too!!
+changequote(X,Y)
+perl_version_cmd='print $]'
+changequote([,])
+AC_DEFUN(AC_PROG_PERL,
+ [AC_PATH_PROGS(PERL, [perl5 perl],,)
+ if test -z "$PERL" ; then
+ PERL_VERSION=0
+ else
+ AC_CACHE_CHECK([perl version], ac_cv_perl_version,
+ [ac_cv_perl_version=`$PERL -e "$perl_version_cmd"`])
+ PERL_VERSION=$ac_cv_perl_version
+ fi
+ ])
-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/. (If DIR
- begins with /, then bindir will not be prepended.)
+###############################################################################
+#
+# Function to demand "bc". Losers.
+#
+###############################################################################
- --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
- # there must be a better way than this...
- if test -z "`echo $enable_subdir | sed 's@^/.*@@'`" ; then
- # absolute path
- HACKDIR=$enable_subdir
+AC_DEFUN(AC_DEMAND_BC,
+ [ac_bc_result=`echo 6+9 | bc 2>/dev/null`
+ AC_MSG_CHECKING([for bc])
+ if test "$ac_bc_result" = "15" ; then
+ AC_MSG_RESULT(yes)
else
- # relative path
- HACKDIR='${bindir}/'$enable_subdir
+ AC_MSG_RESULT(no)
+ echo ''
+ AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard
+ part of Unix since the 1970s. Come back when your vendor
+ has grown a clue.])
fi
-fi
-
-# canonicalize slashes.
-HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
-
+ ])
-AC_PATH_XTRA
+###############################################################################
+#
+# Functions to check how to do ICMP PING requests.
+#
+###############################################################################
+
+AC_DEFUN(AC_CHECK_ICMP,
+ [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp,
+ [AC_TRY_COMPILE([#include <stdlib.h>
+ #include <stdio.h>
+ #include <math.h>
+ #include <unistd.h>
+ #include <limits.h>
+ #include <signal.h>
+ #include <fcntl.h>
+ #include <sys/types.h>
+ #include <sys/time.h>
+ #include <sys/ipc.h>
+ #include <sys/shm.h>
+ #include <sys/socket.h>
+ #include <netinet/in_systm.h>
+ #include <netinet/in.h>
+ #include <netinet/ip.h>
+ #include <netinet/ip_icmp.h>
+ #include <netinet/udp.h>
+ #include <arpa/inet.h>
+ #include <netdb.h>],
+ [struct icmp i;
+ struct sockaddr s;
+ struct sockaddr_in si;
+ struct ip ip;
+ i.icmp_type = ICMP_ECHO;
+ i.icmp_code = 0;
+ i.icmp_cksum = 0;
+ i.icmp_id = 0;
+ i.icmp_seq = 0;
+ si.sin_family = AF_INET;
+ #if defined(__DECC) || defined(_IP_VHL)
+ ip.ip_vhl = 0;
+ #else
+ ip.ip_hl = 0;
+ #endif
+ ],
+ [ac_cv_have_icmp=yes],
+ [ac_cv_have_icmp=no])])
+ if test "$ac_cv_have_icmp" = yes ; then
+ AC_DEFINE(HAVE_ICMP)
+ fi])
+
+AC_DEFUN(AC_CHECK_ICMPHDR,
+ [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr,
+ [AC_TRY_COMPILE([#include <stdlib.h>
+ #include <stdio.h>
+ #include <math.h>
+ #include <unistd.h>
+ #include <limits.h>
+ #include <signal.h>
+ #include <fcntl.h>
+ #include <sys/types.h>
+ #include <sys/time.h>
+ #include <sys/ipc.h>
+ #include <sys/shm.h>
+ #include <sys/socket.h>
+ #include <netinet/in_systm.h>
+ #include <netinet/in.h>
+ #include <netinet/ip.h>
+ #include <netinet/ip_icmp.h>
+ #include <netinet/udp.h>
+ #include <arpa/inet.h>
+ #include <netdb.h>],
+ [struct icmphdr i;
+ struct sockaddr s;
+ struct sockaddr_in si;
+ struct ip ip;
+ i.type = ICMP_ECHO;
+ i.code = 0;
+ i.checksum = 0;
+ i.un.echo.id = 0;
+ i.un.echo.sequence = 0;
+ si.sin_family = AF_INET;
+ ip.ip_hl = 0;],
+ [ac_cv_have_icmphdr=yes],
+ [ac_cv_have_icmphdr=no])])
+ if test "$ac_cv_have_icmphdr" = yes ; then
+ AC_DEFINE(HAVE_ICMPHDR)
+ fi])
+
+
+###############################################################################
+#
+# Functions to check for various X11 crap.
+#
+###############################################################################
# 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 >&-
+ cd conftestdir 2>/dev/null
# Make sure to not put "make" in the Imakefile rules, since we grep it out.
cat > Imakefile <<'EOF'
acfindx:
@echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
EOF
- if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
+ if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then
# GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
fi
- cd .. >&-
+ cd .. 2>/dev/null
rm -fr conftestdir
fi])
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 \
+ 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
done
])
-
AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
[AC_REQUIRE_CPP()
AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
fi])
eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
-AC_PATH_X_APP_DEFAULTS
-APPDEFAULTS=$ac_x_app_defaults
+AC_DEFUN(AC_XPOINTER,
+ [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])
+
+
+# Random special-cases for X on certain pathological OSes.
+# You know who you are.
+#
+AC_DEFUN(AC_X_RANDOM_PATHS,
+ [case "$host" in
+ *-hpux*)
+
+ # The following arcana was gleaned from conversations with
+ # Eric Schwartz <erics@col.hp.com>:
+ #
+ # On HPUX 10.x, the parts of X that HP considers "standard" live in
+ # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider
+ # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
+ # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems.
+ # Also, there are symlinks from /usr/include/ and /usr/lib/ into
+ # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
+ # you don't need any -I or -L arguments.
+ #
+ # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
+ # are the same division as 10.x. However, there are no symlinks to
+ # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
+ # arguments are always necessary.
+ #
+ # However, X11R6 was available on HPUX 9.x as a patch: if that
+ # patch was installed, then all of X11R6 went in to
+ # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
+ #
+ # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
+ # whether R5 was available as a patch; R6 undoubtedly was not.)
+ #
+ # So. We try and use the highest numbered pair of
+ # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
+ # that are available. We do not mix and match different versions
+ # of X.
+ #
+ # Question I still don't know the answer to: (do you?)
+ #
+ # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
+ # /usr/contrib/X11R6/ could be installed as a patch, what was in
+ # that contrib directory? Did it contain so-called "standard"
+ # X11R6, or did it include Xaw and Xmu as well? If the former,
+ # where did one find Xaw and Xmu on 9.x R6 systems? Would this
+ # be a situation where one had to reach into the R5 headers and
+ # libs to find Xmu? That is, must both R6 and R5 directories
+ # be on the -I and -L lists in that case?
+ #
+ for version in X11R6 X11R5 X11R4 ; do
+ # if either pair of directories exists...
+ if test -d /usr/include/$version || test -d /usr/contrib/$version/include
+ then
+ # if contrib exists, use it...
+ if test -d /usr/contrib/$version/include ; then
+ X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
+ X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
+ fi
+ # if the "standard" one exists, use it.
+ if test -d /usr/include/$version ; then
+ X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
+ X_LIBS="$X_LIBS -L/usr/lib/$version"
+ fi
+ # since at least one of the pair exists, go no farther.
+ break
+ fi
+ done
+
+ # Now find Motif. Thanks for not making xmkmf find this by
+ # default, you losers.
+ #
+ if test -d /usr/include/Motif2.1 ; then
+ X_CFLAGS="$X_CFLAGS -I/usr/include/Motif2.1"
+ X_LIBS="$X_LIBS -L/usr/lib/Motif2.1"
+ elif test -d /usr/include/Motif1.2 ; then
+ X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
+ X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
+ elif test -d /usr/include/Motif1.1 ; then
+ X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
+ X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
+ fi
+
+ # Now let's check for the pseudo-standard locations for OpenGL and XPM.
+ #
+ if test -d /opt/graphics/OpenGL/include ; then
+ # HP-UX 10.20 puts it here
+ X_CFLAGS="-I/opt/graphics/OpenGL/include $X_CFLAGS"
+ X_LIBS="-L/opt/graphics/OpenGL/lib $X_LIBS"
+ elif test -d /opt/Mesa/lib ; then
+ X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
+ X_LIBS="-L/opt/Mesa/lib $X_LIBS"
+ fi
+
+
+ if test -d /opt/xpm/lib/X11 ; then
+ X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
+ X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
+ fi
+
+ # On HPUX, default to installing in /opt/xscreensaver/ instead of
+ # in /usr/local/, unless there is already an xscreensaver in
+ # /usr/local/bin/. This can be overridden with the --prefix arg
+ # to configure. I'm not sure this is the right thing to do, but
+ # Richard Lloyd says so...
+ #
+ if test \! -x /usr/local/bin/xscreensaver ; then
+ ac_default_prefix=/opt/xscreensaver
+ fi
+
+ ;;
+ *-solaris*)
+
+ # Thanks for not making xmkmf find this by default, pinheads.
+ # And thanks for moving things around again, too. 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"
+ MOTIF_LIBS="$MOTIF_LIBS -L/usr/dt/lib -R/usr/dt/lib"
+
+ # Some versions of Slowlaris Motif require -lgen. But not all. Why?
+ AC_CHECK_LIB(gen, regcmp, [MOTIF_LIBS="$MOTIF_LIBS -lgen"])
+ fi
+
+ ;;
+ *-darwin*)
+
+ # On MacOS X (10.x with "fink"), many things are under /sw/.
+ #
+ if test -d /sw/include ; then
+ X_CFLAGS="-I/sw/include $X_CFLAGS"
+ X_LIBS="-L/sw/lib $X_LIBS"
+ fi
+ ;;
+ esac])
+
+###############################################################################
+#
+# Some utility functions to make checking for X things easier.
+#
+###############################################################################
+
# Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
#
AC_DEFUN(AC_CHECK_X_HEADER, [
CPPFLAGS="$CPPFLAGS -I$includedir"
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
- AC_CHECK_HEADER([$1], [$2])
+ AC_CHECK_HEADER([$1],[$2],[$3],[$4])
CPPFLAGS="$ac_save_CPPFLAGS"])
# Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
AC_DEFUN(AC_CHECK_X_LIB, [
ac_save_CPPFLAGS="$CPPFLAGS"
ac_save_LDFLAGS="$LDFLAGS"
+# ac_save_LIBS="$LIBS"
if test \! -z "$includedir" ; then
CPPFLAGS="$CPPFLAGS -I$includedir"
LDFLAGS="$LDFLAGS -L$libdir"
fi
# note: $X_LIBS includes $x_libraries
- LDFLAGS="$LDFLAGS $X_LIBS"
+ LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
CPPFLAGS="$ac_save_CPPFLAGS"
- LDFLAGS="$ac_save_LDFLAGS"])
+ LDFLAGS="$ac_save_LDFLAGS"
+# LIBS="$ac_save_LIBS"
+ ])
# Like AC_TRY_RUN, but it uses the already-computed -I directories.
# (But not the -L directories!)
# Usage: HANDLE_X_PATH_ARG([variable_name],
-# [--command-line-option],
-# [descriptive string])
+# [--command-line-option],
+# [descriptive string])
#
# All of the --with options take three forms:
#
exit 1
;;
esac
-
- # why is this necessary?
- # if we don't do this, then "./configure --with-motif=/usr/local/lesstif"
- # behaves as if "--with-zippy=/usr/local/lesstif" was also present!
- withval=
])
-# 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.
+# End of function definitions. Now start actually executing stuff.
#
-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
+###############################################################################
+###############################################################################
+
+# random compiler setup
+AC_CANONICAL_HOST
+AC_PROG_CC_ANSI
+AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
+AC_NO_OBJECTIVE_C
+AC_PROG_CPP
+AC_C_CONST
+AC_C_INLINE
+AC_EXEEXT
+AC_DEMAND_BC
+# stuff for Makefiles
+AC_PROG_INSTALL
+AC_PROG_INSTALL_DIRS
+AC_PROG_MAKE_SET
-# Random special-cases for certain pathological OSes. You know who you are.
+# By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'.
+# That's wrong: it should be set to '${INSTALL}', so that one can
+# implement the "install-strip" target properly (strip executables,
+# but do not try to strip scripts.)
#
-case "$host" in
- *-hpux*)
+INSTALL_SCRIPT='${INSTALL}'
- # The following arcana was gleaned from conversations with
- # Eric Schwartz <erics@col.hp.com>:
- #
- # On HPUX 10.x, the parts of X that HP considers "standard" live in
- # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider
- # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
- # Also, there are symlinks from /usr/include/ and /usr/lib/ into
- # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
- # you don't need any -I or -L arguments.
- #
- # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
- # are the same division as 10.x. However, there are no symlinks to
- # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
- # arguments are always necessary.
- #
- # However, X11R6 was available on HPUX 9.x as a patch: if that
- # patch was installed, then all of X11R6 went in to
- # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
- #
- # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
- # whether R5 was available as a patch; R6 undoubtedly was not.)
- #
- # So. We try and use the highest numbered pair of
- # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
- # that are available. We do not mix and match different versions
- # of X.
- #
- # Questions I still don't know the answers to: (do you?)
- #
- # * Does HPUX 10.x come with /usr/contrib/X11R6/ standard?
- # Or does that need to be installed separately?
- #
- # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
- # /usr/contrib/X11R6/ could be installed as a patch, what was in
- # that contrib directory? Did it contain so-called "standard"
- # X11R6, or did it include Xaw and Xmu as well? If the former,
- # where did one find Xaw and Xmu on 9.x R6 systems? Would this
- # be a situation where one had to reach into the R5 headers and
- # libs to find Xmu? That is, must both R6 and R5 directories
- # be on the -I and -L lists in that case?
- #
- for version in X11R6 X11R5 X11R4 ; do
- # if either pair of directories exists...
- if test -d /usr/lib/$version || test -d /usr/contrib/$version/lib ; then
- # if contrib exists, use it...
- if test -d /usr/contrib/$version/lib ; then
- X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
- X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
- fi
- # if the "standard" one exists, use it.
- if test -d /usr/lib/$version ; then
- X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
- X_LIBS="$X_LIBS -L/usr/lib/$version"
- fi
- # since at least one of the pair exists, go no farther.
- break
- fi
- done
+# random libc stuff
+AC_HEADER_STDC
+AC_CHECK_HEADERS(unistd.h)
+AC_TYPE_MODE_T
+AC_TYPE_PID_T
+AC_TYPE_SIZE_T
+AC_TYPE_SIGNAL
+AC_HEADER_TIME
+AC_HEADER_SYS_WAIT
+AC_HEADER_DIRENT
+AC_GETTIMEOFDAY_ARGS
+AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk)
+AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
+AC_CHECK_ICMP
+AC_CHECK_ICMPHDR
+AC_CHECK_HEADERS(crypt.h sys/select.h)
+AC_PROG_PERL
+
+if test -z "$PERL" ; then
+ # don't let it be blank...
+ PERL=/usr/bin/perl
+fi
- # Now find Motif. Thanks for not making xmkmf find this by
- # default, you losers.
- #
- if test -d /usr/lib/Motif1.2 ; then
- X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
- X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
- elif test -d /usr/lib/Motif1.1 ; then
- X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
- X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
- fi
+AC_PATH_XTRA
- # Now let's check for the pseudo-standard locations for OpenGL and XPM.
- #
- if test -d /opt/Mesa/lib ; then
- X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
- X_LIBS="-L/opt/Mesa/lib $X_LIBS"
- fi
+if test "$have_x" != yes; then
+ AC_MSG_ERROR(Couldn't find X11 headers/libs. Try `$0 --help'.)
+fi
- if test -d /opt/xpm/lib/X11 ; then
- X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
- X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
- fi
+AC_PATH_X_APP_DEFAULTS
+AC_X_RANDOM_PATHS
+AC_XPOINTER
- # On HPUX, default to installing in /opt/xscreensaver/ instead of
- # in /usr/local/, unless there is already an xscreensaver in
- # /usr/local/bin/. This can be overridden with the --prefix arg
- # to configure. I'm not sure this is the right thing to do, but
- # Richard Lloyd says so...
- #
- if test \! -x /usr/local/bin/xscreensaver ; then
- ac_default_prefix=/opt/xscreensaver
- fi
+AC_MSG_CHECKING(whether this is MacOS X)
+ ac_macosx=no
+ case "$host" in
+ *-apple-darwin* )
+ ac_macosx=yes
+ ;;
+ esac
+AC_MSG_RESULT($ac_macosx)
- ;;
- *-solaris*)
- # Thanks for not making xmkmf find this by default, pinheads.
- # And thanks for moving things around again, too. 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
+###############################################################################
+#
+# Gettext support
+#
+###############################################################################
+AC_PROG_INTLTOOL
+GETTEXT_PACKAGE=xscreensaver
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE")
+AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE")
+AC_SUBST(GETTEXT_PACKAGE)
+ALL_LINGUAS="ca da de es et fi fr hu it ja ko nl no pl pt pt_BR ru sk sv vi wa zh_CN zh_TW"
+AM_GLIB_GNU_GETTEXT
+MKINSTALLDIRS="$INSTALL_DIRS"
-# Check for Xmu (some fucked up vendors don't ship it...)
+
+###############################################################################
+#
+# Check for -lXmu (some fucked up vendors don't ship it...)
#
+###############################################################################
+
have_xmu=no
-AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes])
+AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes],,
+ [#include <stdlib.h>
+ #include <stdio.h>
+ #include <X11/Intrinsic.h>])
if test "$have_xmu" = no ; then
XMU_SRCS='$(UTILS_SRC)/xmu.c'
XMU_OBJS='$(UTILS_BIN)/xmu.o'
+ XMU_LIBS=''
else
XMU_SRCS=''
XMU_OBJS=''
- SAVER_LIBS="-lXmu $SAVER_LIBS"
- HACK_LIBS="-lXmu $HACK_LIBS"
- TOOLKIT_LIBS="-lXmu $TOOLKIT_LIBS"
+ XMU_LIBS='-lXmu'
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.
+###############################################################################
+#
+# Check for the SunOS 4.1.x _get_wmShellWidgetClass bug.
+# See comp.windows.x FAQ question 124. 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"])
+ 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"])
+ 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"
+ LDFLAGS="$LDFLAGS -Bstatic"
fi
fi
;;
fi
-# Check for the SGI SCREEN_SAVER server extension header.
+###############################################################################
#
-have_sgi=no
-with_sgi_req=unspecified
-AC_ARG_WITH(sgi-ext,
-[Except where noted, all of the --with options below can also take a
-directory argument: for example, --with-motif=/opt/Motif. That would
-cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
-to be added to the -L list, assuming those directories exist.
+# Handle the --with-hackdir option
+#
+###############################################################################
-X Server Extension options:
+have_hackdir=yes
+with_hackdir_req=unspecified
+AC_ARG_WITH(hackdir,[
+Installation 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])
+ --with-hackdir=DIR Where to install the hundreds of demo executables.
+ Default: `PREFIX/lib/xscreensaver/'],
+ [with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes])
-HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
+if test x"$with_hackdir" = xyes; then
+ HACKDIR='${exec_prefix}/lib/xscreensaver'
+elif test x"$with_hackdir" = xno; then
+ HACKDIR='${bindir}'
+else
+ # there must be a better way than this...
+ if test -z "`echo $with_hackdir | sed 's@^/.*@@'`" ; then
+ # absolute path
+ HACKDIR=$with_hackdir
+ else
+ # relative path
+ HACKDIR="\${exec_prefix}$with_hackdir"
+ fi
+fi
-if test "$with_sgi" = yes; then
- AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
- [have_sgi=yes
- AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)])
+# canonicalize slashes.
+HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
-elif test "$with_sgi" != no; then
- echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
+# This option used to be called --enable-subdir; make sure that is no longer
+# used, since configure brain-damagedly ignores unknown --enable options.
+
+obsolete_enable=
+AC_ARG_ENABLE(subdir,,[obsolete_enable=yes])
+if test -n "$obsolete_enable"; then
+ echo "error: the --enable-subdir option has been replaced with"
+ echo " the new --with-hackdir option; see \`configure --help'"
+ echo " for more information."
exit 1
fi
-# 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])
-
-HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
-if test "$have_sgi" != yes; then
- if test "$with_mit" = yes; then
- AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes])
+###############################################################################
+#
+# Handle the --with-configdir option
+#
+###############################################################################
+
+have_configdir=yes
+with_configdir_req=unspecified
+AC_ARG_WITH(configdir,
+[ --with-configdir=DIR Where to install the data files that describe each
+ of the display modes to the GUI.
+ Default: `GNOMEPREFIX/control-center/screensavers/'
+ or `PREFIX/lib/xscreensaver/config/', depending on
+ whether GNOME is available.
+],
+ [with_configdir="$withval"; with_configdir_req="$withval"],
+ [with_configdir=yes])
+
+if test x"$with_configdir" = xyes; then
+ # filled in later...
+ HACK_CONF_DIR=''
+elif test x"$with_configdir" = xno; then
+ echo "error: must be yes, or a pathname: --with-configdir=$with_configdir"
+ exit 1
+else
+ # there must be a better way than this...
+ if test -z "`echo $with_configdir | sed 's@^/.*@@'`" ; then
+ # absolute path
+ HACK_CONF_DIR=$with_configdir
+ else
+ # relative path
+ HACK_CONF_DIR="\${exec_prefix}$with_configdir"
+ fi
+fi
- # 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
+###############################################################################
+#
+# Check for the SGI SCREEN_SAVER server extension.
+#
+###############################################################################
- elif test "$with_mit" != no; then
- echo "error: must be yes or no: --with-mit-ext=$with_mit"
- exit 1
- fi
-fi
+have_sgi=no
+with_sgi_req=unspecified
+AC_ARG_WITH(sgi-ext,
+[Except where noted, all of the --with options below can also take a
+directory argument: for example, `--with-motif=/opt/Motif'. That would
+cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
+to be added to the -L list, assuming those directories exist.
+By default, support for each of these options will be built in, if the
+relevant library routines exist. At run time, they will then be used
+only if the X server being used supports them. Each --with option has
+a corresponding --without option, to override building support for them
+at all.
-# 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])
+Screen blanking and idle-detection options:
-HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
+ --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.],
+ [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=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"
+HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
+
+if test "$with_sgi" = yes; then
+ AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
+ [have_sgi=yes
+ AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],,
+ [#include <X11/Xlib.h>])
+
+elif test "$with_sgi" != no; then
+ echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
exit 1
fi
-# 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])
+# Check for the MIT-SCREEN-SAVER server extension.
+#
+###############################################################################
-HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
+have_mit=no
+with_mit_req=unspecified
+AC_ARG_WITH(mit-ext,
+[ --with-mit-ext Include support for the MIT-SCREEN-SAVER extension.],
+ [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
-if test "$with_xshm" = yes; then
+HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
- # first check for Xshm.h.
- AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes])
+if test "$with_mit" = yes; then
+ AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes],,
+ [#include <X11/Xlib.h>])
- # 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])
+ # Now check to see if it's really in the library; XF86Free-3.3 ships
+ # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
+ #
+ if test "$have_mit" = yes; then
+ AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [true], [have_mit=no], -lm)
+
+ if test "$have_mit" = no; then
+ # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead
+ # of in Xext. Thank you master, may I have another.
+ AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
+ [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
+ [true], -lX11 -lXext -lm)
+ fi
+
+ if test "$have_mit" = no; then
+ # Double fuck! Looks like some versions of XFree86 (whichever version
+ # it is that comes with RedHat Linux 2.0 -- I can't find a version
+ # number) put this garbage in Xss instead of Xext. Thank you master,
+ # may I have another.
+ AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
+ [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
+ [true], -lX11 -lXext -lm)
+ fi
+
+ if test "$have_mit" = yes; then
+ AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
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
+elif test "$with_mit" != no; then
+ echo "error: must be yes or no: --with-mit-ext=$with_mit"
+ exit 1
+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"
+###############################################################################
+#
+# Check for the XIDLE server extension.
+#
+###############################################################################
+
+have_xidle=no
+with_xidle_req=unspecified
+AC_ARG_WITH(xidle-ext,
+[ --with-xidle-ext Include support for the XIDLE extension.],
+ [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
+
+HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
+
+if test "$with_xidle" = yes; then
+ AC_CHECK_X_HEADER(X11/extensions/xidle.h,
+ [have_xidle=yes
+ AC_DEFINE(HAVE_XIDLE_EXTENSION)],,
+ [#include <X11/Xlib.h>])
+elif test "$with_xidle" != no; then
+ echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
exit 1
fi
-# Check for the SGI-VIDEO-CONTROL server extension header.
+###############################################################################
#
+# Check for the SGI-VIDEO-CONTROL server extension.
+#
+###############################################################################
+
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-ext Include support for the SGI-VIDEO-CONTROL extension.],
[with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
if test "$with_sgivc" = yes; then
# first check for XSGIvc.h
- AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes])
+ AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],,
+ [#include <X11/Xlib.h>])
# if that succeeded, then check for the -lXsgivc
if test "$have_sgivc" = yes; then
have_sgivc=no
AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
- [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [],
- -lXext -lX11)
+ [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
+ -lXext -lX11)
fi
# if that succeeded, then we've really got it.
fi
-# Check for the DPMS server extension header.
+###############################################################################
#
+# Check for the DPMS server extension.
+#
+###############################################################################
+
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-ext Include support for the DPMS extension.],
[with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
if test "$with_dpms" = yes; then
# first check for dpms.h
- AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes])
+ AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes],,
+ [#include <X11/Xlib.h>
+ #include <X11/Xmd.h>])
- # if that succeeded, then check for the -lXdpms
+ # if that succeeded, then check for the DPMS code in the libraries
if test "$have_dpms" = yes; then
+
+ # first look in -lXext (this is where it is with XFree86 4.0)
have_dpms=no
- AC_CHECK_X_LIB(Xdpms, DPMSInfo,
- [have_dpms=yes; SAVER_LIBS="$SAVER_LIBS -lXdpms"], [],
- -lXext -lX11)
+ AC_CHECK_X_LIB(Xext, DPMSInfo, [have_dpms=yes], [true], -lXext -lX11)
+
+ # if that failed, look in -lXdpms (this is where it was in XFree86 3.x)
+ if test "$have_dpms" = no; then
+ AC_CHECK_X_LIB(Xdpms, DPMSInfo,
+ [have_dpms=yes; XDPMS_LIBS="-lXdpms"], [true],
+ -lXext -lX11)
+ fi
fi
+
# if that succeeded, then we've really got it.
if test "$have_dpms" = yes; then
AC_DEFINE(HAVE_DPMS_EXTENSION)
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
+# Check for the XINERAMA server extension.
+#
+###############################################################################
-AC_ARG_WITH(motif,[
-X Client Toolkit options:
+have_xinerama=no
+with_xinerama_req=unspecified
+AC_ARG_WITH(xinerama-ext,
+[ --with-xinerama-ext Include support for the XINERAMA extension.],
+ [with_xinerama="$withval"; with_xinerama_req="$withval"],[with_xinerama=yes])
- --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])
+HANDLE_X_PATH_ARG(with_xinerama, --with-xinerama-ext, XINERAMA)
-HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
+if test "$with_xinerama" = yes; then
-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])
+ # first check for Xinerama.h
+ AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes],,
+ [#include <X11/Xlib.h>])
-HANDLE_X_PATH_ARG(with_athena, --with-athena, Athena)
+ # if that succeeded, then check for the XINERAMA code in the libraries
+ if test "$have_xinerama" = yes; then
-if test "$with_motif" != yes -a "$with_motif" != no ; then
- echo "error: must be yes or no: --with-motif=$with_motif"
- exit 1
-fi
+ # first look in -lXext
+ have_xinerama=no
+ AC_CHECK_X_LIB(Xext, XineramaQueryScreens, [have_xinerama=yes], [true],
+ -lXext -lX11)
+
+ # if that failed, look in -lXinerama (this is where it is in XFree86 4.1.)
+ if test "$have_xinerama" = no; then
+ AC_CHECK_X_LIB(Xinerama, XineramaQueryScreens,
+ [have_xinerama=yes; SAVER_LIBS="$SAVER_LIBS -lXinerama"],
+ [true], -lXext -lX11)
+ fi
+ fi
+
+ # if that succeeded, then we've really got it.
+ if test "$have_xinerama" = yes; then
+ AC_DEFINE(HAVE_XINERAMA)
+ fi
-if test "$with_athena" != yes -a "$with_athena" != no ; then
- echo "error: must be yes or no: --with-athena=$with_athena"
+elif test "$with_xinerama" != no; then
+ echo "error: must be yes or no: --with-xinerama-ext=$with_xinerama"
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
+###############################################################################
+#
+# Check for the XF86VMODE server extension (for virtual screens.)
+#
+###############################################################################
-# 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
+have_xf86vmode=no
+with_xf86vmode_req=unspecified
+AC_ARG_WITH(xf86vmode-ext,
+[ --with-xf86vmode-ext Include support for XFree86 virtual screens.],
+ [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"],
+ [with_xf86vmode=yes])
-# Check for Motif and Athena headers.
+HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
-check_motif() {
- AC_CHECK_X_HEADER(Xm/Xm.h,
- [have_motif=yes
- AC_DEFINE(HAVE_MOTIF)
- TOOLKIT_LIBS="-lXm $TOOLKIT_LIBS"])
-}
+if test "$with_xf86vmode" = yes; then
+
+ # first check for xf86vmode.h
+ AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],,
+ [#include <X11/Xlib.h>])
-check_athena() {
- have_athena=no
- have_athena3d=no
- AC_CHECK_X_HEADER(X11/Xaw/Dialog.h, [have_athena=yes])
- if test "$have_athena" = yes; then
- AC_CHECK_X_LIB(Xaw3d, Xaw3dComputeTopShadowRGB,
- [have_athena=yes; have_athena3d=yes], [],
- -lXt -lXmu -lXext -lX11)
+ # if that succeeded, then check for the -lXxf86vm
+ if test "$have_xf86vmode" = yes; then
+ have_xf86vmode=no
+ AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
+ [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
+ [true], -lXext -lX11)
fi
- if test "$have_athena3d" = yes; then
- TOOLKIT_LIBS="-lXaw3d $TOOLKIT_LIBS"
- elif test "$have_athena" = yes; then
- TOOLKIT_LIBS="-lXaw $TOOLKIT_LIBS"
+ # if that succeeded, then we've really got it.
+ if test "$have_xf86vmode" = yes; then
+ AC_DEFINE(HAVE_XF86VMODE)
fi
-}
+
+elif test "$with_xf86vmode" != no; then
+ echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
+ exit 1
+fi
-# 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.
+###############################################################################
+#
+# Check for the XF86VMODE server extension (for gamma fading.)
+#
+###############################################################################
-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
+have_xf86gamma=no
+have_xf86gamma_ramp=no
+with_xf86gamma_req=unspecified
+AC_ARG_WITH(xf86gamma-ext,
+[ --with-xf86gamma-ext Include support for XFree86 gamma fading.],
+ [with_xf86gamma="$withval"; with_xf86gamma_req="$withval"],
+ [with_xf86gamma=yes])
+
+HANDLE_X_PATH_ARG(with_xf86gamma, --with-xf86gamma-ext, xf86gamma)
+
+if test "$with_xf86gamma" = yes; then
+
+ # first check for xf86vmode.h, if we haven't already
+ if test "$have_xf86vmode" = yes; then
+ have_xf86gamma=yes
else
- check_athena
+ AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],,
+ [#include <X11/Xlib.h>])
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
+ # if that succeeded, then check for the -lXxf86vm
+ if test "$have_xf86gamma" = yes; then
+ have_xf86gamma=no
+ AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGamma,
+ [have_xf86gamma=yes],
+ [true], -lXext -lX11)
fi
-else
- # asked for neither
- check_motif
- if test "$have_motif" = yes; then
- with_athena=no
- else
- check_athena
+ # check for the Ramp versions of the functions too.
+ if test "$have_xf86gamma" = yes; then
+ have_xf86gamma_ramp=no
+ AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGammaRamp,
+ [have_xf86gamma_ramp=yes],
+ [true], -lXext -lX11)
fi
-fi
+ # if those tests succeeded, then we've really got the functions.
+ if test "$have_xf86gamma" = yes; then
+ AC_DEFINE(HAVE_XF86VMODE_GAMMA)
+ fi
-if test "$have_motif" = yes; then
- proselytize_motif=no
-fi
+ if test "$have_xf86gamma_ramp" = yes; then
+ AC_DEFINE(HAVE_XF86VMODE_GAMMA_RAMP)
+ 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)
+ # pull in the lib, if we haven't already
+ if test "$have_xf86gamma" = yes -a "$have_xf86vmode" = no; then
+ SAVER_LIBS="$SAVER_LIBS -lXxf86vm"
fi
+
+elif test "$with_xf86gamma" != no; then
+ echo "error: must be yes or no: --with-xf86gamma-ext=$with_xf86vmode"
+ exit 1
fi
-# 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
+# Check for the RANDR (Resize and Rotate) server extension.
+#
+# We need this to detect when the resolution of the desktop
+# has changed out from under us (this is a newer, different
+# mechanism than the XF86VMODE virtual viewports.)
+#
+###############################################################################
-# don't cache these
-unset ac_cv_lesstif_version
-unset ac_cv_lesstif_version_string
+have_randr=no
+with_randr_req=unspecified
+AC_ARG_WITH(randr-ext,
+[ --with-randr-ext Include support for the X Resize+Rotate extension.],
+ [with_randr="$withval"; with_randr_req="$withval"],[with_randr=yes])
-lesstif_version=unknown
-lesstif_version_string=unknown
+HANDLE_X_PATH_ARG(with_randr, --with-randr-ext, RANDR)
-if test "$have_lesstif" = yes ; then
- ltv=unknown
- echo unknown > conftest-lt
- AC_CACHE_CHECK([LessTif version number],
- ac_cv_lesstif_version_string,
- [AC_TRY_X_RUN([#include <stdio.h>
- #include <Xm/Xm.h>
- int main() {
- FILE *f = fopen("conftest-lt", "w");
- if (!f) exit(1);
- fprintf(f, "%d %d.%d\n", LesstifVersion,
- LESSTIF_VERSION, LESSTIF_REVISION);
- fclose(f);
- exit(0);
- }],
- [ltv=`cat conftest-lt`
- ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
- ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
- [ac_cv_lesstif_version=unknown
- ac_cv_lesstif_version_string=unknown],
- [ac_cv_lesstif_version=unknown
- ac_cv_lesstif_version_string=unknown])])
- rm -f conftest-lt
- lesstif_version=$ac_cv_lesstif_version
- lesstif_version_string=$ac_cv_lesstif_version_string
+if test "$with_randr" = yes; then
-fi
+ # first check for Randr.h
+ AC_CHECK_X_HEADER(X11/extensions/Xrandr.h, [have_randr=yes],,
+ [#include <X11/Xlib.h>])
+ # if that succeeded, then check for the XRR code in the libraries
+ if test "$have_randr" = yes; then
-# 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; TOOLKIT_LIBS="$TOOLKIT_LIBS -lXp"],
- [], -lX11 -lXext -lm)
+ # RANDR probably needs -lXrender
+ xrender_libs=
+ AC_CHECK_X_LIB(Xrender, XRenderSetSubpixelOrder,
+ [xrender_libs="-lXrender"], [true], -lXext -lX11)
+
+ # first look for RANDR in -lXext
+ have_randr=no
+ AC_CHECK_X_LIB(Xext, XRRGetScreenInfo,
+ [have_randr=yes; SAVER_LIBS="$SAVER_LIBS $xrender_libs"],
+ [true], $xrender_libs -lXext -lX11)
+
+ # if that failed, look in -lXrandr
+ if test "$have_randr" = no; then
+ AC_CHECK_X_LIB(Xrandr, XRRGetScreenInfo,
+ [have_randr=yes; SAVER_LIBS="$SAVER_LIBS -lXrandr $xrender_libs"],
+ [true], $xrender_libs -lXext -lX11)
+ fi
+ fi
+
+ # if that succeeded, then we've really got it.
+ if test "$have_randr" = yes; then
+ AC_DEFINE(HAVE_RANDR)
+ fi
+
+elif test "$with_randr" != no; then
+ echo "error: must be yes or no: --with-randr-ext=$with_randr"
+ exit 1
fi
-# Check for _Xsetlocale in -lXintl, since at least some recent versions
-# of Motif (on Linux) need it.
+###############################################################################
#
-have_xintl=no
-if test "$have_motif" = yes ; then
- AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
- -lX11 -lXext -lm)
- if test "$have_xintl" = yes; then
- TOOLKIT_LIBS="$TOOLKIT_LIBS -lXintl"
+# Check for XF86MiscSetGrabKeysState (but only bother if we are already
+# using other XF86 stuff.)
+#
+###############################################################################
+
+have_xf86miscsetgrabkeysstate=no
+if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then
+ AC_CHECK_X_LIB(Xxf86misc, XF86MiscSetGrabKeysState,
+ [have_xf86miscsetgrabkeysstate=yes],
+ [true], -lXext -lX11)
+ if test "$have_xf86miscsetgrabkeysstate" = yes ; then
+ SAVER_LIBS="$SAVER_LIBS -lXxf86misc"
+ AC_DEFINE(HAVE_XF86MISCSETGRABKEYSSTATE)
fi
fi
-# check for XPM header.
+###############################################################################
#
-have_xpm=no
-with_xpm_req=unspecified
-AC_ARG_WITH(xpm,[
-Graphics Demo options:
+# Check for HP XHPDisableReset and XHPEnableReset.
+#
+###############################################################################
- --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])
+AC_MSG_CHECKING([for XHPDisableReset in X11/XHPlib.h])
+AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
+ [AC_DEFINE(HAVE_XHPDISABLERESET)
+ SAVER_LIBS="-lXhp11 $SAVER_LIBS"
+ AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT(no)])
-HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
-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"
+###############################################################################
+#
+# Check for /proc/interrupts.
+#
+###############################################################################
+
+have_proc_interrupts=no
+with_proc_interrupts_req=unspecified
+AC_ARG_WITH(proc-interrupts,
+[ --with-proc-interrupts Include support for consulting the /proc/interrupts
+ file to notice keyboard activity.],
+ [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
+ [with_proc_interrupts=yes])
+
+if test "$with_proc_interrupts" = yes; then
+
+ AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
+ ac_cv_have_proc_interrupts,
+ [ac_cv_have_proc_interrupts=no
+ if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
+ ac_cv_have_proc_interrupts=yes
+ fi
+ ])
+ have_proc_interrupts=$ac_cv_have_proc_interrupts
+
+ if test "$have_proc_interrupts" = yes; then
+ AC_DEFINE(HAVE_PROC_INTERRUPTS)
+ fi
+
+elif test "$with_proc_interrupts" != no; then
+ echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
exit 1
fi
-# check for the GL header
+###############################################################################
#
-have_gl=no
-ac_have_mesa_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])
+# The --enable-locking option
+#
+###############################################################################
-HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
+AC_ARG_ENABLE(locking,[
+Screen locking options:
-ac_mesagl_version=unknown
-ac_mesagl_version_string=unknown
+ --enable-locking Compile in support for locking the display.
+ --disable-locking Do not allow locking at all.],
+ [enable_locking="$enableval"],[enable_locking=yes])
+if test "$enable_locking" = yes; then
+ true
+elif test "$enable_locking" = no; then
+ AC_DEFINE(NO_LOCKING)
+else
+ echo "error: must be yes or no: --enable-locking=$enable_locking"
+ exit 1
+fi
-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)
+# We can't lock on MacOS X, so don't even bother compiling in support for it.
+#
+if test "$ac_macosx" = yes; then
+ if test "$enable_locking" = yes; then
+ AC_MSG_RESULT(locking disabled: it doesn't work on MacOS X)
+ enable_locking=no
+ AC_DEFINE(NO_LOCKING)
fi
+fi
- # If we have the headers, try and figure out which vendor it's from.
- #
- if test "$have_gl" = yes ; then
- AC_DEFINE(HAVE_GL)
+###############################################################################
+#
+# The --enable-vt-locking option
+#
+###############################################################################
+
+#ac_vt_lockswitch=no
+#AC_ARG_ENABLE(vt-locking,[
+# --enable-vt-locking Compile in support for locking Virtual Terminals.
+# This is the default if the system supports it, and
+# if locking support is included (--enable-locking.)
+# --disable-vt-locking Do not allow locking of VTs, even if locking is
+# enabled.],
+# [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
+#if test "$enable_vt_locking" = yes; then
+#
+# AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
+# [AC_TRY_COMPILE([#include <fcntl.h>
+# #include <sys/ioctl.h>
+# #include <sys/vt.h>],
+# [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
+# [ac_cv_vt_lockswitch=yes],
+# [ac_cv_vt_lockswitch=no])])
+# ac_vt_lockswitch=$ac_cv_vt_lockswitch
+#
+#elif test "$enable_vt_locking" = no; then
+# true
+#else
+# echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
+# exit 1
+#fi
+#
+#if test "$ac_vt_lockswitch" = yes; then
+# AC_DEFINE(HAVE_VT_LOCKSWITCH)
+# # the VT_LOCKSWITCH ioctl can only be used when running as root.
+# # #### but it doesn't work yet, so don't worry about that for now.
+## need_setuid=yes
+#fi
- # We need to know whether it's MesaGL so that we know which libraries
- # to link against.
- #
- AC_MSG_CHECKING(whether GL is really MesaGL)
- AC_CACHE_VAL(ac_cv_have_mesa_gl,
- [ac_cv_have_mesa_gl=no
- AC_EGREP_X_HEADER(Mesa, GL/glx.h, [ac_cv_have_mesa_gl=yes])
- ])
- ac_have_mesa_gl=$ac_cv_have_mesa_gl
- AC_MSG_RESULT($ac_have_mesa_gl)
- if test "$ac_have_mesa_gl" = no ; then
- gl_lib_1="GL"
- GL_LIBS="-lGL -lGLU"
- else
- AC_DEFINE(HAVE_MESA_GL)
- gl_lib_1="MesaGL"
- GL_LIBS="-lMesaGL -lMesaGLU"
- fi
+###############################################################################
+#
+# Check for PAM.
+#
+###############################################################################
+case "$host" in
+ *-solaris*)
+ # Solaris systems tend to come with PAM misconfigured.
+ # Don't build it by default, even if the headers exist.
+ with_pam_default=no
+ ;;
+ *)
+ # Default to building PAM support on all other systems, if it exists.
+ with_pam_default=yes
+ ;;
+esac
- # If it's MesaGL, we'd like to issue a warning if the version number
- # is less than or equal to 2.6, because that version had a security bug.
- #
+have_pam=no
+with_pam_req=unspecified
+
+AC_ARG_WITH(pam,
+[ --with-pam Include support for PAM (Pluggable Auth Modules.)],
+ [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
+
+HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
+
+if test "$enable_locking" = yes -a "$with_pam" = yes; then
+ AC_CACHE_CHECK([for PAM], ac_cv_pam,
+ [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
+ [ac_cv_pam=yes],
+ [ac_cv_pam=no])])
+ if test "$ac_cv_pam" = yes ; then
+ have_pam=yes
+ AC_DEFINE(HAVE_PAM)
+ PASSWD_LIBS="${PASSWD_LIBS} -lpam"
+
+ # libpam typically requires dlopen and dlsym. On FreeBSD,
+ # those are in libc. On Linux and Solaris, they're in libdl.
+ AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
+
+ # On Linux, sigtimedwait() is in libc; on Solaris, it's in librt.
+ have_timedwait=no
+ AC_CHECK_LIB(c, sigtimedwait, [have_timedwait=yes])
+ if test "$have_timedwait" = no ; then
+ AC_CHECK_LIB(rt, sigtimedwait, [PASSWD_LIBS="${PASSWD_LIBS} -lrt"])
+ fi
+
+ AC_MSG_CHECKING(how to call pam_strerror)
+ AC_CACHE_VAL(ac_cv_pam_strerror_args,
+ [AC_TRY_COMPILE([#include <stdio.h>
+ #include <stdlib.h>
+ #include <security/pam_appl.h>],
+ [pam_handle_t *pamh = 0;
+ char *s = pam_strerror(pamh, PAM_SUCCESS);],
+ [ac_pam_strerror_args=2],
+ [AC_TRY_COMPILE([#include <stdio.h>
+ #include <stdlib.h>
+ #include <security/pam_appl.h>],
+ [char *s =
+ pam_strerror(PAM_SUCCESS);],
+ [ac_pam_strerror_args=1],
+ [ac_pam_strerror_args=0])])
+ ac_cv_pam_strerror_args=$ac_pam_strerror_args])
+ ac_pam_strerror_args=$ac_cv_pam_strerror_args
+ if test "$ac_pam_strerror_args" = 1 ; then
+ AC_MSG_RESULT(one argument)
+ elif test "$ac_pam_strerror_args" = 2 ; then
+ AC_DEFINE(PAM_STRERROR_TWO_ARGS)
+ AC_MSG_RESULT(two arguments)
+ else
+ AC_MSG_RESULT(unknown)
+ fi
+ fi
+fi
+
+
+###############################################################################
+#
+# Check for Kerberos.
+#
+###############################################################################
+
+have_kerberos=no
+have_kerberos5=no
+with_kerberos_req=unspecified
+
+AC_ARG_WITH(kerberos,
+[ --with-kerberos Include support for Kerberos authentication.],
+ [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
+
+HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
+
+if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
+ AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
+ [AC_TRY_X_COMPILE([#include <krb.h>],,
+ [ac_cv_kerberos=yes],
+ [ac_cv_kerberos=no])])
+ AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
+ [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
+ [ac_cv_kerberos5=yes],
+ [ac_cv_kerberos5=no])])
+
+ if test "$ac_cv_kerberos" = yes ; then
+ have_kerberos=yes
+ AC_DEFINE(HAVE_KERBEROS)
+ fi
+
+ if test "$ac_cv_kerberos5" = yes ; then
+
+ # Andrew Snare <ajs@pigpond.com> wrote:
+ #
+ # You were assuming that if kerberosV (krb5) was found, then kerberosIV
+ # (krb4) was also available. This turns out not to be the case with
+ # mit-krb-1.2.7; apparently backwards-compatibility with KerberosIV
+ # is optional.
+ #
+ # So, disable kerberosV support if libkrb4 can't be found.
+ # This is not the best solution, but it makes the compile not fail.
+ #
+ AC_CHECK_X_LIB(krb4, krb_get_tf_realm,
+ [have_kerberos=yes],
+ [have_kerberos=no])
+ if test "$have_kerberos" = yes ; then
+ have_kerberos5=yes
+ AC_DEFINE(HAVE_KERBEROS)
+ AC_DEFINE(HAVE_KERBEROS5)
+ else
+ have_kerberos5=no
+ AC_MSG_WARN([Cannot find compat lib (libkrb4) needed to use Kerberos 5])
+ fi
+
+ fi
+
+ if test "$have_kerberos5" = yes ; then
+ # from Matt Knopp <mhat@infocalypse.netlag.com>
+ # (who got it from amu@mit.edu)
+
+ PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"
+
+ # jwz: MacOS X uses -lkrb5, but not -lcrypt
+ AC_CHECK_X_LIB(crypt, crypt, [PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
+
+ elif test "$have_kerberos" = yes ; then
+ # from Tim Showalter <tjs@psaux.com> for FreeBSD 4.2
+ PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err"
+ fi
+
+ if test "$have_kerberos" = yes ; then
+ AC_CHECK_FUNC(res_search,,
+ AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
+ AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
+ ))
+ fi
+fi
+
+
+###############################################################################
+#
+# Check for the nine billion variants of shadow passwords...
+#
+###############################################################################
+
+need_setuid=no
+
+have_shadow=no
+with_shadow_req=unspecified
+
+AC_ARG_WITH(shadow,
+[ --with-shadow Include support for shadow password authentication.],
+ [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
+
+HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
+
+if test "$enable_locking" = no ; then
+ with_shadow_req=no
+ with_shadow=no
+fi
+
+
+###############################################################################
+#
+# Check for Sun "adjunct" passwords.
+#
+###############################################################################
+
+if test "$with_shadow" = yes ; 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_adjunct=yes
+ have_shadow=yes
+ need_setuid=yes
+ fi
+fi
+
+
+###############################################################################
+#
+# Check for DEC and SCO so-called "enhanced" security.
+#
+###############################################################################
+
+if test "$with_shadow" = yes ; 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_enhanced=yes
+ have_shadow=yes
+ need_setuid=yes
+
+ # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
+ # (I'm told it needs -lcurses too, but I don't understand why.)
+ # But on DEC, it's in -lsecurity.
+ #
+ AC_CHECK_LIB(prot, getprpwnam,
+ [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
+ [AC_CHECK_LIB(security, getprpwnam,
+ [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
+ [-lx])
+ fi
+fi
+
+###############################################################################
+#
+# Check for HP's entry in the "Not Invented Here" Sweepstakes.
+#
+###############################################################################
+
+if test "$with_shadow" = yes ; 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_hpux=yes
+ have_shadow=yes
+ need_setuid=yes
+
+ # on HPUX, bigcrypt is in -lsec
+ AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
+ fi
+fi
+
+
+###############################################################################
+#
+# Check for FreeBSD-style shadow passwords.
+#
+# 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 "$with_shadow" = yes ; 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
+ fi
+fi
+
+
+###############################################################################
+#
+# Check for traditional (ha!) shadow passwords.
+#
+###############################################################################
+
+if test "$with_shadow" = yes ; 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
+
+ # 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
+
+
+###############################################################################
+#
+# Check for other libraries needed for non-shadow passwords.
+#
+###############################################################################
+
+if test "$enable_locking" = yes ; then
+
+ # 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
+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 "$enable_locking" = yes ; then
+ case "$host" in
+ *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
+ need_setuid=yes
+ ;;
+ esac
+fi
+
+
+if test "$have_shadow_adjunct" = yes ; then
+ AC_DEFINE(HAVE_ADJUNCT_PASSWD)
+elif test "$have_shadow_enhanced" = yes ; then
+ AC_DEFINE(HAVE_ENHANCED_PASSWD)
+elif test "$have_shadow_hpux" = yes ; then
+ AC_DEFINE(HAVE_HPUX_PASSWD)
+elif test "$have_shadow" = yes ; then
+ AC_DEFINE(HAVE_SHADOW_PASSWD)
+fi
+
+
+###############################################################################
+#
+# Check for external password helper
+# On SuSE, instead of having xscreensaver be a setuid program, they
+# fork an external program that takes the password on stdin, and
+# returns true if that password is a valid one. Then only that
+# smaller program needs to be setuid.
+#
+# (Note that this external program is not a GUI: the GUI is still
+# all in xscreensaver itself; the external program just does auth.)
+#
+###############################################################################
+
+have_passwd_helper=no
+with_passwd_helper_req=unspecified
+
+AC_ARG_WITH(passwd-helper,
+[ --with-passwd-helper Include support for an external password
+ verification helper program.],
+ [with_passwd_helper="$withval"; with_passwd_helper_req="$withval"],[with_passwd_helper=no])
+# no HANDLE_X_PATH_ARG for this one
+
+if test "$enable_locking" = no ; then
+ with_passwd_helper_req=no
+ with_passwd_helper=no
+fi
+
+case "$with_passwd_helper" in
+ ""|no) : ;;
+ /*)
+ AC_DEFINE_UNQUOTED(PASSWD_HELPER_PROGRAM, "$with_passwd_helper")
+ have_passwd_helper=yes;;
+ *)
+ echo "error: --with-passwd-helper needs full pathname of helper (not '$with_passwd_helper')." >&2
+ exit 1
+esac
+
+
+###############################################################################
+#
+# Check for -lXm.
+#
+###############################################################################
+
+have_motif=no
+with_motif_req=unspecified
+AC_ARG_WITH(motif,[
+User interface options:
+
+ --with-motif Use the Motif toolkit for the user interface
+ (not recommended.)],
+ [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no])
+
+HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
+
+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_motif" = yes; then
+ have_motif=no
+ AC_CHECK_X_HEADER(Xm/Xm.h,
+ [have_motif=yes
+ AC_DEFINE(HAVE_MOTIF)
+ MOTIF_LIBS="$MOTIF_LIBS -lXm"],,
+ [#include <stdlib.h>
+ #include <stdio.h>
+ #include <X11/Intrinsic.h>])
+fi
+
+
+if test "$have_motif" = yes; then
+ AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],,
+ [#include <stdlib.h>
+ #include <stdio.h>
+ #include <X11/Intrinsic.h>])
+fi
+
+
+###############################################################################
+#
+# Check for -lgtk (and Gnome stuff)
+#
+###############################################################################
+
+have_gtk=no
+have_gtk2=no
+with_gtk_req=unspecified
+AC_ARG_WITH(gtk,
+[ --with-gtk Use the Gtk toolkit for the user interface.],
+ [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
+
+# if --with-gtk=/directory/ was specified, remember that directory so that
+# we can also look for the `gtk-config' program in that directory.
+case "$with_gtk" in
+ /*)
+ gtk_dir="$with_gtk"
+ ;;
+ *)
+ gtk_dir=""
+ ;;
+esac
+
+HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
+
+if test "$with_gtk" != yes -a "$with_gtk" != no ; then
+ echo "error: must be yes or no: --with-gtk=$with_gtk"
+ exit 1
+fi
+
+have_gnome=no
+with_gnome_req=unspecified
+AC_ARG_WITH(gnome,
+[ --with-gnome Include support for the Gnome 1.x Control Center.
+ (This option is not needed with GTK 2.x / Gnome 2.x.)
+],
+ [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
+
+# if --with-gnome=/directory/ was specified, remember that directory so that
+# we can also look for the `gnome-config' program in that directory.
+case "$with_gnome" in
+ /*)
+ gnome_dir="$with_gnome"
+ ;;
+ *)
+ gnome_dir=""
+ ;;
+esac
+
+HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome)
+
+if test "$with_gnome" != yes -a "$with_gnome" != no ; then
+ echo "error: must be yes or no: --with-gnome=$with_gnome"
+ exit 1
+fi
+
+parse_gtk_version_string() {
+ # M4 sucks!!
+ changequote(X,Y)
+ maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
+ min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
+ changequote([,])
+ ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
+ if test -z "$ac_gtk_version"; then
+ ac_gtk_version=unknown
+ ac_gtk_version_string=unknown
+ fi
+}
+
+
+jurassic_gtk=no
+gtk2_halfassed=no
+
+if test "$with_gtk" = yes; then
+ have_gtk=no
+
+ # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
+ # look in /foo/bin/ for glib-config, gtk-config, and gnome-config.
+ #
+ gtk_path="$PATH"
+
+ if test ! -z "$gtk_dir"; then
+ # canonicalize slashes.
+ foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
+ gtk_path="$foo:$gtk_path"
+ fi
+
+ if test ! -z "$gnome_dir"; then
+ # canonicalize slashes.
+ foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
+ gtk_path="$foo:$gtk_path"
+ fi
+
+ AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path)
+
+ if test -n "$pkg_config" ; then
+ #
+ # the new way...
+ # run pkg-config based tests.
+ #
+ pkgs=''
+ pkg_check_version() {
+ if test "$ok" = yes ; then
+ req="$1"
+ min="$2"
+ AC_MSG_CHECKING(for $req)
+ if $pkg_config --exists "$req" ; then
+ vers=`$pkg_config --modversion "$req"`
+ if $pkg_config --exists "$req >= $min" ; then
+ AC_MSG_RESULT($vers)
+ pkgs="$pkgs $req"
+ return 1
+ else
+ AC_MSG_RESULT($vers (wanted >= $min))
+ ok=no
+ return 0
+ fi
+ else
+ AC_MSG_RESULT(no)
+ ok=no
+ return 0
+ fi
+ fi
+ }
+
+ AC_MSG_RESULT(checking for GTK 2.x with pkg-config based tests...)
+
+ ok="yes"
+ pkg_check_version gtk+-2.0 2.0.1 ; ac_gtk_version_string="$vers"
+ pkg_check_version gmodule-2.0 2.0.0
+ pkg_check_version libxml-2.0 2.4.6
+ pkg_check_version libglade-2.0 1.99.0
+# pkg_check_version gdk_pixbuf 0.1
+ have_gtk="$ok"
+
+ if test "$have_gtk" = yes; then
+ have_gtk2=yes
+ AC_DEFINE(HAVE_GTK2)
+ else
+ if test -n "$ac_gtk_version_string" ; then
+ gtk2_halfassed="$ac_gtk_version_string"
+ gtk2_halfassed_lib="$req"
+ fi
+ fi
+
+ if test "$have_gtk" = no; then
+ #
+ # we don't have GTK 2. Let's look for GTK 1.
+ #
+ AC_MSG_RESULT(checking for GTK 1.x with pkg-config based tests...)
+
+ pkgs=''
+ ok="yes"
+ pkg_check_version gtk+ 1.2 ; ac_gtk_version_string="$vers"
+ pkg_check_version glib 1.0
+ pkg_check_version gdk_pixbuf 0.1
+ have_gtk="$ok"
+
+ # Now check for Gnome...
+ #
+ if test "$have_gtk" = yes -a "$with_gnome" = yes; then
+ old_pkgs="$pkgs"
+ ok=yes
+ pkg_check_version capplet 1.0
+ pkg_check_version gnomeui 1.0
+ pkg_check_version gdk_pixbuf 0.1
+ have_gnome="$ok"
+
+ if test "$have_gnome" = no; then
+ pkgs="$old_pkgs"
+ else
+ AC_DEFINE(HAVE_CRAPPLET)
+ fi
+ fi
+ fi
+
+ if test "$have_gtk" = yes; then
+ parse_gtk_version_string
+ jurassic_gtk=no
+ else
+ have_gnome=no
+ fi
+
+ if test "$have_gtk" = yes; then
+ AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
+ [ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`])
+ AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
+ [ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs`])
+ fi
+ ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
+ ac_gtk_config_libs=$ac_cv_gtk_config_libs
+
+ ac_gnome_config_cflags=$ac_gtk_config_cflags
+ ac_gnome_config_libs=$ac_gtk_config_libs
+
+ else
+ #
+ # the old way...
+ # run {gnome,gtk}-config based tests.
+ #
+ AC_MSG_RESULT(checking for GTK 1.x with gtk-config based tests...)
+
+ AC_PATH_PROGS(glib_config, glib12-config glib-config,, $gtk_path)
+ AC_PATH_PROGS(gtk_config, gtk12-config gtk-config,, $gtk_path)
+
+ if test "$with_gnome" = yes; then
+ AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
+ fi
+
+ if test -n "$glib_config" -a -n "$gtk_config" ; then
+ have_gtk=yes
+ if test "$with_gnome" = yes -a -n "$gnome_config" ; then
+ have_gnome=yes
+ fi
+ fi
+
+ if test "$have_gtk" = yes; then
+ AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
+ [ac_cv_gtk_version_string=`$gtk_config --version`])
+ ac_gtk_version_string=$ac_cv_gtk_version_string
+ parse_gtk_version_string
+ fi
+
+ if test "$have_gtk" = yes; then
+ if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
+ then
+ have_gtk=no
+ have_gnome=no
+ jurassic_gtk=yes
+ fi
+ fi
+
+ if test "$have_gtk" = yes; then
+ AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
+ [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
+ AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
+ [ac_cv_gtk_config_libs=`$gtk_config --libs`])
+ fi
+ ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
+ ac_gtk_config_libs=$ac_cv_gtk_config_libs
+
+ # Check for Gnome Capplet support.
+ # Note that this is only needed with Gnome 1.x, not Gnome 2.x.
+ # In a Gnome 2.x world, libcapplet will not exist.
+ # (In fact, this likely won't even be checked, since in a Gnome 2.x
+ # world, we will probably be up in the "$pkg_config" branch instead
+ # of here in the "$gnome_config" branch.)
+ #
+ if test "$have_gnome" = yes -a "$have_gtk" = yes; then
+ gnome_config_libs="gtk capplet gnomeui gdk_pixbuf"
+ AC_MSG_CHECKING(for Gnome capplet includes)
+ AC_CACHE_VAL(ac_cv_gnome_config_cflags,
+ [if ( $gnome_config --cflags $gnome_config_libs 2>&1 | \
+ grep Unknown >/dev/null ) ; then
+ ac_cv_gnome_config_cflags=''
+ else
+ ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
+ fi])
+ ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
+ if test "$ac_gnome_config_cflags" = "" ; then
+ have_gnome=no
+ AC_MSG_RESULT(no)
+ else
+ AC_MSG_RESULT($ac_gnome_config_cflags)
+ fi
+ fi
+
+ if test "$have_gnome" = yes -a "$have_gtk" = yes; then
+ AC_MSG_CHECKING(for Gnome capplet libs)
+ AC_CACHE_VAL(ac_cv_gnome_config_libs,
+ [if ( $gnome_config --libs $gnome_config_libs 2>&1 |
+ grep Unknown >/dev/null ) ; then
+ ac_cv_gnome_config_libs=''
+ else
+ ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
+ fi])
+ ac_gnome_config_libs=$ac_cv_gnome_config_libs
+ if test "$ac_gnome_config_libs" = "" ; then
+ have_gnome=no
+ AC_MSG_RESULT(no)
+ else
+ AC_MSG_RESULT($ac_gnome_config_libs)
+ fi
+ fi
+
+ # If we have Gnome, then override the gtk-config values with
+ # the gnome-config values.
+ #
+ if test "$have_gnome" = yes -a "$have_gtk" = yes; then
+ ac_gtk_config_cflags=$ac_gnome_config_cflags
+ ac_gtk_config_libs=$ac_gnome_config_libs
+ AC_DEFINE(HAVE_CRAPPLET)
+ fi
+
+ fi # end of {gnome,gtk}-config based tests
+
+ if test "$have_gtk" = yes -a "$have_gtk2" = no; then
+ # check for this function that was not in libcapplet 1.2.
+ # (only needed in Gnome/Gtk 1.x, not Gnome/Gtk 2.x)
+ AC_CHECK_X_LIB(capplet, capplet_widget_changes_are_immediate,
+ [AC_DEFINE(HAVE_CRAPPLET_IMMEDIATE)], [true],
+ $ac_gnome_config_libs)
+ fi
+
+
+ GNOME_DATADIR=""
+ if test "$have_gtk" = yes; then
+ if test -n "$pkg_config"; then
+ if test "$have_gtk2" = yes; then
+ GNOME_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
+ else
+ GNOME_DATADIR=`$pkg_config --variable=prefix gtk+`
+ fi
+ else
+ GNOME_DATADIR=`$gtk_config --prefix`
+ fi
+ GNOME_DATADIR="$GNOME_DATADIR/share"
+ fi
+
+ # .desktop files go in different places in Gnome 1.x and Gnome 2.x...
+ if test "$have_gtk2" = yes; then
+ GNOME_PANELDIR='$(GNOME_PANELDIR2)'
+ else
+ GNOME_PANELDIR='$(GNOME_PANELDIR1)'
+ fi
+
+
+ if test "$have_gtk" = yes; then
+ INCLUDES="$INCLUDES $ac_gtk_config_cflags"
+ GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
+ AC_DEFINE(HAVE_GTK)
+
+ if test "$have_gtk2" = yes; then
+ GTK_EXTRA_OBJS=""
+ else
+ GTK_EXTRA_OBJS="\$(GTK_EXTRA_OBJS)"
+ fi
+ fi
+
+fi
+
+
+# Check for the Gnome Help Browser.
+#
+if test "$have_gtk" = yes; then
+ AC_CHECK_PROGS(have_gnome_help, yelp gnome-help-browser, no)
+ if test "$have_gnome_help" != no; then
+ have_gnome_help=yes
+ fi
+fi
+
+
+###############################################################################
+#
+# Check for -lxml
+#
+###############################################################################
+
+have_xml=no
+with_xml_req=unspecified
+xml_halfassed=no
+AC_ARG_WITH(xml,
+[ --with-xml The XML toolkit is needed for some parts of
+ the Gtk interface. Without it, the configuration
+ interface will be much less featureful.],
+[with_xml="$withval"; with_xml_req="$withval"],[with_xml=yes])
+
+# if --with-xml=/directory/ was specified, remember that directory so that
+# we can also look for the `xml-config' program in that directory.
+case "$with_xml" in
+ /*)
+ xml_dir="$with_xml"
+ ;;
+ *)
+ xml_dir=""
+ ;;
+esac
+
+HANDLE_X_PATH_ARG(with_xml, --with-xml, XML)
+
+if test "$with_xml" != yes -a "$with_xml" != no ; then
+ echo "error: must be yes or no: --with-xml=$with_xml"
+ exit 1
+fi
+
+if test "$with_xml" = yes; then
+ have_xml=no
+ have_old_xml=no
+
+ # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
+ # look in /foo/bin/ for for xml-config.
+ #
+ xml_path="$PATH"
+
+ if test ! -z "$gtk_dir"; then
+ # canonicalize slashes.
+ foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
+ xml_path="$foo:$xml_path"
+ fi
+
+ if test ! -z "$gnome_dir"; then
+ # canonicalize slashes.
+ foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
+ xml_path="$foo:$xml_path"
+ fi
+
+ if test -n "$pkg_config" ; then
+ #
+ # the new way...
+ # run pkg-config based tests.
+ #
+ pkgs=""
+ ok="yes"
+
+ # If we have Gtk 2.x, then *only* XML 2.x will work.
+ # If we have Gtk 1.x, or don't have Gtk at all, then
+ # either XML 1.x or 2.x will work.
+
+ # First check for XML 2.x.
+ #
+ pkg_check_version libxml-2.0 2.4.6
+
+ # If that didn't work (we don't have XML 2.x) and we *don't* have
+ # Gtk 2.x, then check to see if we have XML 1.x
+ #
+ if test "$ok" = no -a "$have_gtk2" = no; then
+ ok=yes
+ pkg_check_version libxml 1.0
+ fi
+
+ have_xml="$ok"
+
+ if test "$have_xml" = yes; then
+ AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
+ [ac_cv_xml_config_cflags=`$pkg_config --cflags $pkgs`])
+ AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
+ [ac_cv_xml_config_libs=`$pkg_config --libs $pkgs`])
+ ac_xml_config_cflags=$ac_cv_xml_config_cflags
+ ac_xml_config_libs=$ac_cv_xml_config_libs
+ fi
+
+ else
+ #
+ # the old way...
+ # run {xml2,xml}-config based tests.
+ #
+
+ AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path)
+
+ # If we found the xml-config program, run it to get flags.
+ #
+ if test -n "$xml_config" ; then
+ AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
+ [ac_cv_xml_config_cflags=`$xml_config --cflags`])
+ AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
+ [ac_cv_xml_config_libs=`$xml_config --libs`])
+ ac_xml_config_cflags=$ac_cv_xml_config_cflags
+ ac_xml_config_libs=$ac_cv_xml_config_libs
+ fi
+
+ ac_save_xml_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ac_xml_config_cflags"
+
+ # first try <libxml/parser.h> which is the new way...
+ #
+ AC_CHECK_X_HEADER(libxml/xmlIO.h, [have_xml=yes],,
+ [#include <libxml/parser.h>])
+
+ # if that didn't work, then try just <parser.h> which is the old way...
+ #
+ if test "$have_xml" = no; then
+ AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes; have_old_xml=yes],,
+ [#include <parser.h>])
+ fi
+
+ CPPFLAGS="$ac_save_xml_CPPFLAGS"
+ fi
+
+
+ have_zlib=no
+ if test "$have_xml" = yes; then
+ # we have the XML headers; now make sure zlib is around.
+ # yes, it's stupid we have to do this too, but there is
+ # dependency screwage in Gnome.
+ AC_CHECK_X_LIB(z, zlibVersion, [have_zlib=yes])
+ if test "$have_zlib" = no; then
+ xml_halfassed=yes
+ have_xml=no
+ fi
+ fi
+
+ if test "$have_xml" = yes; then
+ # we have the header, now check for the library
+ have_xml=no
+ xml_halfassed=yes
+ AC_CHECK_X_LIB(c, xmlParseChunk,
+ [have_xml=yes
+ xml_halfassed=no
+ XML_LIBS="$ac_xml_config_libs"
+ AC_DEFINE(HAVE_XML)],
+ [true],
+ $ac_xml_config_libs)
+ fi
+
+ if test "$have_xml" = yes; then
+ INCLUDES="$INCLUDES $ac_xml_config_cflags"
+ GTK_LIBS="$GTK_LIBS $ac_xml_config_libs"
+ AC_DEFINE(HAVE_XML)
+ if test "$have_old_xml" = yes; then
+ AC_DEFINE(HAVE_OLD_XML_HEADERS)
+ fi
+ fi
+
+fi
+
+
+###############################################################################
+#
+# Checking whether Motif is 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
+
+
+lesstif_version=unknown
+lesstif_version_string=unknown
+
+if test "$have_lesstif" = yes ; then
+ ltv=unknown
+ echo unknown > conftest-lt
+ AC_CACHE_CHECK([LessTif version number],
+ ac_cv_lesstif_version_string,
+ [AC_TRY_X_RUN([#include <stdio.h>
+ #include <Xm/Xm.h>
+ int main() {
+ FILE *f = fopen("conftest-lt", "w");
+ if (!f) exit(1);
+ fprintf(f, "%d %d.%d\n", LesstifVersion,
+ LESSTIF_VERSION, LESSTIF_REVISION);
+ fclose(f);
+ exit(0);
+ }],
+ [ltv=`cat conftest-lt`
+ ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
+ ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
+ [ac_cv_lesstif_version=unknown
+ ac_cv_lesstif_version_string=unknown],
+ [ac_cv_lesstif_version=unknown
+ ac_cv_lesstif_version_string=unknown])])
+ rm -f conftest-lt
+ lesstif_version=$ac_cv_lesstif_version
+ lesstif_version_string=$ac_cv_lesstif_version_string
+
+fi
+
+
+if test "$have_motif" = yes ; then
+ mtv=unknown
+ echo unknown > conftest-mt
+ AC_CACHE_CHECK([Motif version number],
+ ac_cv_motif_version_string,
+ [AC_TRY_X_RUN([#include <stdio.h>
+ #include <Xm/Xm.h>
+ int main() {
+ FILE *f = fopen("conftest-mt", "w");
+ if (!f) exit(1);
+ fprintf(f, "%d %d.%d\n", XmVersion,
+ XmVERSION, XmREVISION);
+ fclose(f);
+ exit(0);
+ }],
+ [mtv=`cat conftest-mt`
+ ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
+ ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
+ [ac_cv_motif_version=unknown
+ ac_cv_motif_version_string=unknown],
+ [ac_cv_motif_version=unknown
+ ac_cv_motif_version_string=unknown])])
+ rm -f conftest-mt
+ motif_version=$ac_cv_motif_version
+ motif_version_string=$ac_cv_motif_version_string
+
+fi
+
+
+###############################################################################
+#
+# Checking whether Motif requires -lXpm.
+#
+# If this is Motif 2.x, and we have XPM, then link against XPM as well.
+# The deal is, Motif 2.x requires XPM -- but it's a compilation option
+# of the library whether to build the XPM code into libXm, or whether
+# to rely on an external libXm. So the only way to tell whether XPM is
+# a link-time requirement is to examine libXm.a, which is very
+# difficult to do in an autoconf script. So... if it's Motif 2.x, we
+# always link against XPM if the XPM lib exists (and this will be a
+# no-op if libXm happens to already have the XPM code in it.)
+#
+###############################################################################
+
+motif_requires_xpm=no
+if test "$have_motif" = yes ; then
+ AC_MSG_CHECKING(whether Motif requires XPM)
+ if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
+ then
+ motif_requires_xpm=yes
+ AC_MSG_RESULT(maybe)
+ else
+ AC_MSG_RESULT(no)
+ fi
+fi
+
+
+###############################################################################
+#
+# Checking whether Motif requires -lXp.
+#
+# 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; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
+ [true], -lX11 -lXext -lm)
+fi
+
+
+###############################################################################
+#
+# Checking whether Motif requires -lXintl (for _Xsetlocale.)
+#
+###############################################################################
+
+have_xintl=no
+if test "$have_motif" = yes ; then
+ AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
+ -lX11 -lXext -lm)
+ if test "$have_xintl" = yes; then
+ MOTIF_LIBS="$MOTIF_LIBS -lXintl"
+ fi
+fi
+
+
+###############################################################################
+#
+# Check for -lGL or -lMesaGL.
+#
+###############################################################################
+
+have_gl=no
+ac_have_mesa_gl=no
+with_gl_req=unspecified
+gl_halfassed=no
+AC_ARG_WITH(gl,[
+Graphics options:
+
+ --with-gl Build those demos which depend on OpenGL.],
+ [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
+
+HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
+
+ac_mesagl_version=unknown
+ac_mesagl_version_string=unknown
+
+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,
+ [#include <GL/gl.h>])
+ fi
+
+ # If we have the headers, try and figure out which vendor it's from.
+ #
+ if test "$have_gl" = yes ; then
+
+ # We need to know whether it's MesaGL so that we know which libraries
+ # to link against.
+ #
+ AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
+ [ac_cv_have_mesa_gl=no
+ AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
+ ])
+ ac_have_mesa_gl=$ac_cv_have_mesa_gl
+
+
+ gl_lib_1=""
+ GL_LIBS=""
+
+
+ # Some versions of MesaGL are compiled to require -lpthread.
+ # So if the Mesa headers exist, and -lpthread exists, then always
+ # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
+ #
if test "$ac_have_mesa_gl" = yes; then
+ AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
+ fi
+
+
+ # If we have Mesa headers, check to see if we can link against -lMesaGL.
+ # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
+ # Else, warn that GL is busted. (We have the headers, but no libs.)
+ #
+
+ if test "$ac_have_mesa_gl" = yes ; then
+ AC_CHECK_X_LIB(MesaGL, glXCreateContext,
+ [gl_lib_1="MesaGL"
+ GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
+ [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
+ fi
+
+ if test "$gl_lib_1" = "" ; then
+ AC_CHECK_X_LIB(GL, glXCreateContext,
+ [gl_lib_1="GL"
+ GL_LIBS="-lGL -lGLU $GL_LIBS"],
+ [], -lGLU $GL_LIBS -lX11 -lXext -lm)
+ fi
+
+ if test "$gl_lib_1" = "" ; then
+ # we have headers, but no libs -- bail.
+ have_gl=no
+ ac_have_mesa_gl=no
+ gl_halfassed=yes
+ else
+ # linking works -- we can build the GL hacks.
+ AC_DEFINE(HAVE_GL)
+ if test "$ac_have_mesa_gl" = yes ; then
+ AC_DEFINE(HAVE_MESA_GL)
+ fi
+ fi
+ fi
+
+
+ # Now that we know we have GL headers and libs, do some more GL testing.
+ #
- # don't cache these.
- unset ac_cv_mesagl_version
- unset ac_cv_mesagl_version_string
+ if test "$have_gl" = yes ; then
+ # If it's MesaGL, we'd like to issue a warning if the version number
+ # is less than or equal to 2.6, because that version had a security bug.
+ #
+ if test "$ac_have_mesa_gl" = yes; then
- AC_MSG_CHECKING(MesaGL version number)
- AC_CACHE_VAL(ac_cv_mesagl_version_string,
- [cat > conftest.$ac_ext <<EOF
+ AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
+ [cat > conftest.$ac_ext <<EOF
#line __oline__ "configure"
#include "confdefs.h"
#include <GL/gl.h>
+#ifndef MESA_MAJOR_VERSION
+# include <GL/xmesa.h>
+# ifdef XMESA_MAJOR_VERSION
+ /* Around Mesa 3.2, they took out the Mesa version number, so instead,
+ we have to check the XMesa version number (the number of the X protocol
+ support, which seems to be the same as the Mesa version number.)
+ */
+# define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
+# define MESA_MINOR_VERSION XMESA_MINOR_VERSION
+# else
+ /* Oh great. Some time after 3.4, they took out the xmesa.h header file,
+ so we have no way of telling what version of Mesa this is at all.
+ So, we'll guess that the osmesa version (the "offscreen protocol")
+ is less than or equal to the real mesa version number. Except that
+ if OSmesa is 3.3, assume at least Mesa 3.4, since OSmesa was 3.3 in
+ Mesa 3.4. And Mesa 3.3 had xmesa.h. What a complete load of shit!
+ */
+# include <GL/osmesa.h>
+# define MESA_MAJOR_VERSION OSMESA_MAJOR_VERSION
+# define MESA_MINOR_VERSION OSMESA_MINOR_VERSION or newer, probably?
+# if OSMESA_MAJOR_VERSION == 3 && OSMESA_MINOR_VERSION == 3
+# undef MESA_MINOR_VERSION
+# define MESA_MINOR_VERSION 4 or newer, probably?
+# endif
+# endif
+#endif
configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
EOF
- ac_save_CPPFLAGS="$CPPFLAGS"
- if test \! -z "$includedir" ; then
- CPPFLAGS="$CPPFLAGS -I$includedir"
- fi
- CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ if test \! -z "$includedir" ; then
+ CPPFLAGS="$CPPFLAGS -I$includedir"
+ fi
+ CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+
+ mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | grep configure:`
- # M4 sucks!!
- changequote(X,Y)
- mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \
- 's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
- changequote([,])
+ # M4 sucks!!
+ changequote(X,Y)
+ mglv=`echo "$mglv" | sed -n \
+ 's/^configure: *\([0-9][0-9]*\) *\([0-9].*\)$/\1.\2/p'`
+ changequote([,])
rm -f conftest.$ac_ext
- CPPFLAGS="$ac_save_CPPFLAGS"
+ CPPFLAGS="$ac_save_CPPFLAGS"
- if test "$mglv" = ""; then
+ if test "$mglv" = ""; then
ac_mesagl_version=unknown
ac_mesagl_version_string=unknown
else
- ac_mesagl_version_string=$mglv
- maj=`echo $mglv | sed -n 's/\..*//p'`
- min=`echo $mglv | sed -n 's/.*\.//p'`
+ ac_mesagl_version_string="$mglv"
+ # M4 sucks!!
+ changequote(X,Y)
+ maj=`echo "$mglv" | sed -n 's/^\([0-9][0-9]*\)\..*$/\1/p'`
+ min=`echo "$mglv" | sed -n 's/^.*\.\([0-9][0-9]*\).*$/\1/p'`
+ changequote([,])
ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
if test -z "$ac_mesagl_version"; then
- ac_mesagl_version=unknown
+ ac_mesagl_version=unknown
ac_mesagl_version_string=unknown
- fi
+ fi
fi
ac_cv_mesagl_version=$ac_mesagl_version
ac_cv_mesagl_version_string=$ac_mesagl_version_string
])
ac_mesagl_version=$ac_cv_mesagl_version
ac_mesagl_version_string=$ac_cv_mesagl_version_string
- AC_MSG_RESULT($ac_cv_mesagl_version_string)
fi
- # If it's MesaGL, check to see if it requires -lpthread.
- #
- have_pthread=no
- mesa_requires_pthread=false
- if test "$ac_have_mesa_gl" = yes; then
-
- AC_CHECK_LIB(pthread, pthread_create, [have_pthread=yes], [],)
- if test "$have_pthread" = yes; then
- AC_CHECK_X_LIB($gl_lib_1, gl_get_thread_context,
- [mesa_requires_pthread=yes], [],
- $GL_LIBS -lpthread -lX11 -lXext -lm)
- fi
-
- if test "$mesa_requires_pthread" = yes; then
- GL_LIBS="$GL_LIBS -lpthread"
- fi
- fi
-
# Check for OpenGL 1.1 features.
#
AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
- [], $GL_LIBS -lX11 -lXext -lm)
-
+ [true], $GL_LIBS -lX11 -lXext -lm)
fi
elif test "$with_gl" != no; then
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])
+# Check for -lgle.
+#
+###############################################################################
-HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
+have_gle=no
+with_gle_req=unspecified
+gle_halfassed=no
+AC_ARG_WITH(gle,
+[ --with-gle Build those demos which depend on GLE
+ (the OpenGL "extrusion" library.)],
+ [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
-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
+HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
+GLE_LIBS=""
-# 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 "$have_gl" = no ; then
+ true
+elif test "$with_gle" = yes; then
+
+ AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no,
+ [#include <GL/gl.h>])
+ if test "$have_gle3" = yes ; then
+ have_gle=yes;
+ else
+ AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no,
+ [#include <GL/gl.h>])
+ if test "$have_gle" = yes ; then
+ AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no,
+ [#include <GL/gl.h>])
+ fi
+ fi
-HANDLE_X_PATH_ARG(with_sgivideo, --with-sgivideo, Iris Video)
+ if test "$have_gle" = yes ; then
+ have_gle=no
+ gle_halfassed=yes
+ AC_CHECK_X_LIB(gle, gleCreateGC,
+ [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
+ [], $GL_LIBS -lX11 -lXext -lm)
+ fi
+ if test "$have_gle" = yes ; then
+ have_gle=no
+ gle_halfassed=yes
+
+ # sometimes the libmatrix stuff is included in libgle. look there first.
+#
+# I don't get it. For some reason, this test passes on SGI, as if
+# uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
+# Yet the link is succeeding. Why???
+#
+# AC_CHECK_X_LIB(gle, uview_direction_d,
+# [have_gle=yes; gle_halfassed=no],
+# [], $GL_LIBS -lX11 -lXext -lm)
+
+ # As of GLE 3 this is in libgle, and has changed name to uview_direction!
+ # *sigh*
+ if test "$have_gle3" = yes ; then
+ AC_CHECK_X_LIB(gle, uview_direction,
+ [have_gle=yes; gle_halfassed=no],
+ [], $GL_LIBS -lX11 -lXext -lm)
+ fi
+ # if it wasn't in libgle, then look in libmatrix.
+ if test "$have_gle" = no ; then
+ AC_CHECK_X_LIB(matrix, uview_direction_d,
+ [have_gle=yes; gle_halfassed=no;
+ GLE_LIBS="$GLE_LIBS -lmatrix"],
+ [], $GL_LIBS -lX11 -lXext -lm)
+ fi
+ fi
-if test "$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)
+ if test "$have_gle" = yes ; then
+ AC_DEFINE(HAVE_GLE)
+ if test "$have_gle3" = yes ; then
+ AC_DEFINE(HAVE_GLE3)
fi
fi
-elif test "$with_sgivideo" != no; then
- echo "error: must be yes or no: --with-sgivideo=$with_sgivideo"
+
+elif test "$with_gle" != no; then
+ echo "error: must be yes or no: --with-gle=$with_gle"
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.
+# Check for -lXpm.
#
-# 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" ])
+###############################################################################
+
+have_xpm=no
+with_xpm_req=unspecified
+AC_ARG_WITH(xpm,
+[ --with-xpm Include support for XPM files in some demos.
+ (Not needed if Pixbuf is used.)],
+ [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
+
+HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
-if test "$with_zippy" = no || test "$with_zippy" = yes ; then
- with_zippy=""
- with_zippy_req=""
+if test "$with_xpm" = yes; then
+ AC_CHECK_X_HEADER(X11/xpm.h,
+ [have_xpm=yes
+ AC_DEFINE(HAVE_XPM)
+ XPM_LIBS="-lXpm"],,
+ [#include <X11/Xlib.h>])
+elif test "$with_xpm" != no; then
+ echo "error: must be yes or no: --with-xpm=$with_xpm"
+ exit 1
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
+# See comment near $motif_requires_xpm, above.
+# Need to do this here, after both Motif and XPM have been checked for.
+#
+if test "$have_motif" = yes -a "$have_xpm" = yes ; then
+ if test "$motif_requires_xpm" = yes ; then
+ MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
+ fi
+fi
+
+###############################################################################
+#
+# Check for -lgdk_pixbuf.
+#
+###############################################################################
+
+have_gdk_pixbuf=no
+with_gdk_pixbuf_req=unspecified
+AC_ARG_WITH(pixbuf,
+[ --with-pixbuf Include support for the GDK-Pixbuf library in some
+ demos, which will make it possible for them to read
+ GIF, JPEG, and PNG files as well. (The path here is
+ ignored if GTK 2.x is being used.)],
+ [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
+ [with_gdk_pixbuf=yes])
+
+# if --with-pixbuf=/directory/ was specified, remember that directory so that
+# we can also look for the `gdk-pixbuf-config' program in that directory.
+case "$with_gdk_pixbuf" in
+ /*)
+ gdk_pixbuf_dir="$with_gdk_pixbuf"
;;
- *)
- # don't cache
- unset ac_cv_path_zip2
- AC_PATH_PROG(zip2, $with_zippy_req, [])
- if test "$zip2" = ""; then
- with_zippy=""
- fi
+ *)
+ gdk_pixbuf_dir=""
;;
- esac
- ac_cv_zippy_program="$with_zippy"
+esac
-elif test -n "$ac_cv_zippy_program"; then
- AC_MSG_RESULT([checking for zippy... (cached) $ac_cv_zippy_program])
+HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF)
+
+if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then
+ echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
+ exit 1
fi
-if test ! -n "$ac_cv_zippy_program"; then
+if test "$with_gdk_pixbuf" = yes; then
+ have_gdk_pixbuf=no
+ have_gdk_pixbuf2=no
+
+ if test -n "$pkg_config" ; then
+ #
+ # the new way...
+ # run pkg-config based tests.
+ #
+ pkgs=''
+ ok="yes"
+
+ # If we have Gtk 2.x, then *only* gdk-pixbuf 2.x will work.
+ # If we have Gtk 1.x, then *only* gdk-pixbuf 1.x will work.
+ # If we don't have Gtk at all, then either will work.
+
+ if test "$have_gtk" = no -o "$have_gtk2" = yes; then
+ #
+ # we don't have Gtk; or we have Gtk 2.x. Check for pixbuf 2.x.
+ #
+ AC_MSG_RESULT(checking for gdk_pixbuf 2.x with gtk-config based tests...)
+ pkg_check_version gdk-pixbuf-2.0 2.0.0
+ pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
+ have_gdk_pixbuf="$ok"
+ have_gdk_pixbuf2="$ok"
+ fi
+
+ if test "$have_gtk" = no -o "$have_gtk2" = no; then
+ #
+ # we don't have Gtk; or we have Gtk 1.x.
+ # If we don't have pixbuf 2.x, then check for pixbuf 1.x.
+ #
+ if test "$have_gdk_pixbuf2" = no; then
+ pkgs=''
+ ok="yes"
+ AC_MSG_RESULT(checking for gdk_pixbuf 1.x with gtk-config based tests...)
+ pkg_check_version gdk_pixbuf 0.0
+ pkg_check_version gdk_pixbuf_xlib 0.0
+ have_gdk_pixbuf="$ok"
+ fi
+ fi
- AC_CHECK_PROGS(emacs_exe, emacs)
- AC_CHECK_PROGS(xemacs_exe, xemacs)
+ if test "$have_gdk_pixbuf" = yes; then
+ AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
+ [ac_cv_gdk_pixbuf_config_cflags=`$pkg_config --cflags $pkgs`])
+ AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
+ [ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs`])
+ fi
+ ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
+ ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
+ fi
- ac_cv_zippy_program=""
- eargs='-batch -q -nw --eval'
- if test -n "$emacs_exe" ; then
- AC_MSG_CHECKING([for emacs yow])
+ if test "$have_gdk_pixbuf" = no; then
#
- # get emacs to tell us where the libexec directory is.
+ # the old way...
+ # run gdk-pixbuf-config based tests.
+ # note that we can't assume that the existence of "pkg-config" means
+ # that we don't have to look for gdk-pixbuf-config -- in Gnome 1.4,
+ # pkg-config exists, but doesn't know about pixbuf.
#
- dir=`$emacs_exe $eargs '(princ (concat exec-directory "\n"))' \
- 2>/dev/null | tail -1`
- dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
+
+ AC_MSG_RESULT(checking for gdk_pixbuf with gdk-pixbuf-config based tests...)
+
+ # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
+ # look in /foo/bin/ for for gdk-pixbuf-config.
#
- # try running libexec/yow and see if it exits without error.
+ gdk_pixbuf_path="$PATH"
+
+ if test ! -z "$gtk_dir"; then
+ # canonicalize slashes.
+ foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
+ gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
+ fi
+
+ if test ! -z "$gnome_dir"; then
+ # canonicalize slashes.
+ foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
+ gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
+ fi
+
+ AC_PATH_PROGS(gdk_pixbuf_config, gdk-pixbuf-config,, $gdk_pixbuf_path)
+
+ # If we found the gdk-pixbuf-config program, run it to get flags.
#
- 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
+ if test -n "$gdk_pixbuf_config" ; then
+ AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
+ [ac_cv_gdk_pixbuf_config_cflags=`$gdk_pixbuf_config --cflags`])
+ AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
+ [ac_cv_gdk_pixbuf_config_libs=`$gdk_pixbuf_config --libs`])
+
+ # note that "gdk-pixbuf-config --libs" produces a link line including
+ # -lgdk_pixbuf, but there's no way to get it to produce one that also
+ # includes -lgdk_pixbuf_xlib. Since we don't know *exactly* what the
+ # name of the library will be, construct it with sed...
+ # M4 sucks!!
+ changequote(X,Y)
+ ac_cv_gdk_pixbuf_config_libs=`echo $ac_cv_gdk_pixbuf_config_libs | \
+ sed 's@ \(-lgdk_pixbuf\([-_a-zA-Z0-9.]*\)\) @ \1 -lgdk_pixbuf_xlib\2 @'`
+ changequote([,])
+
+ ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
+ ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
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
+ ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
+
+ if test "$have_gdk_pixbuf" = no; then
+ #
+ # we appear to have pixbuf; check for headers/libs to be sure.
+ #
+
+ have_gdk_pixbuf=no
+
+ # check for header A...
+ AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
+
+ # if that worked, check for header B...
+ if test "$have_gdk_pixbuf" = yes; then
+ have_gdk_pixbuf=no
+ gdk_pixbuf_halfassed=yes
+ AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h,
+ [have_gdk_pixbuf=yes
+ gdk_pixbuf_halfassed=no])
+
+ # yay, it has a new name in Gtk 2.x...
+ if test "$have_gdk_pixbuf" = no; then
+ have_gdk_pixbuf=no
+ gdk_pixbuf_halfassed=yes
+ AC_CHECK_X_HEADER(gdk-pixbuf-xlib/gdk-pixbuf-xlib.h,
+ [have_gdk_pixbuf=yes
+ gdk_pixbuf_halfassed=no])
fi
fi
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)
+ CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
+
+ if test "$have_gdk_pixbuf" = yes; then
+ # we have the headers, now check for the libraries
+ have_gdk_pixbuf=no
+ gdk_pixbuf_halfassed=yes
+
+ # library A...
+ AC_CHECK_X_LIB(c, gdk_pixbuf_new_from_file, [have_gdk_pixbuf=yes],,
+ $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
+ # library B...
+ if test "$have_gdk_pixbuf" = yes; then
+ have_gdk_pixbuf=no
+ AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init,
+ [have_gdk_pixbuf=yes
+ gdk_pixbuf_halfassed=no],,
+ $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
fi
fi
+
+ if test "$have_gdk_pixbuf" = yes; then
+ INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
+ XPM_LIBS="$ac_gdk_pixbuf_config_libs"
+ AC_DEFINE(HAVE_GDK_PIXBUF)
+ else
+ have_gdk_pixbuf2=no
+ fi
+fi
+
+
+###############################################################################
+#
+# Check for -ljpeg
+#
+###############################################################################
+
+have_jpeg=no
+with_jpeg_req=unspecified
+jpeg_halfassed=no
+AC_ARG_WITH(jpeg,
+[ --with-jpeg Include support for the JPEG library.],
+ [with_jpeg="$withval"; with_jpeg_req="$withval"],
+ [with_jpeg=yes])
+
+HANDLE_X_PATH_ARG(with_jpeg, --with-jpeg, JPEG)
+
+if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then
+ echo "error: must be yes or no: --with-jpeg=$with_jpeg"
+ exit 1
fi
-if test -z "$ac_cv_zippy_program" ; then
- ac_cv_zippy_program=fortune
+if test "$with_jpeg" = yes; then
+
+ have_jpeg=no
+ AC_CHECK_X_HEADER(jpeglib.h, [have_jpeg=yes])
+
+ if test "$have_jpeg" = yes; then
+ # we have the header, now check for the library
+ have_jpeg=no
+ jpeg_halfassed=yes
+ AC_CHECK_X_LIB(jpeg, jpeg_start_compress,
+ [have_jpeg=yes
+ jpeg_halfassed=no
+ JPEG_LIBS="-ljpeg"
+ AC_DEFINE(HAVE_JPEGLIB)])
+ fi
fi
-AC_DEFINE_UNQUOTED(ZIPPY_PROGRAM, "$ac_cv_zippy_program")
+###############################################################################
+#
+# Check for pty support for 'phosphor'
+#
+###############################################################################
+PTY_LIBS=
+AC_CHECK_HEADERS(pty.h util.h)
+AC_CHECK_X_LIB(util, forkpty,
+ [PTY_LIBS="-lutil"
+ AC_DEFINE(HAVE_FORKPTY)])
-# Allow locking to be disabled at compile-time.
+###############################################################################
#
-have_kerberos=no
-with_kerberos_req=unspecified
-have_shadow=no
-with_shadow_req=unspecified
-have_pam=no
-with_pam_req=unspecified
-need_setuid=no
+# Check for the XSHM server extension.
+#
+###############################################################################
-AC_ARG_ENABLE(locking,[
-Screen Locking options:
+have_xshm=no
+with_xshm_req=unspecified
+AC_ARG_WITH(xshm-ext,
+[ --with-xshm-ext Include support for the Shared Memory extension.],
+ [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
- --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
- true
-elif test "$enable_locking" = no; then
- AC_DEFINE(NO_LOCKING)
-else
- echo "error: must be yes or no: --enable-locking=$enable_locking"
+HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
+
+if test "$with_xshm" = yes; then
+
+ # first check for Xshm.h.
+ AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],,
+ [#include <X11/Xlib.h>])
+
+ # 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. (This lib gets added to X_EXTRA_LIBS, and
+ # that's not quite right, but close enough.)
+ #
+ case "$host" in
+ *-aix*)
+ if [ `uname -v` -eq 3 ]; then
+ have_xshm=no
+ AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
+ [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
+ [true], -lX11 -lXext -lm)
+ fi
+ ;;
+ esac
+
+ # if 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 to see if we can lock Virtual-Terminal switching, but allow that
-# to be disabled at compile-time.
+###############################################################################
#
-ac_vt_lockswitch=no
-AC_ARG_ENABLE(vt-locking,[
- --enable-vt-locking Compile in support for locking Virtual Terminals.
- This is the default if the system supports it, and
- if locking support is included (--enable-locking.)
- --disable-vt-locking Do not allow locking of VTs, even if locking is
- enabled.],
- [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
-if test "$enable_vt_locking" = yes; then
+# Check for the DOUBLE-BUFFER server extension.
+#
+###############################################################################
- AC_MSG_CHECKING(for the VT_LOCKSWITCH ioctl)
- AC_CACHE_VAL(ac_cv_vt_lockswitch,
- [AC_TRY_COMPILE([#include <fcntl.h>
- #include <sys/ioctl.h>
- #include <sys/vt.h>],
- [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
- [ac_cv_vt_lockswitch=yes],
- [ac_cv_vt_lockswitch=no])])
- ac_vt_lockswitch=$ac_cv_vt_lockswitch
- AC_MSG_RESULT($ac_vt_lockswitch)
+have_xdbe=no
+with_xdbe_req=unspecified
+AC_ARG_WITH(xdbe-ext,
+[ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.],
+ [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
-elif test "$enable_locking" = no; then
- true
-else
- echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
+HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
+
+if test "$with_xdbe" = yes; then
+
+ AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],,
+ [#include <X11/Xlib.h>])
+ if test "$have_xdbe" = yes; then
+ AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
+ fi
+
+elif test "$with_xdbe" != no; then
+ echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
exit 1
fi
-if test "$ac_vt_lockswitch" = yes; then
- AC_DEFINE(HAVE_VT_LOCKSWITCH)
- # the VT_LOCKSWITCH ioctl can only be used when running as root.
- # #### but it doesn't work yet, so don't worry about that for now.
-# need_setuid=yes
-fi
+###############################################################################
+#
+# Check for the SGI XReadDisplay server extension.
+#
+# Note: this has to be down here, rather than up with the other server
+# extension tests, so that the output of `configure --help' is in the
+# right order. Arrgh!
+#
+###############################################################################
+have_readdisplay=no
+with_readdisplay_req=unspecified
+AC_ARG_WITH(readdisplay,
+[ --with-readdisplay Include support for the XReadDisplay extension.],
+ [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
+ [with_readdisplay=yes])
-if test "$enable_locking" = yes; then
+HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
- # 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_readdisplay" = yes; then
+ AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
+ AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),,
+ [#include <X11/Xlib.h>])
+elif test "$with_readdisplay" != no; then
+ echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
+ exit 1
+fi
- HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
- 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)
+###############################################################################
+#
+# Check for a program to generate random text.
+#
+# Zippy is funnier than the idiocy generally spat out by `fortune',
+# so first see if "fortune zippy" works. Else, use plain "fortune".
+#
+# We used to dig around in Emacs to look for the "yow" program, but
+# most people who have Emacs also have "fortune zippy", so nevermind.
+#
+###############################################################################
+
+with_fortune_req=""
+AC_ARG_WITH(fortune,[
+ --with-fortune=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.) Default is "/usr/games/fortune".],
+ [with_fortune_req="$withval"; with_fortune="$withval"],[with_fortune=yes])
- # from Tim Showalter <tjs+@andrew.cmu.edu>
- PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes"
- AC_CHECK_FUNC(res_search,,
- AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
- AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
- ))
+if test "$with_fortune" = no || test "$with_fortune" = yes ; then
+ with_fortune=""
+ with_fortune_req=""
+fi
- fi
- elif test "$with_kerberos" != no; then
- echo "error: must be yes or no: --with-kerberos=$with_kerberos"
- exit 1
- fi
-
- # Check for PAM.
- AC_ARG_WITH(pam,
-[ --with-pam Include support for PAM (Pluggable Authentication
- Modules) if possible (this is the default.)
- --without-pam Do not compile in support for PAM.],
- [with_pam="$withval"; with_pam_req="$withval"],[with_pam=no])
-#### Leave PAM off by default for now, since it's buggy on Solaris
-#### (and probably Linux, but it's so hard to tell...)
-
- HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
-
- if test "$with_pam" = yes; then
- AC_CACHE_CHECK([for PAM], ac_cv_pam,
- [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
- [ac_cv_pam=yes],
- [ac_cv_pam=no])])
- if test "$ac_cv_pam" = yes ; then
- have_pam=yes
- AC_DEFINE(HAVE_PAM)
- PASSWD_LIBS="${PASSWD_LIBS} -lpam -ldl"
- fi
- elif test "$with_pam" != no; then
- echo "error: must be yes or no: --with-pam=$with_pam"
- exit 1
- fi
+if test -n "$with_fortune_req" ; then
+ ac_cv_fortune_program=""
+ case "$with_fortune_req" in
+ /*)
+
+ set dummy $with_fortune_req ; fortune_tmp=$2
+ AC_MSG_CHECKING([for $fortune_tmp])
+ if test -x "$fortune_tmp" ; then
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ with_fortune=""
+ fi
+ ;;
+ *)
+ set dummy $with_fortune_req ; fortune_tmp=$2
+ # don't cache
+ unset ac_cv_path_fortune_tmp
+ AC_PATH_PROG(fortune_tmp, $fortune_tmp, [])
+ if test -z "$fortune_tmp" ; then
+ with_fortune=""
+ fi
+ ;;
+ esac
+ ac_cv_fortune_program="$with_fortune"
- # Next, check for the nine billion variants of shadow passwords...
+elif test -n "$ac_cv_fortune_program"; then
+ AC_MSG_RESULT([checking for fortune... (cached) $ac_cv_fortune_program])
+fi
- pwent_cruft_done=no
- AC_ARG_WITH(shadow,
-[ --with-shadow Include support for shadow password authentication,
- if possible (this is the default, if no Kerberos or
- PAM.)
- --without-shadow Do not compile in support for shadow passwords.
-],
- [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
+unset ac_cv_path_fortune_tmp
+unset fortune_tmp
+
+if test -z "$ac_cv_fortune_program" ; then
- HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
+ # first look for fortune in /usr/games/ (and use absolute path)
+ AC_PATH_PROGS(fortune_tmp, fortune,, "/usr/games")
- if test "$with_shadow" = no; then
- pwent_cruft_done=yes
- elif test "$with_shadow" != yes; then
- echo "error: must be yes or no: --with-shadow=$with_shadow"
- exit 1
+ # if it's not there, look on $PATH (and don't use absolute path)
+ if test -z "$fortune_tmp" ; then
+ AC_CHECK_PROGS(fortune_tmp, fortune)
fi
-
- # Sun's "adjunct" passwords.
- #
- if test "$pwent_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
- pwent_cruft_done=yes
- AC_DEFINE(HAVE_ADJUNCT_PASSWD)
- fi
+ # if we didn't find anything, then just assume /usr/games/
+ if test -z "$fortune_tmp" ; then
+ fortune_tmp="/usr/games/fortune"
fi
- # DEC and SCO so-called "enhanced" security.
+ ac_cv_fortune_program="$fortune_tmp"
+
+ # now check to see whether "fortune zippy" works.
#
- if test "$pwent_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
- pwent_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
+ fortune_tmp="$fortune_tmp zippy"
+ AC_MSG_CHECKING([for zippy quotes])
+ if ( $fortune_tmp >/dev/null 2>&1 ); then
+ ac_cv_fortune_program="$fortune_tmp"
+ AC_MSG_RESULT($fortune_tmp)
+ else
+ AC_MSG_RESULT(no)
fi
- # HP's entry in the "Not Invented Here" Sweepstakes.
- #
- if test "$pwent_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
- pwent_cruft_done=yes
- AC_DEFINE(HAVE_HPUX_PASSWD)
+fi
- # on HPUX, bigcrypt is in -lsec
- AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
- fi
- fi
+unset ac_cv_path_fortune_tmp
+unset fortune_tmp
- # Traditional (ha!) shadow passwords.
- #
- if test "$pwent_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
- pwent_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
+AC_DEFINE_UNQUOTED(FORTUNE_PROGRAM, "$ac_cv_fortune_program")
- # 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 "$pwent_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
- pwent_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 "$have_crypt" = no ; then
- AC_CHECK_LIB(crypt, crypt,
- [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
- fi
+###############################################################################
+#
+# Check whether it's ok to install some hacks as setuid (e.g., "sonar")
+# This should be safe, but let's give people the option.
+#
+###############################################################################
+setuid_hacks_default=no
+setuid_hacks="$setuid_hacks_default"
+AC_ARG_WITH(setuid-hacks,
+[ --with-setuid-hacks Allow some demos to be installed `setuid root'
+ (which is needed in order to ping other hosts.)
+],
+ [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
- # 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
+HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks)
+if test "$setuid_hacks" = yes; then
+ true
+elif test "$setuid_hacks" != no; then
+ echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks"
+ exit 1
fi
+###############################################################################
+#
+# Done testing. Now, set up the various -I and -L variables,
+# and decide which GUI program to build by default.
+#
+###############################################################################
+
+DEPEND=makedepend
+DEPEND_FLAGS=
+DEPEND_DEFINES=
+
+
if test \! -z "$includedir" ; then
- INCLUDES="-I$includedir"
+ INCLUDES="$INCLUDES -I$includedir"
fi
if test \! -z "$libdir" ; then
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.
-#
+PREFERRED_DEMO_PROGRAM=''
+ALL_DEMO_PROGRAMS=
if test "$have_motif" = yes; then
- AC_DEFINE(HAVE_MOTIF)
- TOOLKIT_SRCS='$(MOTIF_SRCS)'
- TOOLKIT_OBJS='$(MOTIF_OBJS)'
-elif test "$have_athena" = yes; then
- AC_DEFINE(HAVE_ATHENA)
- TOOLKIT_SRCS='$(ATHENA_SRCS)'
- TOOLKIT_OBJS='$(ATHENA_OBJS)'
-else
- TOOLKIT_SRCS=''
- TOOLKIT_OBJS=''
+ PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
+ ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
+fi
+if test "$have_gtk" = yes; then
+ PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
+ ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
fi
+
if test "$have_kerberos" = yes; then
PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
INSTALL_PAM="install-pam"
+fi
+if test "$have_passwd_helper" = yes; then
+ PASSWD_SRCS="$PASSWD_SRCS \$(PWHELPER_SRCS)"
+ PASSWD_OBJS="$PASSWD_OBJS \$(PWHELPER_OBJS)"
fi
PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
else
- LOCK_SRCS=''
- LOCK_OBJS=''
+ LOCK_SRCS='$(NOLOCK_SRCS_1)'
+ LOCK_OBJS='$(NOLOCK_OBJS_1)'
+fi
+
+if test "$ac_macosx" = yes; then
+ EXES_OSX='$(EXES_OSX)'
+ SCRIPTS_OSX='$(SCRIPTS_OSX)'
+ MEN_OSX='$(MEN_OSX)'
+else
+ EXES_OSX=
+ SCRIPTS_OSX=
+ MEN_OSX=
fi
+
+INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)'
+
if test "$need_setuid" = yes; then
NEED_SETUID=yes
- INSTALL_SETUID='$(INSTALL) $(SUID_FLAGS)'
else
NEED_SETUID=no
- INSTALL_SETUID='$(INSTALL_PROGRAM)'
+fi
+
+if test "$setuid_hacks" = yes; then
+ SETUID_HACKS=yes
+else
+ SETUID_HACKS=no
fi
tab=' '
if test "$have_gl" = yes; then
GL_EXES='$(GL_EXES)'
- GL_KLUDGE=${tab}
+ GL_UTIL_EXES='$(GL_UTIL_EXES)'
+ GL_MEN='$(GL_MEN)'
+ GL_KLUDGE="${tab} "
+else
+ GL_KLUDGE="-${tab} "
+fi
+
+if test "$have_gle" = yes; then
+ GLE_EXES='$(GLE_EXES)'
+ GLE_KLUDGE="${tab} "
+else
+ GLE_KLUDGE="-${tab} "
+fi
+
+if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then
+ JPEG_EXES='$(JPEG_EXES)'
+fi
+
+
+# Another substitution in the XScreenSaver.ad.in file:
+#
+if test "$have_gnome_help" = yes; then
+ GNOMEHELP_Y=''
+ GNOMEHELP_N='! '
+else
+ GNOMEHELP_Y='! '
+ GNOMEHELP_N=''
+fi
+
+
+# Now that we know whether we have Gnome, we can decide where the XML
+# config files get installed.
+#
+if test -z "$HACK_CONF_DIR" ; then
+ if test -n "$GNOME_DATADIR" ; then
+ HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers'
+ else
+ HACK_CONF_DIR='${prefix}/lib/xscreensaver/config'
+ fi
+fi
+
+
+
+# After computing $HACK_CONF_DIR, make sure $GLADE_DATADIR has a value
+# so that we know where to install the Gtk pixmaps.
+#
+# It should usually be "/usr/share/pixmaps/", but we can't just use
+# "$(prefix)/share/pixmaps" because that would usually result in
+# "/usr/X11R6/share/pixmaps/", which is wrong. It needs to be the
+# Gnome/Gtk prefix, not the overall prefix.
+#
+if test -n "$GNOME_DATADIR" ; then
+ GLADE_DATADIR='$(GNOME_DATADIR)/xscreensaver'
+elif test "$have_gtk" = yes; then
+ if test -n "$pkg_config"; then
+ if test "$have_gtk2" = yes; then
+ GLADE_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
+ else
+ GLADE_DATADIR=`$pkg_config --variable=prefix gtk+`
+ fi
+ else
+ GLADE_DATADIR=`$gtk_config --prefix`
+ fi
+ GLADE_DATADIR="$GLADE_DATADIR/share/xscreensaver"
else
- GL_KLUDGE=' -'${tab}
+ GLADE_DATADIR=''
+fi
+
+
+# Set PO_DATADIR to something sensible.
+#
+AC_MSG_CHECKING([for locale directory])
+if test -n "$GNOME_DATADIR" ; then
+ PO_DATADIR="$GNOME_DATADIR"
+elif test "$have_gtk" = yes; then
+ if test -n "$pkg_config"; then
+ if test "$have_gtk2" = yes; then
+ PO_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
+ else
+ PO_DATADIR=`$pkg_config --variable=prefix gtk+`
+ fi
+ else
+ PO_DATADIR=`$gtk_config --prefix`
+ fi
+ PO_DATADIR="$PO_DATADIR/share"
+fi
+
+if test -z "$PO_DATADIR" ; then
+ #
+ # #### Total fucking kludge --
+ # Map /build/prefix/usr/X11R6/share/ to /build/prefix/usr/share/
+ # but of course we need to expand all the nested variables to do that...
+ #
+ dd=$datadir
+ eval dd=${dd}
+ eval dd=${dd}
+ eval dd=${dd}
+ eval dd=${dd}
+ eval dd=${dd}
+ PO_DATADIR=`echo $dd | sed 's@/X11R6/@/@'`
fi
+AC_MSG_RESULT($PO_DATADIR/locale)
+
+
+# canonicalize slashes.
+HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
+
+# gcc 3.0 likes to issue this warning for every file:
+#
+# cc1: warning: changing search order for system directory "/usr/local/include"
+# cc1: warning: as it has already been specified as a non-system directory
+#
+# Yay. We can only avoid that by deleting "-I${prefix}/include" from the list.
+# Which *should* be totally redundant, and thus an ok thing to delete?
+#
+INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'`
+
+
+###############################################################################
+#
+# Perform substitutions and write Makefiles.
+#
+###############################################################################
+
AC_SUBST(INCLUDES)
+AC_SUBST(PREFERRED_DEMO_PROGRAM)
+AC_SUBST(ALL_DEMO_PROGRAMS)
AC_SUBST(SAVER_LIBS)
-AC_SUBST(TOOLKIT_LIBS)
+AC_SUBST(MOTIF_LIBS)
+AC_SUBST(GTK_LIBS)
+AC_SUBST(XML_LIBS)
+AC_SUBST(JPEG_LIBS)
AC_SUBST(HACK_LIBS)
AC_SUBST(XPM_LIBS)
+AC_SUBST(PTY_LIBS)
AC_SUBST(GL_LIBS)
+AC_SUBST(GLE_LIBS)
+AC_SUBST(XDPMS_LIBS)
AC_SUBST(PASSWD_LIBS)
AC_SUBST(INSTALL_SETUID)
+AC_SUBST(SETUID_HACKS)
AC_SUBST(INSTALL_DIRS)
AC_SUBST(NEED_SETUID)
AC_SUBST(INSTALL_PAM)
-AC_SUBST(SGI_VIDEO_OBJS)
-AC_SUBST(SGI_VIDEO_LIBS)
-AC_SUBST(TOOLKIT_SRCS)
-AC_SUBST(TOOLKIT_OBJS)
+AC_SUBST(OBJCC)
+AC_SUBST(EXES_OSX)
+AC_SUBST(SCRIPTS_OSX)
+AC_SUBST(MEN_OSX)
+
AC_SUBST(PASSWD_SRCS)
AC_SUBST(PASSWD_OBJS)
AC_SUBST(XMU_SRCS)
AC_SUBST(XMU_OBJS)
+AC_SUBST(XMU_LIBS)
+AC_SUBST(SAVER_GL_SRCS)
+AC_SUBST(SAVER_GL_OBJS)
+AC_SUBST(SAVER_GL_LIBS)
AC_SUBST(LOCK_SRCS)
AC_SUBST(LOCK_OBJS)
+AC_SUBST(JPEG_EXES)
AC_SUBST(GL_EXES)
+AC_SUBST(GL_UTIL_EXES)
+AC_SUBST(GL_MEN)
AC_SUBST(GL_KLUDGE)
+AC_SUBST(GLE_EXES)
+AC_SUBST(GLE_KLUDGE)
+AC_SUBST(GNOMEHELP_Y)
+AC_SUBST(GNOMEHELP_N)
AC_SUBST(HACKDIR)
+AC_SUBST(GNOME_DATADIR)
+AC_SUBST(GLADE_DATADIR)
+AC_SUBST(PO_DATADIR)
+AC_SUBST(GNOME_PANELDIR)
+AC_SUBST(HACK_CONF_DIR)
+AC_SUBST(GTK_EXTRA_OBJS)
+
+APPDEFAULTS=$ac_x_app_defaults
AC_SUBST(APPDEFAULTS)
AC_SUBST(DEPEND)
AC_SUBST(DEPEND_FLAGS)
AC_SUBST(DEPEND_DEFINES)
+AC_SUBST(PERL)
-# Print some warnings before emitting the Makefiles.
+AC_OUTPUT(Makefile
+ utils/Makefile
+ driver/Makefile
+ hacks/Makefile
+ hacks/glx/Makefile
+ po/Makefile.in
+ driver/XScreenSaver.ad
+ driver/xscreensaver.kss)
+
+###############################################################################
+#
+# Print some warnings at the end.
#
+###############################################################################
+
warn_prefix_1=" Warning:"
warn_prefix_2=" Note:"
warn_prefix="$warn_prefix_1"
warnpre
if test "$warning" = long ; then echo '' ; fi
warning=yes
- echo "$warn_prefix $@"
+ rest="$@"
+ echo "$warn_prefix $rest"
}
warnL() {
warnpre
warning=yes
if test "$was" != no ; then echo '' ; fi
- echo "$warn_prefix $@"
+ rest="$@"
+ echo "$warn_prefix $rest"
}
warn2() {
- echo " $@"
+ rest="$@"
+ echo " $rest"
warning=long
}
warn 'The XSHM extension was requested, but was not found.'
fi
+if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
+ warn 'The DOUBLE-BUFFER 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
warn 'The DPMS 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 "the \`xscreensaver-demo' program requires one or the"
- warn2 "other."
- proselytize_motif=no
+if test "$with_xinerama_req" = yes -a "$have_xinerama" = no ; then
+ warn 'The Xinerama extension was requested, but was not found.'
+fi
+
+if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
+ warn 'The XF86VMODE extension was requested, but was not found.'
+fi
+
+if test "$with_randr_req" = yes -a "$have_randr" = no ; then
+ warn 'The RANDR extension was requested, but was not found.'
+fi
+
+if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
+ warn "Checking of /proc/interrupts was requested, but it's bogus."
+fi
+
+motif_warn2() {
+ warn2 'Though the Motif front-end to xscreensaver is still'
+ warn2 'maintained, it is no longer being updated with new'
+ warn2 'features: all new development on the xscreensaver-demo'
+ warn2 'program is happening in the GTK version, and not in the'
+ warn2 'Motif version. It is recommended that you build against'
+ warn2 'GTK instead of Motif. See <http://www.gtk.org/>.'
+}
+
+if test "$have_motif" = no -a "$have_gtk" = no; then
+
+ if test "$with_motif" = yes; then
+ warnL "Neither the GTK nor Motif libraries were found; the"
+ warn2 "\`xscreensaver-demo' program requires one of these."
+ echo ''
+ motif_warn2
+ else
+ warnL "The GTK libraries do not seem to be available; the"
+ warn2 "\`xscreensaver-demo' program requires them."
+ echo ''
+ warn2 'You can use Motif or Lesstif instead of GTK (use the'
+ warn2 "\`--with-motif' option) but that is NOT recommended."
+ motif_warn2
+ fi
elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
warnL "Use of Motif was requested, but it wasn't found;"
- warn2 "Athena will be used instead."
+ warn2 "Gtk will be used instead."
+
+elif test "$jurassic_gtk" = yes ; then
+
+ pref_gtk=1.2
+
+ v="$ac_gtk_version_string"
+ if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
+ warnL "Use of Gtk was requested, but its version number is unknown;"
+ elif test "$with_gtk_req" = yes ; then
+ warnL "Use of Gtk was requested, but it is version $v;"
+ else
+ warnL "Gtk was found on this system, but it is version $v;"
+ fi
+
+ warn2 "Gtk $pref_gtk or newer is required."
+
+elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
+ warnL "Use of Gtk was requested, but it wasn't found."
+fi
+
+if test "$gtk2_halfassed" != no ; then
+ warnL "GTK version $gtk2_halfassed was found, but at least one supporting"
+ warn2 "library ($gtk2_halfassed_lib) was not, so GTK 2.x can't be used."
+ if test "$have_gtk" = yes ; then
+ v="$ac_gtk_version_string"
+ warn2 "GTK $v is also installed, so it will be used instead."
+ warn2 "Please read the above output and the \`config.log' file"
+ warn2 "for more details."
+ fi
+fi
+
+
+if test "$with_gnome_req" = yes -a "$have_gnome" = no \
+ -a "$have_gtk2" = no; then
+ # don't issue this warning if we have GTK2 -- in that case, the
+ # Gnome-specific code isn't needed.
+ warn 'Use of the Gnome Control Panel was requested, but the necessary'
+ warn2 'headers and/or libraries were not found.'
+fi
+
+if test "$have_gtk" = yes ; then
+ if test "$have_xml" = no ; then
+ if test "$with_xml_req" = yes ; then
+ warn 'Use of the XML library was requested, but the necessary'
+ warn2 'headers and/or libraries were not found.'
+ else
+ warn 'GTK is being used, but the XML library was not found.'
+ fi
+
+ if test "$xml_halfassed" = yes ; then
+
+ if test "$have_zlib" = yes ; then
+ which="XML libraries"
+ else
+ which="\`zlib' library"
+ fi
+
+ echo ''
+ warn2 'More specifically, we found the headers, but not the'
+ warn2 "$which; so either XML is half-installed on this"
+ warn2 "system, or something else went wrong. The \`config.log'"
+ warn2 'file might contain some clues.'
+ fi
+
+ echo ''
+ warn2 "Without XML, the per-display-mode \`Settings' dialogs"
+ warn2 'will not be available. Specify the location of the XML'
+ warn2 'library through the --with-xml option to configure.'
+ fi
+fi
-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."
+if test "$have_gtk" = yes -a "$have_gdk_pixbuf" = no ; then
+ warn "GTK is being used, but the GDK-Pixbuf library and/or"
+ warn2 "headers were not found. That can't be good. Please"
+ warn2 "install the GDK-Pixbuf development kit and re-configure."
fi
if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
- preferred_lesstif=0.86
+ preferred_lesstif=0.92
if test "$lesstif_version" = unknown; then
warnL "Unable to determine the LessTif version number!"
fi
fi
-if test "$proselytize_motif" = yes ; then
- warnL "Athena widgets are being used instead of Motif."
- warn2 "The \`xscreensaver-demo' program looks much better"
- warn2 "with Motif. Wouldn't you rather be using Motif?"
- warn2 "It is shipped by every commercial Unix vendor;"
- warn2 "and there is a free implementation available as"
- warn2 "well: see <http://www.lesstif.org/>."
-fi
+if test "$have_motif" = yes -a "$have_gtk" = no ; then
+ warn 'Motif is being used, and GTK is not.'
+ echo ''
+ motif_warn2
+fi
-if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
- preferred_mesagl=2.7
- if test "$ac_mesagl_version" = unknown; then
- warnL "Unable to determine the MesaGL version number!"
- warn2 "Make sure you are using version $preferred_mesagl or newer."
+if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
+ warnL 'Use of XPM was requested, but it was not found.'
+fi
- elif test \! "$ac_mesagl_version" -gt 2006; then
- warnL "MesaGL version $ac_mesagl_version_string is being used."
- warn2 "MesaGL versions 2.6 and earlier have a security bug."
- warn2 "It is strongly recommended that you upgrade to at"
- warn2 "least version $preferred_mesagl."
- fi
+if test "$with_gdk_pixbuf_req" = yes -a "$have_gdk_pixbuf" = no; then
+ warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
fi
+if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no || \
+ test "$gdk_pixbuf_halfassed" = yes; then
-if test "$have_xpm" = no ; then
- if test "$with_xpm_req" = yes ; then
- warnL 'Use of XPM was requested, but it was not found.'
+ if test "$with_xpm_req" = yes -o "$have_xpm" = yes ; then
+ true
elif test "$with_xpm_req" = no ; then
- noteL 'The XPM library is not being used.'
+ warnL 'The XPM library is not being used.'
+ else
+ warnL 'The XPM library was not found.'
+ fi
+
+ if test "$with_gdk_pixbuf_req" = yes ; then
+ true
+ elif test "$with_gdk_pixbuf_req" = no ; then
+ warnL 'The GDK-Pixbuf library is not being used.'
else
- noteL 'The XPM library was not found.'
+ warnL 'The GDK-Pixbuf library was not found.'
+ fi
+
+ if test "$gdk_pixbuf_halfassed" = yes ; then
+ echo ''
+ warn2 'More specifically, we found the headers, but not the'
+ warn2 'libraries; so either GDK-Pixbuf is half-installed on this'
+ warn2 "system, or something else went wrong. The \`config.log'"
+ warn2 'file might contain some clues.'
fi
echo ''
warn2 'Some of the demos will not be as colorful as they'
- warn2 'could be. You might want to consider installing XPM'
- warn2 'and re-running configure. (Remember to delete the'
- warn2 'config.cache file first.) You can find XPM at most'
- warn2 'X11 archive sites, such as <http://sunsite.unc.edu/>.'
+ warn2 'could be. You should consider installing Pixbuf or'
+ warn2 'XPM and re-running configure. The Pixbuf library is'
+ warn2 'a part of GNOME. The XPM library comes with most'
+ warn2 'X11 installations; you can also find it at the X11'
+ warn2 'archive sites, such as <http://sunsite.unc.edu/>.'
+ echo ''
+ warn2 'GDK-Pixbuf is recommended over XPM, as it provides'
+ warn2 'support for more image formats.'
+fi
+
+
+if test "$have_jpeg" = no ; then
+ if test "$with_jpeg_req" = yes ; then
+ warnL 'Use of libjpeg was requested, but it was not found.'
+ elif test "$with_jpeg_req" = no ; then
+ noteL 'The JPEG library is not being used.'
+ else
+ noteL 'The JPEG library was not found.'
+ fi
+
+ if test "$jpeg_halfassed" = yes ; then
+ echo ''
+ warn2 'More specifically, we found the headers, but not the'
+ warn2 'library; so either JPEG is half-installed on this'
+ warn2 "system, or something else went wrong. The \`config.log'"
+ warn2 'file might contain some clues.'
+ echo ''
+ fi
+
+ if test "$have_gdk_pixbuf" = no ; then
+ warn2 "This means that it won't be possible for the image-manipulating"
+ warn2 "display modes to load files from disk; and it also means that"
+ warn2 "the \`webcollage' program will be much slower."
+ else
+ warn2 "This means the \`webcollage' program will be much slower."
+ fi
+fi
+
+
+if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
+ preferred_mesagl=3.4
+ mgv="$ac_mesagl_version_string"
+ pgl="$preferred_mesagl"
+
+ if test "$ac_mesagl_version" = unknown; then
+ warnL "Unable to determine the MesaGL version number!"
+ warn2 "Make sure you are using version $preferred_mesagl or newer."
+
+ elif test \! "$ac_mesagl_version" -gt 2006; then
+ warnL "MesaGL version number is $mgv --"
+ warn2 "MesaGL 2.6 and earlier have a security bug. It is strongly"
+ warn2 "recommended that you upgrade to at least version $preferred_mesagl."
+
+ elif test \! "$ac_mesagl_version" -gt 3003; then
+ warnL "MesaGL version number is $mgv --"
+ warn2 "MesaGL 3.3 and earlier have some bugs; it is recommended"
+ warn2 "that you upgrade to $pgl or newer."
+ fi
fi
if test "$have_gl" = no ; then
noteL 'The OpenGL 3D library was not found.'
fi
+ if test "$gl_halfassed" = yes ; then
+ echo ''
+ warn2 'More specifically, we found the headers, but not the'
+ warn2 'libraries; so either GL is half-installed on this'
+ warn2 "system, or something else went wrong. The \`config.log'"
+ warn2 'file might contain some clues.'
+ fi
+
echo ''
warn2 'Those demos which use 3D will not be built or installed.'
warn2 'You might want to consider installing OpenGL and'
- warn2 're-running configure. (Remember to delete the'
- warn2 "config.cache file first.) If your vendor doesn't ship"
+ warn2 "re-running configure. If your vendor doesn't ship"
warn2 'their own implementation of OpenGL, you can get a free'
- warn2 'version at <http://www.ssec.wisc.edu/~brianp/Mesa.html>.'
- warn2 'For general OpenGL info, see <http://www.opengl.org/>.'
+ warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
+ warn2 'info, see <http://www.opengl.org/>.'
+
+fi
+
+
+if test "$have_gl" = yes -a "$have_gle" = no ; then
+
+ # nobody cares about this; don't print the warning unless it was
+ # requested and not found, or halfway-found.
+ if test "$with_gle_req" = yes -o "$gle_halfassed" = yes ; then
+
+ if test "$with_gle_req" = yes ; then
+ noteL 'Use of the GLE (GL Extrusion) library was requested, but'
+ warn2 'it was not found (though the OpenGL library was found, and'
+ warn2 'is being used.)'
+ elif test "$with_gle_req" = no ; then
+ noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
+ warn2 'library is not.'
+ else
+ noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
+ warn2 'was not.'
+ fi
+
+ if test "$gle_halfassed" = yes ; then
+ echo ''
+ warn2 'More specifically, we found the headers, but not the'
+ warn2 'libraries; so either GLE is half-installed on this'
+ warn2 "system, or something else went wrong. The \`config.log'"
+ warn2 'file might contain some clues.'
+ fi
+
+ echo ''
+ warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
+ warn2 'will not be built or installed. You might want to consider'
+ warn2 'installing GLE and re-running configure. You can find the'
+ warn2 'GLE library at <http://www.linas.org/gle/>. For general'
+ warn2 'OpenGL info, see <http://www.opengl.org/>.'
+ fi
fi
+
if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
warn 'Use of XReadDisplay was requested, but it was not found.'
fi
-if test "$with_sgivideo_req" = yes -a "$have_sgivideo" = no ; then
- warn 'Use of the Iris Video Library was requested, but it was not found.'
+if test -n "$with_fortune_req"; then
+ if test "$with_fortune_req" != "$ac_cv_fortune_program" ; then
+ warnL "$with_fortune_req was requested as the Fortune program,"
+ warn2 "but was not found. The default will be used instead."
+ fi
fi
if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
warn 'Use of shadow passwords was requested, but they were not found.'
fi
-if test -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
- 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 HACKDIR=${HACKDIR}
eval HACKDIR=${HACKDIR}
eval HACKDIR=${HACKDIR}
+eval HACK_CONF_DIR=${HACK_CONF_DIR}
+eval HACK_CONF_DIR=${HACK_CONF_DIR}
+eval HACK_CONF_DIR=${HACK_CONF_DIR}
+eval HACK_CONF_DIR=${HACK_CONF_DIR}
+eval HACK_CONF_DIR=${HACK_CONF_DIR}
+eval HACK_CONF_DIR=${HACK_CONF_DIR}
# canonicalize slashes.
-bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
-HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
+bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
+HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
+HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
+
+
+# Sanity check the hackdir
+for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
+ if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
+ echo ""
+ AC_MSG_ERROR([\"--with-hackdir=${bindir}/${bad_choice}\" won't work.
+ There will be an executable installed with that name, so
+ that can't be the name of a directory as well. Please
+ re-configure with a different directory name.])
+ fi
+done
+
+
+do_dir_warning=no
+
+# Now let's see if there's a previous RPM version already installed. Blargh!
+
+# M4 sucks!!
+changequote(X,Y)
+rpmv=`(rpm -qv xscreensaver) 2>/dev/null | \
+ sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'`
+changequote([,])
+
+if test \! -z "$rpmv" ; then
+ rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
+ rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
+
+ warning=no
+ warnL "There is already an installed RPM of xscreensaver $rpmv"
+ warn2 "on this system. You might want to remove it (with"
+ warn2 '"rpm -ve xscreensaver") before running "make install"'
+ warn2 "from this directory."
+ echo ""
+ warn2 "Alternately, you could build this version of xscreensaver"
+ warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
+ warn2 "file is included. See the RPM documentation for more info."
+ echo ""
+
+ if test "$rpmbdir" = "$rpmhdir" ; then
+ warn2 "The RPM version was installed in $rpmbdir/."
+ else
+ warn2 "The RPM version was installed in $rpmbdir/,"
+ warn2 "with demos in $rpmhdir/."
+ fi
+
+ do_dir_warning=yes
+fi
+
if test "${bindir}" = "${HACKDIR}" ; then
+ do_dir_warning=yes
+fi
+
+if test "$do_dir_warning" = yes; then
echo ""
echo "$warnsep"
echo ""
echo ' When you run "make install", the "xscreensaver",'
echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
- echo " will be installed in ${bindir}."
+ echo " will be installed in ${bindir}/."
echo ""
- echo " The various graphics demos (80+ different executables) will"
- echo " also 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 " The various graphics demos (180+ different executables) will"
+ echo " be installed in ${HACKDIR}/."
echo ""
+ echo " If you would prefer the demos to be installed elsewhere,"
+ echo " you should re-run configure with the --with-hackdir=DIR"
+ echo " option. For more information, run \`./configure --help'."
+ warning=yes
+fi
+
+if test "$warning" != no; then
+ echo '' ; echo "$warnsep" ; echo ''
+fi
+
+if test "$do_dir_warning" = no; then
+ if test "$warning" = no; then
+ echo ''
+ fi
+ echo "User programs will be installed in ${bindir}/"
+ echo "Screen savers will be installed in ${HACKDIR}/"
+ echo "Configuration will be installed in ${HACK_CONF_DIR}/"
+ echo ''
fi