1 # configure.in --- xscreensaver, Copyright (c) 1997 Jamie Zawinski.
4 AC_INIT(driver/subprocs.c)
5 AC_CONFIG_HEADER(config.h)
10 if test -z "$GCC"; then
11 AC_MSG_CHECKING(how to request ANSI compilation)
14 AC_MSG_RESULT(HPUX: adding -Ae)
18 AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e)
19 CC="$CC -qlanglvl=ansi -qhalt=e"
23 AC_MSG_RESULT(DEC: adding -std1)
28 AC_MSG_RESULT(no idea)
34 AC_MSG_CHECKING([whether the compiler works on ANSI C])
35 AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
38 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
39 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
43 if test -n "$GCC"; then
44 AC_MSG_RESULT(Turning on gcc compiler warnings.)
45 CC="$CC -Wall -Wstrict-prototypes -Wnested-externs -Wno-format"
48 AC_MSG_RESULT(Turning on SGI compiler warnings.)
49 CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
54 AC_MSG_RESULT(Turning on gcc compiler warnings.)
55 CC="$CC -Wall -Wstrict-prototypes -Wnested-externs -Wno-format"
59 # if test -z "$GCC"; then
60 # AC_MSG_RESULT(Turning on DEC C compiler warnings.)
61 # CC="$CC -migrate -w0 -verbose -warnprotos"
68 # Try and determine whether ${INSTALL} can create intermediate directories,
69 # and if not, whether "mkdir -p" works instead. This sets ${INSTALL_DIRS}.
70 # (But autoconf should earn its keep and do this for us!)
72 AC_DEFUN(AC_PROG_INSTALL_DIRS,
73 [INSTALL_DIRS='${INSTALL} -d'
74 AC_MSG_CHECKING(whether \"\${INSTALL} -d\" creates intermediate directories)
76 if mkdir conftestdir; then
79 ${INSTALL} -d `pwd`/dir1/dir2 >&- 2>&-
80 if test -d dir1/dir2 ; then
84 AC_MSG_CHECKING(whether \"mkdir -p\" creates intermediate directories)
86 mkdir -p dir1/dir2 >&- 2>&-
87 if test -d dir1/dir2/. ; then
89 INSTALL_DIRS='mkdir -p'
118 AC_MSG_CHECKING(how to call gettimeofday)
119 AC_CACHE_VAL(ac_cv_gettimeofday_args,
120 [AC_TRY_COMPILE([#include <stdlib.h>
121 #include <sys/time.h>],
122 [struct timeval tv; struct timezone tzp;
123 gettimeofday(&tv, &tzp);],
124 [ac_gettimeofday_args=2],
125 [AC_TRY_COMPILE([#include <stdlib.h>
126 #include <sys/time.h>],
127 [struct timeval tv; gettimeofday(&tv);],
128 [ac_gettimeofday_args=1],
129 [ac_gettimeofday_args=0])])
130 ac_cv_gettimeofday_args=$ac_gettimeofday_args])
131 ac_gettimeofday_args=$ac_cv_gettimeofday_args
132 if test $ac_gettimeofday_args = 1 ; then
133 AC_DEFINE(HAVE_GETTIMEOFDAY)
134 AC_MSG_RESULT(one argument)
135 elif test $ac_gettimeofday_args = 2 ; then
136 AC_DEFINE(HAVE_GETTIMEOFDAY)
137 AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
138 AC_MSG_RESULT(two arguments)
140 AC_MSG_RESULT(unknown)
144 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv)
145 AC_CHECK_FUNCS(sigaction)
147 AC_CHECK_HEADERS(unistd.h)
149 dnl /usr/local/src/ssh-1.2.17/putenv.c -- AC_REPLACE_FUNCS(putenv)
152 AC_ARG_ENABLE(subdir,[
153 Installation options:
155 --enable-subdir=DIR Put the demo programs in a subdirectory of \`bindir',
156 instead of putting them in bindir itself. You can
157 specify the name of the subdirectory. For example,
158 --exec-prefix=/usr/local/bin --enable-subdir=demos
159 would put xscreensaver in /usr/local/bin/, and would
160 put the demos in /usr/local/bin/demos/. (If DIR
161 begins with /, then bindir will not be prepended.)
163 --disable-subdir Just put the demos in \`bindir' (this is the default.)
165 [enable_subdir="$enableval"],[enable_subdir=no])
166 if test x"$enable_subdir" = xno; then
168 elif test x"$enable_subdir" = xyes -o x"$enable_subdir" = x ; then
169 echo "error: must be a subdirectory name: --enable-subdir=$enable_subdir"
172 # there must be a better way than this...
173 if test -z "`echo $enable_subdir | sed 's@^/.*@@'`" ; then
175 HACKDIR=$enable_subdir
178 HACKDIR='${bindir}/'$enable_subdir
185 # Try and find the app-defaults directory.
186 # It sucks that autoconf doesn't do this already...
188 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
190 if mkdir conftestdir; then
192 # Make sure to not put "make" in the Imakefile rules, since we grep it out.
193 cat > Imakefile <<'EOF'
195 @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
197 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
198 # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
199 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
205 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
206 # Look for the directory under a standard set of common directories.
207 # Check X11 before X11Rn because it's often a symlink to the current release.
209 /usr/X11/lib/app-defaults \
210 /usr/X11R6/lib/app-defaults \
211 /usr/X11R6/lib/X11/app-defaults \
212 /usr/X11R5/lib/app-defaults \
213 /usr/X11R5/lib/X11/app-defaults \
214 /usr/X11R4/lib/app-defaults \
215 /usr/X11R4/lib/X11/app-defaults \
217 /usr/lib/X11/app-defaults \
218 /usr/lib/X11R6/app-defaults \
219 /usr/lib/X11R5/app-defaults \
220 /usr/lib/X11R4/app-defaults \
222 /usr/local/X11/lib/app-defaults \
223 /usr/local/X11R6/lib/app-defaults \
224 /usr/local/X11R5/lib/app-defaults \
225 /usr/local/X11R4/lib/app-defaults \
227 /usr/local/lib/X11/app-defaults \
228 /usr/local/lib/X11R6/app-defaults \
229 /usr/local/lib/X11R6/X11/app-defaults \
230 /usr/local/lib/X11R5/app-defaults \
231 /usr/local/lib/X11R5/X11/app-defaults \
232 /usr/local/lib/X11R4/app-defaults \
233 /usr/local/lib/X11R4/X11/app-defaults \
235 /usr/X386/lib/X11/app-defaults \
236 /usr/x386/lib/X11/app-defaults \
237 /usr/XFree86/lib/X11/app-defaults \
239 /usr/lib/X11/app-defaults \
240 /usr/local/lib/X11/app-defaults \
241 /usr/unsupported/lib/X11/app-defaults \
242 /usr/athena/lib/X11/app-defaults \
243 /usr/local/x11r5/lib/X11/app-defaults \
244 /usr/lpp/Xamples/lib/X11/app-defaults \
245 /lib/usr/lib/X11/app-defaults \
247 /usr/openwin/lib/app-defaults \
248 /usr/openwin/lib/X11/app-defaults \
249 /usr/openwin/share/lib/app-defaults \
250 /usr/openwin/share/lib/X11/app-defaults \
252 /X11R6/lib/app-defaults \
253 /X11R5/lib/app-defaults \
254 /X11R4/lib/app-defaults \
257 if test -d "$ac_dir"; then
258 ac_x_app_defaults=$ac_dir
265 AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
267 AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
268 [AC_PATH_X_APP_DEFAULTS_XMKMF
269 if test x"$ac_x_app_defaults" = x; then
270 AC_PATH_X_APP_DEFAULTS_DIRECT
272 if test x"$ac_x_app_defaults" = x; then
273 ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
275 # Record where we found app-defaults for the cache.
276 ac_cv_x_app_defaults="$ac_x_app_defaults"
278 eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
280 AC_PATH_X_APP_DEFAULTS
282 APPDEFAULTS=$ac_x_app_defaults
285 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
287 AC_DEFUN(AC_CHECK_X_HEADER, [
288 ac_save_CPPFLAGS="$CPPFLAGS"
289 if test \! -z "$includedir" ; then
290 CPPFLAGS="$CPPFLAGS -I$includedir"
292 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
293 AC_CHECK_HEADER([$1], [$2])
294 CPPFLAGS="$ac_save_CPPFLAGS"])
296 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
298 AC_DEFUN(AC_EGREP_X_HEADER, [
299 ac_save_CPPFLAGS="$CPPFLAGS"
300 if test \! -z "$includedir" ; then
301 CPPFLAGS="$CPPFLAGS -I$includedir"
303 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
304 AC_EGREP_HEADER([$1], [$2], [$3], [$4])
305 CPPFLAGS="$ac_save_CPPFLAGS"])
307 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
309 AC_DEFUN(AC_TRY_X_COMPILE, [
310 ac_save_CPPFLAGS="$CPPFLAGS"
311 if test \! -z "$includedir" ; then
312 CPPFLAGS="$CPPFLAGS -I$includedir"
314 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
315 AC_TRY_COMPILE([$1], [$2], [$3], [$4])
316 CPPFLAGS="$ac_save_CPPFLAGS"])
319 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
320 # Use this sparingly; it probably doesn't work very well on X programs.
322 AC_DEFUN(AC_CHECK_X_LIB, [
323 ac_save_CPPFLAGS="$CPPFLAGS"
324 ac_save_LDFLAGS="$LDFLAGS"
325 if test \! -z "$includedir" ; then
326 CPPFLAGS="$CPPFLAGS -I$includedir"
328 if test \! -z "$includedir" ; then
329 CPPFLAGS="$CPPFLAGS -I$includedir"
331 if test \! -z "$libdir" ; then
332 LDFLAGS="$LDFLAGS -L$libdir"
334 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
335 if test \! -z "$x_libraries" ; then
336 LDFLAGS="$LDFLAGS -L$x_libraries"
338 AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
339 CPPFLAGS="$ac_save_CPPFLAGS"
340 LDFLAGS="$ac_save_LDFLAGS"])
342 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
343 # (But not the -L directories!)
345 AC_DEFUN(AC_TRY_X_RUN, [
346 ac_save_CPPFLAGS="$CPPFLAGS"
347 if test \! -z "$includedir" ; then
348 CPPFLAGS="$CPPFLAGS -I$includedir"
350 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
351 AC_TRY_RUN([$1], [$2], [$3], [$4])
352 CPPFLAGS="$ac_save_CPPFLAGS"])
356 # Usage: HANDLE_X_PATH_ARG([variable_name],
357 # [--command-line-option],
358 # [descriptive string])
360 # All of the --with options take three forms:
362 # --with-foo (or --with-foo=yes)
363 # --without-foo (or --with-foo=no)
366 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees
367 # a directory (string beginning with a slash) it checks to see whether
368 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
371 AC_DEFUN(HANDLE_X_PATH_ARG, [
377 AC_MSG_CHECKING([for [$3] headers])
380 X_CFLAGS="-I$d $X_CFLAGS"
383 AC_MSG_RESULT(not found ($d: no such directory))
386 AC_MSG_CHECKING([for [$3] libs])
389 X_LIBS="-L$d $X_LIBS"
392 AC_MSG_RESULT(not found ($d: no such directory))
395 # replace the directory string with "yes".
402 echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
403 echo " If it is a directory, then \`DIR/include' will be added to"
404 echo " the -I list, and \`DIR/lib' will be added to the -L list."
409 # why is this necessary?
410 # if we don't do this, then "./configure --with-motif=/usr/local/lesstif"
411 # behaves as if "--with-zippy=/usr/local/lesstif" was also present!
417 # check for the HP XHPDisableReset server extension headers.
419 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
420 [AC_DEFINE(HAVE_XHPDISABLERESET)
421 SAVER_LIBS="-lXhp11 $SAVER_LIBS"])
424 # Check for the availability of the XPointer typedef, and define it otherwise.
426 AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
427 [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
428 [XPointer foo = (XPointer) 0;],
429 [ac_cv_xpointer=yes],
430 [ac_cv_xpointer=no])])
431 if test $ac_cv_xpointer != yes; then
432 AC_DEFINE(XPointer,[char*])
436 # Random special-cases for certain pathological OSes. You know who you are.
441 # The following arcana was gleaned from conversations with
442 # Eric Schwartz <erics@col.hp.com>:
444 # On HPUX 10.x, the parts of X that HP considers "standard" live in
445 # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider
446 # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
447 # Also, there are symlinks from /usr/include/ and /usr/lib/ into
448 # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
449 # you don't need any -I or -L arguments.
451 # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
452 # are the same division as 10.x. However, there are no symlinks to
453 # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
454 # arguments are always necessary.
456 # However, X11R6 was available on HPUX 9.x as a patch: if that
457 # patch was installed, then all of X11R6 went in to
458 # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
460 # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
461 # whether R5 was available as a patch; R6 undoubtedly was not.)
463 # So. We try and use the highest numbered pair of
464 # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
465 # that are available. We do not mix and match different versions
468 # Questions I still don't know the answers to: (do you?)
470 # * Does HPUX 10.x come with /usr/contrib/X11R6/ standard?
471 # Or does that need to be installed separately?
473 # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
474 # /usr/contrib/X11R6/ could be installed as a patch, what was in
475 # that contrib directory? Did it contain so-called "standard"
476 # X11R6, or did it include Xaw and Xmu as well? If the former,
477 # where did one find Xaw and Xmu on 9.x R6 systems? Would this
478 # be a situation where one had to reach into the R5 headers and
479 # libs to find Xmu? That is, must both R6 and R5 directories
480 # be on the -I and -L lists in that case?
482 for version in X11R6 X11R5 X11R4 ; do
483 # if either pair of directories exists...
484 if test -d /usr/lib/$version || test -d /usr/contrib/$version/lib ; then
485 # if contrib exists, use it...
486 if test -d /usr/contrib/$version/lib ; then
487 X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
488 X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
490 # if the "standard" one exists, use it.
491 if test -d /usr/lib/$version ; then
492 X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
493 X_LIBS="$X_LIBS -L/usr/lib/$version"
495 # since at least one of the pair exists, go no farther.
500 # Now find Motif. Thanks for not making xmkmf find this by
501 # default, you losers.
503 if test -d /usr/lib/Motif1.2 ; then
504 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
505 X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
506 elif test -d /usr/lib/Motif1.1 ; then
507 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
508 X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
511 # Now let's check for the pseudo-standard locations for OpenGL and XPM.
513 if test -d /opt/Mesa/lib ; then
514 X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
515 X_LIBS="-L/opt/Mesa/lib $X_LIBS"
518 if test -d /opt/xpm/lib/X11 ; then
519 X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
520 X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
523 # On HPUX, default to installing in /opt/xscreensaver/ instead of
524 # in /usr/local/, unless there is already an xscreensaver in
525 # /usr/local/bin/. This can be overridden with the --prefix arg
526 # to configure. I'm not sure this is the right thing to do, but
527 # Richard Lloyd says so...
529 if test \! -x /usr/local/bin/xscreensaver ; then
530 ac_default_prefix=/opt/xscreensaver
536 # Thanks for not making xmkmf find this by default, pinheads.
537 # And thanks for moving things around again, too. Is this
538 # really the standard location now? What happened to the
539 # joke that this kind of thing went in /opt?
540 # cthomp says "answer: CDE (Common Disorganized Environment)"
542 if test -f /usr/dt/include/Xm/Xm.h ; then
543 X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
544 X_LIBS="$X_LIBS -L/usr/dt/lib -R:/usr/dt/lib"
546 # Some versions of Slowlaris Motif require -lgen. But not all. Why?
547 AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"])
554 # Check for Xmu (some fucked up vendors don't ship it...)
557 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes])
558 if test $have_xmu = no ; then
559 XMU_SRCS='$(UTILS_SRC)/xmu.c'
560 XMU_OBJS='$(UTILS_BIN)/xmu.o'
564 SAVER_LIBS="-lXmu $SAVER_LIBS"
565 HACK_LIBS="-lXmu $HACK_LIBS"
570 # See comp.windows.x FAQ question 124 about _get_wmShellWidgetClass on 4.1.x.
571 # The right fix is to get OpenWindows 3.0 patches 100512-02 and 100573-03.
573 if test $have_xmu = yes ; then
576 AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
578 [ac_save_LDFLAGS="$LDFLAGS"
579 if test \! -z "$x_libraries" ; then
580 LDFLAGS="$LDFLAGS -L$x_libraries"
582 # Note: this trick never works! (Generally.)
583 # We're only getting away with using AC_TRY_LINK
584 # with X libraries because we know it's SunOS.
585 LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
587 [ac_cv_sunos_xmu_bug=no],
588 [ac_cv_sunos_xmu_bug=yes])
589 LDFLAGS="$ac_save_LDFLAGS"])
590 if test $ac_cv_sunos_xmu_bug = yes ; then
591 AC_CACHE_CHECK([whether the compiler understands -static],
593 [ac_save_LDFLAGS="$LDFLAGS"
594 LDFLAGS="$LDFLAGS -static"
595 AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
596 LDFLAGS="$ac_save_LDFLAGS"])
597 if test $ac_cv_ld_static = yes ; then
598 LDFLAGS="$LDFLAGS -static"
600 LDFLAGS="$LDFLAGS -Bstatic"
608 # Check for the SGI SCREEN_SAVER server extension header.
611 with_sgi_req=unspecified
613 [Except where noted, all of the --with options below can also take a
614 directory argument: for example, --with-motif=/opt/Motif. That would
615 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
616 to be added to the -L list, assuming those directories exist.
618 X Server Extension options:
620 --with-sgi-ext Include support for the SGI SCREEN_SAVER
621 server extension, if possible (this is the default).
622 --without-sgi-ext Do not compile in support for this extension.],
623 [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
625 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
627 if test $with_sgi = yes; then
628 AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
630 AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)])
632 elif test $with_sgi != no; then
633 echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
637 # Check for the MIT-SCREEN-SAVER server extension header,
638 # unless the SGI extension has already been found.
641 with_mit_req=unspecified
643 [ --with-mit-ext Include support for the MIT-SCREEN-SAVER
644 server extension, if possible (this is the default).
645 --without-mit-ext Do not compile in support for this extension.],
646 [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
648 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
650 if test $have_sgi != yes; then
651 if test $with_mit = yes; then
652 AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes])
654 # Now check to see if it's really in the library; XF86Free-3.3 ships
655 # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
657 if test $have_mit = yes; then
658 AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [], [have_mit=no], -lm)
660 if test $have_mit = no; then
661 # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead
662 # of in Xext. Thank you master, may I have another.
663 AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
664 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
665 [], -lX11 -lXext -lm)
668 if test $have_mit = no; then
669 # Double fuck! Looks like some versions of XFree86 (whichever version
670 # it is that comes with RedHat Linux 2.0 -- I can't find a version
671 # number) put this garbage in Xss instead of Xext. Thank you master,
672 # may I have another.
673 AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
674 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
675 [], -lX11 -lXext -lm)
678 if test $have_mit = yes; then
679 AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
684 elif test $with_mit != no; then
685 echo "error: must be yes or no: --with-mit-ext=$with_mit"
691 # Check for the XIDLE server extension header.
694 with_xidle_req=unspecified
695 AC_ARG_WITH(xidle-ext,
696 [ --with-xidle-ext Include support for the XIDLE server extension,
697 if possible (this is the default).
698 --without-xidle-ext Do not compile in support for this extension.],
699 [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
701 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
703 if test $with_xidle = yes; then
704 AC_CHECK_X_HEADER(X11/extensions/xidle.h,
706 AC_DEFINE(HAVE_XIDLE_EXTENSION)])
707 elif test $with_xidle != no; then
708 echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
713 # Check for the XSHM server extension header.
716 with_xshm_req=unspecified
717 AC_ARG_WITH(xshm-ext,
718 [ --with-xshm-ext Include support for the XSHM (Shared Memory) server
719 extension, if possible (this is the default).
720 --without-xshm-ext Do not compile in support for this extension.],
721 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
723 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
725 if test $with_xshm = yes; then
727 # first check for Xshm.h.
728 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes])
730 # if that succeeded, then check for sys/ipc.h.
731 if test $have_xshm = yes; then
733 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
736 # if that succeeded, then check for sys/shm.h.
737 if test $have_xshm = yes; then
739 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
742 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
743 # to exist, but the library code to not exist. And even better, the library
744 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
745 # lib doesn't exist, give up.
750 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
751 [have_xshm=yes; SAVER_LIBS="$SAVER_LIBS -lXextSam"],
752 [], -lX11 -lXext -lm)
756 # if that succeeded, then we've really got it.
757 if test $have_xshm = yes; then
758 AC_DEFINE(HAVE_XSHM_EXTENSION)
761 elif test $with_xshm != no; then
762 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
767 # Check for the SGI-VIDEO-CONTROL server extension header.
770 with_sgivc_req=unspecified
771 AC_ARG_WITH(sgivc-ext,
772 [ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL server
773 extension, if possible (this is the default).
774 --without-sgivc-ext Do not compile in support for this extension.],
775 [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
777 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
779 if test $with_sgivc = yes; then
781 # first check for XSGIvc.h
782 AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes])
784 # if that succeeded, then check for the -lXsgivc
785 if test $have_sgivc = yes; then
787 AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
788 [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [],
792 # if that succeeded, then we've really got it.
793 if test $have_sgivc = yes; then
794 AC_DEFINE(HAVE_SGI_VC_EXTENSION)
797 elif test $with_sgivc != no; then
798 echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
803 # Check for the DPMS server extension header.
806 with_dpms_req=unspecified
807 AC_ARG_WITH(dpms-ext,
808 [ --with-dpms-ext Include support for the DPMS server extension,
809 if possible (this is the default).
810 --without-dpms-ext Do not compile in support for this extension.],
811 [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
813 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
815 if test $with_dpms = yes; then
817 # first check for dpms.h
818 AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes])
820 # if that succeeded, then check for the -lXdpms
821 if test $have_dpms = yes; then
823 AC_CHECK_X_LIB(Xdpms, DPMSInfo,
824 [have_dpms=yes; SAVER_LIBS="$SAVER_LIBS -lXdpms"], [],
828 # if that succeeded, then we've really got it.
829 if test $have_dpms = yes; then
830 AC_DEFINE(HAVE_DPMS_EXTENSION)
833 elif test $with_dpms != no; then
834 echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
840 # Check for Motif and Athena --with and --without arguments.
845 with_motif_req=unspecified
846 with_athena_req=unspecified
849 X Client Toolkit options:
851 --with-motif Use the Motif toolkit for the user interface, if
852 possible (this is the default).
853 --without-motif Do not use Motif.],
854 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no])
856 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
859 [ --with-athena Use the Athena toolkit for the user interface, if
860 possible (this is the default if Motif isn't used.)
861 --without-athena Do not use Athena.],
862 [with_athena="$withval"; with_athena_req="$withval"],[with_athena=no])
864 HANDLE_X_PATH_ARG(with_athena, --with-athena, Athena)
866 if test $with_motif != yes -a $with_motif != no ; then
867 echo "error: must be yes or no: --with-motif=$with_motif"
871 if test $with_athena != yes -a $with_athena != no ; then
872 echo "error: must be yes or no: --with-athena=$with_athena"
877 # Saying --without-motif is the same as saying --with-athena.
878 if test $with_motif_req = no ; then
883 # Saying --without-athena is the same as saying --with-motif.
884 if test $with_athena_req = no ; then
889 # Check for Motif and Athena headers.
892 AC_CHECK_X_HEADER(Xm/Xm.h,
894 AC_DEFINE(HAVE_MOTIF)
895 SAVER_LIBS="-lXm $SAVER_LIBS"])
901 AC_CHECK_X_HEADER(X11/Xaw/Dialog.h, [have_athena=yes])
902 AC_CHECK_X_LIB(Xaw3d, Xaw3dComputeTopShadowRGB,
903 [have_athena=yes; have_athena3d=yes], [],
904 -lXt -lXmu -lXext -lX11)
906 if test $have_athena3d = yes; then
907 SAVER_LIBS="-lXaw3d $SAVER_LIBS"
908 elif test $have_athena = yes; then
909 SAVER_LIBS="-lXaw $SAVER_LIBS"
914 # If they asked for both motif and athena, check motif then athena.
915 # If they asked for only motif, check motif then athena.
916 # If they asked for only athena, check athena then motif.
917 # If they asked for neither, check motif then athena.
919 proselytize_motif=yes
920 if test $with_motif = yes; then
921 # asked for both, or for motif only
923 if test $have_motif = yes; then
930 elif test $with_athena = yes; then
931 # asked for athena only
933 if test $have_athena = yes; then
943 if test $have_motif = yes; then
951 if test $have_motif = yes; then
955 # If we have Athena, check whether it's a version that includes
956 # XawViewportSetCoordinates in Viewport.h (R3 (or R4?) don't.)
957 if test $have_athena = yes ; then
958 AC_CACHE_CHECK([for XawViewportSetCoordinates in Viewport.h],
959 ac_cv_have_XawViewportSetCoordinates,
960 [ac_cv_have_XawViewportSetCoordinates=no
961 AC_EGREP_X_HEADER(XawViewportSetCoordinates,
963 ac_cv_have_XawViewportSetCoordinates=yes)])
964 if test $ac_cv_have_XawViewportSetCoordinates = yes ; then
965 AC_DEFINE(HAVE_XawViewportSetCoordinates)
970 # If we have Motif, check whether it's really LessTif.
973 if test $have_motif = yes ; then
974 AC_CACHE_CHECK([whether Motif is really LessTif],
976 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
977 [long vers = LesstifVersion;],
978 [ac_cv_have_lesstif=yes],
979 [ac_cv_have_lesstif=no])])
980 have_lesstif=$ac_cv_have_lesstif
984 unset ac_cv_lesstif_version
985 unset ac_cv_lesstif_version_string
987 lesstif_version=unknown
988 lesstif_version_string=unknown
990 if test $have_lesstif = yes ; then
992 echo unknown > conftest-lt
993 AC_CACHE_CHECK([LessTif version number],
994 ac_cv_lesstif_version_string,
995 [AC_TRY_X_RUN([#include <stdio.h>
998 FILE *f = fopen("conftest-lt", "w");
1000 fprintf(f, "%d %d.%d\n", LesstifVersion,
1001 LESSTIF_VERSION, LESSTIF_REVISION);
1005 [ltv=`cat conftest-lt`
1006 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
1007 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
1008 [ac_cv_lesstif_version=unknown
1009 ac_cv_lesstif_version_string=unknown],
1010 [ac_cv_lesstif_version=unknown
1011 ac_cv_lesstif_version_string=unknown])])
1013 lesstif_version=$ac_cv_lesstif_version
1014 lesstif_version_string=$ac_cv_lesstif_version_string
1019 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
1020 # Extension". Why this extension isn't in -lXext with all the others,
1024 if test $have_motif = yes ; then
1026 AC_CHECK_X_LIB(Xp, XpQueryExtension,
1027 [have_xp_ext=yes; SAVER_LIBS="$SAVER_LIBS -lXp"],
1028 [], -lX11 -lXext -lm)
1032 # check for XPM header.
1035 with_xpm_req=unspecified
1037 Graphics Demo options:
1039 --with-xpm Include support for XPM files in some demos,
1040 if possible (this is the default).
1041 --without-xpm Do not compile in support for XPM files.],
1042 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
1044 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
1046 if test $with_xpm = yes; then
1047 AC_CHECK_X_HEADER(X11/xpm.h,
1051 elif test $with_xpm != no; then
1052 echo "error: must be yes or no: --with-xpm=$with_xpm"
1057 # check for the GL header
1060 with_gl_req=unspecified
1062 [ --with-gl Build those demos which depend on OpenGL,
1063 if possible (this is the default).
1064 --without-gl Do not build the OpenGL demos.],
1065 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
1067 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
1069 ac_mesagl_version=unknown
1070 ac_mesagl_version_string=unknown
1072 if test $with_gl = yes; then
1073 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
1074 if test $have_gl = yes ; then
1075 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no)
1078 # If we have the headers, try and figure out which vendor it's from.
1080 if test $have_gl = yes ; then
1084 # We need to know whether it's MesaGL so that we know which libraries
1087 AC_MSG_CHECKING(whether GL is really MesaGL)
1088 AC_CACHE_VAL(ac_cv_have_mesa_gl,
1089 [ac_cv_have_mesa_gl=no
1090 AC_EGREP_X_HEADER(Mesa, GL/glx.h, [ac_cv_have_mesa_gl=yes])
1092 ac_have_mesa_gl=$ac_cv_have_mesa_gl
1093 AC_MSG_RESULT($ac_have_mesa_gl)
1095 if test $ac_have_mesa_gl = no ; then
1097 GL_LIBS="-lGL -lGLU"
1099 AC_DEFINE(HAVE_MESA_GL)
1101 GL_LIBS="-lMesaGL -lMesaGLU"
1105 # If it's MesaGL, we'd like to issue a warning if the version number
1106 # is less than or equal to 2.6, because that version had a security bug.
1108 if test $ac_have_mesa_gl = yes; then
1110 # don't cache these.
1111 unset ac_cv_mesagl_version
1112 unset ac_cv_mesagl_version_string
1114 AC_MSG_CHECKING(MesaGL version number)
1115 AC_CACHE_VAL(ac_cv_mesagl_version_string,
1116 [cat > conftest.$ac_ext <<EOF
1117 #line __oline__ "configure"
1118 #include "confdefs.h"
1120 #configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
1123 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \
1124 's/^#configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
1125 if test "$mglv" = ""; then
1126 ac_mesagl_version=unknown
1127 ac_mesagl_version_string=unknown
1129 ac_mesagl_version_string=$mglv
1130 maj=`echo $mglv | sed -n 's/\..*//p'`
1131 min=`echo $mglv | sed -n 's/.*\.//p'`
1132 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
1134 ac_cv_mesagl_version=$ac_mesagl_version
1135 ac_cv_mesagl_version_string=$ac_mesagl_version_string
1137 ac_mesagl_version=$ac_cv_mesagl_version
1138 ac_mesagl_version_string=$ac_cv_mesagl_version_string
1139 AC_MSG_RESULT($ac_cv_mesagl_version_string)
1143 # Check for OpenGL 1.1 features.
1145 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
1146 [], $GL_LIBS -lX11 -lXext -lm)
1150 elif test $with_gl != no; then
1151 echo "error: must be yes or no: --with-gl=$with_gl"
1156 # check for SGI XReadDisplay server extension header.
1159 with_readdisplay_req=unspecified
1160 AC_ARG_WITH(readdisplay,
1161 [ --with-readdisplay Include support for the XReadDisplay server
1162 extension if possible (this is the default).
1163 --without-readdisplay Do not compile in support for this extension.],
1164 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
1165 [with_readdisplay=yes])
1167 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
1169 if test $with_readdisplay = yes; then
1170 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
1171 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION))
1172 elif test $with_readdisplay != no; then
1173 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
1178 # check for SGI's Iris Video Library header.
1181 with_sgivideo_req=unspecified
1182 AC_ARG_WITH(sgivideo,
1183 [ --with-sgivideo Include support for SGI's Iris Video Library
1184 if possible (this is the default).
1185 --without-sgivideo Do not compile in support for this library.],
1186 [with_sgivideo="$withval"; with_sgivideo_req="$withval"],
1187 [with_sgivideo=yes])
1189 HANDLE_X_PATH_ARG(with_sgivideo, --with-sgivideo, Iris Video)
1191 if test $with_sgivideo = yes; then
1192 AC_CHECK_X_HEADER(dmedia/vl.h, have_sgivideo=yes)
1193 if test $have_sgivideo = yes; then
1195 AC_CHECK_LIB(vl, vlOpenVideo, have_sgivideo=yes)
1196 if test $have_sgivideo = yes; then
1197 SGI_VIDEO_OBJS="$(UTILS_BIN)/sgivideo.o"
1198 SGI_VIDEO_LIBS="-lvl"
1199 AC_DEFINE(HAVE_SGI_VIDEO)
1202 elif test $with_sgivideo != no; then
1203 echo "error: must be yes or no: --with-sgivideo=$with_sgivideo"
1209 # Try to find a program to generate random text.
1211 # Zippy is funnier than the idiocy generally spat out by `fortune',
1212 # so try to find that, by invoking Emacs and asking it where its
1213 # libexec directory is ("yow" lives in there.)
1215 # If that doesn't work, see if fortune, zippy, or yow are on $PATH,
1216 # and if so, use them.
1218 # If that doesn't work, look in /usr/games, and if it's there, use
1219 # the full pathname.
1223 [ --with-zippy=PROGRAM Some demos are able to run an external program and
1224 display its text; this names the program to use by
1225 default (though it can be overridden with X
1226 resources.) If you don't specify this, the default
1227 is to use \"yow\" from the Emacs distribution (if you
1228 have it) or else to use \"fortune\".],
1229 [ with_zippy_req="$withval"; with_zippy="$withval" ],
1230 [ with_zippy_req="$withval"; with_zippy="$withval" ])
1232 if test "$with_zippy" = no || test "$with_zippy" = yes ; then
1237 if test -n "$with_zippy_req" ; then
1238 ac_cv_zippy_program=""
1239 case "$with_zippy_req" in
1241 AC_MSG_CHECKING([for $with_zippy_req])
1242 if test -x "$with_zippy_req" ; then
1251 unset ac_cv_path_zip2
1252 AC_PATH_PROG(zip2, $with_zippy_req, [])
1253 if test "$zip2" = ""; then
1258 ac_cv_zippy_program="$with_zippy"
1260 elif test -n "$ac_cv_zippy_program"; then
1261 AC_MSG_RESULT([checking for zippy... (cached) $ac_cv_zippy_program])
1264 if test ! -n "$ac_cv_zippy_program"; then
1266 AC_CHECK_PROGS(emacs_exe, emacs)
1267 AC_CHECK_PROGS(xemacs_exe, xemacs)
1269 ac_cv_zippy_program=""
1270 eargs='-batch -q -nw --eval'
1272 if test -n "$emacs_exe" ; then
1273 AC_MSG_CHECKING([for emacs yow])
1275 # get emacs to tell us where the libexec directory is.
1277 dir=`$emacs_exe $eargs '(princ (concat exec-directory "\n"))' \
1278 2>/dev/null | tail -1`
1279 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
1281 # try running libexec/yow and see if it exits without error.
1283 if test x"$dir" != x -a -x $dir/yow ; then
1284 if $dir/yow >&- 2>&- ; then
1285 ac_cv_zippy_program="$dir/yow"
1286 AC_MSG_RESULT($ac_cv_zippy_program)
1293 if test -z "$ac_cv_zippy_program" ; then
1294 AC_MSG_CHECKING([for xemacs yow])
1295 if test -n "$xemacs_exe" ; then
1297 # get xemacs to tell us where the libexec directory is.
1299 dir=`$xemacs_exe $eargs '(princ (concat exec-directory "\n"))' \
1300 2>/dev/null | tail -1`
1301 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
1303 # try running libexec/yow and see if it exits without error.
1305 if test x"$dir" != x -a -x $dir/yow ; then
1306 if $dir/yow >&- 2>&- ; then
1307 ac_cv_zippy_program="$dir/yow"
1308 AC_MSG_RESULT($ac_cv_zippy_program)
1311 # in some xemacs installations, the pathname of the yow.lines file
1312 # isn't hardcoded into the yow executable, and must be passed on
1313 # the command line. See if it's in libexec/../etc/.
1317 dir_up=`echo "$dir" | sed 's@/[^/]*$@@'`
1320 yow="yow -f $dir_up/etc/yow.lines"
1321 if $dir/$yow >&- 2>&- ; then
1322 ac_cv_zippy_program="$dir/$yow"
1323 AC_MSG_RESULT($ac_cv_zippy_program)
1332 # if that didn't work, try for some other programs...
1333 if test -z "$ac_cv_zippy_program" ; then
1335 AC_CHECK_PROGS(fortune, [fortune zippy yow])
1336 # if that didn't work, try for those programs in /usr/games...
1337 if test -z "$fortune" ; then
1338 AC_PATH_PROGS(fortune, [fortune zippy yow], fortune,
1339 /usr/games:/usr/local/games)
1344 if test -z "$ac_cv_zippy_program" ; then
1345 ac_cv_zippy_program=fortune
1348 AC_DEFINE_UNQUOTED(ZIPPY_PROGRAM, "$ac_cv_zippy_program")
1353 # Allow locking to be disabled at compile-time.
1357 with_kerberos_req=unspecified
1359 with_shadow_req=unspecified
1362 AC_ARG_ENABLE(locking,[
1363 Screen Locking options:
1365 --enable-locking Compile in support for locking the display
1366 (this is the default.)
1367 --disable-locking Do not allow locking at all.],
1368 [enable_locking="$enableval"],[enable_locking=yes])
1369 if test $enable_locking = yes; then
1371 # Check for Kerberos.
1373 AC_ARG_WITH(kerberos, [
1374 --with-kerberos Include support for Kerberos authentication,
1375 if possible (this is the default.)
1376 --without-kerberos Do not compile in support for Kerberos.],
1377 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1379 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1381 if test $with_kerberos = yes; then
1382 AC_CACHE_CHECK([for Kerberos], ac_cv_kerberos,
1383 [AC_TRY_X_COMPILE([#include <krb.h>],,
1384 [ac_cv_kerberos=yes],
1385 [ac_cv_kerberos=no])])
1386 if test $ac_cv_kerberos = yes ; then
1388 AC_DEFINE(HAVE_KERBEROS)
1390 # from Tim Showalter <tjs+@andrew.cmu.edu>
1391 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes"
1392 AC_CHECK_FUNC(res_search,,
1393 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1394 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1398 elif test $with_kerberos != no; then
1399 echo "error: must be yes or no: --with-kerberos=$with_kerberos"
1403 # Next, check for the nine billion variants of shadow passwords...
1405 passwd_cruft_done=no
1407 [ --with-shadow Include support for shadow password authentication,
1408 if possible (this is the default, if no Kerberos.)
1409 --without-shadow Do not compile in support for shadow passwords.
1411 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1413 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1415 if test $with_shadow = no; then
1416 passwd_cruft_done=yes
1417 elif test $with_shadow != yes; then
1418 echo "error: must be yes or no: --with-shadow=$with_shadow"
1423 # Sun's "adjunct" passwords.
1425 if test $passwd_cruft_done = no ; then
1426 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1427 [AC_TRY_X_COMPILE([#include <stdlib.h>
1429 #include <sys/types.h>
1430 #include <sys/label.h>
1431 #include <sys/audit.h>
1432 #include <pwdadj.h>],
1433 [struct passwd_adjunct *p = getpwanam("nobody");
1434 const char *pw = p->pwa_passwd;],
1435 [ac_cv_sun_adjunct=yes],
1436 [ac_cv_sun_adjunct=no])])
1437 if test $ac_cv_sun_adjunct = yes; then
1440 passwd_cruft_done=yes
1441 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1445 # DEC and SCO so-called "enhanced" security.
1447 if test $passwd_cruft_done = no ; then
1448 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1449 [AC_TRY_X_COMPILE([#include <stdlib.h>
1451 #include <sys/types.h>
1453 #include <sys/security.h>
1455 [struct pr_passwd *p;
1457 set_auth_parameters(0, 0);
1458 check_auth_parameters();
1459 p = getprpwnam("nobody");
1460 pw = p->ufld.fd_encrypt;],
1461 [ac_cv_enhanced_passwd=yes],
1462 [ac_cv_enhanced_passwd=no])])
1463 if test $ac_cv_enhanced_passwd = yes; then
1466 passwd_cruft_done=yes
1467 AC_DEFINE(HAVE_ENHANCED_PASSWD)
1469 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1470 # (I'm told it needs -lcurses too, but I don't understand why.)
1471 AC_CHECK_LIB(prot, getprpwnam,
1472 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1473 [# On DEC, getprpwnam() is in -lsecurity
1474 AC_CHECK_LIB(security, getprpwnam,
1475 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1480 # HP's entry in the "Not Invented Here" Sweepstakes.
1482 if test $passwd_cruft_done = no ; then
1483 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1484 [AC_TRY_X_COMPILE([#include <stdlib.h>
1486 #include <sys/types.h>
1488 #include <hpsecurity.h>
1490 [struct s_passwd *p = getspwnam("nobody");
1491 const char *pw = p->pw_passwd;],
1492 [ac_cv_hpux_passwd=yes],
1493 [ac_cv_hpux_passwd=no])])
1494 if test $ac_cv_hpux_passwd = yes; then
1497 passwd_cruft_done=yes
1498 AC_DEFINE(HAVE_HPUX_PASSWD)
1500 # on HPUX, bigcrypt is in -lsec
1501 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1505 # Traditional (ha!) shadow passwords.
1507 if test $passwd_cruft_done = no ; then
1508 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1509 [AC_TRY_X_COMPILE([#include <stdlib.h>
1511 #include <sys/types.h>
1513 #include <shadow.h>],
1514 [struct spwd *p = getspnam("nobody");
1515 const char *pw = p->sp_pwdp;],
1517 [ac_cv_shadow=no])])
1518 if test $ac_cv_shadow = yes; then
1521 passwd_cruft_done=yes
1522 AC_DEFINE(HAVE_SHADOW_PASSWD)
1524 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1526 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1527 if test $have_getspnam = no ; then
1528 AC_CHECK_LIB(gen, getspnam,
1529 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1534 # On FreeBSD, getpwnam() and friends work just like on non-shadow-password
1535 # systems -- except you only get stuff in the pw_passwd field if the running
1536 # program is setuid. So, guess that we've got this lossage to contend with
1537 # if /etc/master.passwd exists, and default to a setuid installation.
1539 if test $passwd_cruft_done = no ; then
1540 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1541 [if test -f /etc/master.passwd ; then
1542 ac_cv_master_passwd=yes
1544 ac_cv_master_passwd=no
1546 if test $ac_cv_master_passwd = yes; then
1548 passwd_cruft_done=yes
1552 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1554 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1555 if test $have_crypt = no ; then
1556 AC_CHECK_LIB(crypt, crypt,
1557 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1561 # Most of the above shadow mechanisms will have set need_setuid to yes,
1562 # if they were found. But, on some systems, we need setuid even when
1563 # using plain old vanilla passwords.
1565 if test $need_setuid = no ; then
1567 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1573 elif test $enable_locking = no; then
1574 AC_DEFINE(NO_LOCKING)
1576 echo "error: must be yes or no: --enable-locking=$enable_locking"
1582 if test \! -z "$includedir" ; then
1583 INCLUDES="-I$includedir"
1586 if test \! -z "$libdir" ; then
1587 LDFLAGS="$LDFLAGS -L$libdir"
1591 ##### should have options to override the DEPEND crap, I guess...
1597 # Done testing things -- now substitute in some stuff for the Makefiles.
1599 if test $have_motif = yes; then
1600 AC_DEFINE(HAVE_MOTIF)
1601 DIALOG_SRCS='$(MOTIF_SRCS)'
1602 DIALOG_OBJS='$(MOTIF_OBJS)'
1603 elif test $have_athena = yes; then
1604 AC_DEFINE(HAVE_ATHENA)
1605 DIALOG_SRCS='$(ATHENA_SRCS)'
1606 DIALOG_OBJS='$(ATHENA_OBJS)'
1612 if test $have_kerberos = yes; then
1613 PASSWD_SRCS='$(KERBEROS_SRCS)'
1614 PASSWD_OBJS='$(KERBEROS_OBJS)'
1616 PASSWD_SRCS='$(PWENT_SRCS)'
1617 PASSWD_OBJS='$(PWENT_OBJS)'
1620 if test $enable_locking = yes; then
1621 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
1622 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
1628 if test $need_setuid = yes; then
1630 INSTALL_SETUID='$(INSTALL) $(SUID_FLAGS)'
1633 INSTALL_SETUID='$(INSTALL_PROGRAM)'
1637 if test $have_gl = yes; then
1638 GL_EXES='$(GL_EXES)'
1639 GL_KLUDGE_1=${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}' \'
1642 GL_KLUDGE_1=${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}'\n'
1643 GL_KLUDGE_2='!'${tab}
1648 AC_SUBST(SAVER_LIBS)
1652 AC_SUBST(PASSWD_LIBS)
1653 AC_SUBST(INSTALL_SETUID)
1654 AC_SUBST(INSTALL_DIRS)
1655 AC_SUBST(NEED_SETUID)
1656 AC_SUBST(SGI_VIDEO_OBJS)
1657 AC_SUBST(SGI_VIDEO_LIBS)
1659 AC_SUBST(DIALOG_SRCS)
1660 AC_SUBST(DIALOG_OBJS)
1661 AC_SUBST(PASSWD_SRCS)
1662 AC_SUBST(PASSWD_OBJS)
1668 AC_SUBST(GL_KLUDGE_1)
1669 AC_SUBST(GL_KLUDGE_2)
1671 AC_SUBST(APPDEFAULTS)
1674 AC_SUBST(DEPEND_FLAGS)
1675 AC_SUBST(DEPEND_DEFINES)
1677 # Print some warnings before emitting the Makefiles.
1679 warn_prefix_1=" Warning:"
1680 warn_prefix_2=" Note:"
1681 warn_prefix="$warn_prefix_1"
1684 warnsep=' #################################################################'
1687 if test $warning = no ; then
1688 echo '' ; echo "$warnsep" ; echo ''
1695 if test $warning = long ; then echo '' ; fi
1697 echo "$warn_prefix $@"
1704 if test $was != no ; then echo '' ; fi
1705 echo "$warn_prefix $@"
1714 warn_prefix="$warn_prefix_2"
1716 warn_prefix="$warn_prefix_1"
1720 warn_prefix="$warn_prefix_2"
1722 warn_prefix="$warn_prefix_1"
1726 if test $with_sgi_req = yes -a $have_sgi = no ; then
1727 warn 'The SGI saver extension was requested, but was not found.'
1730 if test $with_mit_req = yes -a $have_mit = no ; then
1731 warn 'The MIT saver extension was requested, but was not found.'
1734 if test $with_xidle_req = yes -a $have_xidle = no ; then
1735 warn 'The XIdle extension was requested, but was not found.'
1738 if test $with_xshm_req = yes -a $have_xshm = no ; then
1739 warn 'The XSHM extension was requested, but was not found.'
1742 if test $with_sgivc_req = yes -a $have_sgivc = no ; then
1743 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
1746 if test $with_dpms_req = yes -a $have_dpms = no ; then
1747 warn 'The DPMS extension was requested, but was not found.'
1750 if test $have_motif = no -a $have_athena = no ; then
1751 warnL "Neither Motif nor Athena widgets seem to be available;"
1752 warn2 "one or the other is required."
1753 proselytize_motif=no
1755 elif test $with_motif_req = yes -a $have_motif = no ; then
1756 warnL "Use of Motif was requested, but it wasn't found;"
1757 warn2 "Athena will be used instead."
1759 elif test $with_athena_req = yes -a $have_athena = no ; then
1760 warnL "Use of Athena was requested, but it wasn't found;"
1761 warn2 "Motif will be used instead."
1764 if test $have_motif = yes -a $have_lesstif = yes ; then
1766 preferred_lesstif=0.87
1768 if test $lesstif_version = unknown; then
1769 warnL "Unable to determine the LessTif version number!"
1770 warn2 "Make sure you are using version $preferred_lesstif or newer."
1771 warn2 "See <http://www.lesstif.org/>."
1773 elif test \! $lesstif_version -gt 82; then
1774 warnL "LessTif version $lesstif_version_string is being used."
1775 warn2 "LessTif versions 0.82 and earlier are too buggy to"
1776 warn2 "use with XScreenSaver; it is strongly recommended"
1777 warn2 "that you upgrade to at least version $preferred_lesstif!"
1778 warn2 "See <http://www.lesstif.org/>."
1780 elif test \! $lesstif_version -gt 86; then
1781 warnL "LessTif version $lesstif_version_string is being used."
1782 warn2 "LessTif versions 0.86 and earlier have a bug that"
1783 warn2 "can cause a security problem with xscreensaver."
1784 warn2 "If you want to use xscreensaver as a screen locker,"
1785 warn2 "it is strongly recommended that you upgrade to at"
1786 warn2 "least version $preferred_lesstif. See <http://www.lesstif.org/>."
1790 if test $proselytize_motif = yes ; then
1791 warnL "Athena widgets are being used instead of Motif."
1792 warn2 "XScreenSaver looks much better with Motif, and has"
1793 warn2 "a few extra features as well. Wouldn't you rather"
1794 warn2 "be using Motif? It is shipped by every commercial"
1795 warn2 "Unix vendor; and there is a free implementation"
1796 warn2 "available as well: see <http://www.lesstif.org/>."
1800 if test $have_gl = yes -a $ac_have_mesa_gl = yes ; then
1801 preferred_mesagl=2.7
1803 if test $ac_mesagl_version = unknown; then
1804 warnL "Unable to determine the MesaGL version number!"
1805 warn2 "Make sure you are using version $preferred_mesagl or newer."
1807 elif test \! $ac_mesagl_version -gt 2006; then
1808 warnL "MesaGL version $ac_mesagl_version_string is being used."
1809 warn2 "MesaGL versions 2.6 and earlier have a security bug."
1810 warn2 "It is strongly recommended that you upgrade to at"
1811 warn2 "least version $preferred_mesagl."
1816 if test $have_xpm = no ; then
1817 if test $with_xpm_req = yes ; then
1818 warnL 'Use of XPM was requested, but it was not found.'
1819 elif test $with_xpm_req = no ; then
1820 noteL 'The XPM library is not being used.'
1822 noteL 'The XPM library was not found.'
1826 warn2 'Some of the demos will not be as colorful as they'
1827 warn2 'could be. You might want to consider installing XPM'
1828 warn2 'and re-running configure. (Remember to delete the'
1829 warn2 'config.cache file first.) You can find XPM at most'
1830 warn2 'X11 archive sites, such as <http://sunsite.unc.edu/>.'
1833 if test $have_gl = no ; then
1834 if test $with_gl_req = yes ; then
1835 warnL 'Use of GL was requested, but it was not found.'
1836 elif test $with_gl_req = no ; then
1837 noteL 'The OpenGL 3D library is not being used.'
1839 noteL 'The OpenGL 3D library was not found.'
1843 warn2 'Those demos which use 3D will not be built or installed.'
1844 warn2 'You might want to consider installing OpenGL and'
1845 warn2 're-running configure. (Remember to delete the'
1846 warn2 "config.cache file first.) If your vendor doesn't ship"
1847 warn2 'their own implementation of OpenGL, you can get a free'
1848 warn2 'version at <http://www.ssec.wisc.edu/~brianp/Mesa.html>.'
1849 warn2 'For general OpenGL info, see <http://www.opengl.org/>.'
1853 if test $with_readdisplay_req = yes -a $have_readdisplay = no ; then
1854 warn 'Use of XReadDisplay was requested, but it was not found.'
1857 if test $with_sgivideo_req = yes -a $have_sgivideo = no ; then
1858 warn 'Use of the Iris Video Library was requested, but it was not found.'
1861 if test $with_kerberos_req = yes -a $have_kerberos = no ; then
1862 warn 'Use of Kerberos was requested, but it was not found.'
1865 if test $with_shadow_req = yes -a $have_shadow = no ; then
1866 warn 'Use of shadow passwords was requested, but they were not found.'
1869 if test -n "$with_zippy_req"; then
1870 if test "$with_zippy_req" != "$ac_cv_zippy_program" ; then
1871 warnL "$with_zippy_req was requested as the Zippy program,"
1872 warn2 "but was not found. The default will be used instead."
1876 if test $warning != no; then
1877 echo '' ; echo "$warnsep" ; echo ''
1886 driver/XScreenSaver.ad)
1888 # You are in a twisty maze of namespaces and syntaxes, all alike.
1889 # Fuck the skull of Unix.
1891 eval bindir=${bindir}
1892 eval bindir=${bindir}
1893 eval bindir=${bindir}
1894 eval bindir=${bindir}
1895 eval bindir=${bindir}
1896 eval bindir=${bindir}
1897 eval HACKDIR=${HACKDIR}
1898 eval HACKDIR=${HACKDIR}
1899 eval HACKDIR=${HACKDIR}
1900 eval HACKDIR=${HACKDIR}
1901 eval HACKDIR=${HACKDIR}
1902 eval HACKDIR=${HACKDIR}
1907 echo ' When you run "make install", the "xscreensaver" and'
1908 echo ' "xscreensaver-command" executables will be installed in'
1911 echo " The various graphics demos (80+ different executables) will"
1912 echo " be installed in ${HACKDIR}."
1914 echo " If you would prefer the demos to be installed elsewhere"
1915 echo " (for example, in a dedicated directory) you should re-run"
1916 echo " configure with the --enable-subdir=DIR option. For more"
1917 echo " information, run $0 --help."