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 # Functions to check how to do ICMP PING requests.
200 ###############################################################################
202 AC_DEFUN(AC_CHECK_ICMP,
203 [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp,
204 [AC_TRY_COMPILE([#include <stdlib.h>
211 #include <sys/types.h>
212 #include <sys/time.h>
215 #include <sys/socket.h>
216 #include <netinet/in_systm.h>
217 #include <netinet/in.h>
218 #include <netinet/ip.h>
219 #include <netinet/ip_icmp.h>
220 #include <netinet/udp.h>
221 #include <arpa/inet.h>
225 struct sockaddr_in si;
227 i.icmp_type = ICMP_ECHO;
232 si.sin_family = AF_INET;
234 [ac_cv_have_icmp=yes],
235 [ac_cv_have_icmp=no])])
236 if test "$ac_cv_have_icmp" = yes ; then
240 AC_DEFUN(AC_CHECK_ICMPHDR,
241 [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr,
242 [AC_TRY_COMPILE([#include <stdlib.h>
249 #include <sys/types.h>
250 #include <sys/time.h>
253 #include <sys/socket.h>
254 #include <netinet/in_systm.h>
255 #include <netinet/in.h>
256 #include <netinet/ip.h>
257 #include <netinet/ip_icmp.h>
258 #include <netinet/udp.h>
259 #include <arpa/inet.h>
263 struct sockaddr_in si;
269 i.un.echo.sequence = 0;
270 si.sin_family = AF_INET;
272 [ac_cv_have_icmphdr=yes],
273 [ac_cv_have_icmphdr=no])])
274 if test "$ac_cv_have_icmphdr" = yes ; then
275 AC_DEFINE(HAVE_ICMPHDR)
279 ###############################################################################
281 # Functions to check for various X11 crap.
283 ###############################################################################
285 # Try and find the app-defaults directory.
286 # It sucks that autoconf doesn't do this already...
288 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
290 if mkdir conftestdir; then
292 # Make sure to not put "make" in the Imakefile rules, since we grep it out.
293 cat > Imakefile <<'EOF'
295 @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
297 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
298 # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
299 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
305 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
306 # Look for the directory under a standard set of common directories.
307 # Check X11 before X11Rn because it's often a symlink to the current release.
309 /usr/X11/lib/app-defaults \
310 /usr/X11R6/lib/app-defaults \
311 /usr/X11R6/lib/X11/app-defaults \
312 /usr/X11R5/lib/app-defaults \
313 /usr/X11R5/lib/X11/app-defaults \
314 /usr/X11R4/lib/app-defaults \
315 /usr/X11R4/lib/X11/app-defaults \
317 /usr/lib/X11/app-defaults \
318 /usr/lib/X11R6/app-defaults \
319 /usr/lib/X11R5/app-defaults \
320 /usr/lib/X11R4/app-defaults \
322 /usr/local/X11/lib/app-defaults \
323 /usr/local/X11R6/lib/app-defaults \
324 /usr/local/X11R5/lib/app-defaults \
325 /usr/local/X11R4/lib/app-defaults \
327 /usr/local/lib/X11/app-defaults \
328 /usr/local/lib/X11R6/app-defaults \
329 /usr/local/lib/X11R6/X11/app-defaults \
330 /usr/local/lib/X11R5/app-defaults \
331 /usr/local/lib/X11R5/X11/app-defaults \
332 /usr/local/lib/X11R4/app-defaults \
333 /usr/local/lib/X11R4/X11/app-defaults \
335 /usr/X386/lib/X11/app-defaults \
336 /usr/x386/lib/X11/app-defaults \
337 /usr/XFree86/lib/X11/app-defaults \
339 /usr/lib/X11/app-defaults \
340 /usr/local/lib/X11/app-defaults \
341 /usr/unsupported/lib/X11/app-defaults \
342 /usr/athena/lib/X11/app-defaults \
343 /usr/local/x11r5/lib/X11/app-defaults \
344 /usr/lpp/Xamples/lib/X11/app-defaults \
345 /lib/usr/lib/X11/app-defaults \
347 /usr/openwin/lib/app-defaults \
348 /usr/openwin/lib/X11/app-defaults \
349 /usr/openwin/share/lib/app-defaults \
350 /usr/openwin/share/lib/X11/app-defaults \
352 /X11R6/lib/app-defaults \
353 /X11R5/lib/app-defaults \
354 /X11R4/lib/app-defaults \
357 if test -d "$ac_dir"; then
358 ac_x_app_defaults=$ac_dir
364 AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
366 AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
367 [AC_PATH_X_APP_DEFAULTS_XMKMF
368 if test x"$ac_x_app_defaults" = x; then
369 AC_PATH_X_APP_DEFAULTS_DIRECT
371 if test x"$ac_x_app_defaults" = x; then
372 ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
374 # Record where we found app-defaults for the cache.
375 ac_cv_x_app_defaults="$ac_x_app_defaults"
377 eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
380 AC_DEFUN(AC_XPOINTER,
381 [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
382 [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
383 [XPointer foo = (XPointer) 0;],
384 [ac_cv_xpointer=yes],
385 [ac_cv_xpointer=no])])
386 if test "$ac_cv_xpointer" != yes; then
387 AC_DEFINE(XPointer,[char*])
391 # Random special-cases for X on certain pathological OSes.
392 # You know who you are.
394 AC_DEFUN(AC_X_RANDOM_PATHS,
398 # The following arcana was gleaned from conversations with
399 # Eric Schwartz <erics@col.hp.com>:
401 # On HPUX 10.x, the parts of X that HP considers "standard" live in
402 # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider
403 # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
404 # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems.
405 # Also, there are symlinks from /usr/include/ and /usr/lib/ into
406 # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
407 # you don't need any -I or -L arguments.
409 # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
410 # are the same division as 10.x. However, there are no symlinks to
411 # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
412 # arguments are always necessary.
414 # However, X11R6 was available on HPUX 9.x as a patch: if that
415 # patch was installed, then all of X11R6 went in to
416 # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
418 # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
419 # whether R5 was available as a patch; R6 undoubtedly was not.)
421 # So. We try and use the highest numbered pair of
422 # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
423 # that are available. We do not mix and match different versions
426 # Question I still don't know the answer to: (do you?)
428 # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
429 # /usr/contrib/X11R6/ could be installed as a patch, what was in
430 # that contrib directory? Did it contain so-called "standard"
431 # X11R6, or did it include Xaw and Xmu as well? If the former,
432 # where did one find Xaw and Xmu on 9.x R6 systems? Would this
433 # be a situation where one had to reach into the R5 headers and
434 # libs to find Xmu? That is, must both R6 and R5 directories
435 # be on the -I and -L lists in that case?
437 for version in X11R6 X11R5 X11R4 ; do
438 # if either pair of directories exists...
439 if test -d /usr/lib/$version || test -d /usr/contrib/$version/lib
441 # if contrib exists, use it...
442 if test -d /usr/contrib/$version/lib ; then
443 X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
444 X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
446 # if the "standard" one exists, use it.
447 if test -d /usr/lib/$version ; then
448 X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
449 X_LIBS="$X_LIBS -L/usr/lib/$version"
451 # since at least one of the pair exists, go no farther.
456 # Now find Motif. Thanks for not making xmkmf find this by
457 # default, you losers.
459 if test -d /usr/lib/Motif1.2 ; then
460 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
461 X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
462 elif test -d /usr/lib/Motif1.1 ; then
463 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
464 X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
467 # Now let's check for the pseudo-standard locations for OpenGL and XPM.
469 if test -d /opt/Mesa/lib ; then
470 X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
471 X_LIBS="-L/opt/Mesa/lib $X_LIBS"
474 if test -d /opt/xpm/lib/X11 ; then
475 X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
476 X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
479 # On HPUX, default to installing in /opt/xscreensaver/ instead of
480 # in /usr/local/, unless there is already an xscreensaver in
481 # /usr/local/bin/. This can be overridden with the --prefix arg
482 # to configure. I'm not sure this is the right thing to do, but
483 # Richard Lloyd says so...
485 if test \! -x /usr/local/bin/xscreensaver ; then
486 ac_default_prefix=/opt/xscreensaver
492 # Thanks for not making xmkmf find this by default, pinheads.
493 # And thanks for moving things around again, too. Is this
494 # really the standard location now? What happened to the
495 # joke that this kind of thing went in /opt?
496 # cthomp says "answer: CDE (Common Disorganized Environment)"
498 if test -f /usr/dt/include/Xm/Xm.h ; then
499 X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
500 X_LIBS="$X_LIBS -L/usr/dt/lib -R:/usr/dt/lib"
502 # Some versions of Slowlaris Motif require -lgen. But not all. Why?
503 AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"])
510 ###############################################################################
512 # Some utility functions to make checking for X things easier.
514 ###############################################################################
516 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
518 AC_DEFUN(AC_CHECK_X_HEADER, [
519 ac_save_CPPFLAGS="$CPPFLAGS"
520 if test \! -z "$includedir" ; then
521 CPPFLAGS="$CPPFLAGS -I$includedir"
523 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
524 AC_CHECK_HEADER([$1], [$2])
525 CPPFLAGS="$ac_save_CPPFLAGS"])
527 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
529 AC_DEFUN(AC_EGREP_X_HEADER, [
530 ac_save_CPPFLAGS="$CPPFLAGS"
531 if test \! -z "$includedir" ; then
532 CPPFLAGS="$CPPFLAGS -I$includedir"
534 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
535 AC_EGREP_HEADER([$1], [$2], [$3], [$4])
536 CPPFLAGS="$ac_save_CPPFLAGS"])
538 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
540 AC_DEFUN(AC_TRY_X_COMPILE, [
541 ac_save_CPPFLAGS="$CPPFLAGS"
542 if test \! -z "$includedir" ; then
543 CPPFLAGS="$CPPFLAGS -I$includedir"
545 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
546 AC_TRY_COMPILE([$1], [$2], [$3], [$4])
547 CPPFLAGS="$ac_save_CPPFLAGS"])
550 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
551 # Use this sparingly; it probably doesn't work very well on X programs.
553 AC_DEFUN(AC_CHECK_X_LIB, [
554 ac_save_CPPFLAGS="$CPPFLAGS"
555 ac_save_LDFLAGS="$LDFLAGS"
556 # ac_save_LIBS="$LIBS"
558 if test \! -z "$includedir" ; then
559 CPPFLAGS="$CPPFLAGS -I$includedir"
561 # note: $X_CFLAGS includes $x_includes
562 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
564 if test \! -z "$libdir" ; then
565 LDFLAGS="$LDFLAGS -L$libdir"
567 # note: $X_LIBS includes $x_libraries
568 LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
570 AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
571 CPPFLAGS="$ac_save_CPPFLAGS"
572 LDFLAGS="$ac_save_LDFLAGS"
573 # LIBS="$ac_save_LIBS"
576 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
577 # (But not the -L directories!)
579 AC_DEFUN(AC_TRY_X_RUN, [
580 ac_save_CPPFLAGS="$CPPFLAGS"
581 if test \! -z "$includedir" ; then
582 CPPFLAGS="$CPPFLAGS -I$includedir"
584 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
585 AC_TRY_RUN([$1], [$2], [$3], [$4])
586 CPPFLAGS="$ac_save_CPPFLAGS"])
590 # Usage: HANDLE_X_PATH_ARG([variable_name],
591 # [--command-line-option],
592 # [descriptive string])
594 # All of the --with options take three forms:
596 # --with-foo (or --with-foo=yes)
597 # --without-foo (or --with-foo=no)
600 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees
601 # a directory (string beginning with a slash) it checks to see whether
602 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
605 AC_DEFUN(HANDLE_X_PATH_ARG, [
611 AC_MSG_CHECKING([for [$3] headers])
614 X_CFLAGS="-I$d $X_CFLAGS"
617 AC_MSG_RESULT(not found ($d: no such directory))
620 AC_MSG_CHECKING([for [$3] libs])
623 X_LIBS="-L$d $X_LIBS"
626 AC_MSG_RESULT(not found ($d: no such directory))
629 # replace the directory string with "yes".
636 echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
637 echo " If it is a directory, then \`DIR/include' will be added to"
638 echo " the -I list, and \`DIR/lib' will be added to the -L list."
646 ###############################################################################
647 ###############################################################################
649 # End of function definitions. Now start actually executing stuff.
651 ###############################################################################
652 ###############################################################################
654 # random compiler setup
661 # stuff for Makefiles
668 AC_CHECK_HEADERS(unistd.h)
677 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv)
679 AC_CHECK_FUNCS(sigaction syslog realpath)
682 AC_CHECK_HEADERS(crypt.h sys/select.h)
685 if test -z "$PERL" ; then
686 # don't let it be blank...
687 PERL=/usr/local/bin/perl5
692 if test "$have_x" != yes; then
693 AC_MSG_ERROR(Couldn't find X11 headers/libs. Try \`$0 --help'.)
696 AC_PATH_X_APP_DEFAULTS
702 ###############################################################################
704 # Check for -lXmu (some fucked up vendors don't ship it...)
706 ###############################################################################
709 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes])
710 if test "$have_xmu" = no ; then
711 XMU_SRCS='$(UTILS_SRC)/xmu.c'
712 XMU_OBJS='$(UTILS_BIN)/xmu.o'
716 SAVER_LIBS="-lXmu $SAVER_LIBS"
717 HACK_LIBS="-lXmu $HACK_LIBS"
718 MOTIF_LIBS="-lXmu $MOTIF_LIBS"
719 GTK_LIBS="-lXmu $GTK_LIBS"
724 ###############################################################################
726 # Check for the SunOS 4.1.x _get_wmShellWidgetClass bug.
727 # See comp.windows.x FAQ question 124. The right fix is to
728 # get OpenWindows 3.0 patches 100512-02 and 100573-03.
730 ###############################################################################
732 if test "$have_xmu" = yes ; then
735 AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
737 [ac_save_LDFLAGS="$LDFLAGS"
738 if test \! -z "$x_libraries" ; then
739 LDFLAGS="$LDFLAGS -L$x_libraries"
741 # Note: this trick never works! (Generally.)
742 # We're only getting away with using AC_TRY_LINK
743 # with X libraries because we know it's SunOS.
744 LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
746 [ac_cv_sunos_xmu_bug=no],
747 [ac_cv_sunos_xmu_bug=yes])
748 LDFLAGS="$ac_save_LDFLAGS"])
749 if test "$ac_cv_sunos_xmu_bug" = yes ; then
750 AC_CACHE_CHECK([whether the compiler understands -static],
752 [ac_save_LDFLAGS="$LDFLAGS"
753 LDFLAGS="$LDFLAGS -static"
754 AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
755 LDFLAGS="$ac_save_LDFLAGS"])
756 if test "$ac_cv_ld_static" = yes ; then
757 LDFLAGS="$LDFLAGS -static"
759 LDFLAGS="$LDFLAGS -Bstatic"
767 ###############################################################################
769 # Handle the --enable-subdir option
771 ###############################################################################
773 AC_ARG_ENABLE(subdir,[
774 Installation options:
776 --enable-subdir=DIR Put the demo programs in a subdirectory of \`bindir',
777 instead of putting them in bindir itself. You can
778 specify the name of the subdirectory. For example,
779 \`--exec-prefix=/usr/local --enable-subdir=demos'
780 would put xscreensaver in /usr/local/bin/, and would
781 put the demos in /usr/local/bin/demos/. (If DIR
782 begins with /, then bindir will not be prepended.)
784 --disable-subdir Just put the demos in \`bindir' (this is the default.)
786 [enable_subdir="$enableval"],[enable_subdir=no])
787 if test x"$enable_subdir" = xno; then
789 elif test x"$enable_subdir" = xyes -o x"$enable_subdir" = x ; then
790 echo "error: must be a subdirectory name: --enable-subdir=$enable_subdir"
793 # there must be a better way than this...
794 if test -z "`echo $enable_subdir | sed 's@^/.*@@'`" ; then
796 HACKDIR=$enable_subdir
799 HACKDIR='${bindir}/'$enable_subdir
803 # canonicalize slashes.
804 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
807 ###############################################################################
809 # Check for the SGI SCREEN_SAVER server extension.
811 ###############################################################################
814 with_sgi_req=unspecified
816 [Except where noted, all of the --with options below can also take a
817 directory argument: for example, \`--with-motif=/opt/Motif'. That would
818 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
819 to be added to the -L list, assuming those directories exist.
821 By default, support for each of these options will be built in, if the
822 relevant library routines exist. At run time, they will then be used
823 only if the X server being used supports them. Each --with option has
824 a corresponding --without option, to override building support for them
827 Screen blanking and idle-detection options:
829 --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.],
830 [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
832 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
834 if test "$with_sgi" = yes; then
835 AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
837 AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)])
839 elif test "$with_sgi" != no; then
840 echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
845 ###############################################################################
847 # Check for the MIT-SCREEN-SAVER server extension.
849 ###############################################################################
852 with_mit_req=unspecified
854 [ --with-mit-ext Include support for the MIT-SCREEN-SAVER extension.],
855 [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
857 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
859 if test "$with_mit" = yes; then
860 AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes])
862 # Now check to see if it's really in the library; XF86Free-3.3 ships
863 # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
865 if test "$have_mit" = yes; then
866 AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [true], [have_mit=no], -lm)
868 if test "$have_mit" = no; then
869 # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead
870 # of in Xext. Thank you master, may I have another.
871 AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
872 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
873 [true], -lX11 -lXext -lm)
876 if test "$have_mit" = no; then
877 # Double fuck! Looks like some versions of XFree86 (whichever version
878 # it is that comes with RedHat Linux 2.0 -- I can't find a version
879 # number) put this garbage in Xss instead of Xext. Thank you master,
880 # may I have another.
881 AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
882 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
883 [true], -lX11 -lXext -lm)
886 if test "$have_mit" = yes; then
887 AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
892 elif test "$with_mit" != no; then
893 echo "error: must be yes or no: --with-mit-ext=$with_mit"
898 ###############################################################################
900 # Check for the XIDLE server extension.
902 ###############################################################################
905 with_xidle_req=unspecified
906 AC_ARG_WITH(xidle-ext,
907 [ --with-xidle-ext Include support for the XIDLE extension.],
908 [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
910 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
912 if test "$with_xidle" = yes; then
913 AC_CHECK_X_HEADER(X11/extensions/xidle.h,
915 AC_DEFINE(HAVE_XIDLE_EXTENSION)])
916 elif test "$with_xidle" != no; then
917 echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
922 ###############################################################################
924 # Check for the SGI-VIDEO-CONTROL server extension.
926 ###############################################################################
929 with_sgivc_req=unspecified
930 AC_ARG_WITH(sgivc-ext,
931 [ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension.],
932 [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
934 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
936 if test "$with_sgivc" = yes; then
938 # first check for XSGIvc.h
939 AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes])
941 # if that succeeded, then check for the -lXsgivc
942 if test "$have_sgivc" = yes; then
944 AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
945 [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
949 # if that succeeded, then we've really got it.
950 if test "$have_sgivc" = yes; then
951 AC_DEFINE(HAVE_SGI_VC_EXTENSION)
954 elif test "$with_sgivc" != no; then
955 echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
960 ###############################################################################
962 # Check for the DPMS server extension.
964 ###############################################################################
967 with_dpms_req=unspecified
968 AC_ARG_WITH(dpms-ext,
969 [ --with-dpms-ext Include support for the DPMS extension.],
970 [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
972 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
974 if test "$with_dpms" = yes; then
976 # first check for dpms.h
977 AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes])
979 # if that succeeded, then check for the -lXdpms
980 if test "$have_dpms" = yes; then
982 AC_CHECK_X_LIB(Xdpms, DPMSInfo,
983 [have_dpms=yes; SAVER_LIBS="$SAVER_LIBS -lXdpms"], [true],
987 # if that succeeded, then we've really got it.
988 if test "$have_dpms" = yes; then
989 AC_DEFINE(HAVE_DPMS_EXTENSION)
992 elif test "$with_dpms" != no; then
993 echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
998 ###############################################################################
1000 # Check for the XF86VMODE server extension.
1002 ###############################################################################
1005 with_xf86vmode_req=unspecified
1006 AC_ARG_WITH(xf86vmode-ext,
1007 [ --with-xf86vmode-ext Include support for XFree86 virtual screens.],
1008 [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"],
1009 [with_xf86vmode=yes])
1011 HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
1013 if test "$with_xf86vmode" = yes; then
1015 # first check for xf86vmode.h
1016 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes])
1018 # if that succeeded, then check for the -lXxf86vm
1019 if test "$have_xf86vmode" = yes; then
1021 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
1022 [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
1023 [true], -lXext -lX11)
1026 # if that succeeded, then we've really got it.
1027 if test "$have_xf86vmode" = yes; then
1028 AC_DEFINE(HAVE_XF86VMODE)
1031 elif test "$with_xf86vmode" != no; then
1032 echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
1037 ###############################################################################
1039 # Check for HP XHPDisableReset and XHPEnableReset.
1041 ###############################################################################
1043 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
1044 [AC_DEFINE(HAVE_XHPDISABLERESET)
1045 SAVER_LIBS="-lXhp11 $SAVER_LIBS"])
1048 ###############################################################################
1050 # Check for /proc/interrupts.
1052 ###############################################################################
1054 have_proc_interrupts=no
1055 with_proc_interrupts_req=unspecified
1056 AC_ARG_WITH(proc-interrupts,
1057 [ --with-proc-interrupts Include support for consulting the /proc/interrupts
1058 file to notice keyboard activity.],
1059 [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
1060 [with_proc_interrupts=yes])
1062 if test "$with_proc_interrupts" = yes; then
1064 AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
1065 ac_cv_have_proc_interrupts,
1066 [ac_cv_have_proc_interrupts=no
1067 if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
1068 ac_cv_have_proc_interrupts=yes
1071 have_proc_interrupts=$ac_cv_have_proc_interrupts
1073 if test "$have_proc_interrupts" = yes; then
1074 AC_DEFINE(HAVE_PROC_INTERRUPTS)
1077 elif test "$with_proc_interrupts" != no; then
1078 echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
1083 ###############################################################################
1085 # The --enable-locking option
1087 ###############################################################################
1089 AC_ARG_ENABLE(locking,[
1090 Screen locking options:
1092 --enable-locking Compile in support for locking the display.
1093 --disable-locking Do not allow locking at all.
1095 [enable_locking="$enableval"],[enable_locking=yes])
1096 if test "$enable_locking" = yes; then
1098 elif test "$enable_locking" = no; then
1099 AC_DEFINE(NO_LOCKING)
1101 echo "error: must be yes or no: --enable-locking=$enable_locking"
1107 ###############################################################################
1109 # The --enable-vt-locking option
1111 ###############################################################################
1113 #ac_vt_lockswitch=no
1114 #AC_ARG_ENABLE(vt-locking,[
1115 # --enable-vt-locking Compile in support for locking Virtual Terminals.
1116 # This is the default if the system supports it, and
1117 # if locking support is included (--enable-locking.)
1118 # --disable-vt-locking Do not allow locking of VTs, even if locking is
1120 # [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1121 #if test "$enable_vt_locking" = yes; then
1123 # AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1124 # [AC_TRY_COMPILE([#include <fcntl.h>
1125 # #include <sys/ioctl.h>
1126 # #include <sys/vt.h>],
1127 # [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1128 # [ac_cv_vt_lockswitch=yes],
1129 # [ac_cv_vt_lockswitch=no])])
1130 # ac_vt_lockswitch=$ac_cv_vt_lockswitch
1132 #elif test "$enable_vt_locking" = no; then
1135 # echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1139 #if test "$ac_vt_lockswitch" = yes; then
1140 # AC_DEFINE(HAVE_VT_LOCKSWITCH)
1141 # # the VT_LOCKSWITCH ioctl can only be used when running as root.
1142 # # #### but it doesn't work yet, so don't worry about that for now.
1148 ###############################################################################
1152 ###############################################################################
1156 # Solaris systems tend to come with PAM misconfigured.
1157 # Don't build it by default, even if the headers exist.
1161 # Default to building PAM support on all other systems, if it exists.
1162 with_pam_default=yes
1167 with_pam_req=unspecified
1170 [ --with-pam Include support for PAM (Pluggable Auth Modules.)],
1171 [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1173 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1175 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1176 AC_CACHE_CHECK([for PAM], ac_cv_pam,
1177 [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1180 if test "$ac_cv_pam" = yes ; then
1183 PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1185 # libpam typically requires dlopen and dlsym. On FreeBSD,
1186 # those are in libc. On Linux and Solaris, they're in libdl.
1187 AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1189 AC_MSG_CHECKING(how to call pam_strerror)
1190 AC_CACHE_VAL(ac_cv_pam_strerror_args,
1191 [AC_TRY_COMPILE([#include <stdio.h>
1193 #include <security/pam_appl.h>],
1194 [pam_handle_t *pamh = 0;
1195 char *s = pam_strerror(pamh, PAM_SUCCESS);],
1196 [ac_pam_strerror_args=2],
1197 [AC_TRY_COMPILE([#include <stdio.h>
1199 #include <security/pam_appl.h>],
1201 pam_strerror(PAM_SUCCESS);],
1202 [ac_pam_strerror_args=1],
1203 [ac_pam_strerror_args=0])])
1204 ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1205 ac_pam_strerror_args=$ac_cv_pam_strerror_args
1206 if test "$ac_pam_strerror_args" = 1 ; then
1207 AC_MSG_RESULT(one argument)
1208 elif test "$ac_pam_strerror_args" = 2 ; then
1209 AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1210 AC_MSG_RESULT(two arguments)
1212 AC_MSG_RESULT(unknown)
1218 ###############################################################################
1220 # Check for Kerberos.
1222 ###############################################################################
1225 with_kerberos_req=unspecified
1227 AC_ARG_WITH(kerberos,
1228 [ --with-kerberos Include support for Kerberos authentication.],
1229 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1231 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1233 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1234 AC_CACHE_CHECK([for Kerberos], ac_cv_kerberos,
1235 [AC_TRY_X_COMPILE([#include <krb.h>],,
1236 [ac_cv_kerberos=yes],
1237 [ac_cv_kerberos=no])])
1238 if test "$ac_cv_kerberos" = yes ; then
1240 AC_DEFINE(HAVE_KERBEROS)
1242 # from Tim Showalter <tjs+@andrew.cmu.edu>
1243 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes"
1244 AC_CHECK_FUNC(res_search,,
1245 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1246 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1253 ###############################################################################
1255 # Check for the nine billion variants of shadow passwords...
1257 ###############################################################################
1262 with_shadow_req=unspecified
1265 [ --with-shadow Include support for shadow password authentication.],
1266 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1268 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1270 if test "$enable_locking" = no ; then
1276 ###############################################################################
1278 # Check for Sun "adjunct" passwords.
1280 ###############################################################################
1282 if test "$with_shadow" = yes ; then
1283 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1284 [AC_TRY_X_COMPILE([#include <stdlib.h>
1286 #include <sys/types.h>
1287 #include <sys/label.h>
1288 #include <sys/audit.h>
1289 #include <pwdadj.h>],
1290 [struct passwd_adjunct *p = getpwanam("nobody");
1291 const char *pw = p->pwa_passwd;],
1292 [ac_cv_sun_adjunct=yes],
1293 [ac_cv_sun_adjunct=no])])
1294 if test "$ac_cv_sun_adjunct" = yes; then
1295 have_shadow_adjunct=yes
1302 ###############################################################################
1304 # Check for DEC and SCO so-called "enhanced" security.
1306 ###############################################################################
1308 if test "$with_shadow" = yes ; then
1309 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1310 [AC_TRY_X_COMPILE([#include <stdlib.h>
1312 #include <sys/types.h>
1314 #include <sys/security.h>
1316 [struct pr_passwd *p;
1318 set_auth_parameters(0, 0);
1319 check_auth_parameters();
1320 p = getprpwnam("nobody");
1321 pw = p->ufld.fd_encrypt;],
1322 [ac_cv_enhanced_passwd=yes],
1323 [ac_cv_enhanced_passwd=no])])
1324 if test $ac_cv_enhanced_passwd = yes; then
1325 have_shadow_enhanced=yes
1329 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1330 # (I'm told it needs -lcurses too, but I don't understand why.)
1331 # But on DEC, it's in -lsecurity.
1333 AC_CHECK_LIB(prot, getprpwnam,
1334 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1335 [AC_CHECK_LIB(security, getprpwnam,
1336 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1341 ###############################################################################
1343 # Check for HP's entry in the "Not Invented Here" Sweepstakes.
1345 ###############################################################################
1347 if test "$with_shadow" = yes ; then
1348 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1349 [AC_TRY_X_COMPILE([#include <stdlib.h>
1351 #include <sys/types.h>
1353 #include <hpsecurity.h>
1355 [struct s_passwd *p = getspwnam("nobody");
1356 const char *pw = p->pw_passwd;],
1357 [ac_cv_hpux_passwd=yes],
1358 [ac_cv_hpux_passwd=no])])
1359 if test "$ac_cv_hpux_passwd" = yes; then
1360 have_shadow_hpux=yes
1364 # on HPUX, bigcrypt is in -lsec
1365 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1370 ###############################################################################
1372 # Check for FreeBSD-style shadow passwords.
1374 # On FreeBSD, getpwnam() and friends work just like on non-shadow-
1375 # password systems -- except you only get stuff in the pw_passwd field
1376 # if the running program is setuid. So, guess that we've got this
1377 # lossage to contend with if /etc/master.passwd exists, and default to
1378 # a setuid installation.
1380 ###############################################################################
1382 if test "$with_shadow" = yes ; then
1383 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1384 [if test -f /etc/master.passwd ; then
1385 ac_cv_master_passwd=yes
1387 ac_cv_master_passwd=no
1389 if test "$ac_cv_master_passwd" = yes; then
1395 ###############################################################################
1397 # Check for traditional (ha!) shadow passwords.
1399 ###############################################################################
1401 if test "$with_shadow" = yes ; then
1402 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1403 [AC_TRY_X_COMPILE([#include <stdlib.h>
1405 #include <sys/types.h>
1407 #include <shadow.h>],
1408 [struct spwd *p = getspnam("nobody");
1409 const char *pw = p->sp_pwdp;],
1411 [ac_cv_shadow=no])])
1412 if test "$ac_cv_shadow" = yes; then
1416 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1418 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1419 if test "$have_getspnam" = no ; then
1420 AC_CHECK_LIB(gen, getspnam,
1421 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1427 ###############################################################################
1429 # Check for other libraries needed for non-shadow passwords.
1431 ###############################################################################
1433 if test "$enable_locking" = yes ; then
1435 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1437 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1438 if test "$have_crypt" = no ; then
1439 AC_CHECK_LIB(crypt, crypt,
1440 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1445 # Most of the above shadow mechanisms will have set need_setuid to yes,
1446 # if they were found. But, on some systems, we need setuid even when
1447 # using plain old vanilla passwords.
1449 if test "$enable_locking" = yes ; then
1451 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1458 if test "$have_shadow_adjunct" = yes ; then
1459 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1460 elif test "$have_shadow_enhanced" = yes ; then
1461 AC_DEFINE(HAVE_ENHANCED_PASSWD)
1462 elif test "$have_shadow_hpux" = yes ; then
1463 AC_DEFINE(HAVE_HPUX_PASSWD)
1464 elif test "$have_shadow" = yes ; then
1465 AC_DEFINE(HAVE_SHADOW_PASSWD)
1469 ###############################################################################
1473 ###############################################################################
1476 with_motif_req=unspecified
1478 User interface options:
1480 --with-motif Use the Motif toolkit for the user interface.],
1481 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=yes])
1483 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
1485 if test "$with_motif" != yes -a "$with_motif" != no ; then
1486 echo "error: must be yes or no: --with-motif=$with_motif"
1490 if test "$with_motif" = yes; then
1492 AC_CHECK_X_HEADER(Xm/Xm.h,
1494 AC_DEFINE(HAVE_MOTIF)
1495 MOTIF_LIBS="$MOTIF_LIBS -lXm"])
1499 if test "$have_motif" = yes; then
1500 AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)])
1504 ###############################################################################
1508 ###############################################################################
1511 with_gtk_req=unspecified
1513 [ --with-gtk Use the Gtk toolkit for the user interface.],
1514 [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
1516 # if --with-gtk=/directory/ was specified, remember that directory so that
1517 # we can also look for the `gtk-config' program in that directory.
1527 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
1529 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
1530 echo "error: must be yes or no: --with-gtk=$with_gtk"
1535 if test "$with_gtk" = yes; then
1538 # if the user specified --with-gtk=/foo/ then look in /foo/bin/
1539 # for glib-config and gtk-config.
1543 if test ! -z "$gtk_dir"; then
1544 # canonicalize slashes.
1545 gtk_dir=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
1546 gtk_path="$gtk_dir:$gtk_dir:$gtk_path"
1549 AC_PATH_PROGS(glib_config, glib-config,, $gtk_path)
1550 AC_PATH_PROGS(gtk_config, gtk-config,, $gtk_path)
1552 if test -n "$glib_config" -a -n "gtk_config" ; then
1555 if test "$have_gtk" = yes; then
1556 AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
1557 [ac_cv_gtk_version_string=`$glib_config --version`])
1558 ac_gtk_version_string=$ac_cv_gtk_version_string
1561 maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
1562 min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
1564 ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
1565 if test -z "$ac_gtk_version"; then
1566 ac_gtk_version=unknown
1567 ac_gtk_version_string=unknown
1569 if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
1575 if test "$have_gtk" = yes; then
1576 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
1577 [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
1578 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
1579 [ac_cv_gtk_config_libs=`$gtk_config --libs`])
1580 INCLUDES="$INCLUDES $ac_cv_gtk_config_cflags"
1581 GTK_LIBS="$GTK_LIBS $ac_cv_gtk_config_libs"
1587 ###############################################################################
1589 # Checking whether Motif is really Lesstif.
1591 ###############################################################################
1594 if test "$have_motif" = yes ; then
1595 AC_CACHE_CHECK([whether Motif is really LessTif],
1597 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
1598 [long vers = LesstifVersion;],
1599 [ac_cv_have_lesstif=yes],
1600 [ac_cv_have_lesstif=no])])
1601 have_lesstif=$ac_cv_have_lesstif
1605 lesstif_version=unknown
1606 lesstif_version_string=unknown
1608 if test "$have_lesstif" = yes ; then
1610 echo unknown > conftest-lt
1611 AC_CACHE_CHECK([LessTif version number],
1612 ac_cv_lesstif_version_string,
1613 [AC_TRY_X_RUN([#include <stdio.h>
1616 FILE *f = fopen("conftest-lt", "w");
1618 fprintf(f, "%d %d.%d\n", LesstifVersion,
1619 LESSTIF_VERSION, LESSTIF_REVISION);
1623 [ltv=`cat conftest-lt`
1624 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
1625 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
1626 [ac_cv_lesstif_version=unknown
1627 ac_cv_lesstif_version_string=unknown],
1628 [ac_cv_lesstif_version=unknown
1629 ac_cv_lesstif_version_string=unknown])])
1631 lesstif_version=$ac_cv_lesstif_version
1632 lesstif_version_string=$ac_cv_lesstif_version_string
1637 if test "$have_motif" = yes ; then
1639 echo unknown > conftest-mt
1640 AC_CACHE_CHECK([Motif version number],
1641 ac_cv_motif_version_string,
1642 [AC_TRY_X_RUN([#include <stdio.h>
1645 FILE *f = fopen("conftest-mt", "w");
1647 fprintf(f, "%d %d.%d\n", XmVersion,
1648 XmVERSION, XmREVISION);
1652 [mtv=`cat conftest-mt`
1653 ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
1654 ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
1655 [ac_cv_motif_version=unknown
1656 ac_cv_motif_version_string=unknown],
1657 [ac_cv_motif_version=unknown
1658 ac_cv_motif_version_string=unknown])])
1660 motif_version=$ac_cv_motif_version
1661 motif_version_string=$ac_cv_motif_version_string
1666 ###############################################################################
1668 # Checking whether Motif requires -lXpm.
1670 # If this is Motif 2.x, and we have XPM, then link against XPM as well.
1671 # The deal is, Motif 2.x requires XPM -- but it's a compilation option
1672 # of the library whether to build the XPM code into libXm, or whether
1673 # to rely on an external libXm. So the only way to tell whether XPM is
1674 # a link-time requirement is to examine libXm.a, which is very
1675 # difficult to do in an autoconf script. So... if it's Motif 2.x, we
1676 # always link against XPM if the XPM lib exists (and this will be a
1677 # no-op if libXm happens to already have the XPM code in it.)
1679 ###############################################################################
1681 motif_requires_xpm=no
1682 if test "$have_motif" = yes ; then
1683 AC_MSG_CHECKING(whether Motif requires XPM)
1684 if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
1686 motif_requires_xpm=yes
1687 AC_MSG_RESULT(maybe)
1694 ###############################################################################
1696 # Checking whether Motif requires -lXp.
1698 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
1699 # Extension". Why this extension isn't in -lXext with all the others,
1702 ###############################################################################
1705 if test "$have_motif" = yes ; then
1707 AC_CHECK_X_LIB(Xp, XpQueryExtension,
1708 [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
1709 [true], -lX11 -lXext -lm)
1713 ###############################################################################
1715 # Checking whether Motif requires -lXintl (for _Xsetlocale.)
1717 ###############################################################################
1720 if test "$have_motif" = yes ; then
1721 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
1723 if test "$have_xintl" = yes; then
1724 MOTIF_LIBS="$MOTIF_LIBS -lXintl"
1729 ###############################################################################
1731 # Check for -lGL or -lMesaGL.
1733 ###############################################################################
1737 with_gl_req=unspecified
1742 --with-gl Build those demos which depend on OpenGL.],
1743 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
1745 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
1747 ac_mesagl_version=unknown
1748 ac_mesagl_version_string=unknown
1750 if test "$with_gl" = yes; then
1751 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
1752 if test "$have_gl" = yes ; then
1753 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no)
1756 # If we have the headers, try and figure out which vendor it's from.
1758 if test "$have_gl" = yes ; then
1760 # We need to know whether it's MesaGL so that we know which libraries
1763 AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
1764 [ac_cv_have_mesa_gl=no
1765 AC_EGREP_X_HEADER(Mesa, GL/glx.h, [ac_cv_have_mesa_gl=yes])
1767 ac_have_mesa_gl=$ac_cv_have_mesa_gl
1774 # Some versions of MesaGL are compiled to require -lpthread.
1775 # So if the Mesa headers exist, and -lpthread exists, then always
1776 # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
1778 if test "$ac_have_mesa_gl" = yes; then
1779 AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
1783 # If we have Mesa headers, check to see if we can link against -lMesaGL.
1784 # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
1785 # Else, warn that GL is busted. (We have the headers, but no libs.)
1788 if test "$ac_have_mesa_gl" = yes ; then
1789 AC_CHECK_X_LIB(MesaGL, glXCreateContext,
1791 GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
1792 [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
1795 if test "$gl_lib_1" = "" ; then
1796 AC_CHECK_X_LIB(GL, glXCreateContext,
1798 GL_LIBS="-lGL -lGLU $GL_LIBS"],
1799 [], -lGLU $GL_LIBS -lX11 -lXext -lm)
1802 if test "$gl_lib_1" = "" ; then
1803 # we have headers, but no libs -- bail.
1808 # linking works -- we can build the GL hacks.
1810 if test "$ac_have_mesa_gl" = yes ; then
1811 AC_DEFINE(HAVE_MESA_GL)
1817 # Now that we know we have GL headers and libs, do some more GL testing.
1820 if test "$have_gl" = yes ; then
1821 # If it's MesaGL, we'd like to issue a warning if the version number
1822 # is less than or equal to 2.6, because that version had a security bug.
1824 if test "$ac_have_mesa_gl" = yes; then
1826 AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
1827 [cat > conftest.$ac_ext <<EOF
1828 #line __oline__ "configure"
1829 #include "confdefs.h"
1831 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
1834 ac_save_CPPFLAGS="$CPPFLAGS"
1835 if test \! -z "$includedir" ; then
1836 CPPFLAGS="$CPPFLAGS -I$includedir"
1838 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1842 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \
1843 's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
1846 rm -f conftest.$ac_ext
1848 CPPFLAGS="$ac_save_CPPFLAGS"
1850 if test "$mglv" = ""; then
1851 ac_mesagl_version=unknown
1852 ac_mesagl_version_string=unknown
1854 ac_mesagl_version_string=$mglv
1855 maj=`echo $mglv | sed -n 's/\..*//p'`
1856 min=`echo $mglv | sed -n 's/.*\.//p'`
1857 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
1858 if test -z "$ac_mesagl_version"; then
1859 ac_mesagl_version=unknown
1860 ac_mesagl_version_string=unknown
1863 ac_cv_mesagl_version=$ac_mesagl_version
1864 ac_cv_mesagl_version_string=$ac_mesagl_version_string
1866 ac_mesagl_version=$ac_cv_mesagl_version
1867 ac_mesagl_version_string=$ac_cv_mesagl_version_string
1871 # Check for OpenGL 1.1 features.
1873 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
1874 [true], $GL_LIBS -lX11 -lXext -lm)
1877 # Check whether the `xscreensaver' executable should link against GL.
1878 # See comments in utils/visual-gl.c for why this is sometimes necessary.
1880 AC_MSG_CHECKING(whether drastic GL measures must be taken)
1883 AC_MSG_RESULT([yes -- hello, SGI.])
1884 AC_DEFINE(DAEMON_USE_GL)
1885 SAVER_GL_SRCS='$(UTILS_SRC)/visual-gl.c'
1886 SAVER_GL_OBJS='$(UTILS_BIN)/visual-gl.o'
1887 SAVER_GL_LIBS="$GL_LIBS"
1890 AC_MSG_RESULT([no -- non-SGI.])
1899 elif test "$with_gl" != no; then
1900 echo "error: must be yes or no: --with-gl=$with_gl"
1905 ###############################################################################
1909 ###############################################################################
1912 with_gle_req=unspecified
1915 [ --with-gle Build those demos which depend on GLE
1916 (the OpenGL "extrusion" library.)],
1917 [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
1919 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
1923 if test "$with_gle" = yes; then
1925 AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no)
1926 if test "$have_gle" = yes ; then
1927 AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no)
1930 if test "$have_gle" = yes ; then
1933 AC_CHECK_X_LIB(gle, gleCreateGC,
1934 [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
1935 [], $GL_LIBS -lX11 -lXext -lm)
1937 if test "$have_gle" = yes ; then
1941 # sometimes the libmatrix stuff is included in libgle. look there first.
1943 # I don't get it. For some reason, this test passes on SGI, as if
1944 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
1945 # Yet the link is succeeding. Why???
1947 # AC_CHECK_X_LIB(gle, uview_direction_d,
1948 # [have_gle=yes; gle_halfassed=no],
1949 # [], $GL_LIBS -lX11 -lXext -lm)
1951 # if it wasn't in libgle, then look in libmatrix.
1952 if test "$have_gle" = no ; then
1953 AC_CHECK_X_LIB(matrix, uview_direction_d,
1954 [have_gle=yes; gle_halfassed=no;
1955 GLE_LIBS="$GLE_LIBS -lmatrix"],
1956 [], $GL_LIBS -lX11 -lXext -lm)
1960 if test "$have_gle" = yes ; then
1964 elif test "$with_gle" != no; then
1965 echo "error: must be yes or no: --with-gle=$with_gle"
1972 ###############################################################################
1976 ###############################################################################
1979 with_xpm_req=unspecified
1981 [ --with-xpm Include support for XPM files in some demos.],
1982 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
1984 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
1986 if test "$with_xpm" = yes; then
1987 AC_CHECK_X_HEADER(X11/xpm.h,
1991 elif test "$with_xpm" != no; then
1992 echo "error: must be yes or no: --with-xpm=$with_xpm"
1996 # See comment near $motif_requires_xpm, above.
1997 # Need to do this here, after both Motif and XPM have been checked for.
1999 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2000 if test "$motif_requires_xpm" = yes ; then
2001 MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
2006 ###############################################################################
2008 # Check for the XSHM server extension.
2010 ###############################################################################
2013 with_xshm_req=unspecified
2014 AC_ARG_WITH(xshm-ext,
2015 [ --with-xshm-ext Include support for the XSHM extension.],
2016 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
2018 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
2020 if test "$with_xshm" = yes; then
2022 # first check for Xshm.h.
2023 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes])
2025 # if that succeeded, then check for sys/ipc.h.
2026 if test "$have_xshm" = yes; then
2028 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
2031 # if that succeeded, then check for sys/shm.h.
2032 if test "$have_xshm" = yes; then
2034 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
2037 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
2038 # to exist, but the library code to not exist. And even better, the library
2039 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
2040 # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and
2041 # that's not quite right, but close enough.)
2045 if [ `uname -v` -eq 3 ]; then
2047 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
2048 [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
2049 [true], -lX11 -lXext -lm)
2054 # if that succeeded, then we've really got it.
2055 if test "$have_xshm" = yes; then
2056 AC_DEFINE(HAVE_XSHM_EXTENSION)
2059 elif test "$with_xshm" != no; then
2060 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
2065 ###############################################################################
2067 # Check for the DOUBLE-BUFFER server extension.
2069 ###############################################################################
2072 with_xdbe_req=unspecified
2073 AC_ARG_WITH(xdbe-ext,
2074 [ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.],
2075 [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
2077 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
2079 if test "$with_xdbe" = yes; then
2081 AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes])
2082 if test "$have_xdbe" = yes; then
2083 AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
2086 elif test "$with_xdbe" != no; then
2087 echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
2092 ###############################################################################
2094 # Check for the SGI XReadDisplay server extension.
2096 # Note: this has to be down here, rather than up with the other server
2097 # extension tests, so that the output of `configure --help' is in the
2098 # right order. Arrgh!
2100 ###############################################################################
2103 with_readdisplay_req=unspecified
2104 AC_ARG_WITH(readdisplay,
2105 [ --with-readdisplay Include support for the XReadDisplay extension.],
2106 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
2107 [with_readdisplay=yes])
2109 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
2111 if test "$with_readdisplay" = yes; then
2112 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
2113 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION))
2114 elif test "$with_readdisplay" != no; then
2115 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
2120 ###############################################################################
2122 # Check for the SGI Iris Video Library.
2124 ###############################################################################
2127 with_sgivideo_req=unspecified
2128 AC_ARG_WITH(sgivideo,
2129 [ --with-sgivideo Include support for SGI's Iris Video Library.],
2130 [with_sgivideo="$withval"; with_sgivideo_req="$withval"],
2131 [with_sgivideo=yes])
2133 HANDLE_X_PATH_ARG(with_sgivideo, --with-sgivideo, Iris Video)
2135 if test "$with_sgivideo" = yes; then
2136 AC_CHECK_X_HEADER(dmedia/vl.h, have_sgivideo=yes)
2137 if test "$have_sgivideo" = yes; then
2139 AC_CHECK_LIB(vl, vlOpenVideo, [have_sgivideo=yes])
2140 if test "$have_sgivideo" = yes; then
2141 SGI_VIDEO_OBJS="$(UTILS_BIN)/sgivideo.o"
2142 SGI_VIDEO_LIBS="-lvl"
2143 AC_DEFINE(HAVE_SGI_VIDEO)
2146 elif test "$with_sgivideo" != no; then
2147 echo "error: must be yes or no: --with-sgivideo=$with_sgivideo"
2152 ###############################################################################
2154 # Check for a program to generate random text.
2156 # Zippy is funnier than the idiocy generally spat out by `fortune',
2157 # so try to find that, by invoking Emacs and asking it where its
2158 # libexec directory is ("yow" lives in there.)
2160 # If that doesn't work, see if fortune, zippy, or yow are on $PATH,
2161 # and if so, use them.
2163 # If that doesn't work, look in /usr/games, and if it's there, use
2164 # the full pathname.
2166 ###############################################################################
2170 --with-zippy=PROGRAM Some demos are able to run an external program and
2171 display its text; this names the program to use by
2172 default (though it can be overridden with X
2173 resources.) If you don't specify this, the default
2174 is to use \"yow\" from the Emacs distribution (if you
2175 have it) or else to use \"fortune\".
2177 [with_zippy_req="$withval"; with_zippy="$withval"],[with_zippy=yes])
2179 if test "$with_zippy" = no || test "$with_zippy" = yes ; then
2184 if test -n "$with_zippy_req" ; then
2185 ac_cv_zippy_program=""
2186 case "$with_zippy_req" in
2188 AC_MSG_CHECKING([for $with_zippy_req])
2189 if test -x "$with_zippy_req" ; then
2198 unset ac_cv_path_zip2
2199 AC_PATH_PROG(zip2, $with_zippy_req, [])
2200 if test "$zip2" = ""; then
2205 ac_cv_zippy_program="$with_zippy"
2207 elif test -n "$ac_cv_zippy_program"; then
2208 AC_MSG_RESULT([checking for zippy... (cached) $ac_cv_zippy_program])
2211 if test ! -n "$ac_cv_zippy_program"; then
2213 AC_CHECK_PROGS(emacs_exe, emacs)
2214 AC_CHECK_PROGS(xemacs_exe, xemacs)
2216 ac_cv_zippy_program=""
2217 eargs='-batch -q -nw --eval'
2219 if test -n "$emacs_exe" ; then
2220 AC_MSG_CHECKING([for emacs yow])
2222 # get emacs to tell us where the libexec directory is.
2224 dir=`$emacs_exe $eargs '(princ (concat exec-directory "\n"))' \
2225 2>/dev/null | tail -1`
2226 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
2228 # try running libexec/yow and see if it exits without error.
2230 if test x"$dir" != x -a -x "$dir/yow" ; then
2231 if $dir/yow >&- 2>&- ; then
2232 ac_cv_zippy_program="$dir/yow"
2233 AC_MSG_RESULT($ac_cv_zippy_program)
2240 if test -z "$ac_cv_zippy_program" ; then
2241 AC_MSG_CHECKING([for xemacs yow])
2242 if test -n "$xemacs_exe" ; then
2244 # get xemacs to tell us where the libexec directory is.
2246 dir=`$xemacs_exe $eargs '(princ (concat exec-directory "\n"))' \
2247 2>/dev/null | tail -1`
2248 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
2250 # try running libexec/yow and see if it exits without error.
2252 if test x"$dir" != x -a -x "$dir/yow" ; then
2253 if $dir/yow >&- 2>&- ; then
2254 ac_cv_zippy_program="$dir/yow"
2255 AC_MSG_RESULT($ac_cv_zippy_program)
2258 # in some xemacs installations, the pathname of the yow.lines file
2259 # isn't hardcoded into the yow executable, and must be passed on
2260 # the command line. See if it's in libexec/../etc/.
2264 dir_up=`echo "$dir" | sed 's@/[^/]*$@@'`
2267 yowlines="$dir_up/etc/yow.lines"
2268 if $dir/yow -f $yowlines >&- 2>&- ; then
2269 ac_cv_zippy_program="$dir/yow -f $yowlines"
2270 AC_MSG_RESULT($ac_cv_zippy_program)
2273 # In newer XEmacs releases, yow.lines is in a different place,
2274 # and the easiest way to get it is by calling the new function
2275 # `locate-data-file'.
2277 yowlines=`$xemacs_exe $eargs \
2278 '(princ (concat (locate-data-file "yow.lines") "\n"))' \
2279 2>/dev/null | tail -1`
2280 if $dir/yow -f $yowlines >&- 2>&- ; then
2281 ac_cv_zippy_program="$dir/yow -f $yowlines"
2282 AC_MSG_RESULT($ac_cv_zippy_program)
2292 # if that didn't work, try for some other programs...
2293 if test -z "$ac_cv_zippy_program" ; then
2295 AC_CHECK_PROGS(fortune, [fortune zippy yow])
2296 # if that didn't work, try for those programs in /usr/games...
2297 if test -z "$fortune" ; then
2298 AC_PATH_PROGS(fortune, [fortune zippy yow], fortune,
2299 /usr/games:/usr/local/games:$PATH)
2304 if test -z "$ac_cv_zippy_program" ; then
2305 ac_cv_zippy_program=fortune
2308 AC_DEFINE_UNQUOTED(ZIPPY_PROGRAM, "$ac_cv_zippy_program")
2311 ###############################################################################
2313 # Done testing. Now, set up the various -I and -L variables,
2314 # and decide which GUI program to build by default.
2316 ###############################################################################
2323 if test \! -z "$includedir" ; then
2324 INCLUDES="$INCLUDES -I$includedir"
2327 if test \! -z "$libdir" ; then
2328 LDFLAGS="$LDFLAGS -L$libdir"
2332 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2334 if test "$have_motif" = yes; then
2335 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2336 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2338 if test "$have_gtk" = yes; then
2339 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
2340 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2344 if test "$have_kerberos" = yes; then
2345 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
2346 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
2348 if test "$have_pam" = yes; then
2349 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
2350 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
2351 INSTALL_PAM="install-pam"
2353 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
2354 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
2357 if test "$enable_locking" = yes; then
2358 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
2359 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
2361 LOCK_SRCS='$(NOLOCK_SRCS_1)'
2362 LOCK_OBJS='$(NOLOCK_OBJS_1)'
2365 if test "$need_setuid" = yes; then
2367 INSTALL_SETUID='$(INSTALL) $(SUID_FLAGS)'
2370 INSTALL_SETUID='$(INSTALL_PROGRAM)'
2374 if test "$have_gl" = yes; then
2375 GL_EXES='$(GL_EXES)'
2379 GL_KLUDGE="-${tab} "
2382 if test "$have_gle" = yes; then
2383 GLE_EXES='$(GLE_EXES)'
2384 GLE_MEN='$(GLE_MEN)'
2385 GLE_KLUDGE="${tab} "
2387 GLE_KLUDGE="-${tab} "
2391 ###############################################################################
2393 # Perform substitutions and write Makefiles.
2395 ###############################################################################
2399 AC_SUBST(PREFERRED_DEMO_PROGRAM)
2400 AC_SUBST(ALL_DEMO_PROGRAMS)
2401 AC_SUBST(SAVER_LIBS)
2402 AC_SUBST(MOTIF_LIBS)
2408 AC_SUBST(PASSWD_LIBS)
2409 AC_SUBST(INSTALL_SETUID)
2410 AC_SUBST(INSTALL_DIRS)
2411 AC_SUBST(NEED_SETUID)
2412 AC_SUBST(INSTALL_PAM)
2413 AC_SUBST(SGI_VIDEO_OBJS)
2414 AC_SUBST(SGI_VIDEO_LIBS)
2416 AC_SUBST(PASSWD_SRCS)
2417 AC_SUBST(PASSWD_OBJS)
2420 AC_SUBST(SAVER_GL_SRCS)
2421 AC_SUBST(SAVER_GL_OBJS)
2422 AC_SUBST(SAVER_GL_LIBS)
2430 AC_SUBST(GLE_KLUDGE)
2433 APPDEFAULTS=$ac_x_app_defaults
2434 AC_SUBST(APPDEFAULTS)
2437 AC_SUBST(DEPEND_FLAGS)
2438 AC_SUBST(DEPEND_DEFINES)
2446 driver/XScreenSaver.ad)
2448 ###############################################################################
2450 # Print some warnings at the end.
2452 ###############################################################################
2454 warn_prefix_1=" Warning:"
2455 warn_prefix_2=" Note:"
2456 warn_prefix="$warn_prefix_1"
2459 warnsep=' #################################################################'
2462 if test "$warning" = no ; then
2463 echo '' ; echo "$warnsep" ; echo ''
2470 if test "$warning" = long ; then echo '' ; fi
2472 echo "$warn_prefix $@"
2479 if test "$was" != no ; then echo '' ; fi
2480 echo "$warn_prefix $@"
2489 warn_prefix="$warn_prefix_2"
2491 warn_prefix="$warn_prefix_1"
2495 warn_prefix="$warn_prefix_2"
2497 warn_prefix="$warn_prefix_1"
2501 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
2502 warn 'The SGI saver extension was requested, but was not found.'
2505 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
2506 warn 'The MIT saver extension was requested, but was not found.'
2509 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
2510 warn 'The XIdle extension was requested, but was not found.'
2513 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
2514 warn 'The XSHM extension was requested, but was not found.'
2517 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
2518 warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
2521 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
2522 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
2525 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
2526 warn 'The DPMS extension was requested, but was not found.'
2529 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
2530 warn 'The XF86VMODE extension was requested, but was not found.'
2533 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
2534 warn "Checking of /proc/interrupts was requested, but it's bogus."
2538 if test "$have_motif" = no -a "$have_gtk" = no; then
2539 warnL "Neither Motif nor Gtk seem to be available;"
2540 warn2 "the \`xscreensaver-demo' program requires one of these."
2542 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
2543 warnL "Use of Motif was requested, but it wasn't found;"
2544 warn2 "Gtk will be used instead."
2546 elif test "$jurassic_gtk" = yes ; then
2550 v="$ac_gtk_version_string"
2551 if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
2552 warnL "Use of Gtk was requested, but its version number is unknown;"
2553 elif test "$with_gtk_req" = yes ; then
2554 warnL "Use of Gtk was requested, but it is version $v;"
2556 warnL "Gtk was found on this system, but it is version $v;"
2559 warn2 "Gtk $pref_gtk or newer is required. Motif will be used instead."
2561 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
2562 warnL "Use of Gtk was requested, but it wasn't found;"
2563 warn2 "Motif will be used instead."
2568 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
2570 preferred_lesstif=0.86
2572 if test "$lesstif_version" = unknown; then
2573 warnL "Unable to determine the LessTif version number!"
2574 warn2 "Make sure you are using version $preferred_lesstif or newer."
2575 warn2 "See <http://www.lesstif.org/>."
2577 elif test \! $lesstif_version -gt 82; then
2578 warnL "LessTif version $lesstif_version_string is being used."
2579 warn2 "LessTif versions 0.82 and earlier are too buggy to"
2580 warn2 "use with XScreenSaver; it is strongly recommended"
2581 warn2 "that you upgrade to at least version $preferred_lesstif!"
2582 warn2 "See <http://www.lesstif.org/>."
2588 if test "$have_xpm" = no ; then
2589 if test "$with_xpm_req" = yes ; then
2590 warnL 'Use of XPM was requested, but it was not found.'
2591 elif test "$with_xpm_req" = no ; then
2592 noteL 'The XPM library is not being used.'
2594 noteL 'The XPM library was not found.'
2598 warn2 'Some of the demos will not be as colorful as they'
2599 warn2 'could be. You might want to consider installing XPM'
2600 warn2 'and re-running configure. (Remember to delete the'
2601 warn2 'config.cache file first.) You can find XPM at most'
2602 warn2 'X11 archive sites, such as <http://sunsite.unc.edu/>.'
2606 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
2607 preferred_mesagl=3.0
2609 if test "$ac_mesagl_version" = unknown; then
2610 warnL "Unable to determine the MesaGL version number!"
2611 warn2 "Make sure you are using version $preferred_mesagl or newer."
2613 elif test \! "$ac_mesagl_version" -gt 2006; then
2614 warnL "MesaGL version $ac_mesagl_version_string is being used."
2615 warn2 "MesaGL versions 2.6 and earlier have a security bug."
2616 warn2 "It is strongly recommended that you upgrade to at"
2617 warn2 "least version $preferred_mesagl."
2621 if test "$have_gl" = no ; then
2622 if test "$with_gl_req" = yes ; then
2623 warnL 'Use of GL was requested, but it was not found.'
2624 elif test "$with_gl_req" = no ; then
2625 noteL 'The OpenGL 3D library is not being used.'
2627 noteL 'The OpenGL 3D library was not found.'
2630 if test "$gl_halfassed" = yes ; then
2632 warn2 'More specifically, we found the headers, but not the'
2633 warn2 'libraries; so either GL is half-installed on this'
2634 warn2 "system, or something else went wrong. The \`config.log'"
2635 warn2 'file might contain some clues.'
2639 warn2 'Those demos which use 3D will not be built or installed.'
2640 warn2 'You might want to consider installing OpenGL and'
2641 warn2 're-running configure. (Remember to delete the'
2642 warn2 "config.cache file first.) If your vendor doesn't ship"
2643 warn2 'their own implementation of OpenGL, you can get a free'
2644 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
2645 warn2 'info, see <http://www.opengl.org/>.'
2650 if test "$have_gl" = yes -a "$have_gle" = no ; then
2651 if test "$with_gle_req" = yes ; then
2652 noteL 'Use of the GLE (GL Extrusion) library was requested, but'
2653 warn2 'it was not found (though the OpenGL library was found, and'
2654 warn2 'is being used.)'
2655 elif test "$with_gle_req" = no ; then
2656 noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
2657 warn2 'library is not.'
2659 noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
2663 if test "$gle_halfassed" = yes ; then
2665 warn2 'More specifically, we found the headers, but not the'
2666 warn2 'libraries; so either GLE is half-installed on this'
2667 warn2 "system, or something else went wrong. The \`config.log'"
2668 warn2 'file might contain some clues.'
2672 warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
2673 warn2 'will not be built or installed. You might want to consider'
2674 warn2 'installing GLE and re-running configure. (Remember to delete'
2675 warn2 'the config.cache file first.) You can find the GLE library'
2676 warn2 'at <http://www.linas.org/gle/>. For general OpenGL info,'
2677 warn2 'see <http://www.opengl.org/>.'
2682 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
2683 warn 'Use of XReadDisplay was requested, but it was not found.'
2686 if test "$with_sgivideo_req" = yes -a "$have_sgivideo" = no ; then
2687 warn 'Use of the Iris Video Library was requested, but it was not found.'
2690 if test -n "$with_zippy_req"; then
2691 if test "$with_zippy_req" != "$ac_cv_zippy_program" ; then
2692 warnL "$with_zippy_req was requested as the Zippy program,"
2693 warn2 "but was not found. The default will be used instead."
2697 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
2698 warn 'Use of Kerberos was requested, but it was not found.'
2701 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
2702 warn 'Use of PAM was requested, but it was not found.'
2705 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
2706 warn 'Use of shadow passwords was requested, but they were not found.'
2710 # You are in a twisty maze of namespaces and syntaxes, all alike.
2711 # Fuck the skull of Unix.
2713 eval bindir=${bindir}
2714 eval bindir=${bindir}
2715 eval bindir=${bindir}
2716 eval bindir=${bindir}
2717 eval bindir=${bindir}
2718 eval bindir=${bindir}
2719 eval HACKDIR=${HACKDIR}
2720 eval HACKDIR=${HACKDIR}
2721 eval HACKDIR=${HACKDIR}
2722 eval HACKDIR=${HACKDIR}
2723 eval HACKDIR=${HACKDIR}
2724 eval HACKDIR=${HACKDIR}
2726 # canonicalize slashes.
2727 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
2728 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
2731 # Sanity check the subdir
2732 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
2733 if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
2735 AC_MSG_ERROR([\"--enable-subdir=${bindir}/${bad_choice}\" won't work.
2736 There will be an executable installed with that name, so
2737 that can't be the name of a directory as well. Please
2738 re-configure with a different directory name.])
2745 # Now let's see if there's a previous RPM version already installed. Blargh!
2749 rpmv=`(rpm -qv xscreensaver) 2>&- | \
2750 sed 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-[0-9][0-9]*$/\1/'`
2753 if test \! -z "$rpmv" ; then
2754 rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
2755 rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
2758 warnL "There is already an installed RPM of xscreensaver $rpmv"
2759 warn2 "on this system. You might want to remove it (with"
2760 warn2 '"rpm -ve xscreensaver") before running "make install"'
2761 warn2 "from this directory."
2763 warn2 "Alternately, you could build this version of xscreensaver"
2764 warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
2765 warn2 "file is included. See the RPM documentation for more info."
2768 if test "$rpmbdir" = "$rpmhdir" ; then
2769 warn2 "The RPM version was installed in $rpmbdir."
2771 warn2 "The RPM version was installed in $rpmbdir,"
2772 warn2 "with demos in $rpmhdir."
2779 # Warn about egregious GNOME bogosity.
2781 if (rpm -qv control-center) >&- 2>&- ; then
2783 warnL "The Gnome Control Center seems to be installed."
2785 warn2 "Note that simply installing this version of xscreensaver"
2786 warn2 "will not cause GNOME to know about the newly-added display"
2787 warn2 "modes -- GNOME is just lame that way. Instead of using the"
2788 warn2 "Control Center, try using the \`xscreensaver-demo' command."
2792 if test "${bindir}" = "${HACKDIR}" ; then
2796 if test "$do_dir_warning" = yes; then
2800 echo ' When you run "make install", the "xscreensaver",'
2801 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
2802 echo " will be installed in ${bindir}."
2804 echo " The various graphics demos (100+ different executables) will"
2805 echo " also be installed in ${HACKDIR}."
2807 echo " If you would prefer the demos to be installed elsewhere"
2808 echo " (for example, in a dedicated directory) you should re-run"
2809 echo " configure with the --enable-subdir=DIR option. For more"
2810 echo " information, run $0 --help."
2814 if test "$warning" != no; then
2815 echo '' ; echo "$warnsep" ; echo ''