1 # configure.in --- xscreensaver, Copyright (c) 1997 Jamie Zawinski.
4 AC_INIT(driver/subprocs.c)
6 echo "current directory: `pwd`"
7 echo "command line was: $0 $@"
9 AC_CONFIG_HEADER(config.h)
14 if test -z "$GCC"; then
15 AC_MSG_CHECKING(how to request ANSI compilation)
18 AC_MSG_RESULT(HPUX: adding -Ae)
22 AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e)
23 CC="$CC -qlanglvl=ansi -qhalt=e"
27 AC_MSG_RESULT(DEC: adding -std1)
32 AC_MSG_RESULT(no idea)
38 AC_MSG_CHECKING([whether the compiler works on ANSI C])
39 AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
42 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
43 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
46 *-irix5* |*-irix6.[0-3]* )
47 if test -n "$GCC"; then
48 AC_MSG_RESULT(Turning on gcc compiler warnings.)
49 CC="$CC -Wall -Wstrict-prototypes -Wnested-externs -Wno-format"
52 AC_MSG_RESULT(Turning on SGI compiler warnings.)
53 CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
58 AC_MSG_RESULT(Turning on gcc compiler warnings.)
59 CC="$CC -Wall -Wstrict-prototypes -Wnested-externs -Wno-format"
63 # if test -z "$GCC"; then
64 # AC_MSG_RESULT(Turning on DEC C compiler warnings.)
65 # CC="$CC -migrate -w0 -verbose -warnprotos"
72 # Try and determine whether ${INSTALL} can create intermediate directories,
73 # and if not, whether "mkdir -p" works instead. This sets ${INSTALL_DIRS}.
74 # (But autoconf should earn its keep and do this for us!)
76 AC_DEFUN(AC_PROG_INSTALL_DIRS,
77 [INSTALL_DIRS='${INSTALL} -d'
78 AC_MSG_CHECKING(whether \"\${INSTALL} -d\" creates intermediate directories)
80 if mkdir conftestdir; then
83 ${INSTALL} -d `pwd`/dir1/dir2 >&- 2>&-
84 if test -d dir1/dir2 ; then
88 AC_MSG_CHECKING(whether \"mkdir -p\" creates intermediate directories)
90 mkdir -p dir1/dir2 >&- 2>&-
91 if test -d dir1/dir2/. ; then
93 INSTALL_DIRS='mkdir -p'
122 AC_MSG_CHECKING(how to call gettimeofday)
123 AC_CACHE_VAL(ac_cv_gettimeofday_args,
124 [AC_TRY_COMPILE([#include <stdlib.h>
125 #include <sys/time.h>],
126 [struct timeval tv; struct timezone tzp;
127 gettimeofday(&tv, &tzp);],
128 [ac_gettimeofday_args=2],
129 [AC_TRY_COMPILE([#include <stdlib.h>
130 #include <sys/time.h>],
131 [struct timeval tv; gettimeofday(&tv);],
132 [ac_gettimeofday_args=1],
133 [ac_gettimeofday_args=0])])
134 ac_cv_gettimeofday_args=$ac_gettimeofday_args])
135 ac_gettimeofday_args=$ac_cv_gettimeofday_args
136 if test "$ac_gettimeofday_args" = 1 ; then
137 AC_DEFINE(HAVE_GETTIMEOFDAY)
138 AC_MSG_RESULT(one argument)
139 elif test "$ac_gettimeofday_args" = 2 ; then
140 AC_DEFINE(HAVE_GETTIMEOFDAY)
141 AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
142 AC_MSG_RESULT(two arguments)
144 AC_MSG_RESULT(unknown)
148 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv)
149 AC_CHECK_FUNCS(sigaction syslog)
151 AC_CHECK_HEADERS(unistd.h crypt.h sys/select.h)
153 dnl /usr/local/src/ssh-1.2.17/putenv.c -- AC_REPLACE_FUNCS(putenv)
156 AC_ARG_ENABLE(subdir,[
157 Installation options:
159 --enable-subdir=DIR Put the demo programs in a subdirectory of \`bindir',
160 instead of putting them in bindir itself. You can
161 specify the name of the subdirectory. For example,
162 --exec-prefix=/usr/local/bin --enable-subdir=demos
163 would put xscreensaver in /usr/local/bin/, and would
164 put the demos in /usr/local/bin/demos/. (If DIR
165 begins with /, then bindir will not be prepended.)
167 --disable-subdir Just put the demos in \`bindir' (this is the default.)
169 [enable_subdir="$enableval"],[enable_subdir=no])
170 if test x"$enable_subdir" = xno; then
172 elif test x"$enable_subdir" = xyes -o x"$enable_subdir" = x ; then
173 echo "error: must be a subdirectory name: --enable-subdir=$enable_subdir"
176 # there must be a better way than this...
177 if test -z "`echo $enable_subdir | sed 's@^/.*@@'`" ; then
179 HACKDIR=$enable_subdir
182 HACKDIR='${bindir}/'$enable_subdir
186 # canonicalize slashes.
187 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
192 # Try and find the app-defaults directory.
193 # It sucks that autoconf doesn't do this already...
195 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
197 if mkdir conftestdir; then
199 # Make sure to not put "make" in the Imakefile rules, since we grep it out.
200 cat > Imakefile <<'EOF'
202 @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
204 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
205 # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
206 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
212 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
213 # Look for the directory under a standard set of common directories.
214 # Check X11 before X11Rn because it's often a symlink to the current release.
216 /usr/X11/lib/app-defaults \
217 /usr/X11R6/lib/app-defaults \
218 /usr/X11R6/lib/X11/app-defaults \
219 /usr/X11R5/lib/app-defaults \
220 /usr/X11R5/lib/X11/app-defaults \
221 /usr/X11R4/lib/app-defaults \
222 /usr/X11R4/lib/X11/app-defaults \
224 /usr/lib/X11/app-defaults \
225 /usr/lib/X11R6/app-defaults \
226 /usr/lib/X11R5/app-defaults \
227 /usr/lib/X11R4/app-defaults \
229 /usr/local/X11/lib/app-defaults \
230 /usr/local/X11R6/lib/app-defaults \
231 /usr/local/X11R5/lib/app-defaults \
232 /usr/local/X11R4/lib/app-defaults \
234 /usr/local/lib/X11/app-defaults \
235 /usr/local/lib/X11R6/app-defaults \
236 /usr/local/lib/X11R6/X11/app-defaults \
237 /usr/local/lib/X11R5/app-defaults \
238 /usr/local/lib/X11R5/X11/app-defaults \
239 /usr/local/lib/X11R4/app-defaults \
240 /usr/local/lib/X11R4/X11/app-defaults \
242 /usr/X386/lib/X11/app-defaults \
243 /usr/x386/lib/X11/app-defaults \
244 /usr/XFree86/lib/X11/app-defaults \
246 /usr/lib/X11/app-defaults \
247 /usr/local/lib/X11/app-defaults \
248 /usr/unsupported/lib/X11/app-defaults \
249 /usr/athena/lib/X11/app-defaults \
250 /usr/local/x11r5/lib/X11/app-defaults \
251 /usr/lpp/Xamples/lib/X11/app-defaults \
252 /lib/usr/lib/X11/app-defaults \
254 /usr/openwin/lib/app-defaults \
255 /usr/openwin/lib/X11/app-defaults \
256 /usr/openwin/share/lib/app-defaults \
257 /usr/openwin/share/lib/X11/app-defaults \
259 /X11R6/lib/app-defaults \
260 /X11R5/lib/app-defaults \
261 /X11R4/lib/app-defaults \
264 if test -d "$ac_dir"; then
265 ac_x_app_defaults=$ac_dir
272 AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
274 AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
275 [AC_PATH_X_APP_DEFAULTS_XMKMF
276 if test x"$ac_x_app_defaults" = x; then
277 AC_PATH_X_APP_DEFAULTS_DIRECT
279 if test x"$ac_x_app_defaults" = x; then
280 ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
282 # Record where we found app-defaults for the cache.
283 ac_cv_x_app_defaults="$ac_x_app_defaults"
285 eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
287 AC_PATH_X_APP_DEFAULTS
289 APPDEFAULTS=$ac_x_app_defaults
292 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
294 AC_DEFUN(AC_CHECK_X_HEADER, [
295 ac_save_CPPFLAGS="$CPPFLAGS"
296 if test \! -z "$includedir" ; then
297 CPPFLAGS="$CPPFLAGS -I$includedir"
299 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
300 AC_CHECK_HEADER([$1], [$2])
301 CPPFLAGS="$ac_save_CPPFLAGS"])
303 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
305 AC_DEFUN(AC_EGREP_X_HEADER, [
306 ac_save_CPPFLAGS="$CPPFLAGS"
307 if test \! -z "$includedir" ; then
308 CPPFLAGS="$CPPFLAGS -I$includedir"
310 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
311 AC_EGREP_HEADER([$1], [$2], [$3], [$4])
312 CPPFLAGS="$ac_save_CPPFLAGS"])
314 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
316 AC_DEFUN(AC_TRY_X_COMPILE, [
317 ac_save_CPPFLAGS="$CPPFLAGS"
318 if test \! -z "$includedir" ; then
319 CPPFLAGS="$CPPFLAGS -I$includedir"
321 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
322 AC_TRY_COMPILE([$1], [$2], [$3], [$4])
323 CPPFLAGS="$ac_save_CPPFLAGS"])
326 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
327 # Use this sparingly; it probably doesn't work very well on X programs.
329 AC_DEFUN(AC_CHECK_X_LIB, [
330 ac_save_CPPFLAGS="$CPPFLAGS"
331 ac_save_LDFLAGS="$LDFLAGS"
333 if test \! -z "$includedir" ; then
334 CPPFLAGS="$CPPFLAGS -I$includedir"
336 # note: $X_CFLAGS includes $x_includes
337 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
339 if test \! -z "$libdir" ; then
340 LDFLAGS="$LDFLAGS -L$libdir"
342 # note: $X_LIBS includes $x_libraries
343 LDFLAGS="$LDFLAGS $X_LIBS"
345 AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
346 CPPFLAGS="$ac_save_CPPFLAGS"
347 LDFLAGS="$ac_save_LDFLAGS"])
349 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
350 # (But not the -L directories!)
352 AC_DEFUN(AC_TRY_X_RUN, [
353 ac_save_CPPFLAGS="$CPPFLAGS"
354 if test \! -z "$includedir" ; then
355 CPPFLAGS="$CPPFLAGS -I$includedir"
357 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
358 AC_TRY_RUN([$1], [$2], [$3], [$4])
359 CPPFLAGS="$ac_save_CPPFLAGS"])
363 # Usage: HANDLE_X_PATH_ARG([variable_name],
364 # [--command-line-option],
365 # [descriptive string])
367 # All of the --with options take three forms:
369 # --with-foo (or --with-foo=yes)
370 # --without-foo (or --with-foo=no)
373 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees
374 # a directory (string beginning with a slash) it checks to see whether
375 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
378 AC_DEFUN(HANDLE_X_PATH_ARG, [
384 AC_MSG_CHECKING([for [$3] headers])
387 X_CFLAGS="-I$d $X_CFLAGS"
390 AC_MSG_RESULT(not found ($d: no such directory))
393 AC_MSG_CHECKING([for [$3] libs])
396 X_LIBS="-L$d $X_LIBS"
399 AC_MSG_RESULT(not found ($d: no such directory))
402 # replace the directory string with "yes".
409 echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
410 echo " If it is a directory, then \`DIR/include' will be added to"
411 echo " the -I list, and \`DIR/lib' will be added to the -L list."
416 # why is this necessary?
417 # if we don't do this, then "./configure --with-motif=/usr/local/lesstif"
418 # behaves as if "--with-zippy=/usr/local/lesstif" was also present!
424 # check for the HP XHPDisableReset server extension headers.
426 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
427 [AC_DEFINE(HAVE_XHPDISABLERESET)
428 SAVER_LIBS="-lXhp11 $SAVER_LIBS"])
431 # Check for the availability of the XPointer typedef, and define it otherwise.
433 AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
434 [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
435 [XPointer foo = (XPointer) 0;],
436 [ac_cv_xpointer=yes],
437 [ac_cv_xpointer=no])])
438 if test "$ac_cv_xpointer" != yes; then
439 AC_DEFINE(XPointer,[char*])
443 # Random special-cases for certain pathological OSes. You know who you are.
448 # The following arcana was gleaned from conversations with
449 # Eric Schwartz <erics@col.hp.com>:
451 # On HPUX 10.x, the parts of X that HP considers "standard" live in
452 # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider
453 # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
454 # Also, there are symlinks from /usr/include/ and /usr/lib/ into
455 # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
456 # you don't need any -I or -L arguments.
458 # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
459 # are the same division as 10.x. However, there are no symlinks to
460 # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
461 # arguments are always necessary.
463 # However, X11R6 was available on HPUX 9.x as a patch: if that
464 # patch was installed, then all of X11R6 went in to
465 # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
467 # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
468 # whether R5 was available as a patch; R6 undoubtedly was not.)
470 # So. We try and use the highest numbered pair of
471 # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
472 # that are available. We do not mix and match different versions
475 # Questions I still don't know the answers to: (do you?)
477 # * Does HPUX 10.x come with /usr/contrib/X11R6/ standard?
478 # Or does that need to be installed separately?
480 # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
481 # /usr/contrib/X11R6/ could be installed as a patch, what was in
482 # that contrib directory? Did it contain so-called "standard"
483 # X11R6, or did it include Xaw and Xmu as well? If the former,
484 # where did one find Xaw and Xmu on 9.x R6 systems? Would this
485 # be a situation where one had to reach into the R5 headers and
486 # libs to find Xmu? That is, must both R6 and R5 directories
487 # be on the -I and -L lists in that case?
489 for version in X11R6 X11R5 X11R4 ; do
490 # if either pair of directories exists...
491 if test -d /usr/lib/$version || test -d /usr/contrib/$version/lib ; then
492 # if contrib exists, use it...
493 if test -d /usr/contrib/$version/lib ; then
494 X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
495 X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
497 # if the "standard" one exists, use it.
498 if test -d /usr/lib/$version ; then
499 X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
500 X_LIBS="$X_LIBS -L/usr/lib/$version"
502 # since at least one of the pair exists, go no farther.
507 # Now find Motif. Thanks for not making xmkmf find this by
508 # default, you losers.
510 if test -d /usr/lib/Motif1.2 ; then
511 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
512 X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
513 elif test -d /usr/lib/Motif1.1 ; then
514 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
515 X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
518 # Now let's check for the pseudo-standard locations for OpenGL and XPM.
520 if test -d /opt/Mesa/lib ; then
521 X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
522 X_LIBS="-L/opt/Mesa/lib $X_LIBS"
525 if test -d /opt/xpm/lib/X11 ; then
526 X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
527 X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
530 # On HPUX, default to installing in /opt/xscreensaver/ instead of
531 # in /usr/local/, unless there is already an xscreensaver in
532 # /usr/local/bin/. This can be overridden with the --prefix arg
533 # to configure. I'm not sure this is the right thing to do, but
534 # Richard Lloyd says so...
536 if test \! -x /usr/local/bin/xscreensaver ; then
537 ac_default_prefix=/opt/xscreensaver
543 # Thanks for not making xmkmf find this by default, pinheads.
544 # And thanks for moving things around again, too. Is this
545 # really the standard location now? What happened to the
546 # joke that this kind of thing went in /opt?
547 # cthomp says "answer: CDE (Common Disorganized Environment)"
549 if test -f /usr/dt/include/Xm/Xm.h ; then
550 X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
551 X_LIBS="$X_LIBS -L/usr/dt/lib -R:/usr/dt/lib"
553 # Some versions of Slowlaris Motif require -lgen. But not all. Why?
554 AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"])
561 # Check for Xmu (some fucked up vendors don't ship it...)
564 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes])
565 if test "$have_xmu" = no ; then
566 XMU_SRCS='$(UTILS_SRC)/xmu.c'
567 XMU_OBJS='$(UTILS_BIN)/xmu.o'
571 SAVER_LIBS="-lXmu $SAVER_LIBS"
572 HACK_LIBS="-lXmu $HACK_LIBS"
573 TOOLKIT_LIBS="-lXmu $TOOLKIT_LIBS"
578 # See comp.windows.x FAQ question 124 about _get_wmShellWidgetClass on 4.1.x.
579 # The right fix is to get OpenWindows 3.0 patches 100512-02 and 100573-03.
581 if test "$have_xmu" = yes ; then
584 AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
586 [ac_save_LDFLAGS="$LDFLAGS"
587 if test \! -z "$x_libraries" ; then
588 LDFLAGS="$LDFLAGS -L$x_libraries"
590 # Note: this trick never works! (Generally.)
591 # We're only getting away with using AC_TRY_LINK
592 # with X libraries because we know it's SunOS.
593 LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
595 [ac_cv_sunos_xmu_bug=no],
596 [ac_cv_sunos_xmu_bug=yes])
597 LDFLAGS="$ac_save_LDFLAGS"])
598 if test "$ac_cv_sunos_xmu_bug" = yes ; then
599 AC_CACHE_CHECK([whether the compiler understands -static],
601 [ac_save_LDFLAGS="$LDFLAGS"
602 LDFLAGS="$LDFLAGS -static"
603 AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
604 LDFLAGS="$ac_save_LDFLAGS"])
605 if test "$ac_cv_ld_static" = yes ; then
606 LDFLAGS="$LDFLAGS -static"
608 LDFLAGS="$LDFLAGS -Bstatic"
616 # Check for the SGI SCREEN_SAVER server extension header.
619 with_sgi_req=unspecified
621 [Except where noted, all of the --with options below can also take a
622 directory argument: for example, --with-motif=/opt/Motif. That would
623 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
624 to be added to the -L list, assuming those directories exist.
626 X Server Extension options:
628 --with-sgi-ext Include support for the SGI SCREEN_SAVER
629 server extension, if possible (this is the default).
630 --without-sgi-ext Do not compile in support for this extension.],
631 [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
633 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
635 if test "$with_sgi" = yes; then
636 AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
638 AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)])
640 elif test "$with_sgi" != no; then
641 echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
645 # Check for the MIT-SCREEN-SAVER server extension header,
646 # unless the SGI extension has already been found.
649 with_mit_req=unspecified
651 [ --with-mit-ext Include support for the MIT-SCREEN-SAVER
652 server extension, if possible (this is the default).
653 --without-mit-ext Do not compile in support for this extension.],
654 [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
656 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
658 if test "$have_sgi" != yes; then
659 if test "$with_mit" = yes; then
660 AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes])
662 # Now check to see if it's really in the library; XF86Free-3.3 ships
663 # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
665 if test "$have_mit" = yes; then
666 AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [], [have_mit=no], -lm)
668 if test "$have_mit" = no; then
669 # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead
670 # of in Xext. Thank you master, may I have another.
671 AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
672 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
673 [], -lX11 -lXext -lm)
676 if test "$have_mit" = no; then
677 # Double fuck! Looks like some versions of XFree86 (whichever version
678 # it is that comes with RedHat Linux 2.0 -- I can't find a version
679 # number) put this garbage in Xss instead of Xext. Thank you master,
680 # may I have another.
681 AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
682 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
683 [], -lX11 -lXext -lm)
686 if test "$have_mit" = yes; then
687 AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
692 elif test "$with_mit" != no; then
693 echo "error: must be yes or no: --with-mit-ext=$with_mit"
699 # Check for the XIDLE server extension header.
702 with_xidle_req=unspecified
703 AC_ARG_WITH(xidle-ext,
704 [ --with-xidle-ext Include support for the XIDLE server extension,
705 if possible (this is the default).
706 --without-xidle-ext Do not compile in support for this extension.],
707 [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
709 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
711 if test "$with_xidle" = yes; then
712 AC_CHECK_X_HEADER(X11/extensions/xidle.h,
714 AC_DEFINE(HAVE_XIDLE_EXTENSION)])
715 elif test "$with_xidle" != no; then
716 echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
721 # Check for the XSHM server extension header.
724 with_xshm_req=unspecified
725 AC_ARG_WITH(xshm-ext,
726 [ --with-xshm-ext Include support for the XSHM (Shared Memory) server
727 extension, if possible (this is the default).
728 --without-xshm-ext Do not compile in support for this extension.],
729 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
731 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
733 if test "$with_xshm" = yes; then
735 # first check for Xshm.h.
736 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes])
738 # if that succeeded, then check for sys/ipc.h.
739 if test "$have_xshm" = yes; then
741 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
744 # if that succeeded, then check for sys/shm.h.
745 if test "$have_xshm" = yes; then
747 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
750 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
751 # to exist, but the library code to not exist. And even better, the library
752 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
753 # lib doesn't exist, give up.
758 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
759 [have_xshm=yes; SAVER_LIBS="$SAVER_LIBS -lXextSam"],
760 [], -lX11 -lXext -lm)
764 # if that succeeded, then we've really got it.
765 if test "$have_xshm" = yes; then
766 AC_DEFINE(HAVE_XSHM_EXTENSION)
769 elif test "$with_xshm" != no; then
770 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
775 # Check for the SGI-VIDEO-CONTROL server extension header.
778 with_sgivc_req=unspecified
779 AC_ARG_WITH(sgivc-ext,
780 [ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL server
781 extension, if possible (this is the default).
782 --without-sgivc-ext Do not compile in support for this extension.],
783 [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
785 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
787 if test "$with_sgivc" = yes; then
789 # first check for XSGIvc.h
790 AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes])
792 # if that succeeded, then check for the -lXsgivc
793 if test "$have_sgivc" = yes; then
795 AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
796 [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [],
800 # if that succeeded, then we've really got it.
801 if test "$have_sgivc" = yes; then
802 AC_DEFINE(HAVE_SGI_VC_EXTENSION)
805 elif test "$with_sgivc" != no; then
806 echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
811 # Check for the DPMS server extension header.
814 with_dpms_req=unspecified
815 AC_ARG_WITH(dpms-ext,
816 [ --with-dpms-ext Include support for the DPMS server extension,
817 if possible (this is the default).
818 --without-dpms-ext Do not compile in support for this extension.],
819 [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
821 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
823 if test "$with_dpms" = yes; then
825 # first check for dpms.h
826 AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes])
828 # if that succeeded, then check for the -lXdpms
829 if test "$have_dpms" = yes; then
831 AC_CHECK_X_LIB(Xdpms, DPMSInfo,
832 [have_dpms=yes; SAVER_LIBS="$SAVER_LIBS -lXdpms"], [],
836 # if that succeeded, then we've really got it.
837 if test "$have_dpms" = yes; then
838 AC_DEFINE(HAVE_DPMS_EXTENSION)
841 elif test "$with_dpms" != no; then
842 echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
848 # Check for Motif and Athena --with and --without arguments.
853 with_motif_req=unspecified
854 with_athena_req=unspecified
857 X Client Toolkit options:
859 --with-motif Use the Motif toolkit for the user interface, if
860 possible (this is the default).
861 --without-motif Do not use Motif.],
862 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no])
864 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
867 [ --with-athena Use the Athena toolkit for the user interface, if
868 possible (this is the default if Motif isn't used.)
869 --without-athena Do not use Athena.],
870 [with_athena="$withval"; with_athena_req="$withval"],[with_athena=no])
872 HANDLE_X_PATH_ARG(with_athena, --with-athena, Athena)
874 if test "$with_motif" != yes -a "$with_motif" != no ; then
875 echo "error: must be yes or no: --with-motif=$with_motif"
879 if test "$with_athena" != yes -a "$with_athena" != no ; then
880 echo "error: must be yes or no: --with-athena=$with_athena"
885 # Saying --without-motif is the same as saying --with-athena.
886 if test "$with_motif_req" = no ; then
891 # Saying --without-athena is the same as saying --with-motif.
892 if test "$with_athena_req" = no ; then
897 # Check for Motif and Athena headers.
900 AC_CHECK_X_HEADER(Xm/Xm.h,
902 AC_DEFINE(HAVE_MOTIF)
903 TOOLKIT_LIBS="-lXm $TOOLKIT_LIBS"])
909 AC_CHECK_X_HEADER(X11/Xaw/Dialog.h, [have_athena=yes])
910 if test "$have_athena" = yes; then
911 AC_CHECK_X_LIB(Xaw3d, Xaw3dComputeTopShadowRGB,
912 [have_athena=yes; have_athena3d=yes], [],
913 -lXt -lXmu -lXext -lX11)
916 if test "$have_athena3d" = yes; then
917 TOOLKIT_LIBS="-lXaw3d $TOOLKIT_LIBS"
918 elif test "$have_athena" = yes; then
919 TOOLKIT_LIBS="-lXaw $TOOLKIT_LIBS"
924 # If they asked for both motif and athena, check motif then athena.
925 # If they asked for only motif, check motif then athena.
926 # If they asked for only athena, check athena then motif.
927 # If they asked for neither, check motif then athena.
929 proselytize_motif=yes
930 if test "$with_motif" = yes; then
931 # asked for both, or for motif only
933 if test "$have_motif" = yes; then
940 elif test "$with_athena" = yes; then
941 # asked for athena only
943 if test "$have_athena" = yes; then
953 if test "$have_motif" = yes; then
961 if test "$have_motif" = yes; then
965 # If we have Athena, check whether it's a version that includes
966 # XawViewportSetCoordinates in Viewport.h (R3 (or R4?) don't.)
967 if test "$have_athena" = yes ; then
968 AC_CACHE_CHECK([for XawViewportSetCoordinates in Viewport.h],
969 ac_cv_have_XawViewportSetCoordinates,
970 [ac_cv_have_XawViewportSetCoordinates=no
971 AC_EGREP_X_HEADER(XawViewportSetCoordinates,
973 ac_cv_have_XawViewportSetCoordinates=yes)])
974 if test "$ac_cv_have_XawViewportSetCoordinates" = yes ; then
975 AC_DEFINE(HAVE_XawViewportSetCoordinates)
980 # If we have Motif, check whether it's really LessTif.
983 if test "$have_motif" = yes ; then
984 AC_CACHE_CHECK([whether Motif is really LessTif],
986 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
987 [long vers = LesstifVersion;],
988 [ac_cv_have_lesstif=yes],
989 [ac_cv_have_lesstif=no])])
990 have_lesstif=$ac_cv_have_lesstif
994 unset ac_cv_lesstif_version
995 unset ac_cv_lesstif_version_string
997 lesstif_version=unknown
998 lesstif_version_string=unknown
1000 if test "$have_lesstif" = yes ; then
1002 echo unknown > conftest-lt
1003 AC_CACHE_CHECK([LessTif version number],
1004 ac_cv_lesstif_version_string,
1005 [AC_TRY_X_RUN([#include <stdio.h>
1008 FILE *f = fopen("conftest-lt", "w");
1010 fprintf(f, "%d %d.%d\n", LesstifVersion,
1011 LESSTIF_VERSION, LESSTIF_REVISION);
1015 [ltv=`cat conftest-lt`
1016 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
1017 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
1018 [ac_cv_lesstif_version=unknown
1019 ac_cv_lesstif_version_string=unknown],
1020 [ac_cv_lesstif_version=unknown
1021 ac_cv_lesstif_version_string=unknown])])
1023 lesstif_version=$ac_cv_lesstif_version
1024 lesstif_version_string=$ac_cv_lesstif_version_string
1029 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
1030 # Extension". Why this extension isn't in -lXext with all the others,
1034 if test "$have_motif" = yes ; then
1036 AC_CHECK_X_LIB(Xp, XpQueryExtension,
1037 [have_xp_ext=yes; TOOLKIT_LIBS="$TOOLKIT_LIBS -lXp"],
1038 [], -lX11 -lXext -lm)
1042 # Check for _Xsetlocale in -lXintl, since at least some recent versions
1043 # of Motif (on Linux) need it.
1046 if test "$have_motif" = yes ; then
1047 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
1049 if test "$have_xintl" = yes; then
1050 TOOLKIT_LIBS="$TOOLKIT_LIBS -lXintl"
1055 # check for XPM header.
1058 with_xpm_req=unspecified
1060 Graphics Demo options:
1062 --with-xpm Include support for XPM files in some demos,
1063 if possible (this is the default).
1064 --without-xpm Do not compile in support for XPM files.],
1065 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
1067 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
1069 if test "$with_xpm" = yes; then
1070 AC_CHECK_X_HEADER(X11/xpm.h,
1074 elif test "$with_xpm" != no; then
1075 echo "error: must be yes or no: --with-xpm=$with_xpm"
1080 # check for the GL header
1084 with_gl_req=unspecified
1086 [ --with-gl Build those demos which depend on OpenGL,
1087 if possible (this is the default).
1088 --without-gl Do not build the OpenGL demos.],
1089 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
1091 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
1093 ac_mesagl_version=unknown
1094 ac_mesagl_version_string=unknown
1096 if test "$with_gl" = yes; then
1097 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
1098 if test "$have_gl" = yes ; then
1099 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no)
1102 # If we have the headers, try and figure out which vendor it's from.
1104 if test "$have_gl" = yes ; then
1108 # We need to know whether it's MesaGL so that we know which libraries
1111 AC_MSG_CHECKING(whether GL is really MesaGL)
1112 AC_CACHE_VAL(ac_cv_have_mesa_gl,
1113 [ac_cv_have_mesa_gl=no
1114 AC_EGREP_X_HEADER(Mesa, GL/glx.h, [ac_cv_have_mesa_gl=yes])
1116 ac_have_mesa_gl=$ac_cv_have_mesa_gl
1117 AC_MSG_RESULT($ac_have_mesa_gl)
1119 if test "$ac_have_mesa_gl" = no ; then
1121 GL_LIBS="-lGL -lGLU"
1123 AC_DEFINE(HAVE_MESA_GL)
1125 GL_LIBS="-lMesaGL -lMesaGLU"
1129 # If it's MesaGL, we'd like to issue a warning if the version number
1130 # is less than or equal to 2.6, because that version had a security bug.
1132 if test "$ac_have_mesa_gl" = yes; then
1134 # don't cache these.
1135 unset ac_cv_mesagl_version
1136 unset ac_cv_mesagl_version_string
1138 AC_MSG_CHECKING(MesaGL version number)
1139 AC_CACHE_VAL(ac_cv_mesagl_version_string,
1140 [cat > conftest.$ac_ext <<EOF
1141 #line __oline__ "configure"
1142 #include "confdefs.h"
1144 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
1147 ac_save_CPPFLAGS="$CPPFLAGS"
1148 if test \! -z "$includedir" ; then
1149 CPPFLAGS="$CPPFLAGS -I$includedir"
1151 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1155 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \
1156 's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
1159 rm -f conftest.$ac_ext
1161 CPPFLAGS="$ac_save_CPPFLAGS"
1163 if test "$mglv" = ""; then
1164 ac_mesagl_version=unknown
1165 ac_mesagl_version_string=unknown
1167 ac_mesagl_version_string=$mglv
1168 maj=`echo $mglv | sed -n 's/\..*//p'`
1169 min=`echo $mglv | sed -n 's/.*\.//p'`
1170 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
1171 if test -z "$ac_mesagl_version"; then
1172 ac_mesagl_version=unknown
1173 ac_mesagl_version_string=unknown
1176 ac_cv_mesagl_version=$ac_mesagl_version
1177 ac_cv_mesagl_version_string=$ac_mesagl_version_string
1179 ac_mesagl_version=$ac_cv_mesagl_version
1180 ac_mesagl_version_string=$ac_cv_mesagl_version_string
1181 AC_MSG_RESULT($ac_cv_mesagl_version_string)
1185 # If it's MesaGL, check to see if it requires -lpthread.
1188 mesa_requires_pthread=false
1189 if test "$ac_have_mesa_gl" = yes; then
1191 AC_CHECK_LIB(pthread, pthread_create, [have_pthread=yes], [],)
1192 if test "$have_pthread" = yes; then
1193 AC_CHECK_X_LIB($gl_lib_1, gl_get_thread_context,
1194 [mesa_requires_pthread=yes], [],
1195 $GL_LIBS -lpthread -lX11 -lXext -lm)
1198 if test "$mesa_requires_pthread" = yes; then
1199 GL_LIBS="$GL_LIBS -lpthread"
1203 # Check for OpenGL 1.1 features.
1205 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
1206 [], $GL_LIBS -lX11 -lXext -lm)
1210 elif test "$with_gl" != no; then
1211 echo "error: must be yes or no: --with-gl=$with_gl"
1216 # check for SGI XReadDisplay server extension header.
1219 with_readdisplay_req=unspecified
1220 AC_ARG_WITH(readdisplay,
1221 [ --with-readdisplay Include support for the XReadDisplay server
1222 extension if possible (this is the default).
1223 --without-readdisplay Do not compile in support for this extension.],
1224 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
1225 [with_readdisplay=yes])
1227 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
1229 if test "$with_readdisplay" = yes; then
1230 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
1231 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION))
1232 elif test "$with_readdisplay" != no; then
1233 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
1238 # check for SGI's Iris Video Library header.
1241 with_sgivideo_req=unspecified
1242 AC_ARG_WITH(sgivideo,
1243 [ --with-sgivideo Include support for SGI's Iris Video Library
1244 if possible (this is the default).
1245 --without-sgivideo Do not compile in support for this library.],
1246 [with_sgivideo="$withval"; with_sgivideo_req="$withval"],
1247 [with_sgivideo=yes])
1249 HANDLE_X_PATH_ARG(with_sgivideo, --with-sgivideo, Iris Video)
1251 if test "$with_sgivideo" = yes; then
1252 AC_CHECK_X_HEADER(dmedia/vl.h, have_sgivideo=yes)
1253 if test "$have_sgivideo" = yes; then
1255 AC_CHECK_LIB(vl, vlOpenVideo, have_sgivideo=yes)
1256 if test "$have_sgivideo" = yes; then
1257 SGI_VIDEO_OBJS="$(UTILS_BIN)/sgivideo.o"
1258 SGI_VIDEO_LIBS="-lvl"
1259 AC_DEFINE(HAVE_SGI_VIDEO)
1262 elif test "$with_sgivideo" != no; then
1263 echo "error: must be yes or no: --with-sgivideo=$with_sgivideo"
1269 # Try to find a program to generate random text.
1271 # Zippy is funnier than the idiocy generally spat out by `fortune',
1272 # so try to find that, by invoking Emacs and asking it where its
1273 # libexec directory is ("yow" lives in there.)
1275 # If that doesn't work, see if fortune, zippy, or yow are on $PATH,
1276 # and if so, use them.
1278 # If that doesn't work, look in /usr/games, and if it's there, use
1279 # the full pathname.
1283 [ --with-zippy=PROGRAM Some demos are able to run an external program and
1284 display its text; this names the program to use by
1285 default (though it can be overridden with X
1286 resources.) If you don't specify this, the default
1287 is to use \"yow\" from the Emacs distribution (if you
1288 have it) or else to use \"fortune\".],
1289 [ with_zippy_req="$withval"; with_zippy="$withval" ],
1290 [ with_zippy_req="$withval"; with_zippy="$withval" ])
1292 if test "$with_zippy" = no || test "$with_zippy" = yes ; then
1297 if test -n "$with_zippy_req" ; then
1298 ac_cv_zippy_program=""
1299 case "$with_zippy_req" in
1301 AC_MSG_CHECKING([for $with_zippy_req])
1302 if test -x "$with_zippy_req" ; then
1311 unset ac_cv_path_zip2
1312 AC_PATH_PROG(zip2, $with_zippy_req, [])
1313 if test "$zip2" = ""; then
1318 ac_cv_zippy_program="$with_zippy"
1320 elif test -n "$ac_cv_zippy_program"; then
1321 AC_MSG_RESULT([checking for zippy... (cached) $ac_cv_zippy_program])
1324 if test ! -n "$ac_cv_zippy_program"; then
1326 AC_CHECK_PROGS(emacs_exe, emacs)
1327 AC_CHECK_PROGS(xemacs_exe, xemacs)
1329 ac_cv_zippy_program=""
1330 eargs='-batch -q -nw --eval'
1332 if test -n "$emacs_exe" ; then
1333 AC_MSG_CHECKING([for emacs yow])
1335 # get emacs to tell us where the libexec directory is.
1337 dir=`$emacs_exe $eargs '(princ (concat exec-directory "\n"))' \
1338 2>/dev/null | tail -1`
1339 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
1341 # try running libexec/yow and see if it exits without error.
1343 if test x"$dir" != x -a -x "$dir/yow" ; then
1344 if $dir/yow >&- 2>&- ; then
1345 ac_cv_zippy_program="$dir/yow"
1346 AC_MSG_RESULT($ac_cv_zippy_program)
1353 if test -z "$ac_cv_zippy_program" ; then
1354 AC_MSG_CHECKING([for xemacs yow])
1355 if test -n "$xemacs_exe" ; then
1357 # get xemacs to tell us where the libexec directory is.
1359 dir=`$xemacs_exe $eargs '(princ (concat exec-directory "\n"))' \
1360 2>/dev/null | tail -1`
1361 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
1363 # try running libexec/yow and see if it exits without error.
1365 if test x"$dir" != x -a -x "$dir/yow" ; then
1366 if $dir/yow >&- 2>&- ; then
1367 ac_cv_zippy_program="$dir/yow"
1368 AC_MSG_RESULT($ac_cv_zippy_program)
1371 # in some xemacs installations, the pathname of the yow.lines file
1372 # isn't hardcoded into the yow executable, and must be passed on
1373 # the command line. See if it's in libexec/../etc/.
1377 dir_up=`echo "$dir" | sed 's@/[^/]*$@@'`
1380 yow="yow -f $dir_up/etc/yow.lines"
1381 if $dir/$yow >&- 2>&- ; then
1382 ac_cv_zippy_program="$dir/$yow"
1383 AC_MSG_RESULT($ac_cv_zippy_program)
1392 # if that didn't work, try for some other programs...
1393 if test -z "$ac_cv_zippy_program" ; then
1395 AC_CHECK_PROGS(fortune, [fortune zippy yow])
1396 # if that didn't work, try for those programs in /usr/games...
1397 if test -z "$fortune" ; then
1398 AC_PATH_PROGS(fortune, [fortune zippy yow], fortune,
1399 /usr/games:/usr/local/games)
1404 if test -z "$ac_cv_zippy_program" ; then
1405 ac_cv_zippy_program=fortune
1408 AC_DEFINE_UNQUOTED(ZIPPY_PROGRAM, "$ac_cv_zippy_program")
1413 # Allow locking to be disabled at compile-time.
1416 with_kerberos_req=unspecified
1418 with_shadow_req=unspecified
1420 with_pam_req=unspecified
1423 AC_ARG_ENABLE(locking,[
1424 Screen Locking options:
1426 --enable-locking Compile in support for locking the display
1427 (this is the default.)
1428 --disable-locking Do not allow locking at all.],
1429 [enable_locking="$enableval"],[enable_locking=yes])
1430 if test "$enable_locking" = yes; then
1432 elif test "$enable_locking" = no; then
1433 AC_DEFINE(NO_LOCKING)
1435 echo "error: must be yes or no: --enable-locking=$enable_locking"
1441 # Check to see if we can lock Virtual-Terminal switching, but allow that
1442 # to be disabled at compile-time.
1445 AC_ARG_ENABLE(vt-locking,[
1446 --enable-vt-locking Compile in support for locking Virtual Terminals.
1447 This is the default if the system supports it, and
1448 if locking support is included (--enable-locking.)
1449 --disable-vt-locking Do not allow locking of VTs, even if locking is
1451 [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1452 if test "$enable_vt_locking" = yes; then
1454 AC_MSG_CHECKING(for the VT_LOCKSWITCH ioctl)
1455 AC_CACHE_VAL(ac_cv_vt_lockswitch,
1456 [AC_TRY_COMPILE([#include <fcntl.h>
1457 #include <sys/ioctl.h>
1458 #include <sys/vt.h>],
1459 [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1460 [ac_cv_vt_lockswitch=yes],
1461 [ac_cv_vt_lockswitch=no])])
1462 ac_vt_lockswitch=$ac_cv_vt_lockswitch
1463 AC_MSG_RESULT($ac_vt_lockswitch)
1465 elif test "$enable_locking" = no; then
1468 echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1472 if test "$ac_vt_lockswitch" = yes; then
1473 AC_DEFINE(HAVE_VT_LOCKSWITCH)
1474 # the VT_LOCKSWITCH ioctl can only be used when running as root.
1475 # #### but it doesn't work yet, so don't worry about that for now.
1481 if test "$enable_locking" = yes; then
1483 # Check for Kerberos.
1485 AC_ARG_WITH(kerberos, [
1486 --with-kerberos Include support for Kerberos authentication,
1487 if possible (this is the default.)
1488 --without-kerberos Do not compile in support for Kerberos.],
1489 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1491 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1493 if test "$with_kerberos" = yes; then
1494 AC_CACHE_CHECK([for Kerberos], ac_cv_kerberos,
1495 [AC_TRY_X_COMPILE([#include <krb.h>],,
1496 [ac_cv_kerberos=yes],
1497 [ac_cv_kerberos=no])])
1498 if test "$ac_cv_kerberos" = yes ; then
1500 AC_DEFINE(HAVE_KERBEROS)
1502 # from Tim Showalter <tjs+@andrew.cmu.edu>
1503 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes"
1504 AC_CHECK_FUNC(res_search,,
1505 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1506 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1510 elif test "$with_kerberos" != no; then
1511 echo "error: must be yes or no: --with-kerberos=$with_kerberos"
1517 [ --with-pam Include support for PAM (Pluggable Authentication
1518 Modules) if possible (this is the default.)
1519 --without-pam Do not compile in support for PAM.],
1520 [with_pam="$withval"; with_pam_req="$withval"],[with_pam=no])
1521 #### Leave PAM off by default for now, since it's buggy on Solaris
1522 #### (and probably Linux, but it's so hard to tell...)
1524 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1526 if test "$with_pam" = yes; then
1527 AC_CACHE_CHECK([for PAM], ac_cv_pam,
1528 [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1531 if test "$ac_cv_pam" = yes ; then
1534 PASSWD_LIBS="${PASSWD_LIBS} -lpam -ldl"
1536 elif test "$with_pam" != no; then
1537 echo "error: must be yes or no: --with-pam=$with_pam"
1541 # Next, check for the nine billion variants of shadow passwords...
1545 [ --with-shadow Include support for shadow password authentication,
1546 if possible (this is the default, if no Kerberos or
1548 --without-shadow Do not compile in support for shadow passwords.
1550 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1552 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1554 if test "$with_shadow" = no; then
1555 pwent_cruft_done=yes
1556 elif test "$with_shadow" != yes; then
1557 echo "error: must be yes or no: --with-shadow=$with_shadow"
1562 # Sun's "adjunct" passwords.
1564 if test "$pwent_cruft_done" = no ; then
1565 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1566 [AC_TRY_X_COMPILE([#include <stdlib.h>
1568 #include <sys/types.h>
1569 #include <sys/label.h>
1570 #include <sys/audit.h>
1571 #include <pwdadj.h>],
1572 [struct passwd_adjunct *p = getpwanam("nobody");
1573 const char *pw = p->pwa_passwd;],
1574 [ac_cv_sun_adjunct=yes],
1575 [ac_cv_sun_adjunct=no])])
1576 if test "$ac_cv_sun_adjunct" = yes; then
1579 pwent_cruft_done=yes
1580 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1584 # DEC and SCO so-called "enhanced" security.
1586 if test "$pwent_cruft_done" = no ; then
1587 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1588 [AC_TRY_X_COMPILE([#include <stdlib.h>
1590 #include <sys/types.h>
1592 #include <sys/security.h>
1594 [struct pr_passwd *p;
1596 set_auth_parameters(0, 0);
1597 check_auth_parameters();
1598 p = getprpwnam("nobody");
1599 pw = p->ufld.fd_encrypt;],
1600 [ac_cv_enhanced_passwd=yes],
1601 [ac_cv_enhanced_passwd=no])])
1602 if test $ac_cv_enhanced_passwd = yes; then
1605 pwent_cruft_done=yes
1606 AC_DEFINE(HAVE_ENHANCED_PASSWD)
1608 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1609 # (I'm told it needs -lcurses too, but I don't understand why.)
1610 AC_CHECK_LIB(prot, getprpwnam,
1611 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1612 [# On DEC, getprpwnam() is in -lsecurity
1613 AC_CHECK_LIB(security, getprpwnam,
1614 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1619 # HP's entry in the "Not Invented Here" Sweepstakes.
1621 if test "$pwent_cruft_done" = no ; then
1622 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1623 [AC_TRY_X_COMPILE([#include <stdlib.h>
1625 #include <sys/types.h>
1627 #include <hpsecurity.h>
1629 [struct s_passwd *p = getspwnam("nobody");
1630 const char *pw = p->pw_passwd;],
1631 [ac_cv_hpux_passwd=yes],
1632 [ac_cv_hpux_passwd=no])])
1633 if test "$ac_cv_hpux_passwd" = yes; then
1636 pwent_cruft_done=yes
1637 AC_DEFINE(HAVE_HPUX_PASSWD)
1639 # on HPUX, bigcrypt is in -lsec
1640 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1644 # Traditional (ha!) shadow passwords.
1646 if test "$pwent_cruft_done" = no ; then
1647 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1648 [AC_TRY_X_COMPILE([#include <stdlib.h>
1650 #include <sys/types.h>
1652 #include <shadow.h>],
1653 [struct spwd *p = getspnam("nobody");
1654 const char *pw = p->sp_pwdp;],
1656 [ac_cv_shadow=no])])
1657 if test "$ac_cv_shadow" = yes; then
1660 pwent_cruft_done=yes
1661 AC_DEFINE(HAVE_SHADOW_PASSWD)
1663 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1665 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1666 if test "$have_getspnam" = no ; then
1667 AC_CHECK_LIB(gen, getspnam,
1668 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1673 # On FreeBSD, getpwnam() and friends work just like on non-shadow-password
1674 # systems -- except you only get stuff in the pw_passwd field if the running
1675 # program is setuid. So, guess that we've got this lossage to contend with
1676 # if /etc/master.passwd exists, and default to a setuid installation.
1678 if test "$pwent_cruft_done" = no ; then
1679 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1680 [if test -f /etc/master.passwd ; then
1681 ac_cv_master_passwd=yes
1683 ac_cv_master_passwd=no
1685 if test "$ac_cv_master_passwd" = yes; then
1687 pwent_cruft_done=yes
1691 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1693 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1694 if test "$have_crypt" = no ; then
1695 AC_CHECK_LIB(crypt, crypt,
1696 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1700 # Most of the above shadow mechanisms will have set need_setuid to yes,
1701 # if they were found. But, on some systems, we need setuid even when
1702 # using plain old vanilla passwords.
1704 if test "$need_setuid" = no ; then
1706 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1715 if test \! -z "$includedir" ; then
1716 INCLUDES="-I$includedir"
1719 if test \! -z "$libdir" ; then
1720 LDFLAGS="$LDFLAGS -L$libdir"
1724 ##### should have options to override the DEPEND crap, I guess...
1730 # Done testing things -- now substitute in some stuff for the Makefiles.
1732 if test "$have_motif" = yes; then
1733 AC_DEFINE(HAVE_MOTIF)
1734 TOOLKIT_SRCS='$(MOTIF_SRCS)'
1735 TOOLKIT_OBJS='$(MOTIF_OBJS)'
1736 elif test "$have_athena" = yes; then
1737 AC_DEFINE(HAVE_ATHENA)
1738 TOOLKIT_SRCS='$(ATHENA_SRCS)'
1739 TOOLKIT_OBJS='$(ATHENA_OBJS)'
1745 if test "$have_kerberos" = yes; then
1746 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
1747 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
1749 if test "$have_pam" = yes; then
1750 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
1751 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
1752 INSTALL_PAM="install-pam"
1754 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
1755 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
1758 if test "$enable_locking" = yes; then
1759 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
1760 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
1766 if test "$need_setuid" = yes; then
1768 INSTALL_SETUID='$(INSTALL) $(SUID_FLAGS)'
1771 INSTALL_SETUID='$(INSTALL_PROGRAM)'
1775 if test "$have_gl" = yes; then
1776 GL_EXES='$(GL_EXES)'
1779 GL_KLUDGE=' -'${tab}
1784 AC_SUBST(SAVER_LIBS)
1785 AC_SUBST(TOOLKIT_LIBS)
1789 AC_SUBST(PASSWD_LIBS)
1790 AC_SUBST(INSTALL_SETUID)
1791 AC_SUBST(INSTALL_DIRS)
1792 AC_SUBST(NEED_SETUID)
1793 AC_SUBST(INSTALL_PAM)
1794 AC_SUBST(SGI_VIDEO_OBJS)
1795 AC_SUBST(SGI_VIDEO_LIBS)
1797 AC_SUBST(TOOLKIT_SRCS)
1798 AC_SUBST(TOOLKIT_OBJS)
1799 AC_SUBST(PASSWD_SRCS)
1800 AC_SUBST(PASSWD_OBJS)
1808 AC_SUBST(APPDEFAULTS)
1811 AC_SUBST(DEPEND_FLAGS)
1812 AC_SUBST(DEPEND_DEFINES)
1814 # Print some warnings before emitting the Makefiles.
1816 warn_prefix_1=" Warning:"
1817 warn_prefix_2=" Note:"
1818 warn_prefix="$warn_prefix_1"
1821 warnsep=' #################################################################'
1824 if test "$warning" = no ; then
1825 echo '' ; echo "$warnsep" ; echo ''
1832 if test "$warning" = long ; then echo '' ; fi
1834 echo "$warn_prefix $@"
1841 if test "$was" != no ; then echo '' ; fi
1842 echo "$warn_prefix $@"
1851 warn_prefix="$warn_prefix_2"
1853 warn_prefix="$warn_prefix_1"
1857 warn_prefix="$warn_prefix_2"
1859 warn_prefix="$warn_prefix_1"
1863 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
1864 warn 'The SGI saver extension was requested, but was not found.'
1867 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
1868 warn 'The MIT saver extension was requested, but was not found.'
1871 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
1872 warn 'The XIdle extension was requested, but was not found.'
1875 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
1876 warn 'The XSHM extension was requested, but was not found.'
1879 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
1880 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
1883 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
1884 warn 'The DPMS extension was requested, but was not found.'
1887 if test "$have_motif" = no -a "$have_athena" = no ; then
1888 warnL "Neither Motif nor Athena widgets seem to be available;"
1889 warn2 "the \`xscreensaver-demo' program requires one or the"
1891 proselytize_motif=no
1893 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
1894 warnL "Use of Motif was requested, but it wasn't found;"
1895 warn2 "Athena will be used instead."
1897 elif test "$with_athena_req" = yes -a "$have_athena" = no ; then
1898 warnL "Use of Athena was requested, but it wasn't found;"
1899 warn2 "Motif will be used instead."
1902 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
1904 preferred_lesstif=0.86
1906 if test "$lesstif_version" = unknown; then
1907 warnL "Unable to determine the LessTif version number!"
1908 warn2 "Make sure you are using version $preferred_lesstif or newer."
1909 warn2 "See <http://www.lesstif.org/>."
1911 elif test \! $lesstif_version -gt 82; then
1912 warnL "LessTif version $lesstif_version_string is being used."
1913 warn2 "LessTif versions 0.82 and earlier are too buggy to"
1914 warn2 "use with XScreenSaver; it is strongly recommended"
1915 warn2 "that you upgrade to at least version $preferred_lesstif!"
1916 warn2 "See <http://www.lesstif.org/>."
1920 if test "$proselytize_motif" = yes ; then
1921 warnL "Athena widgets are being used instead of Motif."
1922 warn2 "The \`xscreensaver-demo' program looks much better"
1923 warn2 "with Motif. Wouldn't you rather be using Motif?"
1924 warn2 "It is shipped by every commercial Unix vendor;"
1925 warn2 "and there is a free implementation available as"
1926 warn2 "well: see <http://www.lesstif.org/>."
1930 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
1931 preferred_mesagl=2.7
1933 if test "$ac_mesagl_version" = unknown; then
1934 warnL "Unable to determine the MesaGL version number!"
1935 warn2 "Make sure you are using version $preferred_mesagl or newer."
1937 elif test \! "$ac_mesagl_version" -gt 2006; then
1938 warnL "MesaGL version $ac_mesagl_version_string is being used."
1939 warn2 "MesaGL versions 2.6 and earlier have a security bug."
1940 warn2 "It is strongly recommended that you upgrade to at"
1941 warn2 "least version $preferred_mesagl."
1946 if test "$have_xpm" = no ; then
1947 if test "$with_xpm_req" = yes ; then
1948 warnL 'Use of XPM was requested, but it was not found.'
1949 elif test "$with_xpm_req" = no ; then
1950 noteL 'The XPM library is not being used.'
1952 noteL 'The XPM library was not found.'
1956 warn2 'Some of the demos will not be as colorful as they'
1957 warn2 'could be. You might want to consider installing XPM'
1958 warn2 'and re-running configure. (Remember to delete the'
1959 warn2 'config.cache file first.) You can find XPM at most'
1960 warn2 'X11 archive sites, such as <http://sunsite.unc.edu/>.'
1963 if test "$have_gl" = no ; then
1964 if test "$with_gl_req" = yes ; then
1965 warnL 'Use of GL was requested, but it was not found.'
1966 elif test "$with_gl_req" = no ; then
1967 noteL 'The OpenGL 3D library is not being used.'
1969 noteL 'The OpenGL 3D library was not found.'
1973 warn2 'Those demos which use 3D will not be built or installed.'
1974 warn2 'You might want to consider installing OpenGL and'
1975 warn2 're-running configure. (Remember to delete the'
1976 warn2 "config.cache file first.) If your vendor doesn't ship"
1977 warn2 'their own implementation of OpenGL, you can get a free'
1978 warn2 'version at <http://www.ssec.wisc.edu/~brianp/Mesa.html>.'
1979 warn2 'For general OpenGL info, see <http://www.opengl.org/>.'
1983 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
1984 warn 'Use of XReadDisplay was requested, but it was not found.'
1987 if test "$with_sgivideo_req" = yes -a "$have_sgivideo" = no ; then
1988 warn 'Use of the Iris Video Library was requested, but it was not found.'
1991 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
1992 warn 'Use of Kerberos was requested, but it was not found.'
1995 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
1996 warn 'Use of PAM was requested, but it was not found.'
1999 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
2000 warn 'Use of shadow passwords was requested, but they were not found.'
2003 if test -n "$with_zippy_req"; then
2004 if test "$with_zippy_req" != "$ac_cv_zippy_program" ; then
2005 warnL "$with_zippy_req was requested as the Zippy program,"
2006 warn2 "but was not found. The default will be used instead."
2010 if test "$warning" != no; then
2011 echo '' ; echo "$warnsep" ; echo ''
2020 driver/XScreenSaver.ad)
2022 # You are in a twisty maze of namespaces and syntaxes, all alike.
2023 # Fuck the skull of Unix.
2025 eval bindir=${bindir}
2026 eval bindir=${bindir}
2027 eval bindir=${bindir}
2028 eval bindir=${bindir}
2029 eval bindir=${bindir}
2030 eval bindir=${bindir}
2031 eval HACKDIR=${HACKDIR}
2032 eval HACKDIR=${HACKDIR}
2033 eval HACKDIR=${HACKDIR}
2034 eval HACKDIR=${HACKDIR}
2035 eval HACKDIR=${HACKDIR}
2036 eval HACKDIR=${HACKDIR}
2038 # canonicalize slashes.
2039 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
2040 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
2042 if test "${bindir}" = "${HACKDIR}" ; then
2046 echo ' When you run "make install", the "xscreensaver",'
2047 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
2048 echo " will be installed in ${bindir}."
2050 echo " The various graphics demos (80+ different executables) will"
2051 echo " also be installed in ${HACKDIR}."
2053 echo " If you would prefer the demos to be installed elsewhere"
2054 echo " (for example, in a dedicated directory) you should re-run"
2055 echo " configure with the --enable-subdir=DIR option. For more"
2056 echo " information, run $0 --help."