1 # configure.in --- xscreensaver, Copyright (c) 1997 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"
69 AC_MSG_RESULT(Disabling C++ comments in ANSI C code.)
70 CC="$CC -Wp,-lang-c89"
73 *-irix5* |*-irix6.[0-3]* )
74 AC_MSG_RESULT(Turning on SGI compiler warnings.)
75 CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
78 # if test -z "$GCC"; then
79 # AC_MSG_RESULT(Turning on DEC C compiler warnings.)
80 # CC="$CC -migrate -w0 -verbose -warnprotos"
88 ###############################################################################
90 # Function to figure out how to create directory trees.
92 ###############################################################################
94 AC_DEFUN(AC_PROG_INSTALL_DIRS,
95 [AC_CACHE_CHECK([whether \"\${INSTALL} -d\" creates intermediate directories],
96 ac_cv_install_d_creates_dirs,
97 [ac_cv_install_d_creates_dirs=no
99 if mkdir conftestdir; then
101 ${INSTALL} -d `pwd`/dir1/dir2 >&- 2>&-
102 if test -d dir1/dir2/. ; then
103 ac_cv_install_d_creates_dirs=yes
110 if test "$ac_cv_install_d_creates_dirs" = no ; then
111 AC_CACHE_CHECK([whether \"mkdir -p\" creates intermediate directories],
112 ac_cv_mkdir_p_creates_dirs,
113 [ac_cv_mkdir_p_creates_dirs=no
115 if mkdir conftestdir; then
117 mkdir -p dir1/dir2 >&- 2>&-
118 if test -d dir1/dir2/. ; then
119 ac_cv_mkdir_p_creates_dirs=yes
127 if test "$ac_cv_install_d_creates_dirs" = yes ; then
128 INSTALL_DIRS='${INSTALL} -d'
129 elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then
130 INSTALL_DIRS='mkdir -p'
133 INSTALL_DIRS='${INSTALL} -d'
138 ###############################################################################
140 # Function to check whether gettimeofday() exists, and how to call it.
141 # This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS.
143 ###############################################################################
145 AC_DEFUN(AC_GETTIMEOFDAY_ARGS,
146 [AC_MSG_CHECKING(how to call gettimeofday)
147 AC_CACHE_VAL(ac_cv_gettimeofday_args,
148 [AC_TRY_COMPILE([#include <stdlib.h>
149 #include <sys/time.h>],
150 [struct timeval tv; struct timezone tzp;
151 gettimeofday(&tv, &tzp);],
152 [ac_gettimeofday_args=2],
153 [AC_TRY_COMPILE([#include <stdlib.h>
154 #include <sys/time.h>],
155 [struct timeval tv; gettimeofday(&tv);],
156 [ac_gettimeofday_args=1],
157 [ac_gettimeofday_args=0])])
158 ac_cv_gettimeofday_args=$ac_gettimeofday_args])
159 ac_gettimeofday_args=$ac_cv_gettimeofday_args
160 if test "$ac_gettimeofday_args" = 1 ; then
161 AC_DEFINE(HAVE_GETTIMEOFDAY)
162 AC_MSG_RESULT(one argument)
163 elif test "$ac_gettimeofday_args" = 2 ; then
164 AC_DEFINE(HAVE_GETTIMEOFDAY)
165 AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
166 AC_MSG_RESULT(two arguments)
168 AC_MSG_RESULT(unknown)
173 ###############################################################################
175 # Function to find perl5 (defines PERL and PERL_VERSION.)
177 ###############################################################################
179 # M4 sucks!! perl sucks too!!
181 perl_version_cmd='print $]'
184 AC_DEFUN(AC_PROG_PERL,
185 [AC_PATH_PROGS(PERL, [perl5 perl],,)
186 if test -z "$PERL" ; then
189 AC_CACHE_CHECK([perl version], ac_cv_perl_version,
190 [ac_cv_perl_version=`$PERL -e "$perl_version_cmd"`])
191 PERL_VERSION=$ac_cv_perl_version
196 ###############################################################################
198 # Function to demand "bc". Losers.
200 ###############################################################################
202 AC_DEFUN(AC_DEMAND_BC,
203 [ac_bc_result=`echo 6+9 | bc 2>/dev/null`
204 AC_MSG_CHECKING([for bc])
205 if test "$ac_bc_result" = "15" ; then
210 AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard
211 part of Unix since the 1970s. Come back when your vendor
216 ###############################################################################
218 # Functions to check how to do ICMP PING requests.
220 ###############################################################################
222 AC_DEFUN(AC_CHECK_ICMP,
223 [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp,
224 [AC_TRY_COMPILE([#include <stdlib.h>
231 #include <sys/types.h>
232 #include <sys/time.h>
235 #include <sys/socket.h>
236 #include <netinet/in_systm.h>
237 #include <netinet/in.h>
238 #include <netinet/ip.h>
239 #include <netinet/ip_icmp.h>
240 #include <netinet/udp.h>
241 #include <arpa/inet.h>
245 struct sockaddr_in si;
247 i.icmp_type = ICMP_ECHO;
252 si.sin_family = AF_INET;
254 [ac_cv_have_icmp=yes],
255 [ac_cv_have_icmp=no])])
256 if test "$ac_cv_have_icmp" = yes ; then
260 AC_DEFUN(AC_CHECK_ICMPHDR,
261 [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr,
262 [AC_TRY_COMPILE([#include <stdlib.h>
269 #include <sys/types.h>
270 #include <sys/time.h>
273 #include <sys/socket.h>
274 #include <netinet/in_systm.h>
275 #include <netinet/in.h>
276 #include <netinet/ip.h>
277 #include <netinet/ip_icmp.h>
278 #include <netinet/udp.h>
279 #include <arpa/inet.h>
283 struct sockaddr_in si;
289 i.un.echo.sequence = 0;
290 si.sin_family = AF_INET;
292 [ac_cv_have_icmphdr=yes],
293 [ac_cv_have_icmphdr=no])])
294 if test "$ac_cv_have_icmphdr" = yes ; then
295 AC_DEFINE(HAVE_ICMPHDR)
299 ###############################################################################
301 # Functions to check for various X11 crap.
303 ###############################################################################
305 # Try and find the app-defaults directory.
306 # It sucks that autoconf doesn't do this already...
308 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
310 if mkdir conftestdir; then
312 # Make sure to not put "make" in the Imakefile rules, since we grep it out.
313 cat > Imakefile <<'EOF'
315 @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
317 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
318 # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
319 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
325 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
326 # Look for the directory under a standard set of common directories.
327 # Check X11 before X11Rn because it's often a symlink to the current release.
329 /usr/X11/lib/app-defaults \
330 /usr/X11R6/lib/app-defaults \
331 /usr/X11R6/lib/X11/app-defaults \
332 /usr/X11R5/lib/app-defaults \
333 /usr/X11R5/lib/X11/app-defaults \
334 /usr/X11R4/lib/app-defaults \
335 /usr/X11R4/lib/X11/app-defaults \
337 /usr/lib/X11/app-defaults \
338 /usr/lib/X11R6/app-defaults \
339 /usr/lib/X11R5/app-defaults \
340 /usr/lib/X11R4/app-defaults \
342 /usr/local/X11/lib/app-defaults \
343 /usr/local/X11R6/lib/app-defaults \
344 /usr/local/X11R5/lib/app-defaults \
345 /usr/local/X11R4/lib/app-defaults \
347 /usr/local/lib/X11/app-defaults \
348 /usr/local/lib/X11R6/app-defaults \
349 /usr/local/lib/X11R6/X11/app-defaults \
350 /usr/local/lib/X11R5/app-defaults \
351 /usr/local/lib/X11R5/X11/app-defaults \
352 /usr/local/lib/X11R4/app-defaults \
353 /usr/local/lib/X11R4/X11/app-defaults \
355 /usr/X386/lib/X11/app-defaults \
356 /usr/x386/lib/X11/app-defaults \
357 /usr/XFree86/lib/X11/app-defaults \
359 /usr/lib/X11/app-defaults \
360 /usr/local/lib/X11/app-defaults \
361 /usr/unsupported/lib/X11/app-defaults \
362 /usr/athena/lib/X11/app-defaults \
363 /usr/local/x11r5/lib/X11/app-defaults \
364 /usr/lpp/Xamples/lib/X11/app-defaults \
365 /lib/usr/lib/X11/app-defaults \
367 /usr/openwin/lib/app-defaults \
368 /usr/openwin/lib/X11/app-defaults \
369 /usr/openwin/share/lib/app-defaults \
370 /usr/openwin/share/lib/X11/app-defaults \
372 /X11R6/lib/app-defaults \
373 /X11R5/lib/app-defaults \
374 /X11R4/lib/app-defaults \
377 if test -d "$ac_dir"; then
378 ac_x_app_defaults=$ac_dir
384 AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
386 AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
387 [AC_PATH_X_APP_DEFAULTS_XMKMF
388 if test x"$ac_x_app_defaults" = x; then
389 AC_PATH_X_APP_DEFAULTS_DIRECT
391 if test x"$ac_x_app_defaults" = x; then
392 ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
394 # Record where we found app-defaults for the cache.
395 ac_cv_x_app_defaults="$ac_x_app_defaults"
397 eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
400 AC_DEFUN(AC_XPOINTER,
401 [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
402 [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
403 [XPointer foo = (XPointer) 0;],
404 [ac_cv_xpointer=yes],
405 [ac_cv_xpointer=no])])
406 if test "$ac_cv_xpointer" != yes; then
407 AC_DEFINE(XPointer,[char*])
411 # Random special-cases for X on certain pathological OSes.
412 # You know who you are.
414 AC_DEFUN(AC_X_RANDOM_PATHS,
418 # The following arcana was gleaned from conversations with
419 # Eric Schwartz <erics@col.hp.com>:
421 # On HPUX 10.x, the parts of X that HP considers "standard" live in
422 # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider
423 # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
424 # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems.
425 # Also, there are symlinks from /usr/include/ and /usr/lib/ into
426 # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
427 # you don't need any -I or -L arguments.
429 # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
430 # are the same division as 10.x. However, there are no symlinks to
431 # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
432 # arguments are always necessary.
434 # However, X11R6 was available on HPUX 9.x as a patch: if that
435 # patch was installed, then all of X11R6 went in to
436 # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
438 # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
439 # whether R5 was available as a patch; R6 undoubtedly was not.)
441 # So. We try and use the highest numbered pair of
442 # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
443 # that are available. We do not mix and match different versions
446 # Question I still don't know the answer to: (do you?)
448 # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
449 # /usr/contrib/X11R6/ could be installed as a patch, what was in
450 # that contrib directory? Did it contain so-called "standard"
451 # X11R6, or did it include Xaw and Xmu as well? If the former,
452 # where did one find Xaw and Xmu on 9.x R6 systems? Would this
453 # be a situation where one had to reach into the R5 headers and
454 # libs to find Xmu? That is, must both R6 and R5 directories
455 # be on the -I and -L lists in that case?
457 for version in X11R6 X11R5 X11R4 ; do
458 # if either pair of directories exists...
459 if test -d /usr/lib/$version || test -d /usr/contrib/$version/lib
461 # if contrib exists, use it...
462 if test -d /usr/contrib/$version/lib ; then
463 X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
464 X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
466 # if the "standard" one exists, use it.
467 if test -d /usr/lib/$version ; then
468 X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
469 X_LIBS="$X_LIBS -L/usr/lib/$version"
471 # since at least one of the pair exists, go no farther.
476 # Now find Motif. Thanks for not making xmkmf find this by
477 # default, you losers.
479 if test -d /usr/lib/Motif1.2 ; then
480 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
481 X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
482 elif test -d /usr/lib/Motif1.1 ; then
483 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
484 X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
487 # Now let's check for the pseudo-standard locations for OpenGL and XPM.
489 if test -d /opt/Mesa/lib ; then
490 X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
491 X_LIBS="-L/opt/Mesa/lib $X_LIBS"
494 if test -d /opt/xpm/lib/X11 ; then
495 X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
496 X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
499 # On HPUX, default to installing in /opt/xscreensaver/ instead of
500 # in /usr/local/, unless there is already an xscreensaver in
501 # /usr/local/bin/. This can be overridden with the --prefix arg
502 # to configure. I'm not sure this is the right thing to do, but
503 # Richard Lloyd says so...
505 if test \! -x /usr/local/bin/xscreensaver ; then
506 ac_default_prefix=/opt/xscreensaver
512 # Thanks for not making xmkmf find this by default, pinheads.
513 # And thanks for moving things around again, too. Is this
514 # really the standard location now? What happened to the
515 # joke that this kind of thing went in /opt?
516 # cthomp says "answer: CDE (Common Disorganized Environment)"
518 if test -f /usr/dt/include/Xm/Xm.h ; then
519 X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
520 X_LIBS="$X_LIBS -L/usr/dt/lib -R:/usr/dt/lib"
522 # Some versions of Slowlaris Motif require -lgen. But not all. Why?
523 AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"])
530 ###############################################################################
532 # Some utility functions to make checking for X things easier.
534 ###############################################################################
536 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
538 AC_DEFUN(AC_CHECK_X_HEADER, [
539 ac_save_CPPFLAGS="$CPPFLAGS"
540 if test \! -z "$includedir" ; then
541 CPPFLAGS="$CPPFLAGS -I$includedir"
543 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
544 AC_CHECK_HEADER([$1], [$2])
545 CPPFLAGS="$ac_save_CPPFLAGS"])
547 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
549 AC_DEFUN(AC_EGREP_X_HEADER, [
550 ac_save_CPPFLAGS="$CPPFLAGS"
551 if test \! -z "$includedir" ; then
552 CPPFLAGS="$CPPFLAGS -I$includedir"
554 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
555 AC_EGREP_HEADER([$1], [$2], [$3], [$4])
556 CPPFLAGS="$ac_save_CPPFLAGS"])
558 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
560 AC_DEFUN(AC_TRY_X_COMPILE, [
561 ac_save_CPPFLAGS="$CPPFLAGS"
562 if test \! -z "$includedir" ; then
563 CPPFLAGS="$CPPFLAGS -I$includedir"
565 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
566 AC_TRY_COMPILE([$1], [$2], [$3], [$4])
567 CPPFLAGS="$ac_save_CPPFLAGS"])
570 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
571 # Use this sparingly; it probably doesn't work very well on X programs.
573 AC_DEFUN(AC_CHECK_X_LIB, [
574 ac_save_CPPFLAGS="$CPPFLAGS"
575 ac_save_LDFLAGS="$LDFLAGS"
576 # ac_save_LIBS="$LIBS"
578 if test \! -z "$includedir" ; then
579 CPPFLAGS="$CPPFLAGS -I$includedir"
581 # note: $X_CFLAGS includes $x_includes
582 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
584 if test \! -z "$libdir" ; then
585 LDFLAGS="$LDFLAGS -L$libdir"
587 # note: $X_LIBS includes $x_libraries
588 LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
590 AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
591 CPPFLAGS="$ac_save_CPPFLAGS"
592 LDFLAGS="$ac_save_LDFLAGS"
593 # LIBS="$ac_save_LIBS"
596 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
597 # (But not the -L directories!)
599 AC_DEFUN(AC_TRY_X_RUN, [
600 ac_save_CPPFLAGS="$CPPFLAGS"
601 if test \! -z "$includedir" ; then
602 CPPFLAGS="$CPPFLAGS -I$includedir"
604 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
605 AC_TRY_RUN([$1], [$2], [$3], [$4])
606 CPPFLAGS="$ac_save_CPPFLAGS"])
610 # Usage: HANDLE_X_PATH_ARG([variable_name],
611 # [--command-line-option],
612 # [descriptive string])
614 # All of the --with options take three forms:
616 # --with-foo (or --with-foo=yes)
617 # --without-foo (or --with-foo=no)
620 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees
621 # a directory (string beginning with a slash) it checks to see whether
622 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
625 AC_DEFUN(HANDLE_X_PATH_ARG, [
631 AC_MSG_CHECKING([for [$3] headers])
634 X_CFLAGS="-I$d $X_CFLAGS"
637 AC_MSG_RESULT(not found ($d: no such directory))
640 AC_MSG_CHECKING([for [$3] libs])
643 X_LIBS="-L$d $X_LIBS"
646 AC_MSG_RESULT(not found ($d: no such directory))
649 # replace the directory string with "yes".
656 echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
657 echo " If it is a directory, then \`DIR/include' will be added to"
658 echo " the -I list, and \`DIR/lib' will be added to the -L list."
666 ###############################################################################
667 ###############################################################################
669 # End of function definitions. Now start actually executing stuff.
671 ###############################################################################
672 ###############################################################################
674 # random compiler setup
682 # stuff for Makefiles
689 AC_CHECK_HEADERS(unistd.h)
698 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv)
700 AC_CHECK_FUNCS(sigaction syslog realpath)
703 AC_CHECK_HEADERS(crypt.h sys/select.h)
706 if test -z "$PERL" ; then
707 # don't let it be blank...
708 PERL=/usr/local/bin/perl5
713 if test "$have_x" != yes; then
714 AC_MSG_ERROR(Couldn't find X11 headers/libs. Try \`$0 --help'.)
717 AC_PATH_X_APP_DEFAULTS
723 ###############################################################################
725 # Check for -lXmu (some fucked up vendors don't ship it...)
727 ###############################################################################
730 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes])
731 if test "$have_xmu" = no ; then
732 XMU_SRCS='$(UTILS_SRC)/xmu.c'
733 XMU_OBJS='$(UTILS_BIN)/xmu.o'
737 SAVER_LIBS="-lXmu $SAVER_LIBS"
738 HACK_LIBS="-lXmu $HACK_LIBS"
739 MOTIF_LIBS="-lXmu $MOTIF_LIBS"
740 GTK_LIBS="-lXmu $GTK_LIBS"
745 ###############################################################################
747 # Check for the SunOS 4.1.x _get_wmShellWidgetClass bug.
748 # See comp.windows.x FAQ question 124. The right fix is to
749 # get OpenWindows 3.0 patches 100512-02 and 100573-03.
751 ###############################################################################
753 if test "$have_xmu" = yes ; then
756 AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
758 [ac_save_LDFLAGS="$LDFLAGS"
759 if test \! -z "$x_libraries" ; then
760 LDFLAGS="$LDFLAGS -L$x_libraries"
762 # Note: this trick never works! (Generally.)
763 # We're only getting away with using AC_TRY_LINK
764 # with X libraries because we know it's SunOS.
765 LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
767 [ac_cv_sunos_xmu_bug=no],
768 [ac_cv_sunos_xmu_bug=yes])
769 LDFLAGS="$ac_save_LDFLAGS"])
770 if test "$ac_cv_sunos_xmu_bug" = yes ; then
771 AC_CACHE_CHECK([whether the compiler understands -static],
773 [ac_save_LDFLAGS="$LDFLAGS"
774 LDFLAGS="$LDFLAGS -static"
775 AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
776 LDFLAGS="$ac_save_LDFLAGS"])
777 if test "$ac_cv_ld_static" = yes ; then
778 LDFLAGS="$LDFLAGS -static"
780 LDFLAGS="$LDFLAGS -Bstatic"
788 ###############################################################################
790 # Handle the --enable-subdir option
792 ###############################################################################
794 AC_ARG_ENABLE(subdir,[
795 Installation options:
797 --enable-subdir=DIR Put the demo programs in a subdirectory of \`bindir',
798 instead of putting them in bindir itself. You can
799 specify the name of the subdirectory. For example,
800 \`--exec-prefix=/usr/local --enable-subdir=demos'
801 would put xscreensaver in /usr/local/bin/, and would
802 put the demos in /usr/local/bin/demos/. (If DIR
803 begins with /, then bindir will not be prepended.)
805 --disable-subdir Just put the demos in \`bindir' (this is the default.)
807 [enable_subdir="$enableval"],[enable_subdir=no])
808 if test x"$enable_subdir" = xno; then
810 elif test x"$enable_subdir" = xyes -o x"$enable_subdir" = x ; then
811 echo "error: must be a subdirectory name: --enable-subdir=$enable_subdir"
814 # there must be a better way than this...
815 if test -z "`echo $enable_subdir | sed 's@^/.*@@'`" ; then
817 HACKDIR=$enable_subdir
820 HACKDIR='${bindir}/'$enable_subdir
824 # canonicalize slashes.
825 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
828 ###############################################################################
830 # Check for the SGI SCREEN_SAVER server extension.
832 ###############################################################################
835 with_sgi_req=unspecified
837 [Except where noted, all of the --with options below can also take a
838 directory argument: for example, \`--with-motif=/opt/Motif'. That would
839 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
840 to be added to the -L list, assuming those directories exist.
842 By default, support for each of these options will be built in, if the
843 relevant library routines exist. At run time, they will then be used
844 only if the X server being used supports them. Each --with option has
845 a corresponding --without option, to override building support for them
848 Screen blanking and idle-detection options:
850 --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.],
851 [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
853 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
855 if test "$with_sgi" = yes; then
856 AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
858 AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)])
860 elif test "$with_sgi" != no; then
861 echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
866 ###############################################################################
868 # Check for the MIT-SCREEN-SAVER server extension.
870 ###############################################################################
873 with_mit_req=unspecified
875 [ --with-mit-ext Include support for the MIT-SCREEN-SAVER extension.],
876 [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
878 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
880 if test "$with_mit" = yes; then
881 AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes])
883 # Now check to see if it's really in the library; XF86Free-3.3 ships
884 # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
886 if test "$have_mit" = yes; then
887 AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [true], [have_mit=no], -lm)
889 if test "$have_mit" = no; then
890 # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead
891 # of in Xext. Thank you master, may I have another.
892 AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
893 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
894 [true], -lX11 -lXext -lm)
897 if test "$have_mit" = no; then
898 # Double fuck! Looks like some versions of XFree86 (whichever version
899 # it is that comes with RedHat Linux 2.0 -- I can't find a version
900 # number) put this garbage in Xss instead of Xext. Thank you master,
901 # may I have another.
902 AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
903 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
904 [true], -lX11 -lXext -lm)
907 if test "$have_mit" = yes; then
908 AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
913 elif test "$with_mit" != no; then
914 echo "error: must be yes or no: --with-mit-ext=$with_mit"
919 ###############################################################################
921 # Check for the XIDLE server extension.
923 ###############################################################################
926 with_xidle_req=unspecified
927 AC_ARG_WITH(xidle-ext,
928 [ --with-xidle-ext Include support for the XIDLE extension.],
929 [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
931 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
933 if test "$with_xidle" = yes; then
934 AC_CHECK_X_HEADER(X11/extensions/xidle.h,
936 AC_DEFINE(HAVE_XIDLE_EXTENSION)])
937 elif test "$with_xidle" != no; then
938 echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
943 ###############################################################################
945 # Check for the SGI-VIDEO-CONTROL server extension.
947 ###############################################################################
950 with_sgivc_req=unspecified
951 AC_ARG_WITH(sgivc-ext,
952 [ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension.],
953 [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
955 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
957 if test "$with_sgivc" = yes; then
959 # first check for XSGIvc.h
960 AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes])
962 # if that succeeded, then check for the -lXsgivc
963 if test "$have_sgivc" = yes; then
965 AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
966 [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
970 # if that succeeded, then we've really got it.
971 if test "$have_sgivc" = yes; then
972 AC_DEFINE(HAVE_SGI_VC_EXTENSION)
975 elif test "$with_sgivc" != no; then
976 echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
981 ###############################################################################
983 # Check for the DPMS server extension.
985 ###############################################################################
988 with_dpms_req=unspecified
989 AC_ARG_WITH(dpms-ext,
990 [ --with-dpms-ext Include support for the DPMS extension.],
991 [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
993 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
995 if test "$with_dpms" = yes; then
997 # first check for dpms.h
998 AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes])
1000 # if that succeeded, then check for the -lXdpms
1001 if test "$have_dpms" = yes; then
1003 AC_CHECK_X_LIB(Xdpms, DPMSInfo,
1004 [have_dpms=yes; SAVER_LIBS="$SAVER_LIBS -lXdpms"], [true],
1008 # if that succeeded, then we've really got it.
1009 if test "$have_dpms" = yes; then
1010 AC_DEFINE(HAVE_DPMS_EXTENSION)
1013 elif test "$with_dpms" != no; then
1014 echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
1019 ###############################################################################
1021 # Check for the XF86VMODE server extension.
1023 ###############################################################################
1026 with_xf86vmode_req=unspecified
1027 AC_ARG_WITH(xf86vmode-ext,
1028 [ --with-xf86vmode-ext Include support for XFree86 virtual screens.],
1029 [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"],
1030 [with_xf86vmode=yes])
1032 HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
1034 if test "$with_xf86vmode" = yes; then
1036 # first check for xf86vmode.h
1037 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes])
1039 # if that succeeded, then check for the -lXxf86vm
1040 if test "$have_xf86vmode" = yes; then
1042 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
1043 [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
1044 [true], -lXext -lX11)
1047 # if that succeeded, then we've really got it.
1048 if test "$have_xf86vmode" = yes; then
1049 AC_DEFINE(HAVE_XF86VMODE)
1052 elif test "$with_xf86vmode" != no; then
1053 echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
1058 ###############################################################################
1060 # Check for HP XHPDisableReset and XHPEnableReset.
1062 ###############################################################################
1064 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
1065 [AC_DEFINE(HAVE_XHPDISABLERESET)
1066 SAVER_LIBS="-lXhp11 $SAVER_LIBS"])
1069 ###############################################################################
1071 # Check for /proc/interrupts.
1073 ###############################################################################
1075 have_proc_interrupts=no
1076 with_proc_interrupts_req=unspecified
1077 AC_ARG_WITH(proc-interrupts,
1078 [ --with-proc-interrupts Include support for consulting the /proc/interrupts
1079 file to notice keyboard activity.],
1080 [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
1081 [with_proc_interrupts=yes])
1083 if test "$with_proc_interrupts" = yes; then
1085 AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
1086 ac_cv_have_proc_interrupts,
1087 [ac_cv_have_proc_interrupts=no
1088 if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
1089 ac_cv_have_proc_interrupts=yes
1092 have_proc_interrupts=$ac_cv_have_proc_interrupts
1094 if test "$have_proc_interrupts" = yes; then
1095 AC_DEFINE(HAVE_PROC_INTERRUPTS)
1098 elif test "$with_proc_interrupts" != no; then
1099 echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
1104 ###############################################################################
1106 # The --enable-locking option
1108 ###############################################################################
1110 AC_ARG_ENABLE(locking,[
1111 Screen locking options:
1113 --enable-locking Compile in support for locking the display.
1114 --disable-locking Do not allow locking at all.
1116 [enable_locking="$enableval"],[enable_locking=yes])
1117 if test "$enable_locking" = yes; then
1119 elif test "$enable_locking" = no; then
1120 AC_DEFINE(NO_LOCKING)
1122 echo "error: must be yes or no: --enable-locking=$enable_locking"
1128 ###############################################################################
1130 # The --enable-vt-locking option
1132 ###############################################################################
1134 #ac_vt_lockswitch=no
1135 #AC_ARG_ENABLE(vt-locking,[
1136 # --enable-vt-locking Compile in support for locking Virtual Terminals.
1137 # This is the default if the system supports it, and
1138 # if locking support is included (--enable-locking.)
1139 # --disable-vt-locking Do not allow locking of VTs, even if locking is
1141 # [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1142 #if test "$enable_vt_locking" = yes; then
1144 # AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1145 # [AC_TRY_COMPILE([#include <fcntl.h>
1146 # #include <sys/ioctl.h>
1147 # #include <sys/vt.h>],
1148 # [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1149 # [ac_cv_vt_lockswitch=yes],
1150 # [ac_cv_vt_lockswitch=no])])
1151 # ac_vt_lockswitch=$ac_cv_vt_lockswitch
1153 #elif test "$enable_vt_locking" = no; then
1156 # echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1160 #if test "$ac_vt_lockswitch" = yes; then
1161 # AC_DEFINE(HAVE_VT_LOCKSWITCH)
1162 # # the VT_LOCKSWITCH ioctl can only be used when running as root.
1163 # # #### but it doesn't work yet, so don't worry about that for now.
1169 ###############################################################################
1173 ###############################################################################
1177 # Solaris systems tend to come with PAM misconfigured.
1178 # Don't build it by default, even if the headers exist.
1182 # Default to building PAM support on all other systems, if it exists.
1183 with_pam_default=yes
1188 with_pam_req=unspecified
1191 [ --with-pam Include support for PAM (Pluggable Auth Modules.)],
1192 [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1194 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1196 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1197 AC_CACHE_CHECK([for PAM], ac_cv_pam,
1198 [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1201 if test "$ac_cv_pam" = yes ; then
1204 PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1206 # libpam typically requires dlopen and dlsym. On FreeBSD,
1207 # those are in libc. On Linux and Solaris, they're in libdl.
1208 AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1210 AC_MSG_CHECKING(how to call pam_strerror)
1211 AC_CACHE_VAL(ac_cv_pam_strerror_args,
1212 [AC_TRY_COMPILE([#include <stdio.h>
1214 #include <security/pam_appl.h>],
1215 [pam_handle_t *pamh = 0;
1216 char *s = pam_strerror(pamh, PAM_SUCCESS);],
1217 [ac_pam_strerror_args=2],
1218 [AC_TRY_COMPILE([#include <stdio.h>
1220 #include <security/pam_appl.h>],
1222 pam_strerror(PAM_SUCCESS);],
1223 [ac_pam_strerror_args=1],
1224 [ac_pam_strerror_args=0])])
1225 ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1226 ac_pam_strerror_args=$ac_cv_pam_strerror_args
1227 if test "$ac_pam_strerror_args" = 1 ; then
1228 AC_MSG_RESULT(one argument)
1229 elif test "$ac_pam_strerror_args" = 2 ; then
1230 AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1231 AC_MSG_RESULT(two arguments)
1233 AC_MSG_RESULT(unknown)
1239 ###############################################################################
1241 # Check for Kerberos.
1243 ###############################################################################
1247 with_kerberos_req=unspecified
1249 AC_ARG_WITH(kerberos,
1250 [ --with-kerberos Include support for Kerberos authentication.],
1251 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1253 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1255 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1256 AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
1257 [AC_TRY_X_COMPILE([#include <krb.h>],,
1258 [ac_cv_kerberos=yes],
1259 [ac_cv_kerberos=no])])
1260 AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
1261 [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
1262 [ac_cv_kerberos5=yes],
1263 [ac_cv_kerberos5=no])])
1265 if test "$ac_cv_kerberos" = yes ; then
1267 AC_DEFINE(HAVE_KERBEROS)
1270 if test "$ac_cv_kerberos5" = yes ; then
1273 AC_DEFINE(HAVE_KERBEROS)
1274 AC_DEFINE(HAVE_KERBEROS5)
1277 if test "$have_kerberos5" = yes ; then
1278 # from Matt Knopp <mhat@infocalypse.netlag.com>
1279 # (who got it from amu@mit.edu)
1280 PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcrypt -lcom_err"
1281 elif test "$have_kerberos" = yes ; then
1282 # from Tim Showalter <tjs+@andrew.cmu.edu>
1283 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes"
1286 if test "$have_kerberos" = yes ; then
1287 AC_CHECK_FUNC(res_search,,
1288 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1289 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1295 ###############################################################################
1297 # Check for the nine billion variants of shadow passwords...
1299 ###############################################################################
1304 with_shadow_req=unspecified
1307 [ --with-shadow Include support for shadow password authentication.],
1308 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1310 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1312 if test "$enable_locking" = no ; then
1318 ###############################################################################
1320 # Check for Sun "adjunct" passwords.
1322 ###############################################################################
1324 if test "$with_shadow" = yes ; then
1325 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1326 [AC_TRY_X_COMPILE([#include <stdlib.h>
1328 #include <sys/types.h>
1329 #include <sys/label.h>
1330 #include <sys/audit.h>
1331 #include <pwdadj.h>],
1332 [struct passwd_adjunct *p = getpwanam("nobody");
1333 const char *pw = p->pwa_passwd;],
1334 [ac_cv_sun_adjunct=yes],
1335 [ac_cv_sun_adjunct=no])])
1336 if test "$ac_cv_sun_adjunct" = yes; then
1337 have_shadow_adjunct=yes
1344 ###############################################################################
1346 # Check for DEC and SCO so-called "enhanced" security.
1348 ###############################################################################
1350 if test "$with_shadow" = yes ; then
1351 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1352 [AC_TRY_X_COMPILE([#include <stdlib.h>
1354 #include <sys/types.h>
1356 #include <sys/security.h>
1358 [struct pr_passwd *p;
1360 set_auth_parameters(0, 0);
1361 check_auth_parameters();
1362 p = getprpwnam("nobody");
1363 pw = p->ufld.fd_encrypt;],
1364 [ac_cv_enhanced_passwd=yes],
1365 [ac_cv_enhanced_passwd=no])])
1366 if test $ac_cv_enhanced_passwd = yes; then
1367 have_shadow_enhanced=yes
1371 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1372 # (I'm told it needs -lcurses too, but I don't understand why.)
1373 # But on DEC, it's in -lsecurity.
1375 AC_CHECK_LIB(prot, getprpwnam,
1376 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1377 [AC_CHECK_LIB(security, getprpwnam,
1378 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1383 ###############################################################################
1385 # Check for HP's entry in the "Not Invented Here" Sweepstakes.
1387 ###############################################################################
1389 if test "$with_shadow" = yes ; then
1390 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1391 [AC_TRY_X_COMPILE([#include <stdlib.h>
1393 #include <sys/types.h>
1395 #include <hpsecurity.h>
1397 [struct s_passwd *p = getspwnam("nobody");
1398 const char *pw = p->pw_passwd;],
1399 [ac_cv_hpux_passwd=yes],
1400 [ac_cv_hpux_passwd=no])])
1401 if test "$ac_cv_hpux_passwd" = yes; then
1402 have_shadow_hpux=yes
1406 # on HPUX, bigcrypt is in -lsec
1407 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1412 ###############################################################################
1414 # Check for FreeBSD-style shadow passwords.
1416 # On FreeBSD, getpwnam() and friends work just like on non-shadow-
1417 # password systems -- except you only get stuff in the pw_passwd field
1418 # if the running program is setuid. So, guess that we've got this
1419 # lossage to contend with if /etc/master.passwd exists, and default to
1420 # a setuid installation.
1422 ###############################################################################
1424 if test "$with_shadow" = yes ; then
1425 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1426 [if test -f /etc/master.passwd ; then
1427 ac_cv_master_passwd=yes
1429 ac_cv_master_passwd=no
1431 if test "$ac_cv_master_passwd" = yes; then
1437 ###############################################################################
1439 # Check for traditional (ha!) shadow passwords.
1441 ###############################################################################
1443 if test "$with_shadow" = yes ; then
1444 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1445 [AC_TRY_X_COMPILE([#include <stdlib.h>
1447 #include <sys/types.h>
1449 #include <shadow.h>],
1450 [struct spwd *p = getspnam("nobody");
1451 const char *pw = p->sp_pwdp;],
1453 [ac_cv_shadow=no])])
1454 if test "$ac_cv_shadow" = yes; then
1458 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1460 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1461 if test "$have_getspnam" = no ; then
1462 AC_CHECK_LIB(gen, getspnam,
1463 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1469 ###############################################################################
1471 # Check for other libraries needed for non-shadow passwords.
1473 ###############################################################################
1475 if test "$enable_locking" = yes ; then
1477 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1479 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1480 if test "$have_crypt" = no ; then
1481 AC_CHECK_LIB(crypt, crypt,
1482 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1487 # Most of the above shadow mechanisms will have set need_setuid to yes,
1488 # if they were found. But, on some systems, we need setuid even when
1489 # using plain old vanilla passwords.
1491 if test "$enable_locking" = yes ; then
1493 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1500 if test "$have_shadow_adjunct" = yes ; then
1501 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1502 elif test "$have_shadow_enhanced" = yes ; then
1503 AC_DEFINE(HAVE_ENHANCED_PASSWD)
1504 elif test "$have_shadow_hpux" = yes ; then
1505 AC_DEFINE(HAVE_HPUX_PASSWD)
1506 elif test "$have_shadow" = yes ; then
1507 AC_DEFINE(HAVE_SHADOW_PASSWD)
1511 ###############################################################################
1515 ###############################################################################
1518 with_motif_req=unspecified
1520 User interface options:
1522 --with-motif Use the Motif toolkit for the user interface.],
1523 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=yes])
1525 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
1527 if test "$with_motif" != yes -a "$with_motif" != no ; then
1528 echo "error: must be yes or no: --with-motif=$with_motif"
1532 if test "$with_motif" = yes; then
1534 AC_CHECK_X_HEADER(Xm/Xm.h,
1536 AC_DEFINE(HAVE_MOTIF)
1537 MOTIF_LIBS="$MOTIF_LIBS -lXm"])
1541 if test "$have_motif" = yes; then
1542 AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)])
1546 ###############################################################################
1548 # Check for -lgtk (and Gnome stuff)
1550 ###############################################################################
1553 with_gtk_req=unspecified
1555 [ --with-gtk Use the Gtk toolkit for the user interface.],
1556 [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
1558 # if --with-gtk=/directory/ was specified, remember that directory so that
1559 # we can also look for the `gtk-config' program in that directory.
1569 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
1571 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
1572 echo "error: must be yes or no: --with-gtk=$with_gtk"
1577 with_gnome_req=unspecified
1579 [ --with-gnome Include support for the Gnome Control Center.],
1580 [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
1582 # if --with-gnome=/directory/ was specified, remember that directory so that
1583 # we can also look for the `gnome-config' program in that directory.
1584 case "$with_gnome" in
1586 gnome_dir="$with_gnome"
1593 HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome)
1595 if test "$with_gnome" != yes -a "$with_gnome" != no ; then
1596 echo "error: must be yes or no: --with-gnome=$with_gnome"
1602 if test "$with_gtk" = yes; then
1605 # if the user specified --with-gtk=/foo/ then look in /foo/bin/
1606 # for glib-config and gtk-config.
1610 if test ! -z "$gtk_dir"; then
1611 # canonicalize slashes.
1612 gtk_dir=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
1613 gtk_path="$gtk_dir:$gtk_path"
1616 if test ! -z "gnome_dir"; then
1617 # canonicalize slashes.
1618 gnome_dir=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
1619 gtk_path="$gnome_dir:$gtk_path"
1622 AC_PATH_PROGS(glib_config, glib-config,, $gtk_path)
1623 AC_PATH_PROGS(gtk_config, gtk-config,, $gtk_path)
1625 if test "$with_gnome" = yes; then
1626 AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
1629 if test -n "$glib_config" -a -n "gtk_config" ; then
1631 if test "$with_gnome" = yes -a -n "$gnome_config" ; then
1636 if test "$have_gtk" = yes; then
1637 AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
1638 [ac_cv_gtk_version_string=`$glib_config --version`])
1639 ac_gtk_version_string=$ac_cv_gtk_version_string
1642 maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
1643 min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
1645 ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
1646 if test -z "$ac_gtk_version"; then
1647 ac_gtk_version=unknown
1648 ac_gtk_version_string=unknown
1650 if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
1658 if test "$have_gtk" = yes; then
1659 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
1660 [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
1661 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
1662 [ac_cv_gtk_config_libs=`$gtk_config --libs`])
1664 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
1665 ac_gtk_config_libs=$ac_cv_gtk_config_libs
1667 # Check for Gnome Capplet support.
1669 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1670 gnome_config_libs="capplet gnomeui"
1671 AC_MSG_CHECKING(for Gnome capplet includes)
1672 AC_CACHE_VAL(ac_cv_gnome_config_cflags,
1673 [if ( $gnome_config --cflags $gnome_config_libs 2>&1 >/dev/null | \
1674 grep -q Unknown ) ; then
1675 ac_cv_gnome_config_cflags=''
1677 ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
1679 ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
1680 if test "$ac_gnome_config_cflags" = "" ; then
1684 AC_MSG_RESULT($ac_gnome_config_cflags)
1688 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1689 AC_MSG_CHECKING(for Gnome capplet libs)
1690 AC_CACHE_VAL(ac_cv_gnome_config_libs,
1691 [if ( $gnome_config --libs $gnome_config_libs 2>&1 >/dev/null |
1692 grep -q Unknown ) ; then
1693 ac_cv_gnome_config_libs=''
1695 ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
1697 ac_gnome_config_libs=$ac_cv_gnome_config_libs
1698 if test "$ac_gnome_config_libs" = "" ; then
1702 AC_MSG_RESULT($ac_gnome_config_libs)
1707 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1708 GNOME_DATADIR=`$gnome_config --datadir`
1712 # If we have Gnome, then override the gtk-config values with
1713 # the gnome-config values.
1715 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1716 ac_gtk_config_cflags=$ac_gnome_config_cflags
1717 ac_gtk_config_libs=$ac_gnome_config_libs
1718 AC_DEFINE(HAVE_CRAPPLET)
1722 if test "$have_gtk" = yes; then
1723 INCLUDES="$INCLUDES $ac_gtk_config_cflags"
1724 GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
1731 ###############################################################################
1733 # Checking whether Motif is really Lesstif.
1735 ###############################################################################
1738 if test "$have_motif" = yes ; then
1739 AC_CACHE_CHECK([whether Motif is really LessTif],
1741 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
1742 [long vers = LesstifVersion;],
1743 [ac_cv_have_lesstif=yes],
1744 [ac_cv_have_lesstif=no])])
1745 have_lesstif=$ac_cv_have_lesstif
1749 lesstif_version=unknown
1750 lesstif_version_string=unknown
1752 if test "$have_lesstif" = yes ; then
1754 echo unknown > conftest-lt
1755 AC_CACHE_CHECK([LessTif version number],
1756 ac_cv_lesstif_version_string,
1757 [AC_TRY_X_RUN([#include <stdio.h>
1760 FILE *f = fopen("conftest-lt", "w");
1762 fprintf(f, "%d %d.%d\n", LesstifVersion,
1763 LESSTIF_VERSION, LESSTIF_REVISION);
1767 [ltv=`cat conftest-lt`
1768 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
1769 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
1770 [ac_cv_lesstif_version=unknown
1771 ac_cv_lesstif_version_string=unknown],
1772 [ac_cv_lesstif_version=unknown
1773 ac_cv_lesstif_version_string=unknown])])
1775 lesstif_version=$ac_cv_lesstif_version
1776 lesstif_version_string=$ac_cv_lesstif_version_string
1781 if test "$have_motif" = yes ; then
1783 echo unknown > conftest-mt
1784 AC_CACHE_CHECK([Motif version number],
1785 ac_cv_motif_version_string,
1786 [AC_TRY_X_RUN([#include <stdio.h>
1789 FILE *f = fopen("conftest-mt", "w");
1791 fprintf(f, "%d %d.%d\n", XmVersion,
1792 XmVERSION, XmREVISION);
1796 [mtv=`cat conftest-mt`
1797 ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
1798 ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
1799 [ac_cv_motif_version=unknown
1800 ac_cv_motif_version_string=unknown],
1801 [ac_cv_motif_version=unknown
1802 ac_cv_motif_version_string=unknown])])
1804 motif_version=$ac_cv_motif_version
1805 motif_version_string=$ac_cv_motif_version_string
1810 ###############################################################################
1812 # Checking whether Motif requires -lXpm.
1814 # If this is Motif 2.x, and we have XPM, then link against XPM as well.
1815 # The deal is, Motif 2.x requires XPM -- but it's a compilation option
1816 # of the library whether to build the XPM code into libXm, or whether
1817 # to rely on an external libXm. So the only way to tell whether XPM is
1818 # a link-time requirement is to examine libXm.a, which is very
1819 # difficult to do in an autoconf script. So... if it's Motif 2.x, we
1820 # always link against XPM if the XPM lib exists (and this will be a
1821 # no-op if libXm happens to already have the XPM code in it.)
1823 ###############################################################################
1825 motif_requires_xpm=no
1826 if test "$have_motif" = yes ; then
1827 AC_MSG_CHECKING(whether Motif requires XPM)
1828 if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
1830 motif_requires_xpm=yes
1831 AC_MSG_RESULT(maybe)
1838 ###############################################################################
1840 # Checking whether Motif requires -lXp.
1842 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
1843 # Extension". Why this extension isn't in -lXext with all the others,
1846 ###############################################################################
1849 if test "$have_motif" = yes ; then
1851 AC_CHECK_X_LIB(Xp, XpQueryExtension,
1852 [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
1853 [true], -lX11 -lXext -lm)
1857 ###############################################################################
1859 # Checking whether Motif requires -lXintl (for _Xsetlocale.)
1861 ###############################################################################
1864 if test "$have_motif" = yes ; then
1865 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
1867 if test "$have_xintl" = yes; then
1868 MOTIF_LIBS="$MOTIF_LIBS -lXintl"
1873 ###############################################################################
1875 # Check for -lGL or -lMesaGL.
1877 ###############################################################################
1881 with_gl_req=unspecified
1886 --with-gl Build those demos which depend on OpenGL.],
1887 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
1889 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
1891 ac_mesagl_version=unknown
1892 ac_mesagl_version_string=unknown
1894 if test "$with_gl" = yes; then
1895 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
1896 if test "$have_gl" = yes ; then
1897 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no)
1900 # If we have the headers, try and figure out which vendor it's from.
1902 if test "$have_gl" = yes ; then
1904 # We need to know whether it's MesaGL so that we know which libraries
1907 AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
1908 [ac_cv_have_mesa_gl=no
1909 AC_EGREP_X_HEADER(Mesa, GL/glx.h, [ac_cv_have_mesa_gl=yes])
1911 ac_have_mesa_gl=$ac_cv_have_mesa_gl
1918 # Some versions of MesaGL are compiled to require -lpthread.
1919 # So if the Mesa headers exist, and -lpthread exists, then always
1920 # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
1922 if test "$ac_have_mesa_gl" = yes; then
1923 AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
1927 # If we have Mesa headers, check to see if we can link against -lMesaGL.
1928 # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
1929 # Else, warn that GL is busted. (We have the headers, but no libs.)
1932 if test "$ac_have_mesa_gl" = yes ; then
1933 AC_CHECK_X_LIB(MesaGL, glXCreateContext,
1935 GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
1936 [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
1939 if test "$gl_lib_1" = "" ; then
1940 AC_CHECK_X_LIB(GL, glXCreateContext,
1942 GL_LIBS="-lGL -lGLU $GL_LIBS"],
1943 [], -lGLU $GL_LIBS -lX11 -lXext -lm)
1946 if test "$gl_lib_1" = "" ; then
1947 # we have headers, but no libs -- bail.
1952 # linking works -- we can build the GL hacks.
1954 if test "$ac_have_mesa_gl" = yes ; then
1955 AC_DEFINE(HAVE_MESA_GL)
1961 # Now that we know we have GL headers and libs, do some more GL testing.
1964 if test "$have_gl" = yes ; then
1965 # If it's MesaGL, we'd like to issue a warning if the version number
1966 # is less than or equal to 2.6, because that version had a security bug.
1968 if test "$ac_have_mesa_gl" = yes; then
1970 AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
1971 [cat > conftest.$ac_ext <<EOF
1972 #line __oline__ "configure"
1973 #include "confdefs.h"
1975 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
1978 ac_save_CPPFLAGS="$CPPFLAGS"
1979 if test \! -z "$includedir" ; then
1980 CPPFLAGS="$CPPFLAGS -I$includedir"
1982 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1986 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \
1987 's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
1990 rm -f conftest.$ac_ext
1992 CPPFLAGS="$ac_save_CPPFLAGS"
1994 if test "$mglv" = ""; then
1995 ac_mesagl_version=unknown
1996 ac_mesagl_version_string=unknown
1998 ac_mesagl_version_string=$mglv
1999 maj=`echo $mglv | sed -n 's/\..*//p'`
2000 min=`echo $mglv | sed -n 's/.*\.//p'`
2001 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
2002 if test -z "$ac_mesagl_version"; then
2003 ac_mesagl_version=unknown
2004 ac_mesagl_version_string=unknown
2007 ac_cv_mesagl_version=$ac_mesagl_version
2008 ac_cv_mesagl_version_string=$ac_mesagl_version_string
2010 ac_mesagl_version=$ac_cv_mesagl_version
2011 ac_mesagl_version_string=$ac_cv_mesagl_version_string
2015 # Check for OpenGL 1.1 features.
2017 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
2018 [true], $GL_LIBS -lX11 -lXext -lm)
2021 # Check whether the `xscreensaver' executable should link against GL.
2022 # See comments in utils/visual-gl.c for why this is sometimes necessary.
2024 AC_MSG_CHECKING(whether drastic GL measures must be taken)
2027 AC_MSG_RESULT([yes -- hello, SGI.])
2028 AC_DEFINE(DAEMON_USE_GL)
2029 SAVER_GL_SRCS='$(UTILS_SRC)/visual-gl.c'
2030 SAVER_GL_OBJS='$(UTILS_BIN)/visual-gl.o'
2031 SAVER_GL_LIBS="$GL_LIBS"
2034 AC_MSG_RESULT([no -- non-SGI.])
2043 elif test "$with_gl" != no; then
2044 echo "error: must be yes or no: --with-gl=$with_gl"
2049 ###############################################################################
2053 ###############################################################################
2056 with_gle_req=unspecified
2059 [ --with-gle Build those demos which depend on GLE
2060 (the OpenGL "extrusion" library.)],
2061 [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
2063 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
2067 if test "$with_gle" = yes; then
2069 AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no)
2070 if test "$have_gle" = yes ; then
2071 AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no)
2074 if test "$have_gle" = yes ; then
2077 AC_CHECK_X_LIB(gle, gleCreateGC,
2078 [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
2079 [], $GL_LIBS -lX11 -lXext -lm)
2081 if test "$have_gle" = yes ; then
2085 # sometimes the libmatrix stuff is included in libgle. look there first.
2087 # I don't get it. For some reason, this test passes on SGI, as if
2088 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
2089 # Yet the link is succeeding. Why???
2091 # AC_CHECK_X_LIB(gle, uview_direction_d,
2092 # [have_gle=yes; gle_halfassed=no],
2093 # [], $GL_LIBS -lX11 -lXext -lm)
2095 # if it wasn't in libgle, then look in libmatrix.
2096 if test "$have_gle" = no ; then
2097 AC_CHECK_X_LIB(matrix, uview_direction_d,
2098 [have_gle=yes; gle_halfassed=no;
2099 GLE_LIBS="$GLE_LIBS -lmatrix"],
2100 [], $GL_LIBS -lX11 -lXext -lm)
2104 if test "$have_gle" = yes ; then
2108 elif test "$with_gle" != no; then
2109 echo "error: must be yes or no: --with-gle=$with_gle"
2116 ###############################################################################
2120 ###############################################################################
2123 with_xpm_req=unspecified
2125 [ --with-xpm Include support for XPM files in some demos.],
2126 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2128 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2130 if test "$with_xpm" = yes; then
2131 AC_CHECK_X_HEADER(X11/xpm.h,
2135 elif test "$with_xpm" != no; then
2136 echo "error: must be yes or no: --with-xpm=$with_xpm"
2140 # See comment near $motif_requires_xpm, above.
2141 # Need to do this here, after both Motif and XPM have been checked for.
2143 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2144 if test "$motif_requires_xpm" = yes ; then
2145 MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
2150 ###############################################################################
2152 # Check for the XSHM server extension.
2154 ###############################################################################
2157 with_xshm_req=unspecified
2158 AC_ARG_WITH(xshm-ext,
2159 [ --with-xshm-ext Include support for the XSHM extension.],
2160 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
2162 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
2164 if test "$with_xshm" = yes; then
2166 # first check for Xshm.h.
2167 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes])
2169 # if that succeeded, then check for sys/ipc.h.
2170 if test "$have_xshm" = yes; then
2172 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
2175 # if that succeeded, then check for sys/shm.h.
2176 if test "$have_xshm" = yes; then
2178 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
2181 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
2182 # to exist, but the library code to not exist. And even better, the library
2183 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
2184 # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and
2185 # that's not quite right, but close enough.)
2189 if [ `uname -v` -eq 3 ]; then
2191 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
2192 [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
2193 [true], -lX11 -lXext -lm)
2198 # if that succeeded, then we've really got it.
2199 if test "$have_xshm" = yes; then
2200 AC_DEFINE(HAVE_XSHM_EXTENSION)
2203 elif test "$with_xshm" != no; then
2204 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
2209 ###############################################################################
2211 # Check for the DOUBLE-BUFFER server extension.
2213 ###############################################################################
2216 with_xdbe_req=unspecified
2217 AC_ARG_WITH(xdbe-ext,
2218 [ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.],
2219 [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
2221 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
2223 if test "$with_xdbe" = yes; then
2225 AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes])
2226 if test "$have_xdbe" = yes; then
2227 AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
2230 elif test "$with_xdbe" != no; then
2231 echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
2236 ###############################################################################
2238 # Check for the SGI XReadDisplay server extension.
2240 # Note: this has to be down here, rather than up with the other server
2241 # extension tests, so that the output of `configure --help' is in the
2242 # right order. Arrgh!
2244 ###############################################################################
2247 with_readdisplay_req=unspecified
2248 AC_ARG_WITH(readdisplay,
2249 [ --with-readdisplay Include support for the XReadDisplay extension.],
2250 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
2251 [with_readdisplay=yes])
2253 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
2255 if test "$with_readdisplay" = yes; then
2256 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
2257 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION))
2258 elif test "$with_readdisplay" != no; then
2259 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
2264 ###############################################################################
2266 # Check for the SGI Iris Video Library.
2268 ###############################################################################
2271 with_sgivideo_req=unspecified
2272 AC_ARG_WITH(sgivideo,
2273 [ --with-sgivideo Include support for SGI's Iris Video Library.],
2274 [with_sgivideo="$withval"; with_sgivideo_req="$withval"],
2275 [with_sgivideo=yes])
2277 HANDLE_X_PATH_ARG(with_sgivideo, --with-sgivideo, Iris Video)
2279 if test "$with_sgivideo" = yes; then
2280 AC_CHECK_X_HEADER(dmedia/vl.h, have_sgivideo=yes)
2281 if test "$have_sgivideo" = yes; then
2283 AC_CHECK_LIB(vl, vlOpenVideo, [have_sgivideo=yes])
2284 if test "$have_sgivideo" = yes; then
2285 SGI_VIDEO_OBJS="$(UTILS_BIN)/sgivideo.o"
2286 SGI_VIDEO_LIBS="-lvl"
2287 AC_DEFINE(HAVE_SGI_VIDEO)
2290 elif test "$with_sgivideo" != no; then
2291 echo "error: must be yes or no: --with-sgivideo=$with_sgivideo"
2296 ###############################################################################
2298 # Check for a program to generate random text.
2300 # Zippy is funnier than the idiocy generally spat out by `fortune',
2301 # so try to find that, by invoking Emacs and asking it where its
2302 # libexec directory is ("yow" lives in there.)
2304 # If that doesn't work, see if fortune, zippy, or yow are on $PATH,
2305 # and if so, use them.
2307 # If that doesn't work, look in /usr/games, and if it's there, use
2308 # the full pathname.
2310 ###############################################################################
2314 --with-zippy=PROGRAM Some demos are able to run an external program and
2315 display its text; this names the program to use by
2316 default (though it can be overridden with X
2317 resources.) If you don't specify this, the default
2318 is to use \"yow\" from the Emacs distribution (if you
2319 have it) or else to use \"fortune\".
2321 [with_zippy_req="$withval"; with_zippy="$withval"],[with_zippy=yes])
2323 if test "$with_zippy" = no || test "$with_zippy" = yes ; then
2328 if test -n "$with_zippy_req" ; then
2329 ac_cv_zippy_program=""
2330 case "$with_zippy_req" in
2332 AC_MSG_CHECKING([for $with_zippy_req])
2333 if test -x "$with_zippy_req" ; then
2342 unset ac_cv_path_zip2
2343 AC_PATH_PROG(zip2, $with_zippy_req, [])
2344 if test "$zip2" = ""; then
2349 ac_cv_zippy_program="$with_zippy"
2351 elif test -n "$ac_cv_zippy_program"; then
2352 AC_MSG_RESULT([checking for zippy... (cached) $ac_cv_zippy_program])
2355 if test ! -n "$ac_cv_zippy_program"; then
2357 AC_CHECK_PROGS(emacs_exe, emacs)
2358 AC_CHECK_PROGS(xemacs_exe, xemacs)
2360 ac_cv_zippy_program=""
2361 eargs='-batch -q -nw --eval'
2363 if test -n "$emacs_exe" ; then
2364 AC_MSG_CHECKING([for emacs yow])
2366 # get emacs to tell us where the libexec directory is.
2368 dir=`$emacs_exe $eargs '(princ (concat exec-directory "\n"))' \
2369 2>/dev/null | tail -1`
2370 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
2372 # try running libexec/yow and see if it exits without error.
2374 if test x"$dir" != x -a -x "$dir/yow" ; then
2375 if $dir/yow >&- 2>&- ; then
2376 ac_cv_zippy_program="$dir/yow"
2377 AC_MSG_RESULT($ac_cv_zippy_program)
2384 if test -z "$ac_cv_zippy_program" ; then
2385 AC_MSG_CHECKING([for xemacs yow])
2386 if test -n "$xemacs_exe" ; then
2388 # get xemacs to tell us where the libexec directory is.
2390 dir=`$xemacs_exe $eargs '(princ (concat exec-directory "\n"))' \
2391 2>/dev/null | tail -1`
2392 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
2394 # try running libexec/yow and see if it exits without error.
2396 if test x"$dir" != x -a -x "$dir/yow" ; then
2397 if $dir/yow >&- 2>&- ; then
2398 ac_cv_zippy_program="$dir/yow"
2399 AC_MSG_RESULT($ac_cv_zippy_program)
2402 # in some xemacs installations, the pathname of the yow.lines file
2403 # isn't hardcoded into the yow executable, and must be passed on
2404 # the command line. See if it's in libexec/../etc/.
2408 dir_up=`echo "$dir" | sed 's@/[^/]*$@@'`
2411 yowlines="$dir_up/etc/yow.lines"
2412 if $dir/yow -f $yowlines >&- 2>&- ; then
2413 ac_cv_zippy_program="$dir/yow -f $yowlines"
2414 AC_MSG_RESULT($ac_cv_zippy_program)
2417 # In newer XEmacs releases, yow.lines is in a different place,
2418 # and the easiest way to get it is by calling the new function
2419 # `locate-data-file'.
2421 yowlines=`$xemacs_exe $eargs \
2422 '(princ (concat (locate-data-file "yow.lines") "\n"))' \
2423 2>/dev/null | tail -1`
2424 if $dir/yow -f $yowlines >&- 2>&- ; then
2425 ac_cv_zippy_program="$dir/yow -f $yowlines"
2426 AC_MSG_RESULT($ac_cv_zippy_program)
2436 # if that didn't work, try for some other programs...
2437 if test -z "$ac_cv_zippy_program" ; then
2439 AC_CHECK_PROGS(fortune, [fortune zippy yow])
2440 # if that didn't work, try for those programs in /usr/games...
2441 if test -z "$fortune" ; then
2442 AC_PATH_PROGS(fortune, [fortune zippy yow], fortune,
2443 /usr/games:/usr/local/games:$PATH)
2448 if test -z "$ac_cv_zippy_program" ; then
2449 ac_cv_zippy_program=fortune
2452 AC_DEFINE_UNQUOTED(ZIPPY_PROGRAM, "$ac_cv_zippy_program")
2455 ###############################################################################
2457 # Done testing. Now, set up the various -I and -L variables,
2458 # and decide which GUI program to build by default.
2460 ###############################################################################
2467 if test \! -z "$includedir" ; then
2468 INCLUDES="$INCLUDES -I$includedir"
2471 if test \! -z "$libdir" ; then
2472 LDFLAGS="$LDFLAGS -L$libdir"
2476 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2478 if test "$have_motif" = yes; then
2479 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2480 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2482 if test "$have_gtk" = yes; then
2483 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
2484 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2488 if test "$have_kerberos" = yes; then
2489 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
2490 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
2492 if test "$have_pam" = yes; then
2493 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
2494 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
2495 INSTALL_PAM="install-pam"
2497 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
2498 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
2501 if test "$enable_locking" = yes; then
2502 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
2503 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
2505 LOCK_SRCS='$(NOLOCK_SRCS_1)'
2506 LOCK_OBJS='$(NOLOCK_OBJS_1)'
2509 if test "$need_setuid" = yes; then
2511 INSTALL_SETUID='$(INSTALL) $(SUID_FLAGS)'
2514 INSTALL_SETUID='$(INSTALL_PROGRAM)'
2518 if test "$have_gl" = yes; then
2519 GL_EXES='$(GL_EXES)'
2523 GL_KLUDGE="-${tab} "
2526 if test "$have_gle" = yes; then
2527 GLE_EXES='$(GLE_EXES)'
2528 GLE_MEN='$(GLE_MEN)'
2529 GLE_KLUDGE="${tab} "
2531 GLE_KLUDGE="-${tab} "
2535 ###############################################################################
2537 # Perform substitutions and write Makefiles.
2539 ###############################################################################
2543 AC_SUBST(PREFERRED_DEMO_PROGRAM)
2544 AC_SUBST(ALL_DEMO_PROGRAMS)
2545 AC_SUBST(SAVER_LIBS)
2546 AC_SUBST(MOTIF_LIBS)
2552 AC_SUBST(PASSWD_LIBS)
2553 AC_SUBST(INSTALL_SETUID)
2554 AC_SUBST(INSTALL_DIRS)
2555 AC_SUBST(NEED_SETUID)
2556 AC_SUBST(INSTALL_PAM)
2557 AC_SUBST(SGI_VIDEO_OBJS)
2558 AC_SUBST(SGI_VIDEO_LIBS)
2560 AC_SUBST(PASSWD_SRCS)
2561 AC_SUBST(PASSWD_OBJS)
2564 AC_SUBST(SAVER_GL_SRCS)
2565 AC_SUBST(SAVER_GL_OBJS)
2566 AC_SUBST(SAVER_GL_LIBS)
2574 AC_SUBST(GLE_KLUDGE)
2576 AC_SUBST(GNOME_DATADIR)
2578 APPDEFAULTS=$ac_x_app_defaults
2579 AC_SUBST(APPDEFAULTS)
2582 AC_SUBST(DEPEND_FLAGS)
2583 AC_SUBST(DEPEND_DEFINES)
2591 driver/XScreenSaver.ad)
2593 ###############################################################################
2595 # Print some warnings at the end.
2597 ###############################################################################
2599 warn_prefix_1=" Warning:"
2600 warn_prefix_2=" Note:"
2601 warn_prefix="$warn_prefix_1"
2604 warnsep=' #################################################################'
2607 if test "$warning" = no ; then
2608 echo '' ; echo "$warnsep" ; echo ''
2615 if test "$warning" = long ; then echo '' ; fi
2617 echo "$warn_prefix $@"
2624 if test "$was" != no ; then echo '' ; fi
2625 echo "$warn_prefix $@"
2634 warn_prefix="$warn_prefix_2"
2636 warn_prefix="$warn_prefix_1"
2640 warn_prefix="$warn_prefix_2"
2642 warn_prefix="$warn_prefix_1"
2646 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
2647 warn 'The SGI saver extension was requested, but was not found.'
2650 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
2651 warn 'The MIT saver extension was requested, but was not found.'
2654 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
2655 warn 'The XIdle extension was requested, but was not found.'
2658 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
2659 warn 'The XSHM extension was requested, but was not found.'
2662 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
2663 warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
2666 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
2667 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
2670 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
2671 warn 'The DPMS extension was requested, but was not found.'
2674 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
2675 warn 'The XF86VMODE extension was requested, but was not found.'
2678 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
2679 warn "Checking of /proc/interrupts was requested, but it's bogus."
2683 if test "$have_motif" = no -a "$have_gtk" = no; then
2684 warnL "Neither Motif nor Gtk seem to be available;"
2685 warn2 "the \`xscreensaver-demo' program requires one of these."
2687 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
2688 warnL "Use of Motif was requested, but it wasn't found;"
2689 warn2 "Gtk will be used instead."
2691 elif test "$jurassic_gtk" = yes ; then
2695 v="$ac_gtk_version_string"
2696 if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
2697 warnL "Use of Gtk was requested, but its version number is unknown;"
2698 elif test "$with_gtk_req" = yes ; then
2699 warnL "Use of Gtk was requested, but it is version $v;"
2701 warnL "Gtk was found on this system, but it is version $v;"
2704 warn2 "Gtk $pref_gtk or newer is required. Motif will be used instead."
2706 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
2707 warnL "Use of Gtk was requested, but it wasn't found;"
2708 warn2 "Motif will be used instead."
2713 if test "$with_gnome_req" = yes -a "$have_gnome" = no ; then
2714 warn 'Use of the Gnome Control Panel was requested, but the necessary'
2715 warn2 'headers and/or libraries were not found.'
2719 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
2721 preferred_lesstif=0.86
2723 if test "$lesstif_version" = unknown; then
2724 warnL "Unable to determine the LessTif version number!"
2725 warn2 "Make sure you are using version $preferred_lesstif or newer."
2726 warn2 "See <http://www.lesstif.org/>."
2728 elif test \! $lesstif_version -gt 82; then
2729 warnL "LessTif version $lesstif_version_string is being used."
2730 warn2 "LessTif versions 0.82 and earlier are too buggy to"
2731 warn2 "use with XScreenSaver; it is strongly recommended"
2732 warn2 "that you upgrade to at least version $preferred_lesstif!"
2733 warn2 "See <http://www.lesstif.org/>."
2739 if test "$have_xpm" = no ; then
2740 if test "$with_xpm_req" = yes ; then
2741 warnL 'Use of XPM was requested, but it was not found.'
2742 elif test "$with_xpm_req" = no ; then
2743 noteL 'The XPM library is not being used.'
2745 noteL 'The XPM library was not found.'
2749 warn2 'Some of the demos will not be as colorful as they'
2750 warn2 'could be. You might want to consider installing XPM'
2751 warn2 'and re-running configure. (Remember to delete the'
2752 warn2 'config.cache file first.) You can find XPM at most'
2753 warn2 'X11 archive sites, such as <http://sunsite.unc.edu/>.'
2757 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
2758 preferred_mesagl=3.0
2760 if test "$ac_mesagl_version" = unknown; then
2761 warnL "Unable to determine the MesaGL version number!"
2762 warn2 "Make sure you are using version $preferred_mesagl or newer."
2764 elif test \! "$ac_mesagl_version" -gt 2006; then
2765 warnL "MesaGL version $ac_mesagl_version_string is being used."
2766 warn2 "MesaGL versions 2.6 and earlier have a security bug."
2767 warn2 "It is strongly recommended that you upgrade to at"
2768 warn2 "least version $preferred_mesagl."
2772 if test "$have_gl" = no ; then
2773 if test "$with_gl_req" = yes ; then
2774 warnL 'Use of GL was requested, but it was not found.'
2775 elif test "$with_gl_req" = no ; then
2776 noteL 'The OpenGL 3D library is not being used.'
2778 noteL 'The OpenGL 3D library was not found.'
2781 if test "$gl_halfassed" = yes ; then
2783 warn2 'More specifically, we found the headers, but not the'
2784 warn2 'libraries; so either GL is half-installed on this'
2785 warn2 "system, or something else went wrong. The \`config.log'"
2786 warn2 'file might contain some clues.'
2790 warn2 'Those demos which use 3D will not be built or installed.'
2791 warn2 'You might want to consider installing OpenGL and'
2792 warn2 're-running configure. (Remember to delete the'
2793 warn2 "config.cache file first.) If your vendor doesn't ship"
2794 warn2 'their own implementation of OpenGL, you can get a free'
2795 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
2796 warn2 'info, see <http://www.opengl.org/>.'
2801 if test "$have_gl" = yes -a "$have_gle" = no ; then
2802 if test "$with_gle_req" = yes ; then
2803 noteL 'Use of the GLE (GL Extrusion) library was requested, but'
2804 warn2 'it was not found (though the OpenGL library was found, and'
2805 warn2 'is being used.)'
2806 elif test "$with_gle_req" = no ; then
2807 noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
2808 warn2 'library is not.'
2810 noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
2814 if test "$gle_halfassed" = yes ; then
2816 warn2 'More specifically, we found the headers, but not the'
2817 warn2 'libraries; so either GLE is half-installed on this'
2818 warn2 "system, or something else went wrong. The \`config.log'"
2819 warn2 'file might contain some clues.'
2823 warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
2824 warn2 'will not be built or installed. You might want to consider'
2825 warn2 'installing GLE and re-running configure. (Remember to delete'
2826 warn2 'the config.cache file first.) You can find the GLE library'
2827 warn2 'at <http://www.linas.org/gle/>. For general OpenGL info,'
2828 warn2 'see <http://www.opengl.org/>.'
2833 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
2834 warn 'Use of XReadDisplay was requested, but it was not found.'
2837 if test "$with_sgivideo_req" = yes -a "$have_sgivideo" = no ; then
2838 warn 'Use of the Iris Video Library was requested, but it was not found.'
2841 if test -n "$with_zippy_req"; then
2842 if test "$with_zippy_req" != "$ac_cv_zippy_program" ; then
2843 warnL "$with_zippy_req was requested as the Zippy program,"
2844 warn2 "but was not found. The default will be used instead."
2848 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
2849 warn 'Use of Kerberos was requested, but it was not found.'
2852 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
2853 warn 'Use of PAM was requested, but it was not found.'
2856 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
2857 warn 'Use of shadow passwords was requested, but they were not found.'
2861 # You are in a twisty maze of namespaces and syntaxes, all alike.
2862 # Fuck the skull of Unix.
2864 eval bindir=${bindir}
2865 eval bindir=${bindir}
2866 eval bindir=${bindir}
2867 eval bindir=${bindir}
2868 eval bindir=${bindir}
2869 eval bindir=${bindir}
2870 eval HACKDIR=${HACKDIR}
2871 eval HACKDIR=${HACKDIR}
2872 eval HACKDIR=${HACKDIR}
2873 eval HACKDIR=${HACKDIR}
2874 eval HACKDIR=${HACKDIR}
2875 eval HACKDIR=${HACKDIR}
2877 # canonicalize slashes.
2878 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
2879 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
2882 # Sanity check the subdir
2883 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
2884 if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
2886 AC_MSG_ERROR([\"--enable-subdir=${bindir}/${bad_choice}\" won't work.
2887 There will be an executable installed with that name, so
2888 that can't be the name of a directory as well. Please
2889 re-configure with a different directory name.])
2896 # Now let's see if there's a previous RPM version already installed. Blargh!
2900 rpmv=`(rpm -qv xscreensaver) 2>&- | \
2901 sed 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/'`
2904 if test \! -z "$rpmv" ; then
2905 rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
2906 rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
2909 warnL "There is already an installed RPM of xscreensaver $rpmv"
2910 warn2 "on this system. You might want to remove it (with"
2911 warn2 '"rpm -ve xscreensaver") before running "make install"'
2912 warn2 "from this directory."
2914 warn2 "Alternately, you could build this version of xscreensaver"
2915 warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
2916 warn2 "file is included. See the RPM documentation for more info."
2919 if test "$rpmbdir" = "$rpmhdir" ; then
2920 warn2 "The RPM version was installed in $rpmbdir."
2922 warn2 "The RPM version was installed in $rpmbdir,"
2923 warn2 "with demos in $rpmhdir."
2930 # Warn about egregious GNOME bogosity.
2932 #if (rpm -qv control-center) >&- 2>&- ; then
2934 # warnL "The Gnome Control Center seems to be installed."
2936 # warn2 "Note that simply installing this version of xscreensaver"
2937 # warn2 "will not cause GNOME to know about the newly-added display"
2938 # warn2 "modes -- GNOME is just lame that way. Instead of using the"
2939 # warn2 "Control Center, try using the \`xscreensaver-demo' command."
2943 if test "${bindir}" = "${HACKDIR}" ; then
2947 if test "$do_dir_warning" = yes; then
2951 echo ' When you run "make install", the "xscreensaver",'
2952 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
2953 echo " will be installed in ${bindir}."
2955 echo " The various graphics demos (100+ different executables) will"
2956 echo " also be installed in ${HACKDIR}."
2958 echo " If you would prefer the demos to be installed elsewhere"
2959 echo " (for example, in a dedicated directory) you should re-run"
2960 echo " configure with the --enable-subdir=DIR option. For more"
2961 echo " information, run $0 --help."
2965 if test "$warning" != no; then
2966 echo '' ; echo "$warnsep" ; echo ''