1 # configure.in --- xscreensaver, Copyright (c) 1997-2000 Jamie Zawinski.
4 AC_INIT(driver/subprocs.c)
5 AC_CONFIG_HEADER(config.h)
7 echo "current directory: `pwd`"
8 echo "command line was: $0 $@"
11 # After checking to see that --srcdir is correct (which AC_INIT does)
12 # check for some random other files that come later in the tar file,
13 # to make sure everything is here.
15 for d in driver utils hacks hacks/glx ; do
16 f=$srcdir/$d/Makefile.in
17 if test \! -r $f ; then
19 echo "ERROR: The package is incomplete: $f does not exist."
20 echo " This probably means that your download was truncated."
27 ###############################################################################
29 # Function to figure out how to run the compiler.
31 ###############################################################################
33 AC_DEFUN(AC_PROG_CC_ANSI,
36 if test -z "$GCC"; then
37 AC_MSG_CHECKING(how to request ANSI compilation)
40 AC_MSG_RESULT(HPUX: adding -Ae)
44 AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e)
45 CC="$CC -qlanglvl=ansi -qhalt=e"
49 AC_MSG_RESULT(DEC: adding -std1)
54 AC_MSG_RESULT(no idea)
59 AC_MSG_CHECKING([whether the compiler works on ANSI C])
60 AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
63 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
64 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
66 if test -n "$GCC"; then
67 AC_MSG_RESULT(Turning on gcc compiler warnings.)
68 CC="$CC -Wall -Wstrict-prototypes -Wnested-externs -Wno-format"
71 *-irix5* |*-irix6.[0-3]* )
72 AC_MSG_RESULT(Turning on SGI compiler warnings.)
73 CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
76 # if test -z "$GCC"; then
77 # AC_MSG_RESULT(Turning on DEC C compiler warnings.)
78 # CC="$CC -migrate -w0 -verbose -warnprotos"
86 ###############################################################################
88 # Functions to figure out how to disable // comments in ANSI C code.
90 # (With recent gcc, this is done with "-std=c89". With older gcc, this
91 # is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to
92 # gcc. Old gcc doesn't support -std, and new gcc doesn't support -lang.
93 # so much for compatibility!)
95 ###############################################################################
97 AC_DEFUN(AC_GCC_ACCEPTS_STD,
98 [if test -n "$GCC"; then
99 AC_CACHE_CHECK([whether gcc accepts -std],
100 ac_cv_gcc_accepts_std,
101 [if ( gcc -E -std=c89 - </dev/null 2>&1 >/dev/null | \
102 grep unrecognized >/dev/null ); then
103 ac_cv_gcc_accepts_std=no
105 ac_cv_gcc_accepts_std=yes
107 ac_gcc_accepts_std="$ac_cv_gcc_accepts_std"
111 AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE,
112 [if test -n "$GCC"; then
114 AC_MSG_RESULT(Disabling C++ comments in ANSI C code.)
115 if test "$ac_gcc_accepts_std" = yes ; then
117 # -std=c89 defines __STRICT_ANSI__, which we don't want.
118 # (That appears to be the only additional preprocessor symbol
119 # it defines, in addition to the syntax changes it makes.)
121 # -std=gnu89 is no good, because // comments were a GNU
122 # extension before they were in the ANSI C 99 spec...
124 CC="$CC -std=c89 -U__STRICT_ANSI__"
127 CC="$CC -Wp,-lang-c89"
133 ###############################################################################
135 # Function to figure out how to create directory trees.
137 ###############################################################################
139 AC_DEFUN(AC_PROG_INSTALL_DIRS,
140 [AC_CACHE_CHECK([whether \"\${INSTALL} -d\" creates intermediate directories],
141 ac_cv_install_d_creates_dirs,
142 [ac_cv_install_d_creates_dirs=no
144 if mkdir conftestdir; then
146 ${INSTALL} -d `pwd`/dir1/dir2 >&- 2>&-
147 if test -d dir1/dir2/. ; then
148 ac_cv_install_d_creates_dirs=yes
155 if test "$ac_cv_install_d_creates_dirs" = no ; then
156 AC_CACHE_CHECK([whether \"mkdir -p\" creates intermediate directories],
157 ac_cv_mkdir_p_creates_dirs,
158 [ac_cv_mkdir_p_creates_dirs=no
160 if mkdir conftestdir; then
162 mkdir -p dir1/dir2 >&- 2>&-
163 if test -d dir1/dir2/. ; then
164 ac_cv_mkdir_p_creates_dirs=yes
172 if test "$ac_cv_install_d_creates_dirs" = yes ; then
173 INSTALL_DIRS='${INSTALL} -d'
174 elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then
175 INSTALL_DIRS='mkdir -p'
178 INSTALL_DIRS='${INSTALL} -d'
183 ###############################################################################
185 # Function to check whether gettimeofday() exists, and how to call it.
186 # This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS.
188 ###############################################################################
190 AC_DEFUN(AC_GETTIMEOFDAY_ARGS,
191 [AC_MSG_CHECKING(how to call gettimeofday)
192 AC_CACHE_VAL(ac_cv_gettimeofday_args,
193 [AC_TRY_COMPILE([#include <stdlib.h>
194 #include <sys/time.h>],
195 [struct timeval tv; struct timezone tzp;
196 gettimeofday(&tv, &tzp);],
197 [ac_gettimeofday_args=2],
198 [AC_TRY_COMPILE([#include <stdlib.h>
199 #include <sys/time.h>],
200 [struct timeval tv; gettimeofday(&tv);],
201 [ac_gettimeofday_args=1],
202 [ac_gettimeofday_args=0])])
203 ac_cv_gettimeofday_args=$ac_gettimeofday_args])
204 ac_gettimeofday_args=$ac_cv_gettimeofday_args
205 if test "$ac_gettimeofday_args" = 1 ; then
206 AC_DEFINE(HAVE_GETTIMEOFDAY)
207 AC_MSG_RESULT(one argument)
208 elif test "$ac_gettimeofday_args" = 2 ; then
209 AC_DEFINE(HAVE_GETTIMEOFDAY)
210 AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
211 AC_MSG_RESULT(two arguments)
213 AC_MSG_RESULT(unknown)
218 ###############################################################################
220 # Function to find perl5 (defines PERL and PERL_VERSION.)
222 ###############################################################################
224 # M4 sucks!! perl sucks too!!
226 perl_version_cmd='print $]'
229 AC_DEFUN(AC_PROG_PERL,
230 [AC_PATH_PROGS(PERL, [perl5 perl],,)
231 if test -z "$PERL" ; then
234 AC_CACHE_CHECK([perl version], ac_cv_perl_version,
235 [ac_cv_perl_version=`$PERL -e "$perl_version_cmd"`])
236 PERL_VERSION=$ac_cv_perl_version
241 ###############################################################################
243 # Function to demand "bc". Losers.
245 ###############################################################################
247 AC_DEFUN(AC_DEMAND_BC,
248 [ac_bc_result=`echo 6+9 | bc 2>/dev/null`
249 AC_MSG_CHECKING([for bc])
250 if test "$ac_bc_result" = "15" ; then
255 AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard
256 part of Unix since the 1970s. Come back when your vendor
261 ###############################################################################
263 # Functions to check how to do ICMP PING requests.
265 ###############################################################################
267 AC_DEFUN(AC_CHECK_ICMP,
268 [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp,
269 [AC_TRY_COMPILE([#include <stdlib.h>
276 #include <sys/types.h>
277 #include <sys/time.h>
280 #include <sys/socket.h>
281 #include <netinet/in_systm.h>
282 #include <netinet/in.h>
283 #include <netinet/ip.h>
284 #include <netinet/ip_icmp.h>
285 #include <netinet/udp.h>
286 #include <arpa/inet.h>
290 struct sockaddr_in si;
292 i.icmp_type = ICMP_ECHO;
297 si.sin_family = AF_INET;
299 [ac_cv_have_icmp=yes],
300 [ac_cv_have_icmp=no])])
301 if test "$ac_cv_have_icmp" = yes ; then
305 AC_DEFUN(AC_CHECK_ICMPHDR,
306 [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr,
307 [AC_TRY_COMPILE([#include <stdlib.h>
314 #include <sys/types.h>
315 #include <sys/time.h>
318 #include <sys/socket.h>
319 #include <netinet/in_systm.h>
320 #include <netinet/in.h>
321 #include <netinet/ip.h>
322 #include <netinet/ip_icmp.h>
323 #include <netinet/udp.h>
324 #include <arpa/inet.h>
328 struct sockaddr_in si;
334 i.un.echo.sequence = 0;
335 si.sin_family = AF_INET;
337 [ac_cv_have_icmphdr=yes],
338 [ac_cv_have_icmphdr=no])])
339 if test "$ac_cv_have_icmphdr" = yes ; then
340 AC_DEFINE(HAVE_ICMPHDR)
344 ###############################################################################
346 # Functions to check for various X11 crap.
348 ###############################################################################
350 # Try and find the app-defaults directory.
351 # It sucks that autoconf doesn't do this already...
353 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
355 if mkdir conftestdir; then
357 # Make sure to not put "make" in the Imakefile rules, since we grep it out.
358 cat > Imakefile <<'EOF'
360 @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
362 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
363 # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
364 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
370 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
371 # Look for the directory under a standard set of common directories.
372 # Check X11 before X11Rn because it's often a symlink to the current release.
374 /usr/X11/lib/app-defaults \
375 /usr/X11R6/lib/app-defaults \
376 /usr/X11R6/lib/X11/app-defaults \
377 /usr/X11R5/lib/app-defaults \
378 /usr/X11R5/lib/X11/app-defaults \
379 /usr/X11R4/lib/app-defaults \
380 /usr/X11R4/lib/X11/app-defaults \
382 /usr/lib/X11/app-defaults \
383 /usr/lib/X11R6/app-defaults \
384 /usr/lib/X11R5/app-defaults \
385 /usr/lib/X11R4/app-defaults \
387 /usr/local/X11/lib/app-defaults \
388 /usr/local/X11R6/lib/app-defaults \
389 /usr/local/X11R5/lib/app-defaults \
390 /usr/local/X11R4/lib/app-defaults \
392 /usr/local/lib/X11/app-defaults \
393 /usr/local/lib/X11R6/app-defaults \
394 /usr/local/lib/X11R6/X11/app-defaults \
395 /usr/local/lib/X11R5/app-defaults \
396 /usr/local/lib/X11R5/X11/app-defaults \
397 /usr/local/lib/X11R4/app-defaults \
398 /usr/local/lib/X11R4/X11/app-defaults \
400 /usr/X386/lib/X11/app-defaults \
401 /usr/x386/lib/X11/app-defaults \
402 /usr/XFree86/lib/X11/app-defaults \
404 /usr/lib/X11/app-defaults \
405 /usr/local/lib/X11/app-defaults \
406 /usr/unsupported/lib/X11/app-defaults \
407 /usr/athena/lib/X11/app-defaults \
408 /usr/local/x11r5/lib/X11/app-defaults \
409 /usr/lpp/Xamples/lib/X11/app-defaults \
410 /lib/usr/lib/X11/app-defaults \
412 /usr/openwin/lib/app-defaults \
413 /usr/openwin/lib/X11/app-defaults \
414 /usr/openwin/share/lib/app-defaults \
415 /usr/openwin/share/lib/X11/app-defaults \
417 /X11R6/lib/app-defaults \
418 /X11R5/lib/app-defaults \
419 /X11R4/lib/app-defaults \
422 if test -d "$ac_dir"; then
423 ac_x_app_defaults=$ac_dir
429 AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
431 AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
432 [AC_PATH_X_APP_DEFAULTS_XMKMF
433 if test x"$ac_x_app_defaults" = x; then
434 AC_PATH_X_APP_DEFAULTS_DIRECT
436 if test x"$ac_x_app_defaults" = x; then
437 ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
439 # Record where we found app-defaults for the cache.
440 ac_cv_x_app_defaults="$ac_x_app_defaults"
442 eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
445 AC_DEFUN(AC_XPOINTER,
446 [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
447 [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
448 [XPointer foo = (XPointer) 0;],
449 [ac_cv_xpointer=yes],
450 [ac_cv_xpointer=no])])
451 if test "$ac_cv_xpointer" != yes; then
452 AC_DEFINE(XPointer,[char*])
456 # Random special-cases for X on certain pathological OSes.
457 # You know who you are.
459 AC_DEFUN(AC_X_RANDOM_PATHS,
463 # The following arcana was gleaned from conversations with
464 # Eric Schwartz <erics@col.hp.com>:
466 # On HPUX 10.x, the parts of X that HP considers "standard" live in
467 # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider
468 # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
469 # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems.
470 # Also, there are symlinks from /usr/include/ and /usr/lib/ into
471 # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
472 # you don't need any -I or -L arguments.
474 # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
475 # are the same division as 10.x. However, there are no symlinks to
476 # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
477 # arguments are always necessary.
479 # However, X11R6 was available on HPUX 9.x as a patch: if that
480 # patch was installed, then all of X11R6 went in to
481 # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
483 # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
484 # whether R5 was available as a patch; R6 undoubtedly was not.)
486 # So. We try and use the highest numbered pair of
487 # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
488 # that are available. We do not mix and match different versions
491 # Question I still don't know the answer to: (do you?)
493 # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
494 # /usr/contrib/X11R6/ could be installed as a patch, what was in
495 # that contrib directory? Did it contain so-called "standard"
496 # X11R6, or did it include Xaw and Xmu as well? If the former,
497 # where did one find Xaw and Xmu on 9.x R6 systems? Would this
498 # be a situation where one had to reach into the R5 headers and
499 # libs to find Xmu? That is, must both R6 and R5 directories
500 # be on the -I and -L lists in that case?
502 for version in X11R6 X11R5 X11R4 ; do
503 # if either pair of directories exists...
504 if test -d /usr/lib/$version || test -d /usr/contrib/$version/lib
506 # if contrib exists, use it...
507 if test -d /usr/contrib/$version/lib ; then
508 X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
509 X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
511 # if the "standard" one exists, use it.
512 if test -d /usr/lib/$version ; then
513 X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
514 X_LIBS="$X_LIBS -L/usr/lib/$version"
516 # since at least one of the pair exists, go no farther.
521 # Now find Motif. Thanks for not making xmkmf find this by
522 # default, you losers.
524 if test -d /usr/lib/Motif1.2 ; then
525 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
526 X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
527 elif test -d /usr/lib/Motif1.1 ; then
528 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
529 X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
532 # Now let's check for the pseudo-standard locations for OpenGL and XPM.
534 if test -d /opt/Mesa/lib ; then
535 X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
536 X_LIBS="-L/opt/Mesa/lib $X_LIBS"
539 if test -d /opt/xpm/lib/X11 ; then
540 X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
541 X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
544 # On HPUX, default to installing in /opt/xscreensaver/ instead of
545 # in /usr/local/, unless there is already an xscreensaver in
546 # /usr/local/bin/. This can be overridden with the --prefix arg
547 # to configure. I'm not sure this is the right thing to do, but
548 # Richard Lloyd says so...
550 if test \! -x /usr/local/bin/xscreensaver ; then
551 ac_default_prefix=/opt/xscreensaver
557 # Thanks for not making xmkmf find this by default, pinheads.
558 # And thanks for moving things around again, too. Is this
559 # really the standard location now? What happened to the
560 # joke that this kind of thing went in /opt?
561 # cthomp says "answer: CDE (Common Disorganized Environment)"
563 if test -f /usr/dt/include/Xm/Xm.h ; then
564 X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
565 X_LIBS="$X_LIBS -L/usr/dt/lib -R:/usr/dt/lib"
567 # Some versions of Slowlaris Motif require -lgen. But not all. Why?
568 AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"])
575 ###############################################################################
577 # Some utility functions to make checking for X things easier.
579 ###############################################################################
581 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
583 AC_DEFUN(AC_CHECK_X_HEADER, [
584 ac_save_CPPFLAGS="$CPPFLAGS"
585 if test \! -z "$includedir" ; then
586 CPPFLAGS="$CPPFLAGS -I$includedir"
588 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
589 AC_CHECK_HEADER([$1], [$2])
590 CPPFLAGS="$ac_save_CPPFLAGS"])
592 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
594 AC_DEFUN(AC_EGREP_X_HEADER, [
595 ac_save_CPPFLAGS="$CPPFLAGS"
596 if test \! -z "$includedir" ; then
597 CPPFLAGS="$CPPFLAGS -I$includedir"
599 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
600 AC_EGREP_HEADER([$1], [$2], [$3], [$4])
601 CPPFLAGS="$ac_save_CPPFLAGS"])
603 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
605 AC_DEFUN(AC_TRY_X_COMPILE, [
606 ac_save_CPPFLAGS="$CPPFLAGS"
607 if test \! -z "$includedir" ; then
608 CPPFLAGS="$CPPFLAGS -I$includedir"
610 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
611 AC_TRY_COMPILE([$1], [$2], [$3], [$4])
612 CPPFLAGS="$ac_save_CPPFLAGS"])
615 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
616 # Use this sparingly; it probably doesn't work very well on X programs.
618 AC_DEFUN(AC_CHECK_X_LIB, [
619 ac_save_CPPFLAGS="$CPPFLAGS"
620 ac_save_LDFLAGS="$LDFLAGS"
621 # ac_save_LIBS="$LIBS"
623 if test \! -z "$includedir" ; then
624 CPPFLAGS="$CPPFLAGS -I$includedir"
626 # note: $X_CFLAGS includes $x_includes
627 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
629 if test \! -z "$libdir" ; then
630 LDFLAGS="$LDFLAGS -L$libdir"
632 # note: $X_LIBS includes $x_libraries
633 LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
635 AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
636 CPPFLAGS="$ac_save_CPPFLAGS"
637 LDFLAGS="$ac_save_LDFLAGS"
638 # LIBS="$ac_save_LIBS"
641 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
642 # (But not the -L directories!)
644 AC_DEFUN(AC_TRY_X_RUN, [
645 ac_save_CPPFLAGS="$CPPFLAGS"
646 if test \! -z "$includedir" ; then
647 CPPFLAGS="$CPPFLAGS -I$includedir"
649 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
650 AC_TRY_RUN([$1], [$2], [$3], [$4])
651 CPPFLAGS="$ac_save_CPPFLAGS"])
655 # Usage: HANDLE_X_PATH_ARG([variable_name],
656 # [--command-line-option],
657 # [descriptive string])
659 # All of the --with options take three forms:
661 # --with-foo (or --with-foo=yes)
662 # --without-foo (or --with-foo=no)
665 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees
666 # a directory (string beginning with a slash) it checks to see whether
667 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
670 AC_DEFUN(HANDLE_X_PATH_ARG, [
676 AC_MSG_CHECKING([for [$3] headers])
679 X_CFLAGS="-I$d $X_CFLAGS"
682 AC_MSG_RESULT(not found ($d: no such directory))
685 AC_MSG_CHECKING([for [$3] libs])
688 X_LIBS="-L$d $X_LIBS"
691 AC_MSG_RESULT(not found ($d: no such directory))
694 # replace the directory string with "yes".
701 echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
702 echo " If it is a directory, then \`DIR/include' will be added to"
703 echo " the -I list, and \`DIR/lib' will be added to the -L list."
711 ###############################################################################
712 ###############################################################################
714 # End of function definitions. Now start actually executing stuff.
716 ###############################################################################
717 ###############################################################################
719 # random compiler setup
722 AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
728 # stuff for Makefiles
735 AC_CHECK_HEADERS(unistd.h)
744 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv)
746 AC_CHECK_FUNCS(sigaction syslog realpath)
749 AC_CHECK_HEADERS(crypt.h sys/select.h)
752 if test -z "$PERL" ; then
753 # don't let it be blank...
754 PERL=/usr/local/bin/perl5
759 if test "$have_x" != yes; then
760 AC_MSG_ERROR(Couldn't find X11 headers/libs. Try \`$0 --help'.)
763 AC_PATH_X_APP_DEFAULTS
769 ###############################################################################
771 # Check for -lXmu (some fucked up vendors don't ship it...)
773 ###############################################################################
776 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes])
777 if test "$have_xmu" = no ; then
778 XMU_SRCS='$(UTILS_SRC)/xmu.c'
779 XMU_OBJS='$(UTILS_BIN)/xmu.o'
783 SAVER_LIBS="-lXmu $SAVER_LIBS"
784 HACK_LIBS="-lXmu $HACK_LIBS"
785 MOTIF_LIBS="-lXmu $MOTIF_LIBS"
786 GTK_LIBS="-lXmu $GTK_LIBS"
791 ###############################################################################
793 # Check for the SunOS 4.1.x _get_wmShellWidgetClass bug.
794 # See comp.windows.x FAQ question 124. The right fix is to
795 # get OpenWindows 3.0 patches 100512-02 and 100573-03.
797 ###############################################################################
799 if test "$have_xmu" = yes ; then
802 AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
804 [ac_save_LDFLAGS="$LDFLAGS"
805 if test \! -z "$x_libraries" ; then
806 LDFLAGS="$LDFLAGS -L$x_libraries"
808 # Note: this trick never works! (Generally.)
809 # We're only getting away with using AC_TRY_LINK
810 # with X libraries because we know it's SunOS.
811 LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
813 [ac_cv_sunos_xmu_bug=no],
814 [ac_cv_sunos_xmu_bug=yes])
815 LDFLAGS="$ac_save_LDFLAGS"])
816 if test "$ac_cv_sunos_xmu_bug" = yes ; then
817 AC_CACHE_CHECK([whether the compiler understands -static],
819 [ac_save_LDFLAGS="$LDFLAGS"
820 LDFLAGS="$LDFLAGS -static"
821 AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
822 LDFLAGS="$ac_save_LDFLAGS"])
823 if test "$ac_cv_ld_static" = yes ; then
824 LDFLAGS="$LDFLAGS -static"
826 LDFLAGS="$LDFLAGS -Bstatic"
834 ###############################################################################
836 # Handle the --enable-subdir option
838 ###############################################################################
840 AC_ARG_ENABLE(subdir,[
841 Installation options:
843 --enable-subdir=DIR Put the demo programs in a subdirectory of \`bindir',
844 instead of putting them in bindir itself. You can
845 specify the name of the subdirectory. For example,
846 \`--exec-prefix=/usr/local --enable-subdir=demos'
847 would put xscreensaver in /usr/local/bin/, and would
848 put the demos in /usr/local/bin/demos/. (If DIR
849 begins with /, then bindir will not be prepended.)
851 --disable-subdir Just put the demos in \`bindir' (this is the default.)
853 [enable_subdir="$enableval"],[enable_subdir=no])
854 if test x"$enable_subdir" = xno; then
856 elif test x"$enable_subdir" = xyes -o x"$enable_subdir" = x ; then
857 echo "error: must be a subdirectory name: --enable-subdir=$enable_subdir"
860 # there must be a better way than this...
861 if test -z "`echo $enable_subdir | sed 's@^/.*@@'`" ; then
863 HACKDIR=$enable_subdir
866 HACKDIR='${bindir}/'$enable_subdir
870 # canonicalize slashes.
871 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
874 ###############################################################################
876 # Check for the SGI SCREEN_SAVER server extension.
878 ###############################################################################
881 with_sgi_req=unspecified
883 [Except where noted, all of the --with options below can also take a
884 directory argument: for example, \`--with-motif=/opt/Motif'. That would
885 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
886 to be added to the -L list, assuming those directories exist.
888 By default, support for each of these options will be built in, if the
889 relevant library routines exist. At run time, they will then be used
890 only if the X server being used supports them. Each --with option has
891 a corresponding --without option, to override building support for them
894 Screen blanking and idle-detection options:
896 --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.],
897 [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
899 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
901 if test "$with_sgi" = yes; then
902 AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
904 AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)])
906 elif test "$with_sgi" != no; then
907 echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
912 ###############################################################################
914 # Check for the MIT-SCREEN-SAVER server extension.
916 ###############################################################################
919 with_mit_req=unspecified
921 [ --with-mit-ext Include support for the MIT-SCREEN-SAVER extension.],
922 [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
924 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
926 if test "$with_mit" = yes; then
927 AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes])
929 # Now check to see if it's really in the library; XF86Free-3.3 ships
930 # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
932 if test "$have_mit" = yes; then
933 AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [true], [have_mit=no], -lm)
935 if test "$have_mit" = no; then
936 # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead
937 # of in Xext. Thank you master, may I have another.
938 AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
939 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
940 [true], -lX11 -lXext -lm)
943 if test "$have_mit" = no; then
944 # Double fuck! Looks like some versions of XFree86 (whichever version
945 # it is that comes with RedHat Linux 2.0 -- I can't find a version
946 # number) put this garbage in Xss instead of Xext. Thank you master,
947 # may I have another.
948 AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
949 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
950 [true], -lX11 -lXext -lm)
953 if test "$have_mit" = yes; then
954 AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
959 elif test "$with_mit" != no; then
960 echo "error: must be yes or no: --with-mit-ext=$with_mit"
965 ###############################################################################
967 # Check for the XIDLE server extension.
969 ###############################################################################
972 with_xidle_req=unspecified
973 AC_ARG_WITH(xidle-ext,
974 [ --with-xidle-ext Include support for the XIDLE extension.],
975 [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
977 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
979 if test "$with_xidle" = yes; then
980 AC_CHECK_X_HEADER(X11/extensions/xidle.h,
982 AC_DEFINE(HAVE_XIDLE_EXTENSION)])
983 elif test "$with_xidle" != no; then
984 echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
989 ###############################################################################
991 # Check for the SGI-VIDEO-CONTROL server extension.
993 ###############################################################################
996 with_sgivc_req=unspecified
997 AC_ARG_WITH(sgivc-ext,
998 [ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension.],
999 [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
1001 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
1003 if test "$with_sgivc" = yes; then
1005 # first check for XSGIvc.h
1006 AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes])
1008 # if that succeeded, then check for the -lXsgivc
1009 if test "$have_sgivc" = yes; then
1011 AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
1012 [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
1016 # if that succeeded, then we've really got it.
1017 if test "$have_sgivc" = yes; then
1018 AC_DEFINE(HAVE_SGI_VC_EXTENSION)
1021 elif test "$with_sgivc" != no; then
1022 echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
1027 ###############################################################################
1029 # Check for the DPMS server extension.
1031 ###############################################################################
1034 with_dpms_req=unspecified
1035 AC_ARG_WITH(dpms-ext,
1036 [ --with-dpms-ext Include support for the DPMS extension.],
1037 [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
1039 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
1041 if test "$with_dpms" = yes; then
1043 # first check for dpms.h
1044 AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes])
1046 # if that succeeded, then check for the DPMS code in the libraries
1047 if test "$have_dpms" = yes; then
1049 # first look in -lXext (this is where it is with XFree86 4.0)
1051 AC_CHECK_X_LIB(Xext, DPMSInfo, [have_dpms=yes], [true], -lXext -lX11)
1053 # if that failed, look in -lXdpms (this is where it was in XFree86 3.x)
1054 if test "$have_dpms" = no; then
1055 AC_CHECK_X_LIB(Xdpms, DPMSInfo,
1056 [have_dpms=yes; XDPMS_LIBS="-lXdpms"], [true],
1062 # if that succeeded, then we've really got it.
1063 if test "$have_dpms" = yes; then
1064 AC_DEFINE(HAVE_DPMS_EXTENSION)
1067 elif test "$with_dpms" != no; then
1068 echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
1073 ###############################################################################
1075 # Check for the XF86VMODE server extension.
1077 ###############################################################################
1080 with_xf86vmode_req=unspecified
1081 AC_ARG_WITH(xf86vmode-ext,
1082 [ --with-xf86vmode-ext Include support for XFree86 virtual screens.],
1083 [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"],
1084 [with_xf86vmode=yes])
1086 HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
1088 if test "$with_xf86vmode" = yes; then
1090 # first check for xf86vmode.h
1091 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes])
1093 # if that succeeded, then check for the -lXxf86vm
1094 if test "$have_xf86vmode" = yes; then
1096 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
1097 [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
1098 [true], -lXext -lX11)
1101 # if that succeeded, then we've really got it.
1102 if test "$have_xf86vmode" = yes; then
1103 AC_DEFINE(HAVE_XF86VMODE)
1106 elif test "$with_xf86vmode" != no; then
1107 echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
1112 ###############################################################################
1114 # Check for HP XHPDisableReset and XHPEnableReset.
1116 ###############################################################################
1118 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
1119 [AC_DEFINE(HAVE_XHPDISABLERESET)
1120 SAVER_LIBS="-lXhp11 $SAVER_LIBS"])
1123 ###############################################################################
1125 # Check for /proc/interrupts.
1127 ###############################################################################
1129 have_proc_interrupts=no
1130 with_proc_interrupts_req=unspecified
1131 AC_ARG_WITH(proc-interrupts,
1132 [ --with-proc-interrupts Include support for consulting the /proc/interrupts
1133 file to notice keyboard activity.],
1134 [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
1135 [with_proc_interrupts=yes])
1137 if test "$with_proc_interrupts" = yes; then
1139 AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
1140 ac_cv_have_proc_interrupts,
1141 [ac_cv_have_proc_interrupts=no
1142 if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
1143 ac_cv_have_proc_interrupts=yes
1146 have_proc_interrupts=$ac_cv_have_proc_interrupts
1148 if test "$have_proc_interrupts" = yes; then
1149 AC_DEFINE(HAVE_PROC_INTERRUPTS)
1152 elif test "$with_proc_interrupts" != no; then
1153 echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
1158 ###############################################################################
1160 # The --enable-locking option
1162 ###############################################################################
1164 AC_ARG_ENABLE(locking,[
1165 Screen locking options:
1167 --enable-locking Compile in support for locking the display.
1168 --disable-locking Do not allow locking at all.
1170 [enable_locking="$enableval"],[enable_locking=yes])
1171 if test "$enable_locking" = yes; then
1173 elif test "$enable_locking" = no; then
1174 AC_DEFINE(NO_LOCKING)
1176 echo "error: must be yes or no: --enable-locking=$enable_locking"
1182 ###############################################################################
1184 # The --enable-vt-locking option
1186 ###############################################################################
1188 #ac_vt_lockswitch=no
1189 #AC_ARG_ENABLE(vt-locking,[
1190 # --enable-vt-locking Compile in support for locking Virtual Terminals.
1191 # This is the default if the system supports it, and
1192 # if locking support is included (--enable-locking.)
1193 # --disable-vt-locking Do not allow locking of VTs, even if locking is
1195 # [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1196 #if test "$enable_vt_locking" = yes; then
1198 # AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1199 # [AC_TRY_COMPILE([#include <fcntl.h>
1200 # #include <sys/ioctl.h>
1201 # #include <sys/vt.h>],
1202 # [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1203 # [ac_cv_vt_lockswitch=yes],
1204 # [ac_cv_vt_lockswitch=no])])
1205 # ac_vt_lockswitch=$ac_cv_vt_lockswitch
1207 #elif test "$enable_vt_locking" = no; then
1210 # echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1214 #if test "$ac_vt_lockswitch" = yes; then
1215 # AC_DEFINE(HAVE_VT_LOCKSWITCH)
1216 # # the VT_LOCKSWITCH ioctl can only be used when running as root.
1217 # # #### but it doesn't work yet, so don't worry about that for now.
1223 ###############################################################################
1227 ###############################################################################
1231 # Solaris systems tend to come with PAM misconfigured.
1232 # Don't build it by default, even if the headers exist.
1236 # Default to building PAM support on all other systems, if it exists.
1237 with_pam_default=yes
1242 with_pam_req=unspecified
1245 [ --with-pam Include support for PAM (Pluggable Auth Modules.)],
1246 [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1248 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1250 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1251 AC_CACHE_CHECK([for PAM], ac_cv_pam,
1252 [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1255 if test "$ac_cv_pam" = yes ; then
1258 PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1260 # libpam typically requires dlopen and dlsym. On FreeBSD,
1261 # those are in libc. On Linux and Solaris, they're in libdl.
1262 AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1264 AC_MSG_CHECKING(how to call pam_strerror)
1265 AC_CACHE_VAL(ac_cv_pam_strerror_args,
1266 [AC_TRY_COMPILE([#include <stdio.h>
1268 #include <security/pam_appl.h>],
1269 [pam_handle_t *pamh = 0;
1270 char *s = pam_strerror(pamh, PAM_SUCCESS);],
1271 [ac_pam_strerror_args=2],
1272 [AC_TRY_COMPILE([#include <stdio.h>
1274 #include <security/pam_appl.h>],
1276 pam_strerror(PAM_SUCCESS);],
1277 [ac_pam_strerror_args=1],
1278 [ac_pam_strerror_args=0])])
1279 ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1280 ac_pam_strerror_args=$ac_cv_pam_strerror_args
1281 if test "$ac_pam_strerror_args" = 1 ; then
1282 AC_MSG_RESULT(one argument)
1283 elif test "$ac_pam_strerror_args" = 2 ; then
1284 AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1285 AC_MSG_RESULT(two arguments)
1287 AC_MSG_RESULT(unknown)
1293 ###############################################################################
1295 # Check for Kerberos.
1297 ###############################################################################
1301 with_kerberos_req=unspecified
1303 AC_ARG_WITH(kerberos,
1304 [ --with-kerberos Include support for Kerberos authentication.],
1305 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1307 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1309 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1310 AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
1311 [AC_TRY_X_COMPILE([#include <krb.h>],,
1312 [ac_cv_kerberos=yes],
1313 [ac_cv_kerberos=no])])
1314 AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
1315 [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
1316 [ac_cv_kerberos5=yes],
1317 [ac_cv_kerberos5=no])])
1319 if test "$ac_cv_kerberos" = yes ; then
1321 AC_DEFINE(HAVE_KERBEROS)
1324 if test "$ac_cv_kerberos5" = yes ; then
1327 AC_DEFINE(HAVE_KERBEROS)
1328 AC_DEFINE(HAVE_KERBEROS5)
1331 if test "$have_kerberos5" = yes ; then
1332 # from Matt Knopp <mhat@infocalypse.netlag.com>
1333 # (who got it from amu@mit.edu)
1334 PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcrypt -lcom_err"
1335 elif test "$have_kerberos" = yes ; then
1336 # from Tim Showalter <tjs+@andrew.cmu.edu>
1337 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes"
1340 if test "$have_kerberos" = yes ; then
1341 AC_CHECK_FUNC(res_search,,
1342 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1343 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1349 ###############################################################################
1351 # Check for the nine billion variants of shadow passwords...
1353 ###############################################################################
1358 with_shadow_req=unspecified
1361 [ --with-shadow Include support for shadow password authentication.],
1362 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1364 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1366 if test "$enable_locking" = no ; then
1372 ###############################################################################
1374 # Check for Sun "adjunct" passwords.
1376 ###############################################################################
1378 if test "$with_shadow" = yes ; then
1379 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1380 [AC_TRY_X_COMPILE([#include <stdlib.h>
1382 #include <sys/types.h>
1383 #include <sys/label.h>
1384 #include <sys/audit.h>
1385 #include <pwdadj.h>],
1386 [struct passwd_adjunct *p = getpwanam("nobody");
1387 const char *pw = p->pwa_passwd;],
1388 [ac_cv_sun_adjunct=yes],
1389 [ac_cv_sun_adjunct=no])])
1390 if test "$ac_cv_sun_adjunct" = yes; then
1391 have_shadow_adjunct=yes
1398 ###############################################################################
1400 # Check for DEC and SCO so-called "enhanced" security.
1402 ###############################################################################
1404 if test "$with_shadow" = yes ; then
1405 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1406 [AC_TRY_X_COMPILE([#include <stdlib.h>
1408 #include <sys/types.h>
1410 #include <sys/security.h>
1412 [struct pr_passwd *p;
1414 set_auth_parameters(0, 0);
1415 check_auth_parameters();
1416 p = getprpwnam("nobody");
1417 pw = p->ufld.fd_encrypt;],
1418 [ac_cv_enhanced_passwd=yes],
1419 [ac_cv_enhanced_passwd=no])])
1420 if test $ac_cv_enhanced_passwd = yes; then
1421 have_shadow_enhanced=yes
1425 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1426 # (I'm told it needs -lcurses too, but I don't understand why.)
1427 # But on DEC, it's in -lsecurity.
1429 AC_CHECK_LIB(prot, getprpwnam,
1430 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1431 [AC_CHECK_LIB(security, getprpwnam,
1432 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1437 ###############################################################################
1439 # Check for HP's entry in the "Not Invented Here" Sweepstakes.
1441 ###############################################################################
1443 if test "$with_shadow" = yes ; then
1444 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1445 [AC_TRY_X_COMPILE([#include <stdlib.h>
1447 #include <sys/types.h>
1449 #include <hpsecurity.h>
1451 [struct s_passwd *p = getspwnam("nobody");
1452 const char *pw = p->pw_passwd;],
1453 [ac_cv_hpux_passwd=yes],
1454 [ac_cv_hpux_passwd=no])])
1455 if test "$ac_cv_hpux_passwd" = yes; then
1456 have_shadow_hpux=yes
1460 # on HPUX, bigcrypt is in -lsec
1461 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1466 ###############################################################################
1468 # Check for FreeBSD-style shadow passwords.
1470 # On FreeBSD, getpwnam() and friends work just like on non-shadow-
1471 # password systems -- except you only get stuff in the pw_passwd field
1472 # if the running program is setuid. So, guess that we've got this
1473 # lossage to contend with if /etc/master.passwd exists, and default to
1474 # a setuid installation.
1476 ###############################################################################
1478 if test "$with_shadow" = yes ; then
1479 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1480 [if test -f /etc/master.passwd ; then
1481 ac_cv_master_passwd=yes
1483 ac_cv_master_passwd=no
1485 if test "$ac_cv_master_passwd" = yes; then
1491 ###############################################################################
1493 # Check for traditional (ha!) shadow passwords.
1495 ###############################################################################
1497 if test "$with_shadow" = yes ; then
1498 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1499 [AC_TRY_X_COMPILE([#include <stdlib.h>
1501 #include <sys/types.h>
1503 #include <shadow.h>],
1504 [struct spwd *p = getspnam("nobody");
1505 const char *pw = p->sp_pwdp;],
1507 [ac_cv_shadow=no])])
1508 if test "$ac_cv_shadow" = yes; then
1512 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1514 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1515 if test "$have_getspnam" = no ; then
1516 AC_CHECK_LIB(gen, getspnam,
1517 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1523 ###############################################################################
1525 # Check for other libraries needed for non-shadow passwords.
1527 ###############################################################################
1529 if test "$enable_locking" = yes ; then
1531 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1533 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1534 if test "$have_crypt" = no ; then
1535 AC_CHECK_LIB(crypt, crypt,
1536 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1541 # Most of the above shadow mechanisms will have set need_setuid to yes,
1542 # if they were found. But, on some systems, we need setuid even when
1543 # using plain old vanilla passwords.
1545 if test "$enable_locking" = yes ; then
1547 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1554 if test "$have_shadow_adjunct" = yes ; then
1555 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1556 elif test "$have_shadow_enhanced" = yes ; then
1557 AC_DEFINE(HAVE_ENHANCED_PASSWD)
1558 elif test "$have_shadow_hpux" = yes ; then
1559 AC_DEFINE(HAVE_HPUX_PASSWD)
1560 elif test "$have_shadow" = yes ; then
1561 AC_DEFINE(HAVE_SHADOW_PASSWD)
1565 ###############################################################################
1569 ###############################################################################
1572 with_motif_req=unspecified
1574 User interface options:
1576 --with-motif Use the Motif toolkit for the user interface.],
1577 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=yes])
1579 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
1581 if test "$with_motif" != yes -a "$with_motif" != no ; then
1582 echo "error: must be yes or no: --with-motif=$with_motif"
1586 if test "$with_motif" = yes; then
1588 AC_CHECK_X_HEADER(Xm/Xm.h,
1590 AC_DEFINE(HAVE_MOTIF)
1591 MOTIF_LIBS="$MOTIF_LIBS -lXm"])
1595 if test "$have_motif" = yes; then
1596 AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)])
1600 ###############################################################################
1602 # Check for -lgtk (and Gnome stuff)
1604 ###############################################################################
1607 with_gtk_req=unspecified
1609 [ --with-gtk Use the Gtk toolkit for the user interface.],
1610 [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
1612 # if --with-gtk=/directory/ was specified, remember that directory so that
1613 # we can also look for the `gtk-config' program in that directory.
1623 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
1625 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
1626 echo "error: must be yes or no: --with-gtk=$with_gtk"
1631 with_gnome_req=unspecified
1633 [ --with-gnome Include support for the Gnome Control Center.],
1634 [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
1636 # if --with-gnome=/directory/ was specified, remember that directory so that
1637 # we can also look for the `gnome-config' program in that directory.
1638 case "$with_gnome" in
1640 gnome_dir="$with_gnome"
1647 HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome)
1649 if test "$with_gnome" != yes -a "$with_gnome" != no ; then
1650 echo "error: must be yes or no: --with-gnome=$with_gnome"
1656 if test "$with_gtk" = yes; then
1659 # if the user specified --with-gtk=/foo/ then look in /foo/bin/
1660 # for glib-config and gtk-config.
1664 if test ! -z "$gtk_dir"; then
1665 # canonicalize slashes.
1666 gtk_dir=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
1667 gtk_path="$gtk_dir:$gtk_path"
1670 if test ! -z "gnome_dir"; then
1671 # canonicalize slashes.
1672 gnome_dir=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
1673 gtk_path="$gnome_dir:$gtk_path"
1676 AC_PATH_PROGS(glib_config, glib12-config glib-config,, $gtk_path)
1677 AC_PATH_PROGS(gtk_config, gtk12-config gtk-config,, $gtk_path)
1679 if test "$with_gnome" = yes; then
1680 AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
1683 if test -n "$glib_config" -a -n "gtk_config" ; then
1685 if test "$with_gnome" = yes -a -n "$gnome_config" ; then
1690 if test "$have_gtk" = yes; then
1691 AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
1692 [ac_cv_gtk_version_string=`$gtk_config --version`])
1693 ac_gtk_version_string=$ac_cv_gtk_version_string
1696 maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
1697 min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
1699 ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
1700 if test -z "$ac_gtk_version"; then
1701 ac_gtk_version=unknown
1702 ac_gtk_version_string=unknown
1704 if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
1712 if test "$have_gtk" = yes; then
1713 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
1714 [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
1715 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
1716 [ac_cv_gtk_config_libs=`$gtk_config --libs`])
1718 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
1719 ac_gtk_config_libs=$ac_cv_gtk_config_libs
1721 # Check for Gnome Capplet support.
1723 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1724 gnome_config_libs="capplet gnomeui"
1725 AC_MSG_CHECKING(for Gnome capplet includes)
1726 AC_CACHE_VAL(ac_cv_gnome_config_cflags,
1727 [if ( $gnome_config --cflags $gnome_config_libs 2>&1 >/dev/null | \
1728 grep Unknown >/dev/null ) ; then
1729 ac_cv_gnome_config_cflags=''
1731 ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
1733 ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
1734 if test "$ac_gnome_config_cflags" = "" ; then
1738 AC_MSG_RESULT($ac_gnome_config_cflags)
1742 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1743 AC_MSG_CHECKING(for Gnome capplet libs)
1744 AC_CACHE_VAL(ac_cv_gnome_config_libs,
1745 [if ( $gnome_config --libs $gnome_config_libs 2>&1 >/dev/null |
1746 grep Unknown >/dev/null ) ; then
1747 ac_cv_gnome_config_libs=''
1749 ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
1751 ac_gnome_config_libs=$ac_cv_gnome_config_libs
1752 if test "$ac_gnome_config_libs" = "" ; then
1756 AC_MSG_RESULT($ac_gnome_config_libs)
1761 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1762 GNOME_DATADIR=`$gnome_config --datadir`
1766 # If we have Gnome, then override the gtk-config values with
1767 # the gnome-config values.
1769 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1770 ac_gtk_config_cflags=$ac_gnome_config_cflags
1771 ac_gtk_config_libs=$ac_gnome_config_libs
1772 AC_DEFINE(HAVE_CRAPPLET)
1776 if test "$have_gtk" = yes; then
1777 INCLUDES="$INCLUDES $ac_gtk_config_cflags"
1778 GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
1785 ###############################################################################
1787 # Checking whether Motif is really Lesstif.
1789 ###############################################################################
1792 if test "$have_motif" = yes ; then
1793 AC_CACHE_CHECK([whether Motif is really LessTif],
1795 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
1796 [long vers = LesstifVersion;],
1797 [ac_cv_have_lesstif=yes],
1798 [ac_cv_have_lesstif=no])])
1799 have_lesstif=$ac_cv_have_lesstif
1803 lesstif_version=unknown
1804 lesstif_version_string=unknown
1806 if test "$have_lesstif" = yes ; then
1808 echo unknown > conftest-lt
1809 AC_CACHE_CHECK([LessTif version number],
1810 ac_cv_lesstif_version_string,
1811 [AC_TRY_X_RUN([#include <stdio.h>
1814 FILE *f = fopen("conftest-lt", "w");
1816 fprintf(f, "%d %d.%d\n", LesstifVersion,
1817 LESSTIF_VERSION, LESSTIF_REVISION);
1821 [ltv=`cat conftest-lt`
1822 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
1823 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
1824 [ac_cv_lesstif_version=unknown
1825 ac_cv_lesstif_version_string=unknown],
1826 [ac_cv_lesstif_version=unknown
1827 ac_cv_lesstif_version_string=unknown])])
1829 lesstif_version=$ac_cv_lesstif_version
1830 lesstif_version_string=$ac_cv_lesstif_version_string
1835 if test "$have_motif" = yes ; then
1837 echo unknown > conftest-mt
1838 AC_CACHE_CHECK([Motif version number],
1839 ac_cv_motif_version_string,
1840 [AC_TRY_X_RUN([#include <stdio.h>
1843 FILE *f = fopen("conftest-mt", "w");
1845 fprintf(f, "%d %d.%d\n", XmVersion,
1846 XmVERSION, XmREVISION);
1850 [mtv=`cat conftest-mt`
1851 ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
1852 ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
1853 [ac_cv_motif_version=unknown
1854 ac_cv_motif_version_string=unknown],
1855 [ac_cv_motif_version=unknown
1856 ac_cv_motif_version_string=unknown])])
1858 motif_version=$ac_cv_motif_version
1859 motif_version_string=$ac_cv_motif_version_string
1864 ###############################################################################
1866 # Checking whether Motif requires -lXpm.
1868 # If this is Motif 2.x, and we have XPM, then link against XPM as well.
1869 # The deal is, Motif 2.x requires XPM -- but it's a compilation option
1870 # of the library whether to build the XPM code into libXm, or whether
1871 # to rely on an external libXm. So the only way to tell whether XPM is
1872 # a link-time requirement is to examine libXm.a, which is very
1873 # difficult to do in an autoconf script. So... if it's Motif 2.x, we
1874 # always link against XPM if the XPM lib exists (and this will be a
1875 # no-op if libXm happens to already have the XPM code in it.)
1877 ###############################################################################
1879 motif_requires_xpm=no
1880 if test "$have_motif" = yes ; then
1881 AC_MSG_CHECKING(whether Motif requires XPM)
1882 if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
1884 motif_requires_xpm=yes
1885 AC_MSG_RESULT(maybe)
1892 ###############################################################################
1894 # Checking whether Motif requires -lXp.
1896 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
1897 # Extension". Why this extension isn't in -lXext with all the others,
1900 ###############################################################################
1903 if test "$have_motif" = yes ; then
1905 AC_CHECK_X_LIB(Xp, XpQueryExtension,
1906 [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
1907 [true], -lX11 -lXext -lm)
1911 ###############################################################################
1913 # Checking whether Motif requires -lXintl (for _Xsetlocale.)
1915 ###############################################################################
1918 if test "$have_motif" = yes ; then
1919 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
1921 if test "$have_xintl" = yes; then
1922 MOTIF_LIBS="$MOTIF_LIBS -lXintl"
1927 ###############################################################################
1929 # Check for -lGL or -lMesaGL.
1931 ###############################################################################
1935 with_gl_req=unspecified
1940 --with-gl Build those demos which depend on OpenGL.],
1941 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
1943 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
1945 ac_mesagl_version=unknown
1946 ac_mesagl_version_string=unknown
1948 if test "$with_gl" = yes; then
1949 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
1950 if test "$have_gl" = yes ; then
1951 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no)
1954 # If we have the headers, try and figure out which vendor it's from.
1956 if test "$have_gl" = yes ; then
1958 # We need to know whether it's MesaGL so that we know which libraries
1961 AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
1962 [ac_cv_have_mesa_gl=no
1963 AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
1965 ac_have_mesa_gl=$ac_cv_have_mesa_gl
1972 # Some versions of MesaGL are compiled to require -lpthread.
1973 # So if the Mesa headers exist, and -lpthread exists, then always
1974 # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
1976 if test "$ac_have_mesa_gl" = yes; then
1977 AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
1981 # If we have Mesa headers, check to see if we can link against -lMesaGL.
1982 # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
1983 # Else, warn that GL is busted. (We have the headers, but no libs.)
1986 if test "$ac_have_mesa_gl" = yes ; then
1987 AC_CHECK_X_LIB(MesaGL, glXCreateContext,
1989 GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
1990 [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
1993 if test "$gl_lib_1" = "" ; then
1994 AC_CHECK_X_LIB(GL, glXCreateContext,
1996 GL_LIBS="-lGL -lGLU $GL_LIBS"],
1997 [], -lGLU $GL_LIBS -lX11 -lXext -lm)
2000 if test "$gl_lib_1" = "" ; then
2001 # we have headers, but no libs -- bail.
2006 # linking works -- we can build the GL hacks.
2008 if test "$ac_have_mesa_gl" = yes ; then
2009 AC_DEFINE(HAVE_MESA_GL)
2015 # Now that we know we have GL headers and libs, do some more GL testing.
2018 if test "$have_gl" = yes ; then
2019 # If it's MesaGL, we'd like to issue a warning if the version number
2020 # is less than or equal to 2.6, because that version had a security bug.
2022 if test "$ac_have_mesa_gl" = yes; then
2024 AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
2025 [cat > conftest.$ac_ext <<EOF
2026 #line __oline__ "configure"
2027 #include "confdefs.h"
2029 #ifndef MESA_MAJOR_VERSION
2030 # include <GL/xmesa.h>
2031 # define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
2032 # define MESA_MINOR_VERSION XMESA_MINOR_VERSION
2034 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
2037 ac_save_CPPFLAGS="$CPPFLAGS"
2038 if test \! -z "$includedir" ; then
2039 CPPFLAGS="$CPPFLAGS -I$includedir"
2041 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2045 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \
2046 's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
2049 rm -f conftest.$ac_ext
2051 CPPFLAGS="$ac_save_CPPFLAGS"
2053 if test "$mglv" = ""; then
2054 ac_mesagl_version=unknown
2055 ac_mesagl_version_string=unknown
2057 ac_mesagl_version_string=$mglv
2058 maj=`echo $mglv | sed -n 's/\..*//p'`
2059 min=`echo $mglv | sed -n 's/.*\.//p'`
2060 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
2061 if test -z "$ac_mesagl_version"; then
2062 ac_mesagl_version=unknown
2063 ac_mesagl_version_string=unknown
2066 ac_cv_mesagl_version=$ac_mesagl_version
2067 ac_cv_mesagl_version_string=$ac_mesagl_version_string
2069 ac_mesagl_version=$ac_cv_mesagl_version
2070 ac_mesagl_version_string=$ac_cv_mesagl_version_string
2074 # Check for OpenGL 1.1 features.
2076 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
2077 [true], $GL_LIBS -lX11 -lXext -lm)
2080 elif test "$with_gl" != no; then
2081 echo "error: must be yes or no: --with-gl=$with_gl"
2086 ###############################################################################
2090 ###############################################################################
2093 with_gle_req=unspecified
2096 [ --with-gle Build those demos which depend on GLE
2097 (the OpenGL "extrusion" library.)],
2098 [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
2100 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
2104 if test "$with_gle" = yes; then
2106 AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no)
2107 if test "$have_gle3" = yes ; then
2110 AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no)
2111 if test "$have_gle" = yes ; then
2112 AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no)
2116 if test "$have_gle" = yes ; then
2119 AC_CHECK_X_LIB(gle, gleCreateGC,
2120 [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
2121 [], $GL_LIBS -lX11 -lXext -lm)
2123 if test "$have_gle" = yes ; then
2127 # sometimes the libmatrix stuff is included in libgle. look there first.
2129 # I don't get it. For some reason, this test passes on SGI, as if
2130 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
2131 # Yet the link is succeeding. Why???
2133 # AC_CHECK_X_LIB(gle, uview_direction_d,
2134 # [have_gle=yes; gle_halfassed=no],
2135 # [], $GL_LIBS -lX11 -lXext -lm)
2137 # As of GLE 3 this is in libgle, and has changed name to uview_direction!
2139 if test "$have_gle3" = yes ; then
2140 AC_CHECK_X_LIB(gle, uview_direction,
2141 [have_gle=yes; gle_halfassed=no],
2142 [], $GL_LIBS -lX11 -lXext -lm)
2144 # if it wasn't in libgle, then look in libmatrix.
2145 if test "$have_gle" = no ; then
2146 AC_CHECK_X_LIB(matrix, uview_direction_d,
2147 [have_gle=yes; gle_halfassed=no;
2148 GLE_LIBS="$GLE_LIBS -lmatrix"],
2149 [], $GL_LIBS -lX11 -lXext -lm)
2153 if test "$have_gle" = yes ; then
2155 if test "$have_gle3" = yes ; then
2156 AC_DEFINE(HAVE_GLE3)
2160 elif test "$with_gle" != no; then
2161 echo "error: must be yes or no: --with-gle=$with_gle"
2168 ###############################################################################
2172 ###############################################################################
2175 with_xpm_req=unspecified
2177 [ --with-xpm Include support for XPM files in some demos.],
2178 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2180 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2182 if test "$with_xpm" = yes; then
2183 AC_CHECK_X_HEADER(X11/xpm.h,
2187 elif test "$with_xpm" != no; then
2188 echo "error: must be yes or no: --with-xpm=$with_xpm"
2192 # See comment near $motif_requires_xpm, above.
2193 # Need to do this here, after both Motif and XPM have been checked for.
2195 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2196 if test "$motif_requires_xpm" = yes ; then
2197 MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
2202 ###############################################################################
2204 # Check for the XSHM server extension.
2206 ###############################################################################
2209 with_xshm_req=unspecified
2210 AC_ARG_WITH(xshm-ext,
2211 [ --with-xshm-ext Include support for the XSHM extension.],
2212 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
2214 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
2216 if test "$with_xshm" = yes; then
2218 # first check for Xshm.h.
2219 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes])
2221 # if that succeeded, then check for sys/ipc.h.
2222 if test "$have_xshm" = yes; then
2224 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
2227 # if that succeeded, then check for sys/shm.h.
2228 if test "$have_xshm" = yes; then
2230 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
2233 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
2234 # to exist, but the library code to not exist. And even better, the library
2235 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
2236 # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and
2237 # that's not quite right, but close enough.)
2241 if [ `uname -v` -eq 3 ]; then
2243 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
2244 [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
2245 [true], -lX11 -lXext -lm)
2250 # if that succeeded, then we've really got it.
2251 if test "$have_xshm" = yes; then
2252 AC_DEFINE(HAVE_XSHM_EXTENSION)
2255 elif test "$with_xshm" != no; then
2256 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
2261 ###############################################################################
2263 # Check for the DOUBLE-BUFFER server extension.
2265 ###############################################################################
2268 with_xdbe_req=unspecified
2269 AC_ARG_WITH(xdbe-ext,
2270 [ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.],
2271 [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
2273 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
2275 if test "$with_xdbe" = yes; then
2277 AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes])
2278 if test "$have_xdbe" = yes; then
2279 AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
2282 elif test "$with_xdbe" != no; then
2283 echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
2288 ###############################################################################
2290 # Check for the SGI XReadDisplay server extension.
2292 # Note: this has to be down here, rather than up with the other server
2293 # extension tests, so that the output of `configure --help' is in the
2294 # right order. Arrgh!
2296 ###############################################################################
2299 with_readdisplay_req=unspecified
2300 AC_ARG_WITH(readdisplay,
2301 [ --with-readdisplay Include support for the XReadDisplay extension.],
2302 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
2303 [with_readdisplay=yes])
2305 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
2307 if test "$with_readdisplay" = yes; then
2308 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
2309 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION))
2310 elif test "$with_readdisplay" != no; then
2311 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
2316 ###############################################################################
2318 # Check for the SGI Iris Video Library.
2320 ###############################################################################
2323 with_sgivideo_req=unspecified
2324 AC_ARG_WITH(sgivideo,
2325 [ --with-sgivideo Include support for SGI's Iris Video Library.],
2326 [with_sgivideo="$withval"; with_sgivideo_req="$withval"],
2327 [with_sgivideo=yes])
2329 HANDLE_X_PATH_ARG(with_sgivideo, --with-sgivideo, Iris Video)
2331 if test "$with_sgivideo" = yes; then
2332 AC_CHECK_X_HEADER(dmedia/vl.h, have_sgivideo=yes)
2333 if test "$have_sgivideo" = yes; then
2335 AC_CHECK_LIB(vl, vlOpenVideo, [have_sgivideo=yes])
2336 if test "$have_sgivideo" = yes; then
2337 SGI_VIDEO_OBJS="$(UTILS_BIN)/sgivideo.o"
2338 SGI_VIDEO_LIBS="-lvl"
2339 AC_DEFINE(HAVE_SGI_VIDEO)
2342 elif test "$with_sgivideo" != no; then
2343 echo "error: must be yes or no: --with-sgivideo=$with_sgivideo"
2348 ###############################################################################
2350 # Check for a program to generate random text.
2352 # Zippy is funnier than the idiocy generally spat out by `fortune',
2353 # so try to find that, by invoking Emacs and asking it where its
2354 # libexec directory is ("yow" lives in there.)
2356 # If that doesn't work, see if fortune, zippy, or yow are on $PATH,
2357 # and if so, use them.
2359 # If that doesn't work, look in /usr/games, and if it's there, use
2360 # the full pathname.
2362 ###############################################################################
2366 --with-zippy=PROGRAM Some demos are able to run an external program and
2367 display its text; this names the program to use by
2368 default (though it can be overridden with X
2369 resources.) If you don't specify this, the default
2370 is to use \"yow\" from the Emacs distribution (if you
2371 have it) or else to use \"fortune\".
2373 [with_zippy_req="$withval"; with_zippy="$withval"],[with_zippy=yes])
2375 if test "$with_zippy" = no || test "$with_zippy" = yes ; then
2380 if test -n "$with_zippy_req" ; then
2381 ac_cv_zippy_program=""
2382 case "$with_zippy_req" in
2384 AC_MSG_CHECKING([for $with_zippy_req])
2385 if test -x "$with_zippy_req" ; then
2394 unset ac_cv_path_zip2
2395 AC_PATH_PROG(zip2, $with_zippy_req, [])
2396 if test "$zip2" = ""; then
2401 ac_cv_zippy_program="$with_zippy"
2403 elif test -n "$ac_cv_zippy_program"; then
2404 AC_MSG_RESULT([checking for zippy... (cached) $ac_cv_zippy_program])
2407 if test ! -n "$ac_cv_zippy_program"; then
2409 AC_CHECK_PROGS(emacs_exe, emacs)
2410 AC_CHECK_PROGS(xemacs_exe, xemacs)
2412 ac_cv_zippy_program=""
2413 eargs='-batch -q -nw --eval'
2415 if test -n "$emacs_exe" ; then
2416 AC_MSG_CHECKING([for emacs yow])
2418 # get emacs to tell us where the libexec directory is.
2420 dir=`$emacs_exe $eargs '(princ (concat exec-directory "\n"))' \
2421 2>/dev/null | tail -1`
2422 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
2424 # try running libexec/yow and see if it exits without error.
2426 if test x"$dir" != x -a -x "$dir/yow" ; then
2427 if $dir/yow >&- 2>&- ; then
2428 ac_cv_zippy_program="$dir/yow"
2429 AC_MSG_RESULT($ac_cv_zippy_program)
2436 if test -z "$ac_cv_zippy_program" ; then
2437 AC_MSG_CHECKING([for xemacs yow])
2438 if test -n "$xemacs_exe" ; then
2440 # get xemacs to tell us where the libexec directory is.
2442 dir=`$xemacs_exe $eargs '(princ (concat exec-directory "\n"))' \
2443 2>/dev/null | tail -1`
2444 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
2446 # try running libexec/yow and see if it exits without error.
2448 if test x"$dir" != x -a -x "$dir/yow" ; then
2449 if $dir/yow >&- 2>&- ; then
2450 ac_cv_zippy_program="$dir/yow"
2451 AC_MSG_RESULT($ac_cv_zippy_program)
2454 # in some xemacs installations, the pathname of the yow.lines file
2455 # isn't hardcoded into the yow executable, and must be passed on
2456 # the command line. See if it's in libexec/../etc/.
2460 dir_up=`echo "$dir" | sed 's@/[^/]*$@@'`
2463 yowlines="$dir_up/etc/yow.lines"
2464 if $dir/yow -f $yowlines >&- 2>&- ; then
2465 ac_cv_zippy_program="$dir/yow -f $yowlines"
2466 AC_MSG_RESULT($ac_cv_zippy_program)
2469 # In newer XEmacs releases, yow.lines is in a different place,
2470 # and the easiest way to get it is by calling the new function
2471 # `locate-data-file'.
2473 yowlines=`$xemacs_exe $eargs \
2474 '(princ (concat (locate-data-file "yow.lines") "\n"))' \
2475 2>/dev/null | tail -1`
2476 if $dir/yow -f $yowlines >&- 2>&- ; then
2477 ac_cv_zippy_program="$dir/yow -f $yowlines"
2478 AC_MSG_RESULT($ac_cv_zippy_program)
2488 # if that didn't work, try for some other programs...
2489 if test -z "$ac_cv_zippy_program" ; then
2491 AC_CHECK_PROGS(fortune, [fortune zippy yow])
2492 # if that didn't work, try for those programs in /usr/games...
2493 if test -z "$fortune" ; then
2494 AC_PATH_PROGS(fortune, [fortune zippy yow], fortune,
2495 /usr/games:/usr/local/games:$PATH)
2500 if test -z "$ac_cv_zippy_program" ; then
2501 ac_cv_zippy_program=fortune
2504 AC_DEFINE_UNQUOTED(ZIPPY_PROGRAM, "$ac_cv_zippy_program")
2507 ###############################################################################
2509 # Done testing. Now, set up the various -I and -L variables,
2510 # and decide which GUI program to build by default.
2512 ###############################################################################
2519 if test \! -z "$includedir" ; then
2520 INCLUDES="$INCLUDES -I$includedir"
2523 if test \! -z "$libdir" ; then
2524 LDFLAGS="$LDFLAGS -L$libdir"
2528 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2530 if test "$have_motif" = yes; then
2531 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2532 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2534 if test "$have_gtk" = yes; then
2535 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
2536 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2540 if test "$have_kerberos" = yes; then
2541 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
2542 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
2544 if test "$have_pam" = yes; then
2545 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
2546 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
2547 INSTALL_PAM="install-pam"
2549 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
2550 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
2553 if test "$enable_locking" = yes; then
2554 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
2555 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
2557 LOCK_SRCS='$(NOLOCK_SRCS_1)'
2558 LOCK_OBJS='$(NOLOCK_OBJS_1)'
2561 if test "$need_setuid" = yes; then
2563 INSTALL_SETUID='$(INSTALL) $(SUID_FLAGS)'
2566 INSTALL_SETUID='$(INSTALL_PROGRAM)'
2570 if test "$have_gl" = yes; then
2571 GL_EXES='$(GL_EXES)'
2575 GL_KLUDGE="-${tab} "
2578 if test "$have_gle" = yes; then
2579 GLE_EXES='$(GLE_EXES)'
2580 GLE_MEN='$(GLE_MEN)'
2581 GLE_KLUDGE="${tab} "
2583 GLE_KLUDGE="-${tab} "
2587 ###############################################################################
2589 # Perform substitutions and write Makefiles.
2591 ###############################################################################
2595 AC_SUBST(PREFERRED_DEMO_PROGRAM)
2596 AC_SUBST(ALL_DEMO_PROGRAMS)
2597 AC_SUBST(SAVER_LIBS)
2598 AC_SUBST(MOTIF_LIBS)
2604 AC_SUBST(XDPMS_LIBS)
2605 AC_SUBST(PASSWD_LIBS)
2606 AC_SUBST(INSTALL_SETUID)
2607 AC_SUBST(INSTALL_DIRS)
2608 AC_SUBST(NEED_SETUID)
2609 AC_SUBST(INSTALL_PAM)
2610 AC_SUBST(SGI_VIDEO_OBJS)
2611 AC_SUBST(SGI_VIDEO_LIBS)
2613 AC_SUBST(PASSWD_SRCS)
2614 AC_SUBST(PASSWD_OBJS)
2617 AC_SUBST(SAVER_GL_SRCS)
2618 AC_SUBST(SAVER_GL_OBJS)
2619 AC_SUBST(SAVER_GL_LIBS)
2627 AC_SUBST(GLE_KLUDGE)
2629 AC_SUBST(GNOME_DATADIR)
2631 APPDEFAULTS=$ac_x_app_defaults
2632 AC_SUBST(APPDEFAULTS)
2635 AC_SUBST(DEPEND_FLAGS)
2636 AC_SUBST(DEPEND_DEFINES)
2644 driver/XScreenSaver.ad)
2646 ###############################################################################
2648 # Print some warnings at the end.
2650 ###############################################################################
2652 warn_prefix_1=" Warning:"
2653 warn_prefix_2=" Note:"
2654 warn_prefix="$warn_prefix_1"
2657 warnsep=' #################################################################'
2660 if test "$warning" = no ; then
2661 echo '' ; echo "$warnsep" ; echo ''
2668 if test "$warning" = long ; then echo '' ; fi
2671 echo "$warn_prefix $rest"
2678 if test "$was" != no ; then echo '' ; fi
2680 echo "$warn_prefix $rest"
2690 warn_prefix="$warn_prefix_2"
2692 warn_prefix="$warn_prefix_1"
2696 warn_prefix="$warn_prefix_2"
2698 warn_prefix="$warn_prefix_1"
2702 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
2703 warn 'The SGI saver extension was requested, but was not found.'
2706 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
2707 warn 'The MIT saver extension was requested, but was not found.'
2710 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
2711 warn 'The XIdle extension was requested, but was not found.'
2714 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
2715 warn 'The XSHM extension was requested, but was not found.'
2718 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
2719 warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
2722 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
2723 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
2726 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
2727 warn 'The DPMS extension was requested, but was not found.'
2730 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
2731 warn 'The XF86VMODE extension was requested, but was not found.'
2734 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
2735 warn "Checking of /proc/interrupts was requested, but it's bogus."
2739 if test "$have_motif" = no -a "$have_gtk" = no; then
2740 warnL "Neither Motif nor Gtk seem to be available;"
2741 warn2 "the \`xscreensaver-demo' program requires one of these."
2743 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
2744 warnL "Use of Motif was requested, but it wasn't found;"
2745 warn2 "Gtk will be used instead."
2747 elif test "$jurassic_gtk" = yes ; then
2751 v="$ac_gtk_version_string"
2752 if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
2753 warnL "Use of Gtk was requested, but its version number is unknown;"
2754 elif test "$with_gtk_req" = yes ; then
2755 warnL "Use of Gtk was requested, but it is version $v;"
2757 warnL "Gtk was found on this system, but it is version $v;"
2760 warn2 "Gtk $pref_gtk or newer is required. Motif will be used instead."
2762 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
2763 warnL "Use of Gtk was requested, but it wasn't found;"
2764 warn2 "Motif will be used instead."
2769 if test "$with_gnome_req" = yes -a "$have_gnome" = no ; then
2770 warn 'Use of the Gnome Control Panel was requested, but the necessary'
2771 warn2 'headers and/or libraries were not found.'
2775 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
2777 preferred_lesstif=0.86
2779 if test "$lesstif_version" = unknown; then
2780 warnL "Unable to determine the LessTif version number!"
2781 warn2 "Make sure you are using version $preferred_lesstif or newer."
2782 warn2 "See <http://www.lesstif.org/>."
2784 elif test \! $lesstif_version -gt 82; then
2785 warnL "LessTif version $lesstif_version_string is being used."
2786 warn2 "LessTif versions 0.82 and earlier are too buggy to"
2787 warn2 "use with XScreenSaver; it is strongly recommended"
2788 warn2 "that you upgrade to at least version $preferred_lesstif!"
2789 warn2 "See <http://www.lesstif.org/>."
2795 if test "$have_xpm" = no ; then
2796 if test "$with_xpm_req" = yes ; then
2797 warnL 'Use of XPM was requested, but it was not found.'
2798 elif test "$with_xpm_req" = no ; then
2799 noteL 'The XPM library is not being used.'
2801 noteL 'The XPM library was not found.'
2805 warn2 'Some of the demos will not be as colorful as they'
2806 warn2 'could be. You might want to consider installing XPM'
2807 warn2 'and re-running configure. (Remember to delete the'
2808 warn2 'config.cache file first.) You can find XPM at most'
2809 warn2 'X11 archive sites, such as <http://sunsite.unc.edu/>.'
2813 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
2814 preferred_mesagl=3.0
2816 if test "$ac_mesagl_version" = unknown; then
2817 warnL "Unable to determine the MesaGL version number!"
2818 warn2 "Make sure you are using version $preferred_mesagl or newer."
2820 elif test \! "$ac_mesagl_version" -gt 2006; then
2821 warnL "MesaGL version $ac_mesagl_version_string is being used."
2822 warn2 "MesaGL versions 2.6 and earlier have a security bug."
2823 warn2 "It is strongly recommended that you upgrade to at"
2824 warn2 "least version $preferred_mesagl."
2828 if test "$have_gl" = no ; then
2829 if test "$with_gl_req" = yes ; then
2830 warnL 'Use of GL was requested, but it was not found.'
2831 elif test "$with_gl_req" = no ; then
2832 noteL 'The OpenGL 3D library is not being used.'
2834 noteL 'The OpenGL 3D library was not found.'
2837 if test "$gl_halfassed" = yes ; then
2839 warn2 'More specifically, we found the headers, but not the'
2840 warn2 'libraries; so either GL is half-installed on this'
2841 warn2 "system, or something else went wrong. The \`config.log'"
2842 warn2 'file might contain some clues.'
2846 warn2 'Those demos which use 3D will not be built or installed.'
2847 warn2 'You might want to consider installing OpenGL and'
2848 warn2 're-running configure. (Remember to delete the'
2849 warn2 "config.cache file first.) If your vendor doesn't ship"
2850 warn2 'their own implementation of OpenGL, you can get a free'
2851 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
2852 warn2 'info, see <http://www.opengl.org/>.'
2857 if test "$have_gl" = yes -a "$have_gle" = no ; then
2858 if test "$with_gle_req" = yes ; then
2859 noteL 'Use of the GLE (GL Extrusion) library was requested, but'
2860 warn2 'it was not found (though the OpenGL library was found, and'
2861 warn2 'is being used.)'
2862 elif test "$with_gle_req" = no ; then
2863 noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
2864 warn2 'library is not.'
2866 noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
2870 if test "$gle_halfassed" = yes ; then
2872 warn2 'More specifically, we found the headers, but not the'
2873 warn2 'libraries; so either GLE is half-installed on this'
2874 warn2 "system, or something else went wrong. The \`config.log'"
2875 warn2 'file might contain some clues.'
2879 warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
2880 warn2 'will not be built or installed. You might want to consider'
2881 warn2 'installing GLE and re-running configure. (Remember to delete'
2882 warn2 'the config.cache file first.) You can find the GLE library'
2883 warn2 'at <http://www.linas.org/gle/>. For general OpenGL info,'
2884 warn2 'see <http://www.opengl.org/>.'
2889 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
2890 warn 'Use of XReadDisplay was requested, but it was not found.'
2893 if test "$with_sgivideo_req" = yes -a "$have_sgivideo" = no ; then
2894 warn 'Use of the Iris Video Library was requested, but it was not found.'
2897 if test -n "$with_zippy_req"; then
2898 if test "$with_zippy_req" != "$ac_cv_zippy_program" ; then
2899 warnL "$with_zippy_req was requested as the Zippy program,"
2900 warn2 "but was not found. The default will be used instead."
2904 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
2905 warn 'Use of Kerberos was requested, but it was not found.'
2908 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
2909 warn 'Use of PAM was requested, but it was not found.'
2912 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
2913 warn 'Use of shadow passwords was requested, but they were not found.'
2917 # You are in a twisty maze of namespaces and syntaxes, all alike.
2918 # Fuck the skull of Unix.
2920 eval bindir=${bindir}
2921 eval bindir=${bindir}
2922 eval bindir=${bindir}
2923 eval bindir=${bindir}
2924 eval bindir=${bindir}
2925 eval bindir=${bindir}
2926 eval HACKDIR=${HACKDIR}
2927 eval HACKDIR=${HACKDIR}
2928 eval HACKDIR=${HACKDIR}
2929 eval HACKDIR=${HACKDIR}
2930 eval HACKDIR=${HACKDIR}
2931 eval HACKDIR=${HACKDIR}
2933 # canonicalize slashes.
2934 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
2935 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
2938 # Sanity check the subdir
2939 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
2940 if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
2942 AC_MSG_ERROR([\"--enable-subdir=${bindir}/${bad_choice}\" won't work.
2943 There will be an executable installed with that name, so
2944 that can't be the name of a directory as well. Please
2945 re-configure with a different directory name.])
2952 # Now let's see if there's a previous RPM version already installed. Blargh!
2956 rpmv=`(rpm -qv xscreensaver) 2>&- | \
2957 sed 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/'`
2960 if test \! -z "$rpmv" ; then
2961 rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
2962 rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
2965 warnL "There is already an installed RPM of xscreensaver $rpmv"
2966 warn2 "on this system. You might want to remove it (with"
2967 warn2 '"rpm -ve xscreensaver") before running "make install"'
2968 warn2 "from this directory."
2970 warn2 "Alternately, you could build this version of xscreensaver"
2971 warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
2972 warn2 "file is included. See the RPM documentation for more info."
2975 if test "$rpmbdir" = "$rpmhdir" ; then
2976 warn2 "The RPM version was installed in $rpmbdir."
2978 warn2 "The RPM version was installed in $rpmbdir,"
2979 warn2 "with demos in $rpmhdir."
2986 # Warn about egregious GNOME bogosity.
2988 #if (rpm -qv control-center) >&- 2>&- ; then
2990 # warnL "The Gnome Control Center seems to be installed."
2992 # warn2 "Note that simply installing this version of xscreensaver"
2993 # warn2 "will not cause GNOME to know about the newly-added display"
2994 # warn2 "modes -- GNOME is just lame that way. Instead of using the"
2995 # warn2 "Control Center, try using the \`xscreensaver-demo' command."
2999 if test "${bindir}" = "${HACKDIR}" ; then
3003 if test "$do_dir_warning" = yes; then
3007 echo ' When you run "make install", the "xscreensaver",'
3008 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
3009 echo " will be installed in ${bindir}."
3011 echo " The various graphics demos (100+ different executables) will"
3012 echo " also be installed in ${HACKDIR}."
3014 echo " If you would prefer the demos to be installed elsewhere"
3015 echo " (for example, in a dedicated directory) you should re-run"
3016 echo " configure with the --enable-subdir=DIR option. For more"
3017 echo " information, run $0 --help."
3021 if test "$warning" != no; then
3022 echo '' ; echo "$warnsep" ; echo ''