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 if test "$have_x" != yes; then
193 AC_MSG_ERROR(Couldn't find X11 headers/libs. Try \`$0 --help'.)
197 # Try and find the app-defaults directory.
198 # It sucks that autoconf doesn't do this already...
200 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
202 if mkdir conftestdir; then
204 # Make sure to not put "make" in the Imakefile rules, since we grep it out.
205 cat > Imakefile <<'EOF'
207 @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
209 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
210 # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
211 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
217 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
218 # Look for the directory under a standard set of common directories.
219 # Check X11 before X11Rn because it's often a symlink to the current release.
221 /usr/X11/lib/app-defaults \
222 /usr/X11R6/lib/app-defaults \
223 /usr/X11R6/lib/X11/app-defaults \
224 /usr/X11R5/lib/app-defaults \
225 /usr/X11R5/lib/X11/app-defaults \
226 /usr/X11R4/lib/app-defaults \
227 /usr/X11R4/lib/X11/app-defaults \
229 /usr/lib/X11/app-defaults \
230 /usr/lib/X11R6/app-defaults \
231 /usr/lib/X11R5/app-defaults \
232 /usr/lib/X11R4/app-defaults \
234 /usr/local/X11/lib/app-defaults \
235 /usr/local/X11R6/lib/app-defaults \
236 /usr/local/X11R5/lib/app-defaults \
237 /usr/local/X11R4/lib/app-defaults \
239 /usr/local/lib/X11/app-defaults \
240 /usr/local/lib/X11R6/app-defaults \
241 /usr/local/lib/X11R6/X11/app-defaults \
242 /usr/local/lib/X11R5/app-defaults \
243 /usr/local/lib/X11R5/X11/app-defaults \
244 /usr/local/lib/X11R4/app-defaults \
245 /usr/local/lib/X11R4/X11/app-defaults \
247 /usr/X386/lib/X11/app-defaults \
248 /usr/x386/lib/X11/app-defaults \
249 /usr/XFree86/lib/X11/app-defaults \
251 /usr/lib/X11/app-defaults \
252 /usr/local/lib/X11/app-defaults \
253 /usr/unsupported/lib/X11/app-defaults \
254 /usr/athena/lib/X11/app-defaults \
255 /usr/local/x11r5/lib/X11/app-defaults \
256 /usr/lpp/Xamples/lib/X11/app-defaults \
257 /lib/usr/lib/X11/app-defaults \
259 /usr/openwin/lib/app-defaults \
260 /usr/openwin/lib/X11/app-defaults \
261 /usr/openwin/share/lib/app-defaults \
262 /usr/openwin/share/lib/X11/app-defaults \
264 /X11R6/lib/app-defaults \
265 /X11R5/lib/app-defaults \
266 /X11R4/lib/app-defaults \
269 if test -d "$ac_dir"; then
270 ac_x_app_defaults=$ac_dir
277 AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
279 AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
280 [AC_PATH_X_APP_DEFAULTS_XMKMF
281 if test x"$ac_x_app_defaults" = x; then
282 AC_PATH_X_APP_DEFAULTS_DIRECT
284 if test x"$ac_x_app_defaults" = x; then
285 ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
287 # Record where we found app-defaults for the cache.
288 ac_cv_x_app_defaults="$ac_x_app_defaults"
290 eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
292 AC_PATH_X_APP_DEFAULTS
294 APPDEFAULTS=$ac_x_app_defaults
297 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
299 AC_DEFUN(AC_CHECK_X_HEADER, [
300 ac_save_CPPFLAGS="$CPPFLAGS"
301 if test \! -z "$includedir" ; then
302 CPPFLAGS="$CPPFLAGS -I$includedir"
304 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
305 AC_CHECK_HEADER([$1], [$2])
306 CPPFLAGS="$ac_save_CPPFLAGS"])
308 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
310 AC_DEFUN(AC_EGREP_X_HEADER, [
311 ac_save_CPPFLAGS="$CPPFLAGS"
312 if test \! -z "$includedir" ; then
313 CPPFLAGS="$CPPFLAGS -I$includedir"
315 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
316 AC_EGREP_HEADER([$1], [$2], [$3], [$4])
317 CPPFLAGS="$ac_save_CPPFLAGS"])
319 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
321 AC_DEFUN(AC_TRY_X_COMPILE, [
322 ac_save_CPPFLAGS="$CPPFLAGS"
323 if test \! -z "$includedir" ; then
324 CPPFLAGS="$CPPFLAGS -I$includedir"
326 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
327 AC_TRY_COMPILE([$1], [$2], [$3], [$4])
328 CPPFLAGS="$ac_save_CPPFLAGS"])
331 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
332 # Use this sparingly; it probably doesn't work very well on X programs.
334 AC_DEFUN(AC_CHECK_X_LIB, [
335 ac_save_CPPFLAGS="$CPPFLAGS"
336 ac_save_LDFLAGS="$LDFLAGS"
338 if test \! -z "$includedir" ; then
339 CPPFLAGS="$CPPFLAGS -I$includedir"
341 # note: $X_CFLAGS includes $x_includes
342 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
344 if test \! -z "$libdir" ; then
345 LDFLAGS="$LDFLAGS -L$libdir"
347 # note: $X_LIBS includes $x_libraries
348 LDFLAGS="$LDFLAGS $X_LIBS"
350 AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
351 CPPFLAGS="$ac_save_CPPFLAGS"
352 LDFLAGS="$ac_save_LDFLAGS"])
354 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
355 # (But not the -L directories!)
357 AC_DEFUN(AC_TRY_X_RUN, [
358 ac_save_CPPFLAGS="$CPPFLAGS"
359 if test \! -z "$includedir" ; then
360 CPPFLAGS="$CPPFLAGS -I$includedir"
362 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
363 AC_TRY_RUN([$1], [$2], [$3], [$4])
364 CPPFLAGS="$ac_save_CPPFLAGS"])
368 # Usage: HANDLE_X_PATH_ARG([variable_name],
369 # [--command-line-option],
370 # [descriptive string])
372 # All of the --with options take three forms:
374 # --with-foo (or --with-foo=yes)
375 # --without-foo (or --with-foo=no)
378 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees
379 # a directory (string beginning with a slash) it checks to see whether
380 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
383 AC_DEFUN(HANDLE_X_PATH_ARG, [
389 AC_MSG_CHECKING([for [$3] headers])
392 X_CFLAGS="-I$d $X_CFLAGS"
395 AC_MSG_RESULT(not found ($d: no such directory))
398 AC_MSG_CHECKING([for [$3] libs])
401 X_LIBS="-L$d $X_LIBS"
404 AC_MSG_RESULT(not found ($d: no such directory))
407 # replace the directory string with "yes".
414 echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
415 echo " If it is a directory, then \`DIR/include' will be added to"
416 echo " the -I list, and \`DIR/lib' will be added to the -L list."
421 # why is this necessary?
422 # if we don't do this, then "./configure --with-motif=/usr/local/lesstif"
423 # behaves as if "--with-zippy=/usr/local/lesstif" was also present!
429 # check for the HP XHPDisableReset server extension headers.
431 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
432 [AC_DEFINE(HAVE_XHPDISABLERESET)
433 SAVER_LIBS="-lXhp11 $SAVER_LIBS"])
436 # Check for the availability of the XPointer typedef, and define it otherwise.
438 AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
439 [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
440 [XPointer foo = (XPointer) 0;],
441 [ac_cv_xpointer=yes],
442 [ac_cv_xpointer=no])])
443 if test "$ac_cv_xpointer" != yes; then
444 AC_DEFINE(XPointer,[char*])
448 # Random special-cases for certain pathological OSes. You know who you are.
453 # The following arcana was gleaned from conversations with
454 # Eric Schwartz <erics@col.hp.com>:
456 # On HPUX 10.x, the parts of X that HP considers "standard" live in
457 # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider
458 # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
459 # Also, there are symlinks from /usr/include/ and /usr/lib/ into
460 # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
461 # you don't need any -I or -L arguments.
463 # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
464 # are the same division as 10.x. However, there are no symlinks to
465 # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
466 # arguments are always necessary.
468 # However, X11R6 was available on HPUX 9.x as a patch: if that
469 # patch was installed, then all of X11R6 went in to
470 # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
472 # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
473 # whether R5 was available as a patch; R6 undoubtedly was not.)
475 # So. We try and use the highest numbered pair of
476 # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
477 # that are available. We do not mix and match different versions
480 # Questions I still don't know the answers to: (do you?)
482 # * Does HPUX 10.x come with /usr/contrib/X11R6/ standard?
483 # Or does that need to be installed separately?
485 # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
486 # /usr/contrib/X11R6/ could be installed as a patch, what was in
487 # that contrib directory? Did it contain so-called "standard"
488 # X11R6, or did it include Xaw and Xmu as well? If the former,
489 # where did one find Xaw and Xmu on 9.x R6 systems? Would this
490 # be a situation where one had to reach into the R5 headers and
491 # libs to find Xmu? That is, must both R6 and R5 directories
492 # be on the -I and -L lists in that case?
494 for version in X11R6 X11R5 X11R4 ; do
495 # if either pair of directories exists...
496 if test -d /usr/lib/$version || test -d /usr/contrib/$version/lib ; then
497 # if contrib exists, use it...
498 if test -d /usr/contrib/$version/lib ; then
499 X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
500 X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
502 # if the "standard" one exists, use it.
503 if test -d /usr/lib/$version ; then
504 X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
505 X_LIBS="$X_LIBS -L/usr/lib/$version"
507 # since at least one of the pair exists, go no farther.
512 # Now find Motif. Thanks for not making xmkmf find this by
513 # default, you losers.
515 if test -d /usr/lib/Motif1.2 ; then
516 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
517 X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
518 elif test -d /usr/lib/Motif1.1 ; then
519 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
520 X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
523 # Now let's check for the pseudo-standard locations for OpenGL and XPM.
525 if test -d /opt/Mesa/lib ; then
526 X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
527 X_LIBS="-L/opt/Mesa/lib $X_LIBS"
530 if test -d /opt/xpm/lib/X11 ; then
531 X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
532 X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
535 # On HPUX, default to installing in /opt/xscreensaver/ instead of
536 # in /usr/local/, unless there is already an xscreensaver in
537 # /usr/local/bin/. This can be overridden with the --prefix arg
538 # to configure. I'm not sure this is the right thing to do, but
539 # Richard Lloyd says so...
541 if test \! -x /usr/local/bin/xscreensaver ; then
542 ac_default_prefix=/opt/xscreensaver
548 # Thanks for not making xmkmf find this by default, pinheads.
549 # And thanks for moving things around again, too. Is this
550 # really the standard location now? What happened to the
551 # joke that this kind of thing went in /opt?
552 # cthomp says "answer: CDE (Common Disorganized Environment)"
554 if test -f /usr/dt/include/Xm/Xm.h ; then
555 X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
556 X_LIBS="$X_LIBS -L/usr/dt/lib -R:/usr/dt/lib"
558 # Some versions of Slowlaris Motif require -lgen. But not all. Why?
559 AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"])
566 # Check for Xmu (some fucked up vendors don't ship it...)
569 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes])
570 if test "$have_xmu" = no ; then
571 XMU_SRCS='$(UTILS_SRC)/xmu.c'
572 XMU_OBJS='$(UTILS_BIN)/xmu.o'
576 SAVER_LIBS="-lXmu $SAVER_LIBS"
577 HACK_LIBS="-lXmu $HACK_LIBS"
578 TOOLKIT_LIBS="-lXmu $TOOLKIT_LIBS"
583 # See comp.windows.x FAQ question 124 about _get_wmShellWidgetClass on 4.1.x.
584 # The right fix is to get OpenWindows 3.0 patches 100512-02 and 100573-03.
586 if test "$have_xmu" = yes ; then
589 AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
591 [ac_save_LDFLAGS="$LDFLAGS"
592 if test \! -z "$x_libraries" ; then
593 LDFLAGS="$LDFLAGS -L$x_libraries"
595 # Note: this trick never works! (Generally.)
596 # We're only getting away with using AC_TRY_LINK
597 # with X libraries because we know it's SunOS.
598 LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
600 [ac_cv_sunos_xmu_bug=no],
601 [ac_cv_sunos_xmu_bug=yes])
602 LDFLAGS="$ac_save_LDFLAGS"])
603 if test "$ac_cv_sunos_xmu_bug" = yes ; then
604 AC_CACHE_CHECK([whether the compiler understands -static],
606 [ac_save_LDFLAGS="$LDFLAGS"
607 LDFLAGS="$LDFLAGS -static"
608 AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
609 LDFLAGS="$ac_save_LDFLAGS"])
610 if test "$ac_cv_ld_static" = yes ; then
611 LDFLAGS="$LDFLAGS -static"
613 LDFLAGS="$LDFLAGS -Bstatic"
621 # Check for the SGI SCREEN_SAVER server extension header.
624 with_sgi_req=unspecified
626 [Except where noted, all of the --with options below can also take a
627 directory argument: for example, --with-motif=/opt/Motif. That would
628 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
629 to be added to the -L list, assuming those directories exist.
631 X Server Extension options:
633 --with-sgi-ext Include support for the SGI SCREEN_SAVER
634 server extension, if possible (this is the default).
635 --without-sgi-ext Do not compile in support for this extension.],
636 [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
638 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
640 if test "$with_sgi" = yes; then
641 AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
643 AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)])
645 elif test "$with_sgi" != no; then
646 echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
650 # Check for the MIT-SCREEN-SAVER server extension header,
651 # unless the SGI extension has already been found.
654 with_mit_req=unspecified
656 [ --with-mit-ext Include support for the MIT-SCREEN-SAVER
657 server extension, if possible (this is the default).
658 --without-mit-ext Do not compile in support for this extension.],
659 [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
661 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
663 if test "$have_sgi" != yes; then
664 if test "$with_mit" = yes; then
665 AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes])
667 # Now check to see if it's really in the library; XF86Free-3.3 ships
668 # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
670 if test "$have_mit" = yes; then
671 AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [], [have_mit=no], -lm)
673 if test "$have_mit" = no; then
674 # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead
675 # of in Xext. Thank you master, may I have another.
676 AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
677 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
678 [], -lX11 -lXext -lm)
681 if test "$have_mit" = no; then
682 # Double fuck! Looks like some versions of XFree86 (whichever version
683 # it is that comes with RedHat Linux 2.0 -- I can't find a version
684 # number) put this garbage in Xss instead of Xext. Thank you master,
685 # may I have another.
686 AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
687 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
688 [], -lX11 -lXext -lm)
691 if test "$have_mit" = yes; then
692 AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
697 elif test "$with_mit" != no; then
698 echo "error: must be yes or no: --with-mit-ext=$with_mit"
704 # Check for the XIDLE server extension header.
707 with_xidle_req=unspecified
708 AC_ARG_WITH(xidle-ext,
709 [ --with-xidle-ext Include support for the XIDLE server extension,
710 if possible (this is the default).
711 --without-xidle-ext Do not compile in support for this extension.],
712 [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
714 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
716 if test "$with_xidle" = yes; then
717 AC_CHECK_X_HEADER(X11/extensions/xidle.h,
719 AC_DEFINE(HAVE_XIDLE_EXTENSION)])
720 elif test "$with_xidle" != no; then
721 echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
726 # Check for the XSHM server extension header.
729 with_xshm_req=unspecified
730 AC_ARG_WITH(xshm-ext,
731 [ --with-xshm-ext Include support for the XSHM (Shared Memory) server
732 extension, if possible (this is the default).
733 --without-xshm-ext Do not compile in support for this extension.],
734 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
736 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
738 if test "$with_xshm" = yes; then
740 # first check for Xshm.h.
741 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes])
743 # if that succeeded, then check for sys/ipc.h.
744 if test "$have_xshm" = yes; then
746 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
749 # if that succeeded, then check for sys/shm.h.
750 if test "$have_xshm" = yes; then
752 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
755 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
756 # to exist, but the library code to not exist. And even better, the library
757 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
758 # lib doesn't exist, give up.
763 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
764 [have_xshm=yes; SAVER_LIBS="$SAVER_LIBS -lXextSam"],
765 [], -lX11 -lXext -lm)
769 # if that succeeded, then we've really got it.
770 if test "$have_xshm" = yes; then
771 AC_DEFINE(HAVE_XSHM_EXTENSION)
774 elif test "$with_xshm" != no; then
775 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
780 # Check for the SGI-VIDEO-CONTROL server extension header.
783 with_sgivc_req=unspecified
784 AC_ARG_WITH(sgivc-ext,
785 [ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL server
786 extension, if possible (this is the default).
787 --without-sgivc-ext Do not compile in support for this extension.],
788 [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
790 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
792 if test "$with_sgivc" = yes; then
794 # first check for XSGIvc.h
795 AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes])
797 # if that succeeded, then check for the -lXsgivc
798 if test "$have_sgivc" = yes; then
800 AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
801 [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [],
805 # if that succeeded, then we've really got it.
806 if test "$have_sgivc" = yes; then
807 AC_DEFINE(HAVE_SGI_VC_EXTENSION)
810 elif test "$with_sgivc" != no; then
811 echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
816 # Check for the DPMS server extension header.
819 with_dpms_req=unspecified
820 AC_ARG_WITH(dpms-ext,
821 [ --with-dpms-ext Include support for the DPMS server extension,
822 if possible (this is the default).
823 --without-dpms-ext Do not compile in support for this extension.],
824 [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
826 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
828 if test "$with_dpms" = yes; then
830 # first check for dpms.h
831 AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes])
833 # if that succeeded, then check for the -lXdpms
834 if test "$have_dpms" = yes; then
836 AC_CHECK_X_LIB(Xdpms, DPMSInfo,
837 [have_dpms=yes; SAVER_LIBS="$SAVER_LIBS -lXdpms"], [],
841 # if that succeeded, then we've really got it.
842 if test "$have_dpms" = yes; then
843 AC_DEFINE(HAVE_DPMS_EXTENSION)
846 elif test "$with_dpms" != no; then
847 echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
852 # Check for /proc/interrupts
854 have_proc_interrupts=no
855 with_proc_interrupts_req=unspecified
856 AC_ARG_WITH(proc-interrupts,
857 [ --with-proc-interrupts Include support for consulting the /proc/interrupts
858 file to notice keyboard activity, if possible.
859 --without-proc-interrupts Do not compile in support for this method.],
860 [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
861 [with_proc_interrupts=yes])
863 if test "$with_proc_interrupts" = yes; then
865 AC_MSG_CHECKING(whether /proc/interrupts contains keyboard data)
866 AC_CACHE_VAL(ac_cv_have_proc_interrupts,
867 [ac_cv_have_proc_interrupts=no
868 if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
869 ac_cv_have_proc_interrupts=yes
872 have_proc_interrupts=$ac_cv_have_proc_interrupts
874 AC_MSG_RESULT($have_proc_interrupts)
876 if test "$have_proc_interrupts" = yes; then
877 AC_DEFINE(HAVE_PROC_INTERRUPTS)
880 elif test "$with_proc_interrupts" != no; then
881 echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
887 # Check for Motif and Athena --with and --without arguments.
892 with_motif_req=unspecified
893 with_athena_req=unspecified
896 X Client Toolkit options:
898 --with-motif Use the Motif toolkit for the user interface, if
899 possible (this is the default).
900 --without-motif Do not use Motif.],
901 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no])
903 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
906 [ --with-athena Use the Athena toolkit for the user interface, if
907 possible (this is the default if Motif isn't used.)
908 --without-athena Do not use Athena.],
909 [with_athena="$withval"; with_athena_req="$withval"],[with_athena=no])
911 HANDLE_X_PATH_ARG(with_athena, --with-athena, Athena)
913 if test "$with_motif" != yes -a "$with_motif" != no ; then
914 echo "error: must be yes or no: --with-motif=$with_motif"
918 if test "$with_athena" != yes -a "$with_athena" != no ; then
919 echo "error: must be yes or no: --with-athena=$with_athena"
924 # Saying --without-motif is the same as saying --with-athena.
925 if test "$with_motif_req" = no ; then
930 # Saying --without-athena is the same as saying --with-motif.
931 if test "$with_athena_req" = no ; then
936 # Check for Motif and Athena headers.
939 AC_CHECK_X_HEADER(Xm/Xm.h,
941 AC_DEFINE(HAVE_MOTIF)
942 TOOLKIT_LIBS="-lXm $TOOLKIT_LIBS"])
948 AC_CHECK_X_HEADER(X11/Xaw/Dialog.h, [have_athena=yes])
949 if test "$have_athena" = yes; then
950 AC_CHECK_X_LIB(Xaw3d, Xaw3dComputeTopShadowRGB,
951 [have_athena=yes; have_athena3d=yes], [],
952 -lXt -lXmu -lXext -lX11)
955 if test "$have_athena3d" = yes; then
956 TOOLKIT_LIBS="-lXaw3d $TOOLKIT_LIBS"
957 elif test "$have_athena" = yes; then
958 TOOLKIT_LIBS="-lXaw $TOOLKIT_LIBS"
963 # If they asked for both motif and athena, check motif then athena.
964 # If they asked for only motif, check motif then athena.
965 # If they asked for only athena, check athena then motif.
966 # If they asked for neither, check motif then athena.
968 proselytize_motif=yes
969 if test "$with_motif" = yes; then
970 # asked for both, or for motif only
972 if test "$have_motif" = yes; then
979 elif test "$with_athena" = yes; then
980 # asked for athena only
982 if test "$have_athena" = yes; then
992 if test "$have_motif" = yes; then
1000 if test "$have_motif" = yes; then
1001 proselytize_motif=no
1004 # If we have Athena, check whether it's a version that includes
1005 # XawViewportSetCoordinates in Viewport.h (R3 (or R4?) don't.)
1006 if test "$have_athena" = yes ; then
1007 AC_CACHE_CHECK([for XawViewportSetCoordinates in Viewport.h],
1008 ac_cv_have_XawViewportSetCoordinates,
1009 [ac_cv_have_XawViewportSetCoordinates=no
1010 AC_EGREP_X_HEADER(XawViewportSetCoordinates,
1012 ac_cv_have_XawViewportSetCoordinates=yes)])
1013 if test "$ac_cv_have_XawViewportSetCoordinates" = yes ; then
1014 AC_DEFINE(HAVE_XawViewportSetCoordinates)
1019 # If we have Motif, check whether it's really LessTif.
1022 if test "$have_motif" = yes ; then
1023 AC_CACHE_CHECK([whether Motif is really LessTif],
1025 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
1026 [long vers = LesstifVersion;],
1027 [ac_cv_have_lesstif=yes],
1028 [ac_cv_have_lesstif=no])])
1029 have_lesstif=$ac_cv_have_lesstif
1033 unset ac_cv_lesstif_version
1034 unset ac_cv_lesstif_version_string
1036 lesstif_version=unknown
1037 lesstif_version_string=unknown
1039 if test "$have_lesstif" = yes ; then
1041 echo unknown > conftest-lt
1042 AC_CACHE_CHECK([LessTif version number],
1043 ac_cv_lesstif_version_string,
1044 [AC_TRY_X_RUN([#include <stdio.h>
1047 FILE *f = fopen("conftest-lt", "w");
1049 fprintf(f, "%d %d.%d\n", LesstifVersion,
1050 LESSTIF_VERSION, LESSTIF_REVISION);
1054 [ltv=`cat conftest-lt`
1055 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
1056 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
1057 [ac_cv_lesstif_version=unknown
1058 ac_cv_lesstif_version_string=unknown],
1059 [ac_cv_lesstif_version=unknown
1060 ac_cv_lesstif_version_string=unknown])])
1062 lesstif_version=$ac_cv_lesstif_version
1063 lesstif_version_string=$ac_cv_lesstif_version_string
1068 if test "$have_motif" = yes ; then
1070 echo unknown > conftest-mt
1071 AC_CACHE_CHECK([Motif version number],
1072 ac_cv_motif_version_string,
1073 [AC_TRY_X_RUN([#include <stdio.h>
1076 FILE *f = fopen("conftest-mt", "w");
1078 fprintf(f, "%d %d.%d\n", XmVersion,
1079 XmVERSION, XmREVISION);
1083 [mtv=`cat conftest-mt`
1084 ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
1085 ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
1086 [ac_cv_motif_version=unknown
1087 ac_cv_motif_version_string=unknown],
1088 [ac_cv_motif_version=unknown
1089 ac_cv_motif_version_string=unknown])])
1091 motif_version=$ac_cv_motif_version
1092 motif_version_string=$ac_cv_motif_version_string
1097 # If this is Motif 2.x, and we have XPM, then link against XPM as well.
1098 # The deal is, Motif 2.x requires XPM -- but it's a compilation option of
1099 # the library whether to build the XPM code into libXm, or whether to rely
1100 # on an external libXm. So the only way to tell whether XPM is a link-time
1101 # requirement is to examine libXm.a, which is very difficult to do in an
1102 # autoconf script. So... if it's Motif 2.x, we always link against XPM if
1103 # the XPM lib exists (and this will be a no-op if libXm happens to already
1104 # have the XPM code in it.)
1106 motif_requires_xpm=no
1107 if test "$have_motif" = yes ; then
1108 AC_MSG_CHECKING(whether Motif requires XPM)
1109 if test "$motif_version" -ge 2000; then
1110 motif_requires_xpm=yes
1111 AC_MSG_RESULT(maybe)
1119 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
1120 # Extension". Why this extension isn't in -lXext with all the others,
1124 if test "$have_motif" = yes ; then
1126 AC_CHECK_X_LIB(Xp, XpQueryExtension,
1127 [have_xp_ext=yes; TOOLKIT_LIBS="$TOOLKIT_LIBS -lXp"],
1128 [], -lX11 -lXext -lm)
1132 # Check for _Xsetlocale in -lXintl, since at least some recent versions
1133 # of Motif (on Linux) need it.
1136 if test "$have_motif" = yes ; then
1137 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
1139 if test "$have_xintl" = yes; then
1140 TOOLKIT_LIBS="$TOOLKIT_LIBS -lXintl"
1145 # check for XPM header.
1148 with_xpm_req=unspecified
1150 Graphics Demo options:
1152 --with-xpm Include support for XPM files in some demos,
1153 if possible (this is the default).
1154 --without-xpm Do not compile in support for XPM files.],
1155 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
1157 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
1159 if test "$with_xpm" = yes; then
1160 AC_CHECK_X_HEADER(X11/xpm.h,
1164 elif test "$with_xpm" != no; then
1165 echo "error: must be yes or no: --with-xpm=$with_xpm"
1169 # See comment near $motif_requires_xpm, above.
1170 # Need to do this here, after both Motif and XPM have been checked for.
1172 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
1173 if test "$motif_requires_xpm" = yes ; then
1174 TOOLKIT_LIBS="$TOOLKIT_LIBS $XPM_LIBS"
1179 # check for the GL header
1183 with_gl_req=unspecified
1185 [ --with-gl Build those demos which depend on OpenGL,
1186 if possible (this is the default).
1187 --without-gl Do not build the OpenGL demos.],
1188 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
1190 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
1192 ac_mesagl_version=unknown
1193 ac_mesagl_version_string=unknown
1195 if test "$with_gl" = yes; then
1196 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
1197 if test "$have_gl" = yes ; then
1198 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no)
1201 # If we have the headers, try and figure out which vendor it's from.
1203 if test "$have_gl" = yes ; then
1207 # We need to know whether it's MesaGL so that we know which libraries
1210 AC_MSG_CHECKING(whether GL is really MesaGL)
1211 AC_CACHE_VAL(ac_cv_have_mesa_gl,
1212 [ac_cv_have_mesa_gl=no
1213 AC_EGREP_X_HEADER(Mesa, GL/glx.h, [ac_cv_have_mesa_gl=yes])
1215 ac_have_mesa_gl=$ac_cv_have_mesa_gl
1216 AC_MSG_RESULT($ac_have_mesa_gl)
1218 if test "$ac_have_mesa_gl" = no ; then
1220 GL_LIBS="-lGL -lGLU"
1222 AC_DEFINE(HAVE_MESA_GL)
1224 GL_LIBS="-lMesaGL -lMesaGLU"
1228 # If it's MesaGL, we'd like to issue a warning if the version number
1229 # is less than or equal to 2.6, because that version had a security bug.
1231 if test "$ac_have_mesa_gl" = yes; then
1233 # don't cache these.
1234 unset ac_cv_mesagl_version
1235 unset ac_cv_mesagl_version_string
1237 AC_MSG_CHECKING(MesaGL version number)
1238 AC_CACHE_VAL(ac_cv_mesagl_version_string,
1239 [cat > conftest.$ac_ext <<EOF
1240 #line __oline__ "configure"
1241 #include "confdefs.h"
1243 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
1246 ac_save_CPPFLAGS="$CPPFLAGS"
1247 if test \! -z "$includedir" ; then
1248 CPPFLAGS="$CPPFLAGS -I$includedir"
1250 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1254 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \
1255 's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
1258 rm -f conftest.$ac_ext
1260 CPPFLAGS="$ac_save_CPPFLAGS"
1262 if test "$mglv" = ""; then
1263 ac_mesagl_version=unknown
1264 ac_mesagl_version_string=unknown
1266 ac_mesagl_version_string=$mglv
1267 maj=`echo $mglv | sed -n 's/\..*//p'`
1268 min=`echo $mglv | sed -n 's/.*\.//p'`
1269 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
1270 if test -z "$ac_mesagl_version"; then
1271 ac_mesagl_version=unknown
1272 ac_mesagl_version_string=unknown
1275 ac_cv_mesagl_version=$ac_mesagl_version
1276 ac_cv_mesagl_version_string=$ac_mesagl_version_string
1278 ac_mesagl_version=$ac_cv_mesagl_version
1279 ac_mesagl_version_string=$ac_cv_mesagl_version_string
1280 AC_MSG_RESULT($ac_cv_mesagl_version_string)
1284 # If it's MesaGL, check to see if it requires -lpthread.
1287 mesa_requires_pthread=no
1288 if test "$ac_have_mesa_gl" = yes; then
1290 AC_CHECK_LIB(pthread, pthread_create, [have_pthread=yes], [],)
1291 if test "$have_pthread" = yes; then
1292 AC_CHECK_X_LIB($gl_lib_1, gl_get_thread_context,
1293 [mesa_requires_pthread=yes], [],
1294 $GL_LIBS -lpthread -lX11 -lXext -lm)
1297 if test "$mesa_requires_pthread" = yes; then
1298 GL_LIBS="$GL_LIBS -lpthread"
1302 # Check for OpenGL 1.1 features.
1304 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
1305 [], $GL_LIBS -lX11 -lXext -lm)
1309 elif test "$with_gl" != no; then
1310 echo "error: must be yes or no: --with-gl=$with_gl"
1315 # check for SGI XReadDisplay server extension header.
1318 with_readdisplay_req=unspecified
1319 AC_ARG_WITH(readdisplay,
1320 [ --with-readdisplay Include support for the XReadDisplay server
1321 extension if possible (this is the default).
1322 --without-readdisplay Do not compile in support for this extension.],
1323 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
1324 [with_readdisplay=yes])
1326 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
1328 if test "$with_readdisplay" = yes; then
1329 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
1330 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION))
1331 elif test "$with_readdisplay" != no; then
1332 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
1337 # check for SGI's Iris Video Library header.
1340 with_sgivideo_req=unspecified
1341 AC_ARG_WITH(sgivideo,
1342 [ --with-sgivideo Include support for SGI's Iris Video Library
1343 if possible (this is the default).
1344 --without-sgivideo Do not compile in support for this library.],
1345 [with_sgivideo="$withval"; with_sgivideo_req="$withval"],
1346 [with_sgivideo=yes])
1348 HANDLE_X_PATH_ARG(with_sgivideo, --with-sgivideo, Iris Video)
1350 if test "$with_sgivideo" = yes; then
1351 AC_CHECK_X_HEADER(dmedia/vl.h, have_sgivideo=yes)
1352 if test "$have_sgivideo" = yes; then
1354 AC_CHECK_LIB(vl, vlOpenVideo, have_sgivideo=yes)
1355 if test "$have_sgivideo" = yes; then
1356 SGI_VIDEO_OBJS="$(UTILS_BIN)/sgivideo.o"
1357 SGI_VIDEO_LIBS="-lvl"
1358 AC_DEFINE(HAVE_SGI_VIDEO)
1361 elif test "$with_sgivideo" != no; then
1362 echo "error: must be yes or no: --with-sgivideo=$with_sgivideo"
1368 # Try to find a program to generate random text.
1370 # Zippy is funnier than the idiocy generally spat out by `fortune',
1371 # so try to find that, by invoking Emacs and asking it where its
1372 # libexec directory is ("yow" lives in there.)
1374 # If that doesn't work, see if fortune, zippy, or yow are on $PATH,
1375 # and if so, use them.
1377 # If that doesn't work, look in /usr/games, and if it's there, use
1378 # the full pathname.
1382 [ --with-zippy=PROGRAM Some demos are able to run an external program and
1383 display its text; this names the program to use by
1384 default (though it can be overridden with X
1385 resources.) If you don't specify this, the default
1386 is to use \"yow\" from the Emacs distribution (if you
1387 have it) or else to use \"fortune\".],
1388 [ with_zippy_req="$withval"; with_zippy="$withval" ],
1389 [ with_zippy_req="$withval"; with_zippy="$withval" ])
1391 if test "$with_zippy" = no || test "$with_zippy" = yes ; then
1396 if test -n "$with_zippy_req" ; then
1397 ac_cv_zippy_program=""
1398 case "$with_zippy_req" in
1400 AC_MSG_CHECKING([for $with_zippy_req])
1401 if test -x "$with_zippy_req" ; then
1410 unset ac_cv_path_zip2
1411 AC_PATH_PROG(zip2, $with_zippy_req, [])
1412 if test "$zip2" = ""; then
1417 ac_cv_zippy_program="$with_zippy"
1419 elif test -n "$ac_cv_zippy_program"; then
1420 AC_MSG_RESULT([checking for zippy... (cached) $ac_cv_zippy_program])
1423 if test ! -n "$ac_cv_zippy_program"; then
1425 AC_CHECK_PROGS(emacs_exe, emacs)
1426 AC_CHECK_PROGS(xemacs_exe, xemacs)
1428 ac_cv_zippy_program=""
1429 eargs='-batch -q -nw --eval'
1431 if test -n "$emacs_exe" ; then
1432 AC_MSG_CHECKING([for emacs yow])
1434 # get emacs to tell us where the libexec directory is.
1436 dir=`$emacs_exe $eargs '(princ (concat exec-directory "\n"))' \
1437 2>/dev/null | tail -1`
1438 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
1440 # try running libexec/yow and see if it exits without error.
1442 if test x"$dir" != x -a -x "$dir/yow" ; then
1443 if $dir/yow >&- 2>&- ; then
1444 ac_cv_zippy_program="$dir/yow"
1445 AC_MSG_RESULT($ac_cv_zippy_program)
1452 if test -z "$ac_cv_zippy_program" ; then
1453 AC_MSG_CHECKING([for xemacs yow])
1454 if test -n "$xemacs_exe" ; then
1456 # get xemacs to tell us where the libexec directory is.
1458 dir=`$xemacs_exe $eargs '(princ (concat exec-directory "\n"))' \
1459 2>/dev/null | tail -1`
1460 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
1462 # try running libexec/yow and see if it exits without error.
1464 if test x"$dir" != x -a -x "$dir/yow" ; then
1465 if $dir/yow >&- 2>&- ; then
1466 ac_cv_zippy_program="$dir/yow"
1467 AC_MSG_RESULT($ac_cv_zippy_program)
1470 # in some xemacs installations, the pathname of the yow.lines file
1471 # isn't hardcoded into the yow executable, and must be passed on
1472 # the command line. See if it's in libexec/../etc/.
1476 dir_up=`echo "$dir" | sed 's@/[^/]*$@@'`
1479 yow="yow -f $dir_up/etc/yow.lines"
1480 if $dir/$yow >&- 2>&- ; then
1481 ac_cv_zippy_program="$dir/$yow"
1482 AC_MSG_RESULT($ac_cv_zippy_program)
1491 # if that didn't work, try for some other programs...
1492 if test -z "$ac_cv_zippy_program" ; then
1494 AC_CHECK_PROGS(fortune, [fortune zippy yow])
1495 # if that didn't work, try for those programs in /usr/games...
1496 if test -z "$fortune" ; then
1497 AC_PATH_PROGS(fortune, [fortune zippy yow], fortune,
1498 /usr/games:/usr/local/games)
1503 if test -z "$ac_cv_zippy_program" ; then
1504 ac_cv_zippy_program=fortune
1507 AC_DEFINE_UNQUOTED(ZIPPY_PROGRAM, "$ac_cv_zippy_program")
1512 # Allow locking to be disabled at compile-time.
1515 with_kerberos_req=unspecified
1517 with_shadow_req=unspecified
1519 with_pam_req=unspecified
1522 AC_ARG_ENABLE(locking,[
1523 Screen Locking options:
1525 --enable-locking Compile in support for locking the display
1526 (this is the default.)
1527 --disable-locking Do not allow locking at all.],
1528 [enable_locking="$enableval"],[enable_locking=yes])
1529 if test "$enable_locking" = yes; then
1531 elif test "$enable_locking" = no; then
1532 AC_DEFINE(NO_LOCKING)
1534 echo "error: must be yes or no: --enable-locking=$enable_locking"
1540 # Check to see if we can lock Virtual-Terminal switching, but allow that
1541 # to be disabled at compile-time.
1544 AC_ARG_ENABLE(vt-locking,[
1545 --enable-vt-locking Compile in support for locking Virtual Terminals.
1546 This is the default if the system supports it, and
1547 if locking support is included (--enable-locking.)
1548 --disable-vt-locking Do not allow locking of VTs, even if locking is
1550 [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1551 if test "$enable_vt_locking" = yes; then
1553 AC_MSG_CHECKING(for the VT_LOCKSWITCH ioctl)
1554 AC_CACHE_VAL(ac_cv_vt_lockswitch,
1555 [AC_TRY_COMPILE([#include <fcntl.h>
1556 #include <sys/ioctl.h>
1557 #include <sys/vt.h>],
1558 [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1559 [ac_cv_vt_lockswitch=yes],
1560 [ac_cv_vt_lockswitch=no])])
1561 ac_vt_lockswitch=$ac_cv_vt_lockswitch
1562 AC_MSG_RESULT($ac_vt_lockswitch)
1564 elif test "$enable_vt_locking" = no; then
1567 echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1571 if test "$ac_vt_lockswitch" = yes; then
1572 AC_DEFINE(HAVE_VT_LOCKSWITCH)
1573 # the VT_LOCKSWITCH ioctl can only be used when running as root.
1574 # #### but it doesn't work yet, so don't worry about that for now.
1580 if test "$enable_locking" = yes; then
1582 # Check for Kerberos.
1584 AC_ARG_WITH(kerberos, [
1585 --with-kerberos Include support for Kerberos authentication,
1586 if possible (this is the default.)
1587 --without-kerberos Do not compile in support for Kerberos.],
1588 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1590 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1592 if test "$with_kerberos" = yes; then
1593 AC_CACHE_CHECK([for Kerberos], ac_cv_kerberos,
1594 [AC_TRY_X_COMPILE([#include <krb.h>],,
1595 [ac_cv_kerberos=yes],
1596 [ac_cv_kerberos=no])])
1597 if test "$ac_cv_kerberos" = yes ; then
1599 AC_DEFINE(HAVE_KERBEROS)
1601 # from Tim Showalter <tjs+@andrew.cmu.edu>
1602 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes"
1603 AC_CHECK_FUNC(res_search,,
1604 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1605 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1609 elif test "$with_kerberos" != no; then
1610 echo "error: must be yes or no: --with-kerberos=$with_kerberos"
1616 [ --with-pam Include support for PAM (Pluggable Authentication
1617 Modules) if possible (this is the default.)
1618 --without-pam Do not compile in support for PAM.],
1619 [with_pam="$withval"; with_pam_req="$withval"],[with_pam=no])
1620 #### Leave PAM off by default for now, since it's buggy on Solaris
1621 #### (and probably Linux, but it's so hard to tell...)
1623 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1625 if test "$with_pam" = yes; then
1626 AC_CACHE_CHECK([for PAM], ac_cv_pam,
1627 [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1630 if test "$ac_cv_pam" = yes ; then
1633 PASSWD_LIBS="${PASSWD_LIBS} -lpam -ldl"
1635 elif test "$with_pam" != no; then
1636 echo "error: must be yes or no: --with-pam=$with_pam"
1640 # Next, check for the nine billion variants of shadow passwords...
1644 [ --with-shadow Include support for shadow password authentication,
1645 if possible (this is the default, if no Kerberos or
1647 --without-shadow Do not compile in support for shadow passwords.
1649 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1651 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1653 if test "$with_shadow" = no; then
1654 pwent_cruft_done=yes
1655 elif test "$with_shadow" != yes; then
1656 echo "error: must be yes or no: --with-shadow=$with_shadow"
1661 # Sun's "adjunct" passwords.
1663 if test "$pwent_cruft_done" = no ; then
1664 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1665 [AC_TRY_X_COMPILE([#include <stdlib.h>
1667 #include <sys/types.h>
1668 #include <sys/label.h>
1669 #include <sys/audit.h>
1670 #include <pwdadj.h>],
1671 [struct passwd_adjunct *p = getpwanam("nobody");
1672 const char *pw = p->pwa_passwd;],
1673 [ac_cv_sun_adjunct=yes],
1674 [ac_cv_sun_adjunct=no])])
1675 if test "$ac_cv_sun_adjunct" = yes; then
1678 pwent_cruft_done=yes
1679 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1683 # DEC and SCO so-called "enhanced" security.
1685 if test "$pwent_cruft_done" = no ; then
1686 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1687 [AC_TRY_X_COMPILE([#include <stdlib.h>
1689 #include <sys/types.h>
1691 #include <sys/security.h>
1693 [struct pr_passwd *p;
1695 set_auth_parameters(0, 0);
1696 check_auth_parameters();
1697 p = getprpwnam("nobody");
1698 pw = p->ufld.fd_encrypt;],
1699 [ac_cv_enhanced_passwd=yes],
1700 [ac_cv_enhanced_passwd=no])])
1701 if test $ac_cv_enhanced_passwd = yes; then
1704 pwent_cruft_done=yes
1705 AC_DEFINE(HAVE_ENHANCED_PASSWD)
1707 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1708 # (I'm told it needs -lcurses too, but I don't understand why.)
1709 AC_CHECK_LIB(prot, getprpwnam,
1710 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1711 [# On DEC, getprpwnam() is in -lsecurity
1712 AC_CHECK_LIB(security, getprpwnam,
1713 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1718 # HP's entry in the "Not Invented Here" Sweepstakes.
1720 if test "$pwent_cruft_done" = no ; then
1721 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1722 [AC_TRY_X_COMPILE([#include <stdlib.h>
1724 #include <sys/types.h>
1726 #include <hpsecurity.h>
1728 [struct s_passwd *p = getspwnam("nobody");
1729 const char *pw = p->pw_passwd;],
1730 [ac_cv_hpux_passwd=yes],
1731 [ac_cv_hpux_passwd=no])])
1732 if test "$ac_cv_hpux_passwd" = yes; then
1735 pwent_cruft_done=yes
1736 AC_DEFINE(HAVE_HPUX_PASSWD)
1738 # on HPUX, bigcrypt is in -lsec
1739 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1743 # Traditional (ha!) shadow passwords.
1745 if test "$pwent_cruft_done" = no ; then
1746 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1747 [AC_TRY_X_COMPILE([#include <stdlib.h>
1749 #include <sys/types.h>
1751 #include <shadow.h>],
1752 [struct spwd *p = getspnam("nobody");
1753 const char *pw = p->sp_pwdp;],
1755 [ac_cv_shadow=no])])
1756 if test "$ac_cv_shadow" = yes; then
1759 pwent_cruft_done=yes
1760 AC_DEFINE(HAVE_SHADOW_PASSWD)
1762 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1764 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1765 if test "$have_getspnam" = no ; then
1766 AC_CHECK_LIB(gen, getspnam,
1767 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1772 # On FreeBSD, getpwnam() and friends work just like on non-shadow-password
1773 # systems -- except you only get stuff in the pw_passwd field if the running
1774 # program is setuid. So, guess that we've got this lossage to contend with
1775 # if /etc/master.passwd exists, and default to a setuid installation.
1777 if test "$pwent_cruft_done" = no ; then
1778 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1779 [if test -f /etc/master.passwd ; then
1780 ac_cv_master_passwd=yes
1782 ac_cv_master_passwd=no
1784 if test "$ac_cv_master_passwd" = yes; then
1786 pwent_cruft_done=yes
1790 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1792 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1793 if test "$have_crypt" = no ; then
1794 AC_CHECK_LIB(crypt, crypt,
1795 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1799 # Most of the above shadow mechanisms will have set need_setuid to yes,
1800 # if they were found. But, on some systems, we need setuid even when
1801 # using plain old vanilla passwords.
1803 if test "$need_setuid" = no ; then
1805 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1814 if test \! -z "$includedir" ; then
1815 INCLUDES="-I$includedir"
1818 if test \! -z "$libdir" ; then
1819 LDFLAGS="$LDFLAGS -L$libdir"
1823 ##### should have options to override the DEPEND crap, I guess...
1829 # Done testing things -- now substitute in some stuff for the Makefiles.
1831 if test "$have_motif" = yes; then
1832 AC_DEFINE(HAVE_MOTIF)
1833 TOOLKIT_SRCS='$(MOTIF_SRCS)'
1834 TOOLKIT_OBJS='$(MOTIF_OBJS)'
1835 elif test "$have_athena" = yes; then
1836 AC_DEFINE(HAVE_ATHENA)
1837 TOOLKIT_SRCS='$(ATHENA_SRCS)'
1838 TOOLKIT_OBJS='$(ATHENA_OBJS)'
1844 if test "$have_kerberos" = yes; then
1845 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
1846 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
1848 if test "$have_pam" = yes; then
1849 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
1850 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
1851 INSTALL_PAM="install-pam"
1853 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
1854 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
1857 if test "$enable_locking" = yes; then
1858 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
1859 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
1865 if test "$need_setuid" = yes; then
1867 INSTALL_SETUID='$(INSTALL) $(SUID_FLAGS)'
1870 INSTALL_SETUID='$(INSTALL_PROGRAM)'
1874 if test "$have_gl" = yes; then
1875 GL_EXES='$(GL_EXES)'
1878 GL_KLUDGE=' -'${tab}
1883 AC_SUBST(SAVER_LIBS)
1884 AC_SUBST(TOOLKIT_LIBS)
1888 AC_SUBST(PASSWD_LIBS)
1889 AC_SUBST(INSTALL_SETUID)
1890 AC_SUBST(INSTALL_DIRS)
1891 AC_SUBST(NEED_SETUID)
1892 AC_SUBST(INSTALL_PAM)
1893 AC_SUBST(SGI_VIDEO_OBJS)
1894 AC_SUBST(SGI_VIDEO_LIBS)
1896 AC_SUBST(TOOLKIT_SRCS)
1897 AC_SUBST(TOOLKIT_OBJS)
1898 AC_SUBST(PASSWD_SRCS)
1899 AC_SUBST(PASSWD_OBJS)
1907 AC_SUBST(APPDEFAULTS)
1910 AC_SUBST(DEPEND_FLAGS)
1911 AC_SUBST(DEPEND_DEFINES)
1913 # Print some warnings before emitting the Makefiles.
1915 warn_prefix_1=" Warning:"
1916 warn_prefix_2=" Note:"
1917 warn_prefix="$warn_prefix_1"
1920 warnsep=' #################################################################'
1923 if test "$warning" = no ; then
1924 echo '' ; echo "$warnsep" ; echo ''
1931 if test "$warning" = long ; then echo '' ; fi
1933 echo "$warn_prefix $@"
1940 if test "$was" != no ; then echo '' ; fi
1941 echo "$warn_prefix $@"
1950 warn_prefix="$warn_prefix_2"
1952 warn_prefix="$warn_prefix_1"
1956 warn_prefix="$warn_prefix_2"
1958 warn_prefix="$warn_prefix_1"
1962 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
1963 warn 'The SGI saver extension was requested, but was not found.'
1966 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
1967 warn 'The MIT saver extension was requested, but was not found.'
1970 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
1971 warn 'The XIdle extension was requested, but was not found.'
1974 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
1975 warn 'The XSHM extension was requested, but was not found.'
1978 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
1979 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
1982 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
1983 warn 'The DPMS extension was requested, but was not found.'
1986 if test "$have_motif" = no -a "$have_athena" = no ; then
1987 warnL "Neither Motif nor Athena widgets seem to be available;"
1988 warn2 "the \`xscreensaver-demo' program requires one or the"
1990 proselytize_motif=no
1992 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
1993 warnL "Use of Motif was requested, but it wasn't found;"
1994 warn2 "Athena will be used instead."
1996 elif test "$with_athena_req" = yes -a "$have_athena" = no ; then
1997 warnL "Use of Athena was requested, but it wasn't found;"
1998 warn2 "Motif will be used instead."
2001 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
2003 preferred_lesstif=0.86
2005 if test "$lesstif_version" = unknown; then
2006 warnL "Unable to determine the LessTif version number!"
2007 warn2 "Make sure you are using version $preferred_lesstif or newer."
2008 warn2 "See <http://www.lesstif.org/>."
2010 elif test \! $lesstif_version -gt 82; then
2011 warnL "LessTif version $lesstif_version_string is being used."
2012 warn2 "LessTif versions 0.82 and earlier are too buggy to"
2013 warn2 "use with XScreenSaver; it is strongly recommended"
2014 warn2 "that you upgrade to at least version $preferred_lesstif!"
2015 warn2 "See <http://www.lesstif.org/>."
2019 if test "$proselytize_motif" = yes ; then
2020 warnL "Athena widgets are being used instead of Motif."
2021 warn2 "The \`xscreensaver-demo' program looks much better"
2022 warn2 "with Motif. Wouldn't you rather be using Motif?"
2023 warn2 "It is shipped by every commercial Unix vendor;"
2024 warn2 "and there is a free implementation available as"
2025 warn2 "well: see <http://www.lesstif.org/>."
2029 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
2030 preferred_mesagl=3.0
2032 if test "$ac_mesagl_version" = unknown; then
2033 warnL "Unable to determine the MesaGL version number!"
2034 warn2 "Make sure you are using version $preferred_mesagl or newer."
2036 elif test \! "$ac_mesagl_version" -gt 2006; then
2037 warnL "MesaGL version $ac_mesagl_version_string is being used."
2038 warn2 "MesaGL versions 2.6 and earlier have a security bug."
2039 warn2 "It is strongly recommended that you upgrade to at"
2040 warn2 "least version $preferred_mesagl."
2045 if test "$have_xpm" = no ; then
2046 if test "$with_xpm_req" = yes ; then
2047 warnL 'Use of XPM was requested, but it was not found.'
2048 elif test "$with_xpm_req" = no ; then
2049 noteL 'The XPM library is not being used.'
2051 noteL 'The XPM library was not found.'
2055 warn2 'Some of the demos will not be as colorful as they'
2056 warn2 'could be. You might want to consider installing XPM'
2057 warn2 'and re-running configure. (Remember to delete the'
2058 warn2 'config.cache file first.) You can find XPM at most'
2059 warn2 'X11 archive sites, such as <http://sunsite.unc.edu/>.'
2062 if test "$have_gl" = no ; then
2063 if test "$with_gl_req" = yes ; then
2064 warnL 'Use of GL was requested, but it was not found.'
2065 elif test "$with_gl_req" = no ; then
2066 noteL 'The OpenGL 3D library is not being used.'
2068 noteL 'The OpenGL 3D library was not found.'
2072 warn2 'Those demos which use 3D will not be built or installed.'
2073 warn2 'You might want to consider installing OpenGL and'
2074 warn2 're-running configure. (Remember to delete the'
2075 warn2 "config.cache file first.) If your vendor doesn't ship"
2076 warn2 'their own implementation of OpenGL, you can get a free'
2077 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
2078 warn2 'info, see <http://www.opengl.org/>.'
2082 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
2083 warn 'Use of XReadDisplay was requested, but it was not found.'
2086 if test "$with_sgivideo_req" = yes -a "$have_sgivideo" = no ; then
2087 warn 'Use of the Iris Video Library was requested, but it was not found.'
2090 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
2091 warn 'Use of Kerberos was requested, but it was not found.'
2094 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
2095 warn 'Use of PAM was requested, but it was not found.'
2098 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
2099 warn 'Use of shadow passwords was requested, but they were not found.'
2102 if test -n "$with_zippy_req"; then
2103 if test "$with_zippy_req" != "$ac_cv_zippy_program" ; then
2104 warnL "$with_zippy_req was requested as the Zippy program,"
2105 warn2 "but was not found. The default will be used instead."
2109 if test "$warning" != no; then
2110 echo '' ; echo "$warnsep" ; echo ''
2119 driver/XScreenSaver.ad)
2121 # You are in a twisty maze of namespaces and syntaxes, all alike.
2122 # Fuck the skull of Unix.
2124 eval bindir=${bindir}
2125 eval bindir=${bindir}
2126 eval bindir=${bindir}
2127 eval bindir=${bindir}
2128 eval bindir=${bindir}
2129 eval bindir=${bindir}
2130 eval HACKDIR=${HACKDIR}
2131 eval HACKDIR=${HACKDIR}
2132 eval HACKDIR=${HACKDIR}
2133 eval HACKDIR=${HACKDIR}
2134 eval HACKDIR=${HACKDIR}
2135 eval HACKDIR=${HACKDIR}
2137 # canonicalize slashes.
2138 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
2139 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
2141 if test "${bindir}" = "${HACKDIR}" ; then
2145 echo ' When you run "make install", the "xscreensaver",'
2146 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
2147 echo " will be installed in ${bindir}."
2149 echo " The various graphics demos (80+ different executables) will"
2150 echo " also be installed in ${HACKDIR}."
2152 echo " If you would prefer the demos to be installed elsewhere"
2153 echo " (for example, in a dedicated directory) you should re-run"
2154 echo " configure with the --enable-subdir=DIR option. For more"
2155 echo " information, run $0 --help."