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"
71 *-irix5* |*-irix6.[0-3]* )
72 AC_MSG_RESULT(Turning on SGI compiler warnings.)
73 CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
76 # if test -z "$GCC"; then
77 # AC_MSG_RESULT(Turning on DEC C compiler warnings.)
78 # CC="$CC -migrate -w0 -verbose -warnprotos"
86 ###############################################################################
88 # Function to figure out how to create directory trees.
90 ###############################################################################
92 AC_DEFUN(AC_PROG_INSTALL_DIRS,
93 [AC_CACHE_CHECK([whether \"\${INSTALL} -d\" creates intermediate directories],
94 ac_cv_install_d_creates_dirs,
95 [ac_cv_install_d_creates_dirs=no
97 if mkdir conftestdir; then
99 ${INSTALL} -d `pwd`/dir1/dir2 >&- 2>&-
100 if test -d dir1/dir2/. ; then
101 ac_cv_install_d_creates_dirs=yes
108 if test "$ac_cv_install_d_creates_dirs" = no ; then
109 AC_CACHE_CHECK([whether \"mkdir -p\" creates intermediate directories],
110 ac_cv_mkdir_p_creates_dirs,
111 [ac_cv_mkdir_p_creates_dirs=no
113 if mkdir conftestdir; then
115 mkdir -p dir1/dir2 >&- 2>&-
116 if test -d dir1/dir2/. ; then
117 ac_cv_mkdir_p_creates_dirs=yes
125 if test "$ac_cv_install_d_creates_dirs" = yes ; then
126 INSTALL_DIRS='${INSTALL} -d'
127 elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then
128 INSTALL_DIRS='mkdir -p'
131 INSTALL_DIRS='${INSTALL} -d'
136 ###############################################################################
138 # Function to check whether gettimeofday() exists, and how to call it.
139 # This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS.
141 ###############################################################################
143 AC_DEFUN(AC_GETTIMEOFDAY_ARGS,
144 [AC_MSG_CHECKING(how to call gettimeofday)
145 AC_CACHE_VAL(ac_cv_gettimeofday_args,
146 [AC_TRY_COMPILE([#include <stdlib.h>
147 #include <sys/time.h>],
148 [struct timeval tv; struct timezone tzp;
149 gettimeofday(&tv, &tzp);],
150 [ac_gettimeofday_args=2],
151 [AC_TRY_COMPILE([#include <stdlib.h>
152 #include <sys/time.h>],
153 [struct timeval tv; gettimeofday(&tv);],
154 [ac_gettimeofday_args=1],
155 [ac_gettimeofday_args=0])])
156 ac_cv_gettimeofday_args=$ac_gettimeofday_args])
157 ac_gettimeofday_args=$ac_cv_gettimeofday_args
158 if test "$ac_gettimeofday_args" = 1 ; then
159 AC_DEFINE(HAVE_GETTIMEOFDAY)
160 AC_MSG_RESULT(one argument)
161 elif test "$ac_gettimeofday_args" = 2 ; then
162 AC_DEFINE(HAVE_GETTIMEOFDAY)
163 AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
164 AC_MSG_RESULT(two arguments)
166 AC_MSG_RESULT(unknown)
171 ###############################################################################
173 # Function to find perl5 (defines PERL and PERL_VERSION.)
175 ###############################################################################
177 # M4 sucks!! perl sucks too!!
179 perl_version_cmd='print $]'
182 AC_DEFUN(AC_PROG_PERL,
183 [AC_PATH_PROGS(PERL, [perl5 perl],,)
184 if test -z "$PERL" ; then
187 AC_CACHE_CHECK([perl version], ac_cv_perl_version,
188 [ac_cv_perl_version=`$PERL -e "$perl_version_cmd"`])
189 PERL_VERSION=$ac_cv_perl_version
194 ###############################################################################
196 # Functions to check how to do ICMP PING requests.
198 ###############################################################################
200 AC_DEFUN(AC_CHECK_ICMP,
201 [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp,
202 [AC_TRY_COMPILE([#include <stdlib.h>
209 #include <sys/types.h>
210 #include <sys/time.h>
213 #include <sys/socket.h>
214 #include <netinet/in_systm.h>
215 #include <netinet/in.h>
216 #include <netinet/ip.h>
217 #include <netinet/ip_icmp.h>
218 #include <netinet/udp.h>
219 #include <arpa/inet.h>
223 struct sockaddr_in si;
225 i.icmp_type = ICMP_ECHO;
230 si.sin_family = AF_INET;
232 [ac_cv_have_icmp=yes],
233 [ac_cv_have_icmp=no])])
234 if test "$ac_cv_have_icmp" = yes ; then
238 AC_DEFUN(AC_CHECK_ICMPHDR,
239 [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr,
240 [AC_TRY_COMPILE([#include <stdlib.h>
247 #include <sys/types.h>
248 #include <sys/time.h>
251 #include <sys/socket.h>
252 #include <netinet/in_systm.h>
253 #include <netinet/in.h>
254 #include <netinet/ip.h>
255 #include <netinet/ip_icmp.h>
256 #include <netinet/udp.h>
257 #include <arpa/inet.h>
261 struct sockaddr_in si;
267 i.un.echo.sequence = 0;
268 si.sin_family = AF_INET;
270 [ac_cv_have_icmphdr=yes],
271 [ac_cv_have_icmphdr=no])])
272 if test "$ac_cv_have_icmphdr" = yes ; then
273 AC_DEFINE(HAVE_ICMPHDR)
277 ###############################################################################
279 # Functions to check for various X11 crap.
281 ###############################################################################
283 # Try and find the app-defaults directory.
284 # It sucks that autoconf doesn't do this already...
286 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
288 if mkdir conftestdir; then
290 # Make sure to not put "make" in the Imakefile rules, since we grep it out.
291 cat > Imakefile <<'EOF'
293 @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
295 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
296 # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
297 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
303 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
304 # Look for the directory under a standard set of common directories.
305 # Check X11 before X11Rn because it's often a symlink to the current release.
307 /usr/X11/lib/app-defaults \
308 /usr/X11R6/lib/app-defaults \
309 /usr/X11R6/lib/X11/app-defaults \
310 /usr/X11R5/lib/app-defaults \
311 /usr/X11R5/lib/X11/app-defaults \
312 /usr/X11R4/lib/app-defaults \
313 /usr/X11R4/lib/X11/app-defaults \
315 /usr/lib/X11/app-defaults \
316 /usr/lib/X11R6/app-defaults \
317 /usr/lib/X11R5/app-defaults \
318 /usr/lib/X11R4/app-defaults \
320 /usr/local/X11/lib/app-defaults \
321 /usr/local/X11R6/lib/app-defaults \
322 /usr/local/X11R5/lib/app-defaults \
323 /usr/local/X11R4/lib/app-defaults \
325 /usr/local/lib/X11/app-defaults \
326 /usr/local/lib/X11R6/app-defaults \
327 /usr/local/lib/X11R6/X11/app-defaults \
328 /usr/local/lib/X11R5/app-defaults \
329 /usr/local/lib/X11R5/X11/app-defaults \
330 /usr/local/lib/X11R4/app-defaults \
331 /usr/local/lib/X11R4/X11/app-defaults \
333 /usr/X386/lib/X11/app-defaults \
334 /usr/x386/lib/X11/app-defaults \
335 /usr/XFree86/lib/X11/app-defaults \
337 /usr/lib/X11/app-defaults \
338 /usr/local/lib/X11/app-defaults \
339 /usr/unsupported/lib/X11/app-defaults \
340 /usr/athena/lib/X11/app-defaults \
341 /usr/local/x11r5/lib/X11/app-defaults \
342 /usr/lpp/Xamples/lib/X11/app-defaults \
343 /lib/usr/lib/X11/app-defaults \
345 /usr/openwin/lib/app-defaults \
346 /usr/openwin/lib/X11/app-defaults \
347 /usr/openwin/share/lib/app-defaults \
348 /usr/openwin/share/lib/X11/app-defaults \
350 /X11R6/lib/app-defaults \
351 /X11R5/lib/app-defaults \
352 /X11R4/lib/app-defaults \
355 if test -d "$ac_dir"; then
356 ac_x_app_defaults=$ac_dir
362 AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
364 AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
365 [AC_PATH_X_APP_DEFAULTS_XMKMF
366 if test x"$ac_x_app_defaults" = x; then
367 AC_PATH_X_APP_DEFAULTS_DIRECT
369 if test x"$ac_x_app_defaults" = x; then
370 ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
372 # Record where we found app-defaults for the cache.
373 ac_cv_x_app_defaults="$ac_x_app_defaults"
375 eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
378 AC_DEFUN(AC_XPOINTER,
379 [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
380 [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
381 [XPointer foo = (XPointer) 0;],
382 [ac_cv_xpointer=yes],
383 [ac_cv_xpointer=no])])
384 if test "$ac_cv_xpointer" != yes; then
385 AC_DEFINE(XPointer,[char*])
389 # Random special-cases for X on certain pathological OSes.
390 # You know who you are.
392 AC_DEFUN(AC_X_RANDOM_PATHS,
396 # The following arcana was gleaned from conversations with
397 # Eric Schwartz <erics@col.hp.com>:
399 # On HPUX 10.x, the parts of X that HP considers "standard" live in
400 # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider
401 # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
402 # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems.
403 # Also, there are symlinks from /usr/include/ and /usr/lib/ into
404 # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
405 # you don't need any -I or -L arguments.
407 # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
408 # are the same division as 10.x. However, there are no symlinks to
409 # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
410 # arguments are always necessary.
412 # However, X11R6 was available on HPUX 9.x as a patch: if that
413 # patch was installed, then all of X11R6 went in to
414 # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
416 # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
417 # whether R5 was available as a patch; R6 undoubtedly was not.)
419 # So. We try and use the highest numbered pair of
420 # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
421 # that are available. We do not mix and match different versions
424 # Question I still don't know the answer to: (do you?)
426 # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
427 # /usr/contrib/X11R6/ could be installed as a patch, what was in
428 # that contrib directory? Did it contain so-called "standard"
429 # X11R6, or did it include Xaw and Xmu as well? If the former,
430 # where did one find Xaw and Xmu on 9.x R6 systems? Would this
431 # be a situation where one had to reach into the R5 headers and
432 # libs to find Xmu? That is, must both R6 and R5 directories
433 # be on the -I and -L lists in that case?
435 for version in X11R6 X11R5 X11R4 ; do
436 # if either pair of directories exists...
437 if test -d /usr/lib/$version || test -d /usr/contrib/$version/lib
439 # if contrib exists, use it...
440 if test -d /usr/contrib/$version/lib ; then
441 X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
442 X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
444 # if the "standard" one exists, use it.
445 if test -d /usr/lib/$version ; then
446 X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
447 X_LIBS="$X_LIBS -L/usr/lib/$version"
449 # since at least one of the pair exists, go no farther.
454 # Now find Motif. Thanks for not making xmkmf find this by
455 # default, you losers.
457 if test -d /usr/lib/Motif1.2 ; then
458 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
459 X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
460 elif test -d /usr/lib/Motif1.1 ; then
461 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
462 X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
465 # Now let's check for the pseudo-standard locations for OpenGL and XPM.
467 if test -d /opt/Mesa/lib ; then
468 X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
469 X_LIBS="-L/opt/Mesa/lib $X_LIBS"
472 if test -d /opt/xpm/lib/X11 ; then
473 X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
474 X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
477 # On HPUX, default to installing in /opt/xscreensaver/ instead of
478 # in /usr/local/, unless there is already an xscreensaver in
479 # /usr/local/bin/. This can be overridden with the --prefix arg
480 # to configure. I'm not sure this is the right thing to do, but
481 # Richard Lloyd says so...
483 if test \! -x /usr/local/bin/xscreensaver ; then
484 ac_default_prefix=/opt/xscreensaver
490 # Thanks for not making xmkmf find this by default, pinheads.
491 # And thanks for moving things around again, too. Is this
492 # really the standard location now? What happened to the
493 # joke that this kind of thing went in /opt?
494 # cthomp says "answer: CDE (Common Disorganized Environment)"
496 if test -f /usr/dt/include/Xm/Xm.h ; then
497 X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
498 X_LIBS="$X_LIBS -L/usr/dt/lib -R:/usr/dt/lib"
500 # Some versions of Slowlaris Motif require -lgen. But not all. Why?
501 AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"])
508 ###############################################################################
510 # Some utility functions to make checking for X things easier.
512 ###############################################################################
514 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
516 AC_DEFUN(AC_CHECK_X_HEADER, [
517 ac_save_CPPFLAGS="$CPPFLAGS"
518 if test \! -z "$includedir" ; then
519 CPPFLAGS="$CPPFLAGS -I$includedir"
521 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
522 AC_CHECK_HEADER([$1], [$2])
523 CPPFLAGS="$ac_save_CPPFLAGS"])
525 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
527 AC_DEFUN(AC_EGREP_X_HEADER, [
528 ac_save_CPPFLAGS="$CPPFLAGS"
529 if test \! -z "$includedir" ; then
530 CPPFLAGS="$CPPFLAGS -I$includedir"
532 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
533 AC_EGREP_HEADER([$1], [$2], [$3], [$4])
534 CPPFLAGS="$ac_save_CPPFLAGS"])
536 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
538 AC_DEFUN(AC_TRY_X_COMPILE, [
539 ac_save_CPPFLAGS="$CPPFLAGS"
540 if test \! -z "$includedir" ; then
541 CPPFLAGS="$CPPFLAGS -I$includedir"
543 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
544 AC_TRY_COMPILE([$1], [$2], [$3], [$4])
545 CPPFLAGS="$ac_save_CPPFLAGS"])
548 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
549 # Use this sparingly; it probably doesn't work very well on X programs.
551 AC_DEFUN(AC_CHECK_X_LIB, [
552 ac_save_CPPFLAGS="$CPPFLAGS"
553 ac_save_LDFLAGS="$LDFLAGS"
554 # ac_save_LIBS="$LIBS"
556 if test \! -z "$includedir" ; then
557 CPPFLAGS="$CPPFLAGS -I$includedir"
559 # note: $X_CFLAGS includes $x_includes
560 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
562 if test \! -z "$libdir" ; then
563 LDFLAGS="$LDFLAGS -L$libdir"
565 # note: $X_LIBS includes $x_libraries
566 LDFLAGS="$LDFLAGS $X_LIBS"
568 AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
569 CPPFLAGS="$ac_save_CPPFLAGS"
570 LDFLAGS="$ac_save_LDFLAGS"
571 # LIBS="$ac_save_LIBS"
574 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
575 # (But not the -L directories!)
577 AC_DEFUN(AC_TRY_X_RUN, [
578 ac_save_CPPFLAGS="$CPPFLAGS"
579 if test \! -z "$includedir" ; then
580 CPPFLAGS="$CPPFLAGS -I$includedir"
582 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
583 AC_TRY_RUN([$1], [$2], [$3], [$4])
584 CPPFLAGS="$ac_save_CPPFLAGS"])
588 # Usage: HANDLE_X_PATH_ARG([variable_name],
589 # [--command-line-option],
590 # [descriptive string])
592 # All of the --with options take three forms:
594 # --with-foo (or --with-foo=yes)
595 # --without-foo (or --with-foo=no)
598 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees
599 # a directory (string beginning with a slash) it checks to see whether
600 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
603 AC_DEFUN(HANDLE_X_PATH_ARG, [
609 AC_MSG_CHECKING([for [$3] headers])
612 X_CFLAGS="-I$d $X_CFLAGS"
615 AC_MSG_RESULT(not found ($d: no such directory))
618 AC_MSG_CHECKING([for [$3] libs])
621 X_LIBS="-L$d $X_LIBS"
624 AC_MSG_RESULT(not found ($d: no such directory))
627 # replace the directory string with "yes".
634 echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
635 echo " If it is a directory, then \`DIR/include' will be added to"
636 echo " the -I list, and \`DIR/lib' will be added to the -L list."
644 ###############################################################################
645 ###############################################################################
647 # End of function definitions. Now start actually executing stuff.
649 ###############################################################################
650 ###############################################################################
652 # random compiler setup
659 # stuff for Makefiles
666 AC_CHECK_HEADERS(unistd.h)
675 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv)
677 AC_CHECK_FUNCS(sigaction syslog realpath)
680 AC_CHECK_HEADERS(crypt.h sys/select.h)
683 if test -z "$PERL" ; then
684 # don't let it be blank...
685 PERL=/usr/local/bin/perl5
690 if test "$have_x" != yes; then
691 AC_MSG_ERROR(Couldn't find X11 headers/libs. Try \`$0 --help'.)
694 AC_PATH_X_APP_DEFAULTS
700 ###############################################################################
702 # Check for -lXmu (some fucked up vendors don't ship it...)
704 ###############################################################################
707 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes])
708 if test "$have_xmu" = no ; then
709 XMU_SRCS='$(UTILS_SRC)/xmu.c'
710 XMU_OBJS='$(UTILS_BIN)/xmu.o'
714 SAVER_LIBS="-lXmu $SAVER_LIBS"
715 HACK_LIBS="-lXmu $HACK_LIBS"
716 MOTIF_LIBS="-lXmu $MOTIF_LIBS"
717 GTK_LIBS="-lXmu $GTK_LIBS"
718 ATHENA_LIBS="-lXmu $ATHENA_LIBS"
719 ATHENA3D_LIBS="-lXmu $ATHENA3D_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 ###############################################################################
1503 ###############################################################################
1506 with_gtk_req=unspecified
1508 [ --with-gtk Use the Gtk toolkit for the user interface.],
1509 [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
1511 # if --with-gtk=/directory/ was specified, remember that directory so that
1512 # we can also look for the `gtk-config' program in that directory.
1522 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
1524 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
1525 echo "error: must be yes or no: --with-gtk=$with_gtk"
1530 if test "$with_gtk" = yes; then
1533 # if the user specified --with-gtk=/foo/ then look in /foo/bin/
1534 # for glib-config and gtk-config.
1538 if test ! -z "$gtk_dir"; then
1539 # canonicalize slashes.
1540 gtk_dir=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
1541 gtk_path="$gtk_dir:$gtk_dir:$gtk_path"
1544 AC_PATH_PROGS(glib_config, glib-config,, $gtk_path)
1545 AC_PATH_PROGS(gtk_config, gtk-config,, $gtk_path)
1547 if test -n "$glib_config" -a -n "gtk_config" ; then
1550 if test "$have_gtk" = yes; then
1551 AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
1552 [ac_cv_gtk_version_string=`$glib_config --version`])
1553 ac_gtk_version_string=$ac_cv_gtk_version_string
1556 maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
1557 min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
1559 ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
1560 if test -z "$ac_gtk_version"; then
1561 ac_gtk_version=unknown
1562 ac_gtk_version_string=unknown
1564 if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
1570 if test "$have_gtk" = yes; then
1571 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
1572 [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
1573 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
1574 [ac_cv_gtk_config_libs=`$gtk_config --libs`])
1575 INCLUDES="$INCLUDES $ac_cv_gtk_config_cflags"
1576 GTK_LIBS="$GTK_LIBS $ac_cv_gtk_config_libs"
1582 ###############################################################################
1584 # Check for -lXaw and -lXaw3d.
1586 ###############################################################################
1590 with_athena_req=unspecified
1592 [ --with-athena Use the Athena toolkit for the user interface.],
1593 [with_athena="$withval"; with_athena_req="$withval"],[with_athena=yes])
1595 HANDLE_X_PATH_ARG(with_athena, --with-athena, Athena)
1598 if test "$with_athena" != yes -a "$with_athena" != no ; then
1599 echo "error: must be yes or no: --with-athena=$with_athena"
1604 if test "$with_athena" = yes; then
1606 AC_CHECK_X_HEADER(X11/Xaw/Dialog.h, [have_athena=yes])
1607 if test "$have_athena" = yes; then
1608 AC_CHECK_X_LIB(Xaw3d, Xaw3dComputeTopShadowRGB,
1609 [have_athena=yes; have_athena3d=yes], [true],
1610 -lXt -lXmu -lXext -lX11)
1614 if test "$have_athena" = yes; then
1615 AC_DEFINE(HAVE_ATHENA)
1616 ATHENA_LIBS="-lXaw $ATHENA_LIBS"
1619 if test "$have_athena3d" = yes; then
1620 ATHENA3D_LIBS="-lXaw3d $ATHENA3D_LIBS"
1624 # If we have Athena, check whether it's a version that includes
1625 # XawViewportSetCoordinates in Viewport.h (R3 (or R4?) don't.)
1626 if test "$have_athena" = yes ; then
1627 AC_CACHE_CHECK([for XawViewportSetCoordinates in Viewport.h],
1628 ac_cv_have_XawViewportSetCoordinates,
1629 [ac_cv_have_XawViewportSetCoordinates=no
1630 AC_EGREP_X_HEADER(XawViewportSetCoordinates,
1632 ac_cv_have_XawViewportSetCoordinates=yes)])
1633 if test "$ac_cv_have_XawViewportSetCoordinates" = yes ; then
1634 AC_DEFINE(HAVE_XawViewportSetCoordinates)
1639 ###############################################################################
1641 # Checking whether Motif is really Lesstif.
1643 ###############################################################################
1646 if test "$have_motif" = yes ; then
1647 AC_CACHE_CHECK([whether Motif is really LessTif],
1649 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
1650 [long vers = LesstifVersion;],
1651 [ac_cv_have_lesstif=yes],
1652 [ac_cv_have_lesstif=no])])
1653 have_lesstif=$ac_cv_have_lesstif
1657 lesstif_version=unknown
1658 lesstif_version_string=unknown
1660 if test "$have_lesstif" = yes ; then
1662 echo unknown > conftest-lt
1663 AC_CACHE_CHECK([LessTif version number],
1664 ac_cv_lesstif_version_string,
1665 [AC_TRY_X_RUN([#include <stdio.h>
1668 FILE *f = fopen("conftest-lt", "w");
1670 fprintf(f, "%d %d.%d\n", LesstifVersion,
1671 LESSTIF_VERSION, LESSTIF_REVISION);
1675 [ltv=`cat conftest-lt`
1676 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
1677 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
1678 [ac_cv_lesstif_version=unknown
1679 ac_cv_lesstif_version_string=unknown],
1680 [ac_cv_lesstif_version=unknown
1681 ac_cv_lesstif_version_string=unknown])])
1683 lesstif_version=$ac_cv_lesstif_version
1684 lesstif_version_string=$ac_cv_lesstif_version_string
1689 if test "$have_motif" = yes ; then
1691 echo unknown > conftest-mt
1692 AC_CACHE_CHECK([Motif version number],
1693 ac_cv_motif_version_string,
1694 [AC_TRY_X_RUN([#include <stdio.h>
1697 FILE *f = fopen("conftest-mt", "w");
1699 fprintf(f, "%d %d.%d\n", XmVersion,
1700 XmVERSION, XmREVISION);
1704 [mtv=`cat conftest-mt`
1705 ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
1706 ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
1707 [ac_cv_motif_version=unknown
1708 ac_cv_motif_version_string=unknown],
1709 [ac_cv_motif_version=unknown
1710 ac_cv_motif_version_string=unknown])])
1712 motif_version=$ac_cv_motif_version
1713 motif_version_string=$ac_cv_motif_version_string
1718 ###############################################################################
1720 # Checking whether Motif requires -lXpm.
1722 # If this is Motif 2.x, and we have XPM, then link against XPM as well.
1723 # The deal is, Motif 2.x requires XPM -- but it's a compilation option
1724 # of the library whether to build the XPM code into libXm, or whether
1725 # to rely on an external libXm. So the only way to tell whether XPM is
1726 # a link-time requirement is to examine libXm.a, which is very
1727 # difficult to do in an autoconf script. So... if it's Motif 2.x, we
1728 # always link against XPM if the XPM lib exists (and this will be a
1729 # no-op if libXm happens to already have the XPM code in it.)
1731 ###############################################################################
1733 motif_requires_xpm=no
1734 if test "$have_motif" = yes ; then
1735 AC_MSG_CHECKING(whether Motif requires XPM)
1736 if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
1738 motif_requires_xpm=yes
1739 AC_MSG_RESULT(maybe)
1746 ###############################################################################
1748 # Checking whether Motif requires -lXp.
1750 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
1751 # Extension". Why this extension isn't in -lXext with all the others,
1754 ###############################################################################
1757 if test "$have_motif" = yes ; then
1759 AC_CHECK_X_LIB(Xp, XpQueryExtension,
1760 [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
1761 [true], -lX11 -lXext -lm)
1765 ###############################################################################
1767 # Checking whether Motif requires -lXintl (for _Xsetlocale.)
1769 ###############################################################################
1772 if test "$have_motif" = yes ; then
1773 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
1775 if test "$have_xintl" = yes; then
1776 MOTIF_LIBS="$MOTIF_LIBS -lXintl"
1781 ###############################################################################
1783 # Check for -lGL or -lMesaGL.
1785 ###############################################################################
1789 with_gl_req=unspecified
1793 --with-gl Build those demos which depend on OpenGL.],
1794 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
1796 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
1798 ac_mesagl_version=unknown
1799 ac_mesagl_version_string=unknown
1801 if test "$with_gl" = yes; then
1802 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
1803 if test "$have_gl" = yes ; then
1804 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no)
1807 # If we have the headers, try and figure out which vendor it's from.
1809 if test "$have_gl" = yes ; then
1811 # We need to know whether it's MesaGL so that we know which libraries
1814 AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
1815 [ac_cv_have_mesa_gl=no
1816 AC_EGREP_X_HEADER(Mesa, GL/glx.h, [ac_cv_have_mesa_gl=yes])
1818 ac_have_mesa_gl=$ac_cv_have_mesa_gl
1821 # If we have Mesa headers, check to see if we can link against -lMesaGL.
1822 # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
1823 # Else, warn that GL is busted. (We have the headers, but no libs.)
1828 if test "$ac_have_mesa_gl" = yes ; then
1829 AC_CHECK_X_LIB(MesaGL, glXCreateContext,
1831 GL_LIBS="-lMesaGL -lMesaGLU"],
1832 [], -lMesaGLU -lX11 -lXext -lm)
1835 if test "$gl_lib_1" = "" ; then
1836 AC_CHECK_X_LIB(GL, glXCreateContext,
1838 GL_LIBS="-lGL -lGLU"],
1839 [], -lGLU -lX11 -lXext -lm)
1842 if test "$gl_lib_1" = "" ; then
1843 # we have headers, but no libs -- bail.
1847 # linking works -- we can build the GL hacks.
1849 if test "$ac_have_mesa_gl" = yes ; then
1850 AC_DEFINE(HAVE_MESA_GL)
1856 # Now that we know we have GL headers and libs, do some more GL testing.
1859 if test "$have_gl" = yes ; then
1860 # If it's MesaGL, we'd like to issue a warning if the version number
1861 # is less than or equal to 2.6, because that version had a security bug.
1863 if test "$ac_have_mesa_gl" = yes; then
1865 AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
1866 [cat > conftest.$ac_ext <<EOF
1867 #line __oline__ "configure"
1868 #include "confdefs.h"
1870 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
1873 ac_save_CPPFLAGS="$CPPFLAGS"
1874 if test \! -z "$includedir" ; then
1875 CPPFLAGS="$CPPFLAGS -I$includedir"
1877 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1881 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \
1882 's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
1885 rm -f conftest.$ac_ext
1887 CPPFLAGS="$ac_save_CPPFLAGS"
1889 if test "$mglv" = ""; then
1890 ac_mesagl_version=unknown
1891 ac_mesagl_version_string=unknown
1893 ac_mesagl_version_string=$mglv
1894 maj=`echo $mglv | sed -n 's/\..*//p'`
1895 min=`echo $mglv | sed -n 's/.*\.//p'`
1896 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
1897 if test -z "$ac_mesagl_version"; then
1898 ac_mesagl_version=unknown
1899 ac_mesagl_version_string=unknown
1902 ac_cv_mesagl_version=$ac_mesagl_version
1903 ac_cv_mesagl_version_string=$ac_mesagl_version_string
1905 ac_mesagl_version=$ac_cv_mesagl_version
1906 ac_mesagl_version_string=$ac_cv_mesagl_version_string
1910 # If it's MesaGL, check to see if it requires -lpthread.
1913 mesa_requires_pthread=no
1914 if test "$ac_have_mesa_gl" = yes; then
1916 AC_CHECK_LIB(pthread, pthread_create, [have_pthread=yes], [],)
1917 if test "$have_pthread" = yes; then
1918 AC_CHECK_X_LIB($gl_lib_1, gl_get_thread_context,
1919 [mesa_requires_pthread=yes], [true],
1920 $GL_LIBS -lpthread -lX11 -lXext -lm)
1923 if test "$mesa_requires_pthread" = yes; then
1924 GL_LIBS="$GL_LIBS -lpthread"
1928 # Check for OpenGL 1.1 features.
1930 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
1931 [true], $GL_LIBS -lX11 -lXext -lm)
1934 # Check whether the `xscreensaver' executable should link against GL.
1935 # See comments in utils/visual-gl.c for why this is sometimes necessary.
1937 AC_MSG_CHECKING(whether drastic GL measures must be taken)
1940 AC_MSG_RESULT([yes -- hello, SGI.])
1941 AC_DEFINE(DAEMON_USE_GL)
1942 SAVER_GL_SRCS='$(UTILS_SRC)/visual-gl.c'
1943 SAVER_GL_OBJS='$(UTILS_BIN)/visual-gl.o'
1944 SAVER_GL_LIBS="$GL_LIBS"
1947 AC_MSG_RESULT([no -- non-SGI.])
1956 elif test "$with_gl" != no; then
1957 echo "error: must be yes or no: --with-gl=$with_gl"
1962 ###############################################################################
1966 ###############################################################################
1969 with_gle_req=unspecified
1971 [ --with-gle Build those demos which depend on GLE
1972 (the OpenGL "extrusion" library.)],
1973 [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
1975 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
1979 if test "$with_gle" = yes; then
1981 AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no)
1982 if test "$have_gle" = yes ; then
1983 AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no)
1986 # /usr/local/lib/GL/libgle.a
1987 # /usr/local/lib/GL/libmatrix.a
1989 if test "$have_gle" = yes ; then
1991 AC_CHECK_X_LIB(gle, gleCreateGC,
1992 [have_gle=yes; GLE_LIBS="-lgle"],
1993 [], $GL_LIBS -lX11 -lXext -lm)
1995 if test "$have_gle" = yes ; then
1997 AC_CHECK_X_LIB(matrix, uview_direction_d,
1998 [have_gle=yes; GLE_LIBS="$GLE_LIBS -lmatrix"],
1999 [], $GL_LIBS -lX11 -lXext -lm)
2002 if test "$have_gle" = yes ; then
2006 elif test "$with_gle" != no; then
2007 echo "error: must be yes or no: --with-gle=$with_gle"
2014 ###############################################################################
2018 ###############################################################################
2021 with_xpm_req=unspecified
2023 [ --with-xpm Include support for XPM files in some demos.],
2024 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2026 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2028 if test "$with_xpm" = yes; then
2029 AC_CHECK_X_HEADER(X11/xpm.h,
2033 elif test "$with_xpm" != no; then
2034 echo "error: must be yes or no: --with-xpm=$with_xpm"
2038 # See comment near $motif_requires_xpm, above.
2039 # Need to do this here, after both Motif and XPM have been checked for.
2041 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2042 if test "$motif_requires_xpm" = yes ; then
2043 MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
2048 ###############################################################################
2050 # Check for the XSHM server extension.
2052 ###############################################################################
2055 with_xshm_req=unspecified
2056 AC_ARG_WITH(xshm-ext,
2057 [ --with-xshm-ext Include support for the XSHM extension.],
2058 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
2060 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
2062 if test "$with_xshm" = yes; then
2064 # first check for Xshm.h.
2065 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes])
2067 # if that succeeded, then check for sys/ipc.h.
2068 if test "$have_xshm" = yes; then
2070 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
2073 # if that succeeded, then check for sys/shm.h.
2074 if test "$have_xshm" = yes; then
2076 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
2079 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
2080 # to exist, but the library code to not exist. And even better, the library
2081 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
2082 # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and
2083 # that's not quite right, but close enough.)
2088 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
2089 [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
2090 [true], -lX11 -lXext -lm)
2094 # if that succeeded, then we've really got it.
2095 if test "$have_xshm" = yes; then
2096 AC_DEFINE(HAVE_XSHM_EXTENSION)
2099 elif test "$with_xshm" != no; then
2100 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
2105 ###############################################################################
2107 # Check for the DOUBLE-BUFFER server extension.
2109 ###############################################################################
2112 with_xdbe_req=unspecified
2113 AC_ARG_WITH(xdbe-ext,
2114 [ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.],
2115 [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
2117 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
2119 if test "$with_xdbe" = yes; then
2121 AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes])
2122 if test "$have_xdbe" = yes; then
2123 AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
2126 elif test "$with_xdbe" != no; then
2127 echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
2132 ###############################################################################
2134 # Check for the SGI XReadDisplay server extension.
2136 # Note: this has to be down here, rather than up with the other server
2137 # extension tests, so that the output of `configure --help' is in the
2138 # right order. Arrgh!
2140 ###############################################################################
2143 with_readdisplay_req=unspecified
2144 AC_ARG_WITH(readdisplay,
2145 [ --with-readdisplay Include support for the XReadDisplay extension.],
2146 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
2147 [with_readdisplay=yes])
2149 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
2151 if test "$with_readdisplay" = yes; then
2152 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
2153 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION))
2154 elif test "$with_readdisplay" != no; then
2155 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
2160 ###############################################################################
2162 # Check for the SGI Iris Video Library.
2164 ###############################################################################
2167 with_sgivideo_req=unspecified
2168 AC_ARG_WITH(sgivideo,
2169 [ --with-sgivideo Include support for SGI's Iris Video Library.],
2170 [with_sgivideo="$withval"; with_sgivideo_req="$withval"],
2171 [with_sgivideo=yes])
2173 HANDLE_X_PATH_ARG(with_sgivideo, --with-sgivideo, Iris Video)
2175 if test "$with_sgivideo" = yes; then
2176 AC_CHECK_X_HEADER(dmedia/vl.h, have_sgivideo=yes)
2177 if test "$have_sgivideo" = yes; then
2179 AC_CHECK_LIB(vl, vlOpenVideo, [have_sgivideo=yes])
2180 if test "$have_sgivideo" = yes; then
2181 SGI_VIDEO_OBJS="$(UTILS_BIN)/sgivideo.o"
2182 SGI_VIDEO_LIBS="-lvl"
2183 AC_DEFINE(HAVE_SGI_VIDEO)
2186 elif test "$with_sgivideo" != no; then
2187 echo "error: must be yes or no: --with-sgivideo=$with_sgivideo"
2192 ###############################################################################
2194 # Check for a program to generate random text.
2196 # Zippy is funnier than the idiocy generally spat out by `fortune',
2197 # so try to find that, by invoking Emacs and asking it where its
2198 # libexec directory is ("yow" lives in there.)
2200 # If that doesn't work, see if fortune, zippy, or yow are on $PATH,
2201 # and if so, use them.
2203 # If that doesn't work, look in /usr/games, and if it's there, use
2204 # the full pathname.
2206 ###############################################################################
2210 --with-zippy=PROGRAM Some demos are able to run an external program and
2211 display its text; this names the program to use by
2212 default (though it can be overridden with X
2213 resources.) If you don't specify this, the default
2214 is to use \"yow\" from the Emacs distribution (if you
2215 have it) or else to use \"fortune\".
2217 [with_zippy_req="$withval"; with_zippy="$withval"],[with_zippy=yes])
2219 if test "$with_zippy" = no || test "$with_zippy" = yes ; then
2224 if test -n "$with_zippy_req" ; then
2225 ac_cv_zippy_program=""
2226 case "$with_zippy_req" in
2228 AC_MSG_CHECKING([for $with_zippy_req])
2229 if test -x "$with_zippy_req" ; then
2238 unset ac_cv_path_zip2
2239 AC_PATH_PROG(zip2, $with_zippy_req, [])
2240 if test "$zip2" = ""; then
2245 ac_cv_zippy_program="$with_zippy"
2247 elif test -n "$ac_cv_zippy_program"; then
2248 AC_MSG_RESULT([checking for zippy... (cached) $ac_cv_zippy_program])
2251 if test ! -n "$ac_cv_zippy_program"; then
2253 AC_CHECK_PROGS(emacs_exe, emacs)
2254 AC_CHECK_PROGS(xemacs_exe, xemacs)
2256 ac_cv_zippy_program=""
2257 eargs='-batch -q -nw --eval'
2259 if test -n "$emacs_exe" ; then
2260 AC_MSG_CHECKING([for emacs yow])
2262 # get emacs to tell us where the libexec directory is.
2264 dir=`$emacs_exe $eargs '(princ (concat exec-directory "\n"))' \
2265 2>/dev/null | tail -1`
2266 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
2268 # try running libexec/yow and see if it exits without error.
2270 if test x"$dir" != x -a -x "$dir/yow" ; then
2271 if $dir/yow >&- 2>&- ; then
2272 ac_cv_zippy_program="$dir/yow"
2273 AC_MSG_RESULT($ac_cv_zippy_program)
2280 if test -z "$ac_cv_zippy_program" ; then
2281 AC_MSG_CHECKING([for xemacs yow])
2282 if test -n "$xemacs_exe" ; then
2284 # get xemacs to tell us where the libexec directory is.
2286 dir=`$xemacs_exe $eargs '(princ (concat exec-directory "\n"))' \
2287 2>/dev/null | tail -1`
2288 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
2290 # try running libexec/yow and see if it exits without error.
2292 if test x"$dir" != x -a -x "$dir/yow" ; then
2293 if $dir/yow >&- 2>&- ; then
2294 ac_cv_zippy_program="$dir/yow"
2295 AC_MSG_RESULT($ac_cv_zippy_program)
2298 # in some xemacs installations, the pathname of the yow.lines file
2299 # isn't hardcoded into the yow executable, and must be passed on
2300 # the command line. See if it's in libexec/../etc/.
2304 dir_up=`echo "$dir" | sed 's@/[^/]*$@@'`
2307 yowlines="$dir_up/etc/yow.lines"
2308 if $dir/yow -f $yowlines >&- 2>&- ; then
2309 ac_cv_zippy_program="$dir/yow -f $yowlines"
2310 AC_MSG_RESULT($ac_cv_zippy_program)
2313 # In newer XEmacs releases, yow.lines is in a different place,
2314 # and the easiest way to get it is by calling the new function
2315 # `locate-data-file'.
2317 yowlines=`$xemacs_exe $eargs \
2318 '(princ (concat (locate-data-file "yow.lines") "\n"))' \
2319 2>/dev/null | tail -1`
2320 if $dir/yow -f $yowlines >&- 2>&- ; then
2321 ac_cv_zippy_program="$dir/yow -f $yowlines"
2322 AC_MSG_RESULT($ac_cv_zippy_program)
2332 # if that didn't work, try for some other programs...
2333 if test -z "$ac_cv_zippy_program" ; then
2335 AC_CHECK_PROGS(fortune, [fortune zippy yow])
2336 # if that didn't work, try for those programs in /usr/games...
2337 if test -z "$fortune" ; then
2338 AC_PATH_PROGS(fortune, [fortune zippy yow], fortune,
2339 /usr/games:/usr/local/games:$PATH)
2344 if test -z "$ac_cv_zippy_program" ; then
2345 ac_cv_zippy_program=fortune
2348 AC_DEFINE_UNQUOTED(ZIPPY_PROGRAM, "$ac_cv_zippy_program")
2351 ###############################################################################
2353 # Done testing. Now, set up the various -I and -L variables,
2354 # and decide which GUI program to build by default.
2356 ###############################################################################
2363 if test \! -z "$includedir" ; then
2364 INCLUDES="$INCLUDES -I$includedir"
2367 if test \! -z "$libdir" ; then
2368 LDFLAGS="$LDFLAGS -L$libdir"
2373 if test "$have_athena3d" = yes; then
2374 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xaw3d
2375 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2377 if test "$have_athena" = yes; then
2378 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xaw
2379 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2381 if test "$have_gtk" = yes; then
2382 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
2383 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2385 if test "$have_motif" = yes; then
2386 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2387 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2391 if test "$have_kerberos" = yes; then
2392 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
2393 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
2395 if test "$have_pam" = yes; then
2396 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
2397 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
2398 INSTALL_PAM="install-pam"
2400 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
2401 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
2404 if test "$enable_locking" = yes; then
2405 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
2406 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
2408 LOCK_SRCS='$(NOLOCK_SRCS_1)'
2409 LOCK_OBJS='$(NOLOCK_SRCS_1)'
2412 if test "$need_setuid" = yes; then
2414 INSTALL_SETUID='$(INSTALL) $(SUID_FLAGS)'
2417 INSTALL_SETUID='$(INSTALL_PROGRAM)'
2421 if test "$have_gl" = yes; then
2422 GL_EXES='$(GL_EXES)'
2426 GL_KLUDGE=" -${tab} "
2429 if test "$have_gle" = yes; then
2430 GLE_EXES='$(GLE_EXES)'
2431 GLE_MEN='$(GLE_MEN)'
2432 GLE_KLUDGE="${tab} "
2434 GLE_KLUDGE=" -${tab} "
2438 ###############################################################################
2440 # Perform substitutions and write Makefiles.
2442 ###############################################################################
2446 AC_SUBST(PREFERRED_DEMO_PROGRAM)
2447 AC_SUBST(ALL_DEMO_PROGRAMS)
2448 AC_SUBST(SAVER_LIBS)
2449 AC_SUBST(MOTIF_LIBS)
2451 AC_SUBST(ATHENA_LIBS)
2452 AC_SUBST(ATHENA3D_LIBS)
2457 AC_SUBST(PASSWD_LIBS)
2458 AC_SUBST(INSTALL_SETUID)
2459 AC_SUBST(INSTALL_DIRS)
2460 AC_SUBST(NEED_SETUID)
2461 AC_SUBST(INSTALL_PAM)
2462 AC_SUBST(SGI_VIDEO_OBJS)
2463 AC_SUBST(SGI_VIDEO_LIBS)
2465 AC_SUBST(PASSWD_SRCS)
2466 AC_SUBST(PASSWD_OBJS)
2469 AC_SUBST(SAVER_GL_SRCS)
2470 AC_SUBST(SAVER_GL_OBJS)
2471 AC_SUBST(SAVER_GL_LIBS)
2479 AC_SUBST(GLE_KLUDGE)
2482 APPDEFAULTS=$ac_x_app_defaults
2483 AC_SUBST(APPDEFAULTS)
2486 AC_SUBST(DEPEND_FLAGS)
2487 AC_SUBST(DEPEND_DEFINES)
2495 driver/XScreenSaver.ad)
2497 ###############################################################################
2499 # Print some warnings at the end.
2501 ###############################################################################
2503 warn_prefix_1=" Warning:"
2504 warn_prefix_2=" Note:"
2505 warn_prefix="$warn_prefix_1"
2508 warnsep=' #################################################################'
2511 if test "$warning" = no ; then
2512 echo '' ; echo "$warnsep" ; echo ''
2519 if test "$warning" = long ; then echo '' ; fi
2521 echo "$warn_prefix $@"
2528 if test "$was" != no ; then echo '' ; fi
2529 echo "$warn_prefix $@"
2538 warn_prefix="$warn_prefix_2"
2540 warn_prefix="$warn_prefix_1"
2544 warn_prefix="$warn_prefix_2"
2546 warn_prefix="$warn_prefix_1"
2550 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
2551 warn 'The SGI saver extension was requested, but was not found.'
2554 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
2555 warn 'The MIT saver extension was requested, but was not found.'
2558 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
2559 warn 'The XIdle extension was requested, but was not found.'
2562 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
2563 warn 'The XSHM extension was requested, but was not found.'
2566 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
2567 warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
2570 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
2571 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
2574 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
2575 warn 'The DPMS extension was requested, but was not found.'
2578 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
2579 warn 'The XF86VMODE extension was requested, but was not found.'
2582 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
2583 warn "Checking of /proc/interrupts was requested, but it's bogus."
2587 if test "$have_motif" = no -a "$have_gtk" = no -a "$have_athena" = no ; then
2588 warnL "None of Motif, Gtk, or Athena widgets seem to be available;"
2589 warn2 "the \`xscreensaver-demo' program requires one of these."
2591 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
2592 warnL "Use of Motif was requested, but it wasn't found;"
2593 if test "$have_gtk" = yes; then
2594 warn2 "Gtk will be used instead."
2596 warn2 "Athena will be used instead."
2599 elif test "$jurassic_gtk" = yes ; then
2603 v="$ac_gtk_version_string"
2604 if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
2605 warnL "Use of Gtk was requested, but its version number is unknown;"
2606 elif test "$with_gtk_req" = yes ; then
2607 warnL "Use of Gtk was requested, but it is version $v;"
2609 warnL "Gtk was found on this system, but it is version $v;"
2612 if test "$have_motif" = yes; then
2618 warn2 "Gtk $pref_gtk or newer is required. $which will be used instead."
2620 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
2621 warnL "Use of Gtk was requested, but it wasn't found;"
2622 if test "$have_motif" = yes; then
2623 warn2 "Motif will be used instead."
2625 warn2 "Athena will be used instead."
2628 elif test "$with_athena_req" = yes -a "$have_athena" = no ; then
2629 warnL "Use of Athena was requested, but it wasn't found;"
2630 if test "$have_gtk" = yes; then
2631 warn2 "Gtk will be used instead."
2633 warn2 "Motif will be used instead."
2638 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
2640 preferred_lesstif=0.86
2642 if test "$lesstif_version" = unknown; then
2643 warnL "Unable to determine the LessTif version number!"
2644 warn2 "Make sure you are using version $preferred_lesstif or newer."
2645 warn2 "See <http://www.lesstif.org/>."
2647 elif test \! $lesstif_version -gt 82; then
2648 warnL "LessTif version $lesstif_version_string is being used."
2649 warn2 "LessTif versions 0.82 and earlier are too buggy to"
2650 warn2 "use with XScreenSaver; it is strongly recommended"
2651 warn2 "that you upgrade to at least version $preferred_lesstif!"
2652 warn2 "See <http://www.lesstif.org/>."
2656 if test "$have_athena" = yes -a "$have_motif" = no -a "$have_gtk" = no; then
2657 warnL "Athena widgets are being used instead of Motif or Gtk."
2658 warn2 "The \`xscreensaver-demo' program looks much better"
2659 warn2 "with Motif or Gtk. Wouldn't you rather be using Motif?"
2660 warn2 "Motif is shipped by every commercial Unix vendor,"
2661 warn2 "and there is a free implementation available as"
2662 warn2 "well: see <http://www.lesstif.org/>. Gtk is shipped"
2663 warn2 "with most Linux and BSD distributions."
2667 if test "$have_xpm" = no ; then
2668 if test "$with_xpm_req" = yes ; then
2669 warnL 'Use of XPM was requested, but it was not found.'
2670 elif test "$with_xpm_req" = no ; then
2671 noteL 'The XPM library is not being used.'
2673 noteL 'The XPM library was not found.'
2677 warn2 'Some of the demos will not be as colorful as they'
2678 warn2 'could be. You might want to consider installing XPM'
2679 warn2 'and re-running configure. (Remember to delete the'
2680 warn2 'config.cache file first.) You can find XPM at most'
2681 warn2 'X11 archive sites, such as <http://sunsite.unc.edu/>.'
2685 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
2686 preferred_mesagl=3.0
2688 if test "$ac_mesagl_version" = unknown; then
2689 warnL "Unable to determine the MesaGL version number!"
2690 warn2 "Make sure you are using version $preferred_mesagl or newer."
2692 elif test \! "$ac_mesagl_version" -gt 2006; then
2693 warnL "MesaGL version $ac_mesagl_version_string is being used."
2694 warn2 "MesaGL versions 2.6 and earlier have a security bug."
2695 warn2 "It is strongly recommended that you upgrade to at"
2696 warn2 "least version $preferred_mesagl."
2701 if test "$have_gl" = no ; then
2702 if test "$with_gl_req" = yes ; then
2703 warnL 'Use of GL was requested, but it was not found.'
2704 elif test "$with_gl_req" = no ; then
2705 noteL 'The OpenGL 3D library is not being used.'
2707 noteL 'The OpenGL 3D library was not found.'
2711 warn2 'Those demos which use 3D will not be built or installed.'
2712 warn2 'You might want to consider installing OpenGL and'
2713 warn2 're-running configure. (Remember to delete the'
2714 warn2 "config.cache file first.) If your vendor doesn't ship"
2715 warn2 'their own implementation of OpenGL, you can get a free'
2716 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
2717 warn2 'info, see <http://www.opengl.org/>.'
2722 if test "$have_gl" = yes -a "$have_gle" = no ; then
2723 if test "$with_gle_req" = yes ; then
2724 warnL 'Use of GLE was requested, but it was not found.'
2725 elif test "$with_gle_req" = no ; then
2726 noteL 'The GLE (GL Extrusion) library is not being used.'
2728 noteL 'The GLE (GL Extrusion) library was not found.'
2732 warn2 'Some of the OpenGL (3D) demos will not be built or installed.'
2733 warn2 'You might want to consider installing GLE and re-running'
2734 warn2 'configure. (Remember to delete the config.cache file first.)'
2735 warn2 'You can find the GLE library at <http://www.linas.org/gle/>.'
2736 warn2 'For general OpenGL info, see <http://www.opengl.org/>.'
2741 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
2742 warn 'Use of XReadDisplay was requested, but it was not found.'
2745 if test "$with_sgivideo_req" = yes -a "$have_sgivideo" = no ; then
2746 warn 'Use of the Iris Video Library was requested, but it was not found.'
2749 if test -n "$with_zippy_req"; then
2750 if test "$with_zippy_req" != "$ac_cv_zippy_program" ; then
2751 warnL "$with_zippy_req was requested as the Zippy program,"
2752 warn2 "but was not found. The default will be used instead."
2756 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
2757 warn 'Use of Kerberos was requested, but it was not found.'
2760 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
2761 warn 'Use of PAM was requested, but it was not found.'
2764 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
2765 warn 'Use of shadow passwords was requested, but they were not found.'
2769 # You are in a twisty maze of namespaces and syntaxes, all alike.
2770 # Fuck the skull of Unix.
2772 eval bindir=${bindir}
2773 eval bindir=${bindir}
2774 eval bindir=${bindir}
2775 eval bindir=${bindir}
2776 eval bindir=${bindir}
2777 eval bindir=${bindir}
2778 eval HACKDIR=${HACKDIR}
2779 eval HACKDIR=${HACKDIR}
2780 eval HACKDIR=${HACKDIR}
2781 eval HACKDIR=${HACKDIR}
2782 eval HACKDIR=${HACKDIR}
2783 eval HACKDIR=${HACKDIR}
2785 # canonicalize slashes.
2786 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
2787 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
2790 # Sanity check the subdir
2791 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
2792 if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
2794 AC_MSG_ERROR([\"--enable-subdir=${bindir}/${bad_choice}\" won't work.
2795 There will be an executable installed with that name, so
2796 that can't be the name of a directory as well. Please
2797 re-configure with a different directory name.])
2804 # Now let's see if there's a previous RPM version already installed. Blargh!
2808 rpmv=`(rpm -qv xscreensaver) 2>&- | \
2809 sed 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-[0-9][0-9]*$/\1/'`
2812 if test \! -z "$rpmv" ; then
2813 rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
2814 rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
2817 warnL "There is already an installed RPM of xscreensaver $rpmv"
2818 warn2 "on this system. You might want to remove it (with"
2819 warn2 '"rpm -ve xscreensaver") before running "make install"'
2820 warn2 "from this directory."
2822 warn2 "Alternately, you could build this version of xscreensaver"
2823 warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
2824 warn2 "file is included. See the RPM documentation for more info."
2827 if test "$rpmbdir" = "$rpmhdir" ; then
2828 warn2 "The RPM version was installed in $rpmbdir."
2830 warn2 "The RPM version was installed in $rpmbdir,"
2831 warn2 "with demos in $rpmhdir."
2838 # Warn about egregious GNOME bogosity.
2840 if (rpm -qv control-center) >&- 2>&- ; then
2842 warnL "The Gnome Control Center seems to be installed."
2844 warn2 "Note that simply installing this version of xscreensaver"
2845 warn2 "will not cause GNOME to know about the newly-added display"
2846 warn2 "modes -- GNOME is just lame that way. Instead of using the"
2847 warn2 "Control Center, try using the \`xscreensaver-demo' command."
2851 if test "${bindir}" = "${HACKDIR}" ; then
2855 if test "$do_dir_warning" = yes; then
2859 echo ' When you run "make install", the "xscreensaver",'
2860 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
2861 echo " will be installed in ${bindir}."
2863 echo " The various graphics demos (100+ different executables) will"
2864 echo " also be installed in ${HACKDIR}."
2866 echo " If you would prefer the demos to be installed elsewhere"
2867 echo " (for example, in a dedicated directory) you should re-run"
2868 echo " configure with the --enable-subdir=DIR option. For more"
2869 echo " information, run $0 --help."
2873 if test "$warning" != no; then
2874 echo '' ; echo "$warnsep" ; echo ''