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/gle.h, have_gle3=yes, have_gle3=no)
2070 if test "$have_gle3" = yes ; then
2073 AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no)
2074 if test "$have_gle" = yes ; then
2075 AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no)
2079 if test "$have_gle" = yes ; then
2082 AC_CHECK_X_LIB(gle, gleCreateGC,
2083 [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
2084 [], $GL_LIBS -lX11 -lXext -lm)
2086 if test "$have_gle" = yes ; then
2090 # sometimes the libmatrix stuff is included in libgle. look there first.
2092 # I don't get it. For some reason, this test passes on SGI, as if
2093 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
2094 # Yet the link is succeeding. Why???
2096 # AC_CHECK_X_LIB(gle, uview_direction_d,
2097 # [have_gle=yes; gle_halfassed=no],
2098 # [], $GL_LIBS -lX11 -lXext -lm)
2100 # As of GLE 3 this is in libgle, and has changed name to uview_direction!
2102 if test "$have_gle3" = yes ; then
2103 AC_CHECK_X_LIB(gle, uview_direction,
2104 [have_gle=yes; gle_halfassed=no],
2105 [], $GL_LIBS -lX11 -lXext -lm)
2107 # if it wasn't in libgle, then look in libmatrix.
2108 if test "$have_gle" = no ; then
2109 AC_CHECK_X_LIB(matrix, uview_direction_d,
2110 [have_gle=yes; gle_halfassed=no;
2111 GLE_LIBS="$GLE_LIBS -lmatrix"],
2112 [], $GL_LIBS -lX11 -lXext -lm)
2116 if test "$have_gle" = yes ; then
2118 if test "$have_gle3" = yes ; then
2119 AC_DEFINE(HAVE_GLE3)
2123 elif test "$with_gle" != no; then
2124 echo "error: must be yes or no: --with-gle=$with_gle"
2131 ###############################################################################
2135 ###############################################################################
2138 with_xpm_req=unspecified
2140 [ --with-xpm Include support for XPM files in some demos.],
2141 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2143 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2145 if test "$with_xpm" = yes; then
2146 AC_CHECK_X_HEADER(X11/xpm.h,
2150 elif test "$with_xpm" != no; then
2151 echo "error: must be yes or no: --with-xpm=$with_xpm"
2155 # See comment near $motif_requires_xpm, above.
2156 # Need to do this here, after both Motif and XPM have been checked for.
2158 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2159 if test "$motif_requires_xpm" = yes ; then
2160 MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
2165 ###############################################################################
2167 # Check for the XSHM server extension.
2169 ###############################################################################
2172 with_xshm_req=unspecified
2173 AC_ARG_WITH(xshm-ext,
2174 [ --with-xshm-ext Include support for the XSHM extension.],
2175 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
2177 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
2179 if test "$with_xshm" = yes; then
2181 # first check for Xshm.h.
2182 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes])
2184 # if that succeeded, then check for sys/ipc.h.
2185 if test "$have_xshm" = yes; then
2187 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
2190 # if that succeeded, then check for sys/shm.h.
2191 if test "$have_xshm" = yes; then
2193 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
2196 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
2197 # to exist, but the library code to not exist. And even better, the library
2198 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
2199 # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and
2200 # that's not quite right, but close enough.)
2204 if [ `uname -v` -eq 3 ]; then
2206 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
2207 [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
2208 [true], -lX11 -lXext -lm)
2213 # if that succeeded, then we've really got it.
2214 if test "$have_xshm" = yes; then
2215 AC_DEFINE(HAVE_XSHM_EXTENSION)
2218 elif test "$with_xshm" != no; then
2219 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
2224 ###############################################################################
2226 # Check for the DOUBLE-BUFFER server extension.
2228 ###############################################################################
2231 with_xdbe_req=unspecified
2232 AC_ARG_WITH(xdbe-ext,
2233 [ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.],
2234 [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
2236 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
2238 if test "$with_xdbe" = yes; then
2240 AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes])
2241 if test "$have_xdbe" = yes; then
2242 AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
2245 elif test "$with_xdbe" != no; then
2246 echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
2251 ###############################################################################
2253 # Check for the SGI XReadDisplay server extension.
2255 # Note: this has to be down here, rather than up with the other server
2256 # extension tests, so that the output of `configure --help' is in the
2257 # right order. Arrgh!
2259 ###############################################################################
2262 with_readdisplay_req=unspecified
2263 AC_ARG_WITH(readdisplay,
2264 [ --with-readdisplay Include support for the XReadDisplay extension.],
2265 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
2266 [with_readdisplay=yes])
2268 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
2270 if test "$with_readdisplay" = yes; then
2271 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
2272 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION))
2273 elif test "$with_readdisplay" != no; then
2274 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
2279 ###############################################################################
2281 # Check for the SGI Iris Video Library.
2283 ###############################################################################
2286 with_sgivideo_req=unspecified
2287 AC_ARG_WITH(sgivideo,
2288 [ --with-sgivideo Include support for SGI's Iris Video Library.],
2289 [with_sgivideo="$withval"; with_sgivideo_req="$withval"],
2290 [with_sgivideo=yes])
2292 HANDLE_X_PATH_ARG(with_sgivideo, --with-sgivideo, Iris Video)
2294 if test "$with_sgivideo" = yes; then
2295 AC_CHECK_X_HEADER(dmedia/vl.h, have_sgivideo=yes)
2296 if test "$have_sgivideo" = yes; then
2298 AC_CHECK_LIB(vl, vlOpenVideo, [have_sgivideo=yes])
2299 if test "$have_sgivideo" = yes; then
2300 SGI_VIDEO_OBJS="$(UTILS_BIN)/sgivideo.o"
2301 SGI_VIDEO_LIBS="-lvl"
2302 AC_DEFINE(HAVE_SGI_VIDEO)
2305 elif test "$with_sgivideo" != no; then
2306 echo "error: must be yes or no: --with-sgivideo=$with_sgivideo"
2311 ###############################################################################
2313 # Check for a program to generate random text.
2315 # Zippy is funnier than the idiocy generally spat out by `fortune',
2316 # so try to find that, by invoking Emacs and asking it where its
2317 # libexec directory is ("yow" lives in there.)
2319 # If that doesn't work, see if fortune, zippy, or yow are on $PATH,
2320 # and if so, use them.
2322 # If that doesn't work, look in /usr/games, and if it's there, use
2323 # the full pathname.
2325 ###############################################################################
2329 --with-zippy=PROGRAM Some demos are able to run an external program and
2330 display its text; this names the program to use by
2331 default (though it can be overridden with X
2332 resources.) If you don't specify this, the default
2333 is to use \"yow\" from the Emacs distribution (if you
2334 have it) or else to use \"fortune\".
2336 [with_zippy_req="$withval"; with_zippy="$withval"],[with_zippy=yes])
2338 if test "$with_zippy" = no || test "$with_zippy" = yes ; then
2343 if test -n "$with_zippy_req" ; then
2344 ac_cv_zippy_program=""
2345 case "$with_zippy_req" in
2347 AC_MSG_CHECKING([for $with_zippy_req])
2348 if test -x "$with_zippy_req" ; then
2357 unset ac_cv_path_zip2
2358 AC_PATH_PROG(zip2, $with_zippy_req, [])
2359 if test "$zip2" = ""; then
2364 ac_cv_zippy_program="$with_zippy"
2366 elif test -n "$ac_cv_zippy_program"; then
2367 AC_MSG_RESULT([checking for zippy... (cached) $ac_cv_zippy_program])
2370 if test ! -n "$ac_cv_zippy_program"; then
2372 AC_CHECK_PROGS(emacs_exe, emacs)
2373 AC_CHECK_PROGS(xemacs_exe, xemacs)
2375 ac_cv_zippy_program=""
2376 eargs='-batch -q -nw --eval'
2378 if test -n "$emacs_exe" ; then
2379 AC_MSG_CHECKING([for emacs yow])
2381 # get emacs to tell us where the libexec directory is.
2383 dir=`$emacs_exe $eargs '(princ (concat exec-directory "\n"))' \
2384 2>/dev/null | tail -1`
2385 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
2387 # try running libexec/yow and see if it exits without error.
2389 if test x"$dir" != x -a -x "$dir/yow" ; then
2390 if $dir/yow >&- 2>&- ; then
2391 ac_cv_zippy_program="$dir/yow"
2392 AC_MSG_RESULT($ac_cv_zippy_program)
2399 if test -z "$ac_cv_zippy_program" ; then
2400 AC_MSG_CHECKING([for xemacs yow])
2401 if test -n "$xemacs_exe" ; then
2403 # get xemacs to tell us where the libexec directory is.
2405 dir=`$xemacs_exe $eargs '(princ (concat exec-directory "\n"))' \
2406 2>/dev/null | tail -1`
2407 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
2409 # try running libexec/yow and see if it exits without error.
2411 if test x"$dir" != x -a -x "$dir/yow" ; then
2412 if $dir/yow >&- 2>&- ; then
2413 ac_cv_zippy_program="$dir/yow"
2414 AC_MSG_RESULT($ac_cv_zippy_program)
2417 # in some xemacs installations, the pathname of the yow.lines file
2418 # isn't hardcoded into the yow executable, and must be passed on
2419 # the command line. See if it's in libexec/../etc/.
2423 dir_up=`echo "$dir" | sed 's@/[^/]*$@@'`
2426 yowlines="$dir_up/etc/yow.lines"
2427 if $dir/yow -f $yowlines >&- 2>&- ; then
2428 ac_cv_zippy_program="$dir/yow -f $yowlines"
2429 AC_MSG_RESULT($ac_cv_zippy_program)
2432 # In newer XEmacs releases, yow.lines is in a different place,
2433 # and the easiest way to get it is by calling the new function
2434 # `locate-data-file'.
2436 yowlines=`$xemacs_exe $eargs \
2437 '(princ (concat (locate-data-file "yow.lines") "\n"))' \
2438 2>/dev/null | tail -1`
2439 if $dir/yow -f $yowlines >&- 2>&- ; then
2440 ac_cv_zippy_program="$dir/yow -f $yowlines"
2441 AC_MSG_RESULT($ac_cv_zippy_program)
2451 # if that didn't work, try for some other programs...
2452 if test -z "$ac_cv_zippy_program" ; then
2454 AC_CHECK_PROGS(fortune, [fortune zippy yow])
2455 # if that didn't work, try for those programs in /usr/games...
2456 if test -z "$fortune" ; then
2457 AC_PATH_PROGS(fortune, [fortune zippy yow], fortune,
2458 /usr/games:/usr/local/games:$PATH)
2463 if test -z "$ac_cv_zippy_program" ; then
2464 ac_cv_zippy_program=fortune
2467 AC_DEFINE_UNQUOTED(ZIPPY_PROGRAM, "$ac_cv_zippy_program")
2470 ###############################################################################
2472 # Done testing. Now, set up the various -I and -L variables,
2473 # and decide which GUI program to build by default.
2475 ###############################################################################
2482 if test \! -z "$includedir" ; then
2483 INCLUDES="$INCLUDES -I$includedir"
2486 if test \! -z "$libdir" ; then
2487 LDFLAGS="$LDFLAGS -L$libdir"
2491 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2493 if test "$have_motif" = yes; then
2494 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2495 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2497 if test "$have_gtk" = yes; then
2498 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
2499 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2503 if test "$have_kerberos" = yes; then
2504 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
2505 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
2507 if test "$have_pam" = yes; then
2508 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
2509 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
2510 INSTALL_PAM="install-pam"
2512 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
2513 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
2516 if test "$enable_locking" = yes; then
2517 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
2518 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
2520 LOCK_SRCS='$(NOLOCK_SRCS_1)'
2521 LOCK_OBJS='$(NOLOCK_OBJS_1)'
2524 if test "$need_setuid" = yes; then
2526 INSTALL_SETUID='$(INSTALL) $(SUID_FLAGS)'
2529 INSTALL_SETUID='$(INSTALL_PROGRAM)'
2533 if test "$have_gl" = yes; then
2534 GL_EXES='$(GL_EXES)'
2538 GL_KLUDGE="-${tab} "
2541 if test "$have_gle" = yes; then
2542 GLE_EXES='$(GLE_EXES)'
2543 GLE_MEN='$(GLE_MEN)'
2544 GLE_KLUDGE="${tab} "
2546 GLE_KLUDGE="-${tab} "
2550 ###############################################################################
2552 # Perform substitutions and write Makefiles.
2554 ###############################################################################
2558 AC_SUBST(PREFERRED_DEMO_PROGRAM)
2559 AC_SUBST(ALL_DEMO_PROGRAMS)
2560 AC_SUBST(SAVER_LIBS)
2561 AC_SUBST(MOTIF_LIBS)
2567 AC_SUBST(PASSWD_LIBS)
2568 AC_SUBST(INSTALL_SETUID)
2569 AC_SUBST(INSTALL_DIRS)
2570 AC_SUBST(NEED_SETUID)
2571 AC_SUBST(INSTALL_PAM)
2572 AC_SUBST(SGI_VIDEO_OBJS)
2573 AC_SUBST(SGI_VIDEO_LIBS)
2575 AC_SUBST(PASSWD_SRCS)
2576 AC_SUBST(PASSWD_OBJS)
2579 AC_SUBST(SAVER_GL_SRCS)
2580 AC_SUBST(SAVER_GL_OBJS)
2581 AC_SUBST(SAVER_GL_LIBS)
2589 AC_SUBST(GLE_KLUDGE)
2591 AC_SUBST(GNOME_DATADIR)
2593 APPDEFAULTS=$ac_x_app_defaults
2594 AC_SUBST(APPDEFAULTS)
2597 AC_SUBST(DEPEND_FLAGS)
2598 AC_SUBST(DEPEND_DEFINES)
2606 driver/XScreenSaver.ad)
2608 ###############################################################################
2610 # Print some warnings at the end.
2612 ###############################################################################
2614 warn_prefix_1=" Warning:"
2615 warn_prefix_2=" Note:"
2616 warn_prefix="$warn_prefix_1"
2619 warnsep=' #################################################################'
2622 if test "$warning" = no ; then
2623 echo '' ; echo "$warnsep" ; echo ''
2630 if test "$warning" = long ; then echo '' ; fi
2632 echo "$warn_prefix $@"
2639 if test "$was" != no ; then echo '' ; fi
2640 echo "$warn_prefix $@"
2649 warn_prefix="$warn_prefix_2"
2651 warn_prefix="$warn_prefix_1"
2655 warn_prefix="$warn_prefix_2"
2657 warn_prefix="$warn_prefix_1"
2661 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
2662 warn 'The SGI saver extension was requested, but was not found.'
2665 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
2666 warn 'The MIT saver extension was requested, but was not found.'
2669 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
2670 warn 'The XIdle extension was requested, but was not found.'
2673 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
2674 warn 'The XSHM extension was requested, but was not found.'
2677 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
2678 warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
2681 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
2682 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
2685 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
2686 warn 'The DPMS extension was requested, but was not found.'
2689 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
2690 warn 'The XF86VMODE extension was requested, but was not found.'
2693 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
2694 warn "Checking of /proc/interrupts was requested, but it's bogus."
2698 if test "$have_motif" = no -a "$have_gtk" = no; then
2699 warnL "Neither Motif nor Gtk seem to be available;"
2700 warn2 "the \`xscreensaver-demo' program requires one of these."
2702 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
2703 warnL "Use of Motif was requested, but it wasn't found;"
2704 warn2 "Gtk will be used instead."
2706 elif test "$jurassic_gtk" = yes ; then
2710 v="$ac_gtk_version_string"
2711 if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
2712 warnL "Use of Gtk was requested, but its version number is unknown;"
2713 elif test "$with_gtk_req" = yes ; then
2714 warnL "Use of Gtk was requested, but it is version $v;"
2716 warnL "Gtk was found on this system, but it is version $v;"
2719 warn2 "Gtk $pref_gtk or newer is required. Motif will be used instead."
2721 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
2722 warnL "Use of Gtk was requested, but it wasn't found;"
2723 warn2 "Motif will be used instead."
2728 if test "$with_gnome_req" = yes -a "$have_gnome" = no ; then
2729 warn 'Use of the Gnome Control Panel was requested, but the necessary'
2730 warn2 'headers and/or libraries were not found.'
2734 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
2736 preferred_lesstif=0.86
2738 if test "$lesstif_version" = unknown; then
2739 warnL "Unable to determine the LessTif version number!"
2740 warn2 "Make sure you are using version $preferred_lesstif or newer."
2741 warn2 "See <http://www.lesstif.org/>."
2743 elif test \! $lesstif_version -gt 82; then
2744 warnL "LessTif version $lesstif_version_string is being used."
2745 warn2 "LessTif versions 0.82 and earlier are too buggy to"
2746 warn2 "use with XScreenSaver; it is strongly recommended"
2747 warn2 "that you upgrade to at least version $preferred_lesstif!"
2748 warn2 "See <http://www.lesstif.org/>."
2754 if test "$have_xpm" = no ; then
2755 if test "$with_xpm_req" = yes ; then
2756 warnL 'Use of XPM was requested, but it was not found.'
2757 elif test "$with_xpm_req" = no ; then
2758 noteL 'The XPM library is not being used.'
2760 noteL 'The XPM library was not found.'
2764 warn2 'Some of the demos will not be as colorful as they'
2765 warn2 'could be. You might want to consider installing XPM'
2766 warn2 'and re-running configure. (Remember to delete the'
2767 warn2 'config.cache file first.) You can find XPM at most'
2768 warn2 'X11 archive sites, such as <http://sunsite.unc.edu/>.'
2772 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
2773 preferred_mesagl=3.0
2775 if test "$ac_mesagl_version" = unknown; then
2776 warnL "Unable to determine the MesaGL version number!"
2777 warn2 "Make sure you are using version $preferred_mesagl or newer."
2779 elif test \! "$ac_mesagl_version" -gt 2006; then
2780 warnL "MesaGL version $ac_mesagl_version_string is being used."
2781 warn2 "MesaGL versions 2.6 and earlier have a security bug."
2782 warn2 "It is strongly recommended that you upgrade to at"
2783 warn2 "least version $preferred_mesagl."
2787 if test "$have_gl" = no ; then
2788 if test "$with_gl_req" = yes ; then
2789 warnL 'Use of GL was requested, but it was not found.'
2790 elif test "$with_gl_req" = no ; then
2791 noteL 'The OpenGL 3D library is not being used.'
2793 noteL 'The OpenGL 3D library was not found.'
2796 if test "$gl_halfassed" = yes ; then
2798 warn2 'More specifically, we found the headers, but not the'
2799 warn2 'libraries; so either GL is half-installed on this'
2800 warn2 "system, or something else went wrong. The \`config.log'"
2801 warn2 'file might contain some clues.'
2805 warn2 'Those demos which use 3D will not be built or installed.'
2806 warn2 'You might want to consider installing OpenGL and'
2807 warn2 're-running configure. (Remember to delete the'
2808 warn2 "config.cache file first.) If your vendor doesn't ship"
2809 warn2 'their own implementation of OpenGL, you can get a free'
2810 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
2811 warn2 'info, see <http://www.opengl.org/>.'
2816 if test "$have_gl" = yes -a "$have_gle" = no ; then
2817 if test "$with_gle_req" = yes ; then
2818 noteL 'Use of the GLE (GL Extrusion) library was requested, but'
2819 warn2 'it was not found (though the OpenGL library was found, and'
2820 warn2 'is being used.)'
2821 elif test "$with_gle_req" = no ; then
2822 noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
2823 warn2 'library is not.'
2825 noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
2829 if test "$gle_halfassed" = yes ; then
2831 warn2 'More specifically, we found the headers, but not the'
2832 warn2 'libraries; so either GLE is half-installed on this'
2833 warn2 "system, or something else went wrong. The \`config.log'"
2834 warn2 'file might contain some clues.'
2838 warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
2839 warn2 'will not be built or installed. You might want to consider'
2840 warn2 'installing GLE and re-running configure. (Remember to delete'
2841 warn2 'the config.cache file first.) You can find the GLE library'
2842 warn2 'at <http://www.linas.org/gle/>. For general OpenGL info,'
2843 warn2 'see <http://www.opengl.org/>.'
2848 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
2849 warn 'Use of XReadDisplay was requested, but it was not found.'
2852 if test "$with_sgivideo_req" = yes -a "$have_sgivideo" = no ; then
2853 warn 'Use of the Iris Video Library was requested, but it was not found.'
2856 if test -n "$with_zippy_req"; then
2857 if test "$with_zippy_req" != "$ac_cv_zippy_program" ; then
2858 warnL "$with_zippy_req was requested as the Zippy program,"
2859 warn2 "but was not found. The default will be used instead."
2863 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
2864 warn 'Use of Kerberos was requested, but it was not found.'
2867 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
2868 warn 'Use of PAM was requested, but it was not found.'
2871 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
2872 warn 'Use of shadow passwords was requested, but they were not found.'
2876 # You are in a twisty maze of namespaces and syntaxes, all alike.
2877 # Fuck the skull of Unix.
2879 eval bindir=${bindir}
2880 eval bindir=${bindir}
2881 eval bindir=${bindir}
2882 eval bindir=${bindir}
2883 eval bindir=${bindir}
2884 eval bindir=${bindir}
2885 eval HACKDIR=${HACKDIR}
2886 eval HACKDIR=${HACKDIR}
2887 eval HACKDIR=${HACKDIR}
2888 eval HACKDIR=${HACKDIR}
2889 eval HACKDIR=${HACKDIR}
2890 eval HACKDIR=${HACKDIR}
2892 # canonicalize slashes.
2893 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
2894 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
2897 # Sanity check the subdir
2898 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
2899 if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
2901 AC_MSG_ERROR([\"--enable-subdir=${bindir}/${bad_choice}\" won't work.
2902 There will be an executable installed with that name, so
2903 that can't be the name of a directory as well. Please
2904 re-configure with a different directory name.])
2911 # Now let's see if there's a previous RPM version already installed. Blargh!
2915 rpmv=`(rpm -qv xscreensaver) 2>&- | \
2916 sed 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/'`
2919 if test \! -z "$rpmv" ; then
2920 rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
2921 rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
2924 warnL "There is already an installed RPM of xscreensaver $rpmv"
2925 warn2 "on this system. You might want to remove it (with"
2926 warn2 '"rpm -ve xscreensaver") before running "make install"'
2927 warn2 "from this directory."
2929 warn2 "Alternately, you could build this version of xscreensaver"
2930 warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
2931 warn2 "file is included. See the RPM documentation for more info."
2934 if test "$rpmbdir" = "$rpmhdir" ; then
2935 warn2 "The RPM version was installed in $rpmbdir."
2937 warn2 "The RPM version was installed in $rpmbdir,"
2938 warn2 "with demos in $rpmhdir."
2945 # Warn about egregious GNOME bogosity.
2947 #if (rpm -qv control-center) >&- 2>&- ; then
2949 # warnL "The Gnome Control Center seems to be installed."
2951 # warn2 "Note that simply installing this version of xscreensaver"
2952 # warn2 "will not cause GNOME to know about the newly-added display"
2953 # warn2 "modes -- GNOME is just lame that way. Instead of using the"
2954 # warn2 "Control Center, try using the \`xscreensaver-demo' command."
2958 if test "${bindir}" = "${HACKDIR}" ; then
2962 if test "$do_dir_warning" = yes; then
2966 echo ' When you run "make install", the "xscreensaver",'
2967 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
2968 echo " will be installed in ${bindir}."
2970 echo " The various graphics demos (100+ different executables) will"
2971 echo " also be installed in ${HACKDIR}."
2973 echo " If you would prefer the demos to be installed elsewhere"
2974 echo " (for example, in a dedicated directory) you should re-run"
2975 echo " configure with the --enable-subdir=DIR option. For more"
2976 echo " information, run $0 --help."
2980 if test "$warning" != no; then
2981 echo '' ; echo "$warnsep" ; echo ''