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"
720 ATHENA_LIBS="-lXmu $ATHENA_LIBS"
721 ATHENA3D_LIBS="-lXmu $ATHENA3D_LIBS"
726 ###############################################################################
728 # Check for the SunOS 4.1.x _get_wmShellWidgetClass bug.
729 # See comp.windows.x FAQ question 124. The right fix is to
730 # get OpenWindows 3.0 patches 100512-02 and 100573-03.
732 ###############################################################################
734 if test "$have_xmu" = yes ; then
737 AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
739 [ac_save_LDFLAGS="$LDFLAGS"
740 if test \! -z "$x_libraries" ; then
741 LDFLAGS="$LDFLAGS -L$x_libraries"
743 # Note: this trick never works! (Generally.)
744 # We're only getting away with using AC_TRY_LINK
745 # with X libraries because we know it's SunOS.
746 LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
748 [ac_cv_sunos_xmu_bug=no],
749 [ac_cv_sunos_xmu_bug=yes])
750 LDFLAGS="$ac_save_LDFLAGS"])
751 if test "$ac_cv_sunos_xmu_bug" = yes ; then
752 AC_CACHE_CHECK([whether the compiler understands -static],
754 [ac_save_LDFLAGS="$LDFLAGS"
755 LDFLAGS="$LDFLAGS -static"
756 AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
757 LDFLAGS="$ac_save_LDFLAGS"])
758 if test "$ac_cv_ld_static" = yes ; then
759 LDFLAGS="$LDFLAGS -static"
761 LDFLAGS="$LDFLAGS -Bstatic"
769 ###############################################################################
771 # Handle the --enable-subdir option
773 ###############################################################################
775 AC_ARG_ENABLE(subdir,[
776 Installation options:
778 --enable-subdir=DIR Put the demo programs in a subdirectory of \`bindir',
779 instead of putting them in bindir itself. You can
780 specify the name of the subdirectory. For example,
781 \`--exec-prefix=/usr/local --enable-subdir=demos'
782 would put xscreensaver in /usr/local/bin/, and would
783 put the demos in /usr/local/bin/demos/. (If DIR
784 begins with /, then bindir will not be prepended.)
786 --disable-subdir Just put the demos in \`bindir' (this is the default.)
788 [enable_subdir="$enableval"],[enable_subdir=no])
789 if test x"$enable_subdir" = xno; then
791 elif test x"$enable_subdir" = xyes -o x"$enable_subdir" = x ; then
792 echo "error: must be a subdirectory name: --enable-subdir=$enable_subdir"
795 # there must be a better way than this...
796 if test -z "`echo $enable_subdir | sed 's@^/.*@@'`" ; then
798 HACKDIR=$enable_subdir
801 HACKDIR='${bindir}/'$enable_subdir
805 # canonicalize slashes.
806 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
809 ###############################################################################
811 # Check for the SGI SCREEN_SAVER server extension.
813 ###############################################################################
816 with_sgi_req=unspecified
818 [Except where noted, all of the --with options below can also take a
819 directory argument: for example, \`--with-motif=/opt/Motif'. That would
820 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
821 to be added to the -L list, assuming those directories exist.
823 By default, support for each of these options will be built in, if the
824 relevant library routines exist. At run time, they will then be used
825 only if the X server being used supports them. Each --with option has
826 a corresponding --without option, to override building support for them
829 Screen blanking and idle-detection options:
831 --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.],
832 [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
834 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
836 if test "$with_sgi" = yes; then
837 AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
839 AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)])
841 elif test "$with_sgi" != no; then
842 echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
847 ###############################################################################
849 # Check for the MIT-SCREEN-SAVER server extension.
851 ###############################################################################
854 with_mit_req=unspecified
856 [ --with-mit-ext Include support for the MIT-SCREEN-SAVER extension.],
857 [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
859 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
861 if test "$with_mit" = yes; then
862 AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes])
864 # Now check to see if it's really in the library; XF86Free-3.3 ships
865 # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
867 if test "$have_mit" = yes; then
868 AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [true], [have_mit=no], -lm)
870 if test "$have_mit" = no; then
871 # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead
872 # of in Xext. Thank you master, may I have another.
873 AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
874 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
875 [true], -lX11 -lXext -lm)
878 if test "$have_mit" = no; then
879 # Double fuck! Looks like some versions of XFree86 (whichever version
880 # it is that comes with RedHat Linux 2.0 -- I can't find a version
881 # number) put this garbage in Xss instead of Xext. Thank you master,
882 # may I have another.
883 AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
884 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
885 [true], -lX11 -lXext -lm)
888 if test "$have_mit" = yes; then
889 AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
894 elif test "$with_mit" != no; then
895 echo "error: must be yes or no: --with-mit-ext=$with_mit"
900 ###############################################################################
902 # Check for the XIDLE server extension.
904 ###############################################################################
907 with_xidle_req=unspecified
908 AC_ARG_WITH(xidle-ext,
909 [ --with-xidle-ext Include support for the XIDLE extension.],
910 [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
912 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
914 if test "$with_xidle" = yes; then
915 AC_CHECK_X_HEADER(X11/extensions/xidle.h,
917 AC_DEFINE(HAVE_XIDLE_EXTENSION)])
918 elif test "$with_xidle" != no; then
919 echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
924 ###############################################################################
926 # Check for the SGI-VIDEO-CONTROL server extension.
928 ###############################################################################
931 with_sgivc_req=unspecified
932 AC_ARG_WITH(sgivc-ext,
933 [ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension.],
934 [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
936 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
938 if test "$with_sgivc" = yes; then
940 # first check for XSGIvc.h
941 AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes])
943 # if that succeeded, then check for the -lXsgivc
944 if test "$have_sgivc" = yes; then
946 AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
947 [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
951 # if that succeeded, then we've really got it.
952 if test "$have_sgivc" = yes; then
953 AC_DEFINE(HAVE_SGI_VC_EXTENSION)
956 elif test "$with_sgivc" != no; then
957 echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
962 ###############################################################################
964 # Check for the DPMS server extension.
966 ###############################################################################
969 with_dpms_req=unspecified
970 AC_ARG_WITH(dpms-ext,
971 [ --with-dpms-ext Include support for the DPMS extension.],
972 [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
974 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
976 if test "$with_dpms" = yes; then
978 # first check for dpms.h
979 AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes])
981 # if that succeeded, then check for the -lXdpms
982 if test "$have_dpms" = yes; then
984 AC_CHECK_X_LIB(Xdpms, DPMSInfo,
985 [have_dpms=yes; SAVER_LIBS="$SAVER_LIBS -lXdpms"], [true],
989 # if that succeeded, then we've really got it.
990 if test "$have_dpms" = yes; then
991 AC_DEFINE(HAVE_DPMS_EXTENSION)
994 elif test "$with_dpms" != no; then
995 echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
1000 ###############################################################################
1002 # Check for the XF86VMODE server extension.
1004 ###############################################################################
1007 with_xf86vmode_req=unspecified
1008 AC_ARG_WITH(xf86vmode-ext,
1009 [ --with-xf86vmode-ext Include support for XFree86 virtual screens.],
1010 [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"],
1011 [with_xf86vmode=yes])
1013 HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
1015 if test "$with_xf86vmode" = yes; then
1017 # first check for xf86vmode.h
1018 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes])
1020 # if that succeeded, then check for the -lXxf86vm
1021 if test "$have_xf86vmode" = yes; then
1023 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
1024 [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
1025 [true], -lXext -lX11)
1028 # if that succeeded, then we've really got it.
1029 if test "$have_xf86vmode" = yes; then
1030 AC_DEFINE(HAVE_XF86VMODE)
1033 elif test "$with_xf86vmode" != no; then
1034 echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
1039 ###############################################################################
1041 # Check for HP XHPDisableReset and XHPEnableReset.
1043 ###############################################################################
1045 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
1046 [AC_DEFINE(HAVE_XHPDISABLERESET)
1047 SAVER_LIBS="-lXhp11 $SAVER_LIBS"])
1050 ###############################################################################
1052 # Check for /proc/interrupts.
1054 ###############################################################################
1056 have_proc_interrupts=no
1057 with_proc_interrupts_req=unspecified
1058 AC_ARG_WITH(proc-interrupts,
1059 [ --with-proc-interrupts Include support for consulting the /proc/interrupts
1060 file to notice keyboard activity.],
1061 [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
1062 [with_proc_interrupts=yes])
1064 if test "$with_proc_interrupts" = yes; then
1066 AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
1067 ac_cv_have_proc_interrupts,
1068 [ac_cv_have_proc_interrupts=no
1069 if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
1070 ac_cv_have_proc_interrupts=yes
1073 have_proc_interrupts=$ac_cv_have_proc_interrupts
1075 if test "$have_proc_interrupts" = yes; then
1076 AC_DEFINE(HAVE_PROC_INTERRUPTS)
1079 elif test "$with_proc_interrupts" != no; then
1080 echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
1085 ###############################################################################
1087 # The --enable-locking option
1089 ###############################################################################
1091 AC_ARG_ENABLE(locking,[
1092 Screen locking options:
1094 --enable-locking Compile in support for locking the display.
1095 --disable-locking Do not allow locking at all.
1097 [enable_locking="$enableval"],[enable_locking=yes])
1098 if test "$enable_locking" = yes; then
1100 elif test "$enable_locking" = no; then
1101 AC_DEFINE(NO_LOCKING)
1103 echo "error: must be yes or no: --enable-locking=$enable_locking"
1109 ###############################################################################
1111 # The --enable-vt-locking option
1113 ###############################################################################
1115 #ac_vt_lockswitch=no
1116 #AC_ARG_ENABLE(vt-locking,[
1117 # --enable-vt-locking Compile in support for locking Virtual Terminals.
1118 # This is the default if the system supports it, and
1119 # if locking support is included (--enable-locking.)
1120 # --disable-vt-locking Do not allow locking of VTs, even if locking is
1122 # [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1123 #if test "$enable_vt_locking" = yes; then
1125 # AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1126 # [AC_TRY_COMPILE([#include <fcntl.h>
1127 # #include <sys/ioctl.h>
1128 # #include <sys/vt.h>],
1129 # [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1130 # [ac_cv_vt_lockswitch=yes],
1131 # [ac_cv_vt_lockswitch=no])])
1132 # ac_vt_lockswitch=$ac_cv_vt_lockswitch
1134 #elif test "$enable_vt_locking" = no; then
1137 # echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1141 #if test "$ac_vt_lockswitch" = yes; then
1142 # AC_DEFINE(HAVE_VT_LOCKSWITCH)
1143 # # the VT_LOCKSWITCH ioctl can only be used when running as root.
1144 # # #### but it doesn't work yet, so don't worry about that for now.
1150 ###############################################################################
1154 ###############################################################################
1158 # Solaris systems tend to come with PAM misconfigured.
1159 # Don't build it by default, even if the headers exist.
1163 # Default to building PAM support on all other systems, if it exists.
1164 with_pam_default=yes
1169 with_pam_req=unspecified
1172 [ --with-pam Include support for PAM (Pluggable Auth Modules.)],
1173 [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1175 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1177 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1178 AC_CACHE_CHECK([for PAM], ac_cv_pam,
1179 [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1182 if test "$ac_cv_pam" = yes ; then
1185 PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1187 # libpam typically requires dlopen and dlsym. On FreeBSD,
1188 # those are in libc. On Linux and Solaris, they're in libdl.
1189 AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1191 AC_MSG_CHECKING(how to call pam_strerror)
1192 AC_CACHE_VAL(ac_cv_pam_strerror_args,
1193 [AC_TRY_COMPILE([#include <stdio.h>
1195 #include <security/pam_appl.h>],
1196 [pam_handle_t *pamh = 0;
1197 char *s = pam_strerror(pamh, PAM_SUCCESS);],
1198 [ac_pam_strerror_args=2],
1199 [AC_TRY_COMPILE([#include <stdio.h>
1201 #include <security/pam_appl.h>],
1203 pam_strerror(PAM_SUCCESS);],
1204 [ac_pam_strerror_args=1],
1205 [ac_pam_strerror_args=0])])
1206 ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1207 ac_pam_strerror_args=$ac_cv_pam_strerror_args
1208 if test "$ac_pam_strerror_args" = 1 ; then
1209 AC_MSG_RESULT(one argument)
1210 elif test "$ac_pam_strerror_args" = 2 ; then
1211 AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1212 AC_MSG_RESULT(two arguments)
1214 AC_MSG_RESULT(unknown)
1220 ###############################################################################
1222 # Check for Kerberos.
1224 ###############################################################################
1227 with_kerberos_req=unspecified
1229 AC_ARG_WITH(kerberos,
1230 [ --with-kerberos Include support for Kerberos authentication.],
1231 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1233 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1235 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1236 AC_CACHE_CHECK([for Kerberos], ac_cv_kerberos,
1237 [AC_TRY_X_COMPILE([#include <krb.h>],,
1238 [ac_cv_kerberos=yes],
1239 [ac_cv_kerberos=no])])
1240 if test "$ac_cv_kerberos" = yes ; then
1242 AC_DEFINE(HAVE_KERBEROS)
1244 # from Tim Showalter <tjs+@andrew.cmu.edu>
1245 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes"
1246 AC_CHECK_FUNC(res_search,,
1247 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1248 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1255 ###############################################################################
1257 # Check for the nine billion variants of shadow passwords...
1259 ###############################################################################
1264 with_shadow_req=unspecified
1267 [ --with-shadow Include support for shadow password authentication.],
1268 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1270 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1272 if test "$enable_locking" = no ; then
1278 ###############################################################################
1280 # Check for Sun "adjunct" passwords.
1282 ###############################################################################
1284 if test "$with_shadow" = yes ; then
1285 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1286 [AC_TRY_X_COMPILE([#include <stdlib.h>
1288 #include <sys/types.h>
1289 #include <sys/label.h>
1290 #include <sys/audit.h>
1291 #include <pwdadj.h>],
1292 [struct passwd_adjunct *p = getpwanam("nobody");
1293 const char *pw = p->pwa_passwd;],
1294 [ac_cv_sun_adjunct=yes],
1295 [ac_cv_sun_adjunct=no])])
1296 if test "$ac_cv_sun_adjunct" = yes; then
1297 have_shadow_adjunct=yes
1304 ###############################################################################
1306 # Check for DEC and SCO so-called "enhanced" security.
1308 ###############################################################################
1310 if test "$with_shadow" = yes ; then
1311 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1312 [AC_TRY_X_COMPILE([#include <stdlib.h>
1314 #include <sys/types.h>
1316 #include <sys/security.h>
1318 [struct pr_passwd *p;
1320 set_auth_parameters(0, 0);
1321 check_auth_parameters();
1322 p = getprpwnam("nobody");
1323 pw = p->ufld.fd_encrypt;],
1324 [ac_cv_enhanced_passwd=yes],
1325 [ac_cv_enhanced_passwd=no])])
1326 if test $ac_cv_enhanced_passwd = yes; then
1327 have_shadow_enhanced=yes
1331 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1332 # (I'm told it needs -lcurses too, but I don't understand why.)
1333 # But on DEC, it's in -lsecurity.
1335 AC_CHECK_LIB(prot, getprpwnam,
1336 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1337 [AC_CHECK_LIB(security, getprpwnam,
1338 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1343 ###############################################################################
1345 # Check for HP's entry in the "Not Invented Here" Sweepstakes.
1347 ###############################################################################
1349 if test "$with_shadow" = yes ; then
1350 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1351 [AC_TRY_X_COMPILE([#include <stdlib.h>
1353 #include <sys/types.h>
1355 #include <hpsecurity.h>
1357 [struct s_passwd *p = getspwnam("nobody");
1358 const char *pw = p->pw_passwd;],
1359 [ac_cv_hpux_passwd=yes],
1360 [ac_cv_hpux_passwd=no])])
1361 if test "$ac_cv_hpux_passwd" = yes; then
1362 have_shadow_hpux=yes
1366 # on HPUX, bigcrypt is in -lsec
1367 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1372 ###############################################################################
1374 # Check for FreeBSD-style shadow passwords.
1376 # On FreeBSD, getpwnam() and friends work just like on non-shadow-
1377 # password systems -- except you only get stuff in the pw_passwd field
1378 # if the running program is setuid. So, guess that we've got this
1379 # lossage to contend with if /etc/master.passwd exists, and default to
1380 # a setuid installation.
1382 ###############################################################################
1384 if test "$with_shadow" = yes ; then
1385 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1386 [if test -f /etc/master.passwd ; then
1387 ac_cv_master_passwd=yes
1389 ac_cv_master_passwd=no
1391 if test "$ac_cv_master_passwd" = yes; then
1397 ###############################################################################
1399 # Check for traditional (ha!) shadow passwords.
1401 ###############################################################################
1403 if test "$with_shadow" = yes ; then
1404 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1405 [AC_TRY_X_COMPILE([#include <stdlib.h>
1407 #include <sys/types.h>
1409 #include <shadow.h>],
1410 [struct spwd *p = getspnam("nobody");
1411 const char *pw = p->sp_pwdp;],
1413 [ac_cv_shadow=no])])
1414 if test "$ac_cv_shadow" = yes; then
1418 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1420 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1421 if test "$have_getspnam" = no ; then
1422 AC_CHECK_LIB(gen, getspnam,
1423 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1429 ###############################################################################
1431 # Check for other libraries needed for non-shadow passwords.
1433 ###############################################################################
1435 if test "$enable_locking" = yes ; then
1437 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1439 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1440 if test "$have_crypt" = no ; then
1441 AC_CHECK_LIB(crypt, crypt,
1442 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1447 # Most of the above shadow mechanisms will have set need_setuid to yes,
1448 # if they were found. But, on some systems, we need setuid even when
1449 # using plain old vanilla passwords.
1451 if test "$enable_locking" = yes ; then
1453 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1460 if test "$have_shadow_adjunct" = yes ; then
1461 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1462 elif test "$have_shadow_enhanced" = yes ; then
1463 AC_DEFINE(HAVE_ENHANCED_PASSWD)
1464 elif test "$have_shadow_hpux" = yes ; then
1465 AC_DEFINE(HAVE_HPUX_PASSWD)
1466 elif test "$have_shadow" = yes ; then
1467 AC_DEFINE(HAVE_SHADOW_PASSWD)
1471 ###############################################################################
1475 ###############################################################################
1478 with_motif_req=unspecified
1480 User interface options:
1482 --with-motif Use the Motif toolkit for the user interface.],
1483 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=yes])
1485 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
1487 if test "$with_motif" != yes -a "$with_motif" != no ; then
1488 echo "error: must be yes or no: --with-motif=$with_motif"
1492 if test "$with_motif" = yes; then
1494 AC_CHECK_X_HEADER(Xm/Xm.h,
1496 AC_DEFINE(HAVE_MOTIF)
1497 MOTIF_LIBS="$MOTIF_LIBS -lXm"])
1501 ###############################################################################
1505 ###############################################################################
1508 with_gtk_req=unspecified
1510 [ --with-gtk Use the Gtk toolkit for the user interface.],
1511 [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
1513 # if --with-gtk=/directory/ was specified, remember that directory so that
1514 # we can also look for the `gtk-config' program in that directory.
1524 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
1526 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
1527 echo "error: must be yes or no: --with-gtk=$with_gtk"
1532 if test "$with_gtk" = yes; then
1535 # if the user specified --with-gtk=/foo/ then look in /foo/bin/
1536 # for glib-config and gtk-config.
1540 if test ! -z "$gtk_dir"; then
1541 # canonicalize slashes.
1542 gtk_dir=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
1543 gtk_path="$gtk_dir:$gtk_dir:$gtk_path"
1546 AC_PATH_PROGS(glib_config, glib-config,, $gtk_path)
1547 AC_PATH_PROGS(gtk_config, gtk-config,, $gtk_path)
1549 if test -n "$glib_config" -a -n "gtk_config" ; then
1552 if test "$have_gtk" = yes; then
1553 AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
1554 [ac_cv_gtk_version_string=`$glib_config --version`])
1555 ac_gtk_version_string=$ac_cv_gtk_version_string
1558 maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
1559 min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
1561 ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
1562 if test -z "$ac_gtk_version"; then
1563 ac_gtk_version=unknown
1564 ac_gtk_version_string=unknown
1566 if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
1572 if test "$have_gtk" = yes; then
1573 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
1574 [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
1575 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
1576 [ac_cv_gtk_config_libs=`$gtk_config --libs`])
1577 INCLUDES="$INCLUDES $ac_cv_gtk_config_cflags"
1578 GTK_LIBS="$GTK_LIBS $ac_cv_gtk_config_libs"
1584 ###############################################################################
1586 # Check for -lXaw and -lXaw3d.
1588 ###############################################################################
1592 with_athena_req=unspecified
1594 [ --with-athena Use the Athena toolkit for the user interface.],
1595 [with_athena="$withval"; with_athena_req="$withval"],[with_athena=yes])
1597 HANDLE_X_PATH_ARG(with_athena, --with-athena, Athena)
1600 if test "$with_athena" != yes -a "$with_athena" != no ; then
1601 echo "error: must be yes or no: --with-athena=$with_athena"
1606 if test "$with_athena" = yes; then
1608 AC_CHECK_X_HEADER(X11/Xaw/Dialog.h, [have_athena=yes])
1609 if test "$have_athena" = yes; then
1610 AC_CHECK_X_LIB(Xaw3d, Xaw3dComputeTopShadowRGB,
1611 [have_athena=yes; have_athena3d=yes], [true],
1612 -lXt -lXmu -lXext -lX11)
1616 if test "$have_athena" = yes; then
1617 AC_DEFINE(HAVE_ATHENA)
1618 ATHENA_LIBS="-lXaw $ATHENA_LIBS"
1621 if test "$have_athena3d" = yes; then
1622 ATHENA3D_LIBS="-lXaw3d $ATHENA3D_LIBS"
1626 # If we have Athena, check whether it's a version that includes
1627 # XawViewportSetCoordinates in Viewport.h (R3 (or R4?) don't.)
1628 if test "$have_athena" = yes ; then
1629 AC_CACHE_CHECK([for XawViewportSetCoordinates in Viewport.h],
1630 ac_cv_have_XawViewportSetCoordinates,
1631 [ac_cv_have_XawViewportSetCoordinates=no
1632 AC_EGREP_X_HEADER(XawViewportSetCoordinates,
1634 ac_cv_have_XawViewportSetCoordinates=yes)])
1635 if test "$ac_cv_have_XawViewportSetCoordinates" = yes ; then
1636 AC_DEFINE(HAVE_XawViewportSetCoordinates)
1641 ###############################################################################
1643 # Checking whether Motif is really Lesstif.
1645 ###############################################################################
1648 if test "$have_motif" = yes ; then
1649 AC_CACHE_CHECK([whether Motif is really LessTif],
1651 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
1652 [long vers = LesstifVersion;],
1653 [ac_cv_have_lesstif=yes],
1654 [ac_cv_have_lesstif=no])])
1655 have_lesstif=$ac_cv_have_lesstif
1659 lesstif_version=unknown
1660 lesstif_version_string=unknown
1662 if test "$have_lesstif" = yes ; then
1664 echo unknown > conftest-lt
1665 AC_CACHE_CHECK([LessTif version number],
1666 ac_cv_lesstif_version_string,
1667 [AC_TRY_X_RUN([#include <stdio.h>
1670 FILE *f = fopen("conftest-lt", "w");
1672 fprintf(f, "%d %d.%d\n", LesstifVersion,
1673 LESSTIF_VERSION, LESSTIF_REVISION);
1677 [ltv=`cat conftest-lt`
1678 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
1679 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
1680 [ac_cv_lesstif_version=unknown
1681 ac_cv_lesstif_version_string=unknown],
1682 [ac_cv_lesstif_version=unknown
1683 ac_cv_lesstif_version_string=unknown])])
1685 lesstif_version=$ac_cv_lesstif_version
1686 lesstif_version_string=$ac_cv_lesstif_version_string
1691 if test "$have_motif" = yes ; then
1693 echo unknown > conftest-mt
1694 AC_CACHE_CHECK([Motif version number],
1695 ac_cv_motif_version_string,
1696 [AC_TRY_X_RUN([#include <stdio.h>
1699 FILE *f = fopen("conftest-mt", "w");
1701 fprintf(f, "%d %d.%d\n", XmVersion,
1702 XmVERSION, XmREVISION);
1706 [mtv=`cat conftest-mt`
1707 ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
1708 ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
1709 [ac_cv_motif_version=unknown
1710 ac_cv_motif_version_string=unknown],
1711 [ac_cv_motif_version=unknown
1712 ac_cv_motif_version_string=unknown])])
1714 motif_version=$ac_cv_motif_version
1715 motif_version_string=$ac_cv_motif_version_string
1720 ###############################################################################
1722 # Checking whether Motif requires -lXpm.
1724 # If this is Motif 2.x, and we have XPM, then link against XPM as well.
1725 # The deal is, Motif 2.x requires XPM -- but it's a compilation option
1726 # of the library whether to build the XPM code into libXm, or whether
1727 # to rely on an external libXm. So the only way to tell whether XPM is
1728 # a link-time requirement is to examine libXm.a, which is very
1729 # difficult to do in an autoconf script. So... if it's Motif 2.x, we
1730 # always link against XPM if the XPM lib exists (and this will be a
1731 # no-op if libXm happens to already have the XPM code in it.)
1733 ###############################################################################
1735 motif_requires_xpm=no
1736 if test "$have_motif" = yes ; then
1737 AC_MSG_CHECKING(whether Motif requires XPM)
1738 if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
1740 motif_requires_xpm=yes
1741 AC_MSG_RESULT(maybe)
1748 ###############################################################################
1750 # Checking whether Motif requires -lXp.
1752 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
1753 # Extension". Why this extension isn't in -lXext with all the others,
1756 ###############################################################################
1759 if test "$have_motif" = yes ; then
1761 AC_CHECK_X_LIB(Xp, XpQueryExtension,
1762 [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
1763 [true], -lX11 -lXext -lm)
1767 ###############################################################################
1769 # Checking whether Motif requires -lXintl (for _Xsetlocale.)
1771 ###############################################################################
1774 if test "$have_motif" = yes ; then
1775 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
1777 if test "$have_xintl" = yes; then
1778 MOTIF_LIBS="$MOTIF_LIBS -lXintl"
1783 ###############################################################################
1785 # Check for -lGL or -lMesaGL.
1787 ###############################################################################
1791 with_gl_req=unspecified
1796 --with-gl Build those demos which depend on OpenGL.],
1797 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
1799 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
1801 ac_mesagl_version=unknown
1802 ac_mesagl_version_string=unknown
1804 if test "$with_gl" = yes; then
1805 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
1806 if test "$have_gl" = yes ; then
1807 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no)
1810 # If we have the headers, try and figure out which vendor it's from.
1812 if test "$have_gl" = yes ; then
1814 # We need to know whether it's MesaGL so that we know which libraries
1817 AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
1818 [ac_cv_have_mesa_gl=no
1819 AC_EGREP_X_HEADER(Mesa, GL/glx.h, [ac_cv_have_mesa_gl=yes])
1821 ac_have_mesa_gl=$ac_cv_have_mesa_gl
1828 # Some versions of MesaGL are compiled to require -lpthread.
1829 # So if the Mesa headers exist, and -lpthread exists, then always
1830 # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
1832 if test "$ac_have_mesa_gl" = yes; then
1833 AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
1837 # If we have Mesa headers, check to see if we can link against -lMesaGL.
1838 # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
1839 # Else, warn that GL is busted. (We have the headers, but no libs.)
1842 if test "$ac_have_mesa_gl" = yes ; then
1843 AC_CHECK_X_LIB(MesaGL, glXCreateContext,
1845 GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
1846 [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
1849 if test "$gl_lib_1" = "" ; then
1850 AC_CHECK_X_LIB(GL, glXCreateContext,
1852 GL_LIBS="-lGL -lGLU $GL_LIBS"],
1853 [], -lGLU $GL_LIBS -lX11 -lXext -lm)
1856 if test "$gl_lib_1" = "" ; then
1857 # we have headers, but no libs -- bail.
1862 # linking works -- we can build the GL hacks.
1864 if test "$ac_have_mesa_gl" = yes ; then
1865 AC_DEFINE(HAVE_MESA_GL)
1871 # Now that we know we have GL headers and libs, do some more GL testing.
1874 if test "$have_gl" = yes ; then
1875 # If it's MesaGL, we'd like to issue a warning if the version number
1876 # is less than or equal to 2.6, because that version had a security bug.
1878 if test "$ac_have_mesa_gl" = yes; then
1880 AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
1881 [cat > conftest.$ac_ext <<EOF
1882 #line __oline__ "configure"
1883 #include "confdefs.h"
1885 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
1888 ac_save_CPPFLAGS="$CPPFLAGS"
1889 if test \! -z "$includedir" ; then
1890 CPPFLAGS="$CPPFLAGS -I$includedir"
1892 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1896 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \
1897 's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
1900 rm -f conftest.$ac_ext
1902 CPPFLAGS="$ac_save_CPPFLAGS"
1904 if test "$mglv" = ""; then
1905 ac_mesagl_version=unknown
1906 ac_mesagl_version_string=unknown
1908 ac_mesagl_version_string=$mglv
1909 maj=`echo $mglv | sed -n 's/\..*//p'`
1910 min=`echo $mglv | sed -n 's/.*\.//p'`
1911 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
1912 if test -z "$ac_mesagl_version"; then
1913 ac_mesagl_version=unknown
1914 ac_mesagl_version_string=unknown
1917 ac_cv_mesagl_version=$ac_mesagl_version
1918 ac_cv_mesagl_version_string=$ac_mesagl_version_string
1920 ac_mesagl_version=$ac_cv_mesagl_version
1921 ac_mesagl_version_string=$ac_cv_mesagl_version_string
1925 # Check for OpenGL 1.1 features.
1927 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
1928 [true], $GL_LIBS -lX11 -lXext -lm)
1931 # Check whether the `xscreensaver' executable should link against GL.
1932 # See comments in utils/visual-gl.c for why this is sometimes necessary.
1934 AC_MSG_CHECKING(whether drastic GL measures must be taken)
1937 AC_MSG_RESULT([yes -- hello, SGI.])
1938 AC_DEFINE(DAEMON_USE_GL)
1939 SAVER_GL_SRCS='$(UTILS_SRC)/visual-gl.c'
1940 SAVER_GL_OBJS='$(UTILS_BIN)/visual-gl.o'
1941 SAVER_GL_LIBS="$GL_LIBS"
1944 AC_MSG_RESULT([no -- non-SGI.])
1953 elif test "$with_gl" != no; then
1954 echo "error: must be yes or no: --with-gl=$with_gl"
1959 ###############################################################################
1963 ###############################################################################
1966 with_gle_req=unspecified
1969 [ --with-gle Build those demos which depend on GLE
1970 (the OpenGL "extrusion" library.)],
1971 [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
1973 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
1977 if test "$with_gle" = yes; then
1979 AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no)
1980 if test "$have_gle" = yes ; then
1981 AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no)
1984 if test "$have_gle" = yes ; then
1987 AC_CHECK_X_LIB(gle, gleCreateGC,
1988 [have_gle=yes; gle_halfassed=no, GLE_LIBS="-lgle"],
1989 [], $GL_LIBS -lX11 -lXext -lm)
1991 if test "$have_gle" = yes ; then
1994 AC_CHECK_X_LIB(matrix, uview_direction_d,
1995 [have_gle=yes; gle_halfassed=no,
1996 GLE_LIBS="$GLE_LIBS -lmatrix"],
1997 [], $GL_LIBS -lX11 -lXext -lm)
2000 if test "$have_gle" = yes ; then
2004 elif test "$with_gle" != no; then
2005 echo "error: must be yes or no: --with-gle=$with_gle"
2012 ###############################################################################
2016 ###############################################################################
2019 with_xpm_req=unspecified
2021 [ --with-xpm Include support for XPM files in some demos.],
2022 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2024 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2026 if test "$with_xpm" = yes; then
2027 AC_CHECK_X_HEADER(X11/xpm.h,
2031 elif test "$with_xpm" != no; then
2032 echo "error: must be yes or no: --with-xpm=$with_xpm"
2036 # See comment near $motif_requires_xpm, above.
2037 # Need to do this here, after both Motif and XPM have been checked for.
2039 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2040 if test "$motif_requires_xpm" = yes ; then
2041 MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
2046 ###############################################################################
2048 # Check for the XSHM server extension.
2050 ###############################################################################
2053 with_xshm_req=unspecified
2054 AC_ARG_WITH(xshm-ext,
2055 [ --with-xshm-ext Include support for the XSHM extension.],
2056 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
2058 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
2060 if test "$with_xshm" = yes; then
2062 # first check for Xshm.h.
2063 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes])
2065 # if that succeeded, then check for sys/ipc.h.
2066 if test "$have_xshm" = yes; then
2068 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
2071 # if that succeeded, then check for sys/shm.h.
2072 if test "$have_xshm" = yes; then
2074 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
2077 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
2078 # to exist, but the library code to not exist. And even better, the library
2079 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
2080 # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and
2081 # that's not quite right, but close enough.)
2085 if [ `uname -v` -eq 3 ]; then
2087 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
2088 [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
2089 [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"
2372 DEMO_MAN="xscreensaver-demo-old.man"
2374 if test "$have_athena" = yes; then
2375 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xaw
2376 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2378 if test "$have_athena3d" = yes; then
2379 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xaw3d
2380 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2382 if test "$have_motif" = yes; then
2383 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2384 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2386 if test "$have_gtk" = yes; then
2387 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
2388 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2389 DEMO_MAN="xscreensaver-demo.man"
2393 if test "$have_kerberos" = yes; then
2394 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
2395 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
2397 if test "$have_pam" = yes; then
2398 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
2399 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
2400 INSTALL_PAM="install-pam"
2402 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
2403 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
2406 if test "$enable_locking" = yes; then
2407 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
2408 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
2410 LOCK_SRCS='$(NOLOCK_SRCS_1)'
2411 LOCK_OBJS='$(NOLOCK_OBJS_1)'
2414 if test "$need_setuid" = yes; then
2416 INSTALL_SETUID='$(INSTALL) $(SUID_FLAGS)'
2419 INSTALL_SETUID='$(INSTALL_PROGRAM)'
2423 if test "$have_gl" = yes; then
2424 GL_EXES='$(GL_EXES)'
2428 GL_KLUDGE="-${tab} "
2431 if test "$have_gle" = yes; then
2432 GLE_EXES='$(GLE_EXES)'
2433 GLE_MEN='$(GLE_MEN)'
2434 GLE_KLUDGE="${tab} "
2436 GLE_KLUDGE="-${tab} "
2440 ###############################################################################
2442 # Perform substitutions and write Makefiles.
2444 ###############################################################################
2448 AC_SUBST(PREFERRED_DEMO_PROGRAM)
2449 AC_SUBST(ALL_DEMO_PROGRAMS)
2451 AC_SUBST(SAVER_LIBS)
2452 AC_SUBST(MOTIF_LIBS)
2454 AC_SUBST(ATHENA_LIBS)
2455 AC_SUBST(ATHENA3D_LIBS)
2460 AC_SUBST(PASSWD_LIBS)
2461 AC_SUBST(INSTALL_SETUID)
2462 AC_SUBST(INSTALL_DIRS)
2463 AC_SUBST(NEED_SETUID)
2464 AC_SUBST(INSTALL_PAM)
2465 AC_SUBST(SGI_VIDEO_OBJS)
2466 AC_SUBST(SGI_VIDEO_LIBS)
2468 AC_SUBST(PASSWD_SRCS)
2469 AC_SUBST(PASSWD_OBJS)
2472 AC_SUBST(SAVER_GL_SRCS)
2473 AC_SUBST(SAVER_GL_OBJS)
2474 AC_SUBST(SAVER_GL_LIBS)
2482 AC_SUBST(GLE_KLUDGE)
2485 APPDEFAULTS=$ac_x_app_defaults
2486 AC_SUBST(APPDEFAULTS)
2489 AC_SUBST(DEPEND_FLAGS)
2490 AC_SUBST(DEPEND_DEFINES)
2498 driver/XScreenSaver.ad)
2500 ###############################################################################
2502 # Print some warnings at the end.
2504 ###############################################################################
2506 warn_prefix_1=" Warning:"
2507 warn_prefix_2=" Note:"
2508 warn_prefix="$warn_prefix_1"
2511 warnsep=' #################################################################'
2514 if test "$warning" = no ; then
2515 echo '' ; echo "$warnsep" ; echo ''
2522 if test "$warning" = long ; then echo '' ; fi
2524 echo "$warn_prefix $@"
2531 if test "$was" != no ; then echo '' ; fi
2532 echo "$warn_prefix $@"
2541 warn_prefix="$warn_prefix_2"
2543 warn_prefix="$warn_prefix_1"
2547 warn_prefix="$warn_prefix_2"
2549 warn_prefix="$warn_prefix_1"
2553 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
2554 warn 'The SGI saver extension was requested, but was not found.'
2557 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
2558 warn 'The MIT saver extension was requested, but was not found.'
2561 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
2562 warn 'The XIdle extension was requested, but was not found.'
2565 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
2566 warn 'The XSHM extension was requested, but was not found.'
2569 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
2570 warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
2573 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
2574 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
2577 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
2578 warn 'The DPMS extension was requested, but was not found.'
2581 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
2582 warn 'The XF86VMODE extension was requested, but was not found.'
2585 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
2586 warn "Checking of /proc/interrupts was requested, but it's bogus."
2590 if test "$have_motif" = no -a "$have_gtk" = no -a "$have_athena" = no ; then
2591 warnL "None of Motif, Gtk, or Athena widgets seem to be available;"
2592 warn2 "the \`xscreensaver-demo' program requires one of these."
2594 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
2595 warnL "Use of Motif was requested, but it wasn't found;"
2596 if test "$have_gtk" = yes; then
2597 warn2 "Gtk will be used instead."
2599 warn2 "Athena will be used instead."
2602 elif test "$jurassic_gtk" = yes ; then
2606 v="$ac_gtk_version_string"
2607 if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
2608 warnL "Use of Gtk was requested, but its version number is unknown;"
2609 elif test "$with_gtk_req" = yes ; then
2610 warnL "Use of Gtk was requested, but it is version $v;"
2612 warnL "Gtk was found on this system, but it is version $v;"
2615 if test "$have_motif" = yes; then
2621 warn2 "Gtk $pref_gtk or newer is required. $which will be used instead."
2623 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
2624 warnL "Use of Gtk was requested, but it wasn't found;"
2625 if test "$have_motif" = yes; then
2626 warn2 "Motif will be used instead."
2628 warn2 "Athena will be used instead."
2631 elif test "$with_athena_req" = yes -a "$have_athena" = no ; then
2632 warnL "Use of Athena was requested, but it wasn't found;"
2633 if test "$have_gtk" = yes; then
2634 warn2 "Gtk will be used instead."
2636 warn2 "Motif will be used instead."
2641 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
2643 preferred_lesstif=0.86
2645 if test "$lesstif_version" = unknown; then
2646 warnL "Unable to determine the LessTif version number!"
2647 warn2 "Make sure you are using version $preferred_lesstif or newer."
2648 warn2 "See <http://www.lesstif.org/>."
2650 elif test \! $lesstif_version -gt 82; then
2651 warnL "LessTif version $lesstif_version_string is being used."
2652 warn2 "LessTif versions 0.82 and earlier are too buggy to"
2653 warn2 "use with XScreenSaver; it is strongly recommended"
2654 warn2 "that you upgrade to at least version $preferred_lesstif!"
2655 warn2 "See <http://www.lesstif.org/>."
2659 if test "$have_athena" = yes -a "$have_motif" = no -a "$have_gtk" = no; then
2660 warnL "Athena widgets are being used instead of Motif or Gtk."
2661 warn2 "The \`xscreensaver-demo' program looks much better"
2662 warn2 "with Motif or Gtk. Wouldn't you rather be using Motif?"
2663 warn2 "Motif is shipped by every commercial Unix vendor,"
2664 warn2 "and there is a free implementation available as"
2665 warn2 "well: see <http://www.lesstif.org/>. Gtk is shipped"
2666 warn2 "with most Linux and BSD distributions."
2670 if test "$have_xpm" = no ; then
2671 if test "$with_xpm_req" = yes ; then
2672 warnL 'Use of XPM was requested, but it was not found.'
2673 elif test "$with_xpm_req" = no ; then
2674 noteL 'The XPM library is not being used.'
2676 noteL 'The XPM library was not found.'
2680 warn2 'Some of the demos will not be as colorful as they'
2681 warn2 'could be. You might want to consider installing XPM'
2682 warn2 'and re-running configure. (Remember to delete the'
2683 warn2 'config.cache file first.) You can find XPM at most'
2684 warn2 'X11 archive sites, such as <http://sunsite.unc.edu/>.'
2688 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
2689 preferred_mesagl=3.0
2691 if test "$ac_mesagl_version" = unknown; then
2692 warnL "Unable to determine the MesaGL version number!"
2693 warn2 "Make sure you are using version $preferred_mesagl or newer."
2695 elif test \! "$ac_mesagl_version" -gt 2006; then
2696 warnL "MesaGL version $ac_mesagl_version_string is being used."
2697 warn2 "MesaGL versions 2.6 and earlier have a security bug."
2698 warn2 "It is strongly recommended that you upgrade to at"
2699 warn2 "least version $preferred_mesagl."
2703 if test "$have_gl" = no ; then
2704 if test "$with_gl_req" = yes ; then
2705 warnL 'Use of GL was requested, but it was not found.'
2706 elif test "$with_gl_req" = no ; then
2707 noteL 'The OpenGL 3D library is not being used.'
2709 noteL 'The OpenGL 3D library was not found.'
2712 if test "$gl_halfassed" = yes ; then
2714 warn2 'More specifically, we found the headers, but not the'
2715 warn2 'libraries; so either GL is half-installed on this'
2716 warn2 "system, or something else went wrong. The \`config.log'"
2717 warn2 'file might contain some clues.'
2721 warn2 'Those demos which use 3D will not be built or installed.'
2722 warn2 'You might want to consider installing OpenGL and'
2723 warn2 're-running configure. (Remember to delete the'
2724 warn2 "config.cache file first.) If your vendor doesn't ship"
2725 warn2 'their own implementation of OpenGL, you can get a free'
2726 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
2727 warn2 'info, see <http://www.opengl.org/>.'
2732 if test "$have_gl" = yes -a "$have_gle" = no ; then
2733 if test "$with_gle_req" = yes ; then
2734 noteL 'Use of the GLE (GL Extrusion) library was requested, but'
2735 warn2 'it was not found (though the OpenGL library was found, and'
2736 warn2 'is being used.)'
2737 elif test "$with_gle_req" = no ; then
2738 noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
2739 warn2 'library is not.'
2741 noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
2745 if test "$gle_halfassed" = yes ; then
2747 warn2 'More specifically, we found the headers, but not the'
2748 warn2 'libraries; so either GLE is half-installed on this'
2749 warn2 "system, or something else went wrong. The \`config.log'"
2750 warn2 'file might contain some clues.'
2754 warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
2755 warn2 'will not be built or installed. You might want to consider'
2756 warn2 'installing GLE and re-running configure. (Remember to delete'
2757 warn2 'the config.cache file first.) You can find the GLE library'
2758 warn2 'at <http://www.linas.org/gle/>. For general OpenGL info,'
2759 warn2 'see <http://www.opengl.org/>.'
2764 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
2765 warn 'Use of XReadDisplay was requested, but it was not found.'
2768 if test "$with_sgivideo_req" = yes -a "$have_sgivideo" = no ; then
2769 warn 'Use of the Iris Video Library was requested, but it was not found.'
2772 if test -n "$with_zippy_req"; then
2773 if test "$with_zippy_req" != "$ac_cv_zippy_program" ; then
2774 warnL "$with_zippy_req was requested as the Zippy program,"
2775 warn2 "but was not found. The default will be used instead."
2779 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
2780 warn 'Use of Kerberos was requested, but it was not found.'
2783 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
2784 warn 'Use of PAM was requested, but it was not found.'
2787 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
2788 warn 'Use of shadow passwords was requested, but they were not found.'
2792 # You are in a twisty maze of namespaces and syntaxes, all alike.
2793 # Fuck the skull of Unix.
2795 eval bindir=${bindir}
2796 eval bindir=${bindir}
2797 eval bindir=${bindir}
2798 eval bindir=${bindir}
2799 eval bindir=${bindir}
2800 eval bindir=${bindir}
2801 eval HACKDIR=${HACKDIR}
2802 eval HACKDIR=${HACKDIR}
2803 eval HACKDIR=${HACKDIR}
2804 eval HACKDIR=${HACKDIR}
2805 eval HACKDIR=${HACKDIR}
2806 eval HACKDIR=${HACKDIR}
2808 # canonicalize slashes.
2809 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
2810 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
2813 # Sanity check the subdir
2814 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
2815 if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
2817 AC_MSG_ERROR([\"--enable-subdir=${bindir}/${bad_choice}\" won't work.
2818 There will be an executable installed with that name, so
2819 that can't be the name of a directory as well. Please
2820 re-configure with a different directory name.])
2827 # Now let's see if there's a previous RPM version already installed. Blargh!
2831 rpmv=`(rpm -qv xscreensaver) 2>&- | \
2832 sed 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-[0-9][0-9]*$/\1/'`
2835 if test \! -z "$rpmv" ; then
2836 rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
2837 rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
2840 warnL "There is already an installed RPM of xscreensaver $rpmv"
2841 warn2 "on this system. You might want to remove it (with"
2842 warn2 '"rpm -ve xscreensaver") before running "make install"'
2843 warn2 "from this directory."
2845 warn2 "Alternately, you could build this version of xscreensaver"
2846 warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
2847 warn2 "file is included. See the RPM documentation for more info."
2850 if test "$rpmbdir" = "$rpmhdir" ; then
2851 warn2 "The RPM version was installed in $rpmbdir."
2853 warn2 "The RPM version was installed in $rpmbdir,"
2854 warn2 "with demos in $rpmhdir."
2861 # Warn about egregious GNOME bogosity.
2863 if (rpm -qv control-center) >&- 2>&- ; then
2865 warnL "The Gnome Control Center seems to be installed."
2867 warn2 "Note that simply installing this version of xscreensaver"
2868 warn2 "will not cause GNOME to know about the newly-added display"
2869 warn2 "modes -- GNOME is just lame that way. Instead of using the"
2870 warn2 "Control Center, try using the \`xscreensaver-demo' command."
2874 if test "${bindir}" = "${HACKDIR}" ; then
2878 if test "$do_dir_warning" = yes; then
2882 echo ' When you run "make install", the "xscreensaver",'
2883 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
2884 echo " will be installed in ${bindir}."
2886 echo " The various graphics demos (100+ different executables) will"
2887 echo " also be installed in ${HACKDIR}."
2889 echo " If you would prefer the demos to be installed elsewhere"
2890 echo " (for example, in a dedicated directory) you should re-run"
2891 echo " configure with the --enable-subdir=DIR option. For more"
2892 echo " information, run $0 --help."
2896 if test "$warning" != no; then
2897 echo '' ; echo "$warnsep" ; echo ''