1 # configure.in --- xscreensaver, Copyright (c) 1997-2003 Jamie Zawinski.
5 AC_INIT(driver/subprocs.c)
6 AC_CONFIG_HEADER(config.h)
8 echo "current directory: `pwd`"
9 echo "command line was: $0 $@"
12 # After checking to see that --srcdir is correct (which AC_INIT does)
13 # check for some random other files that come later in the tar file,
14 # to make sure everything is here.
16 for d in driver utils hacks hacks/glx ; do
17 f=$srcdir/$d/Makefile.in
18 if test \! -r $f ; then
20 echo "ERROR: The package is incomplete: $f does not exist."
21 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 -ieee)
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"
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 # Functions to figure out how to disable // comments in ANSI C code.
90 # (With recent gcc, this is done with "-std=c89". With older gcc, this
91 # is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to
92 # gcc. Old gcc doesn't support -std, and new gcc doesn't support -lang.
93 # so much for compatibility!)
95 ###############################################################################
97 AC_DEFUN(AC_GCC_ACCEPTS_STD,
98 [if test -n "$GCC"; then
99 AC_CACHE_CHECK([whether gcc accepts -std],
100 ac_cv_gcc_accepts_std,
101 [if ( ( gcc -E -std=c89 - </dev/null >/dev/null ) 2>&1 | \
102 grep unrecognized >/dev/null ); then
103 ac_cv_gcc_accepts_std=no
105 ac_cv_gcc_accepts_std=yes
107 ac_gcc_accepts_std="$ac_cv_gcc_accepts_std"
111 AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE,
112 [if test -n "$GCC"; then
114 AC_MSG_RESULT(Disabling C++ comments in ANSI C code.)
116 # The reason that // comments are banned from xscreensaver is that gcc is
117 # basically the only compiler in the world that supports them in C code.
118 # All other vendors support them only in their C++ compilers, not in their
119 # ANSI C compilers. This means that it's a portability problem: every time
120 # these comments have snuck into the xscreensaver source code, I've gotten
121 # complaints about it the next day. So we turn off support for them in gcc
122 # as well to prevent them from accidentially slipping in.
124 if test "$ac_gcc_accepts_std" = yes ; then
126 # -std=c89 defines __STRICT_ANSI__, which we don't want.
127 # (That appears to be the only additional preprocessor symbol
128 # it defines, in addition to the syntax changes it makes.)
130 # -std=gnu89 is no good, because // comments were a GNU extension
131 # before they were in the ANSI C 99 spec... (gcc 2.96 permits //
132 # with -std=gnu89 but not with -std=c89.)
134 CC="$CC -std=c89 -U__STRICT_ANSI__"
137 CC="$CC -Wp,-lang-c89"
143 ###############################################################################
145 # Function to figure out how to turn off Objective C on MacOS X.
146 # (We have to do this to work around an Apple-specific gcc bug.)
148 ###############################################################################
150 AC_DEFUN(AC_GCC_ACCEPTS_NO_CPP_PRECOMP,
151 [if test -n "$GCC"; then
152 AC_CACHE_CHECK([whether gcc accepts -no-cpp-precomp],
153 ac_cv_gcc_accepts_no_cpp_precomp,
154 [if ( ( gcc -E -no-cpp-precomp - </dev/null >/dev/null ) 2>&1 | \
155 grep unrecognized >/dev/null ); then
156 ac_cv_gcc_accepts_no_cpp_precomp=no
158 ac_cv_gcc_accepts_no_cpp_precomp=yes
160 ac_gcc_accepts_no_cpp_precomp="$ac_cv_gcc_accepts_no_cpp_precomp"
164 AC_DEFUN(AC_NO_OBJECTIVE_C,
165 [if test -n "$GCC"; then
166 AC_GCC_ACCEPTS_NO_CPP_PRECOMP
167 if test "$ac_gcc_accepts_no_cpp_precomp" = yes ; then
168 AC_MSG_RESULT(Disabling Objective C extensions in ANSI C code.)
169 CC="$CC -no-cpp-precomp"
175 ###############################################################################
177 # Function to figure out how to create directory trees.
179 ###############################################################################
181 AC_DEFUN(AC_PROG_INSTALL_DIRS,
182 [AC_CACHE_CHECK([whether \"\${INSTALL} -d\" creates intermediate directories],
183 ac_cv_install_d_creates_dirs,
184 [ac_cv_install_d_creates_dirs=no
186 if mkdir conftestdir; then
187 cd conftestdir 2>/dev/null
188 ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1
189 if test -d dir1/dir2/. ; then
190 ac_cv_install_d_creates_dirs=yes
197 if test "$ac_cv_install_d_creates_dirs" = no ; then
198 AC_CACHE_CHECK([whether \"mkdir -p\" creates intermediate directories],
199 ac_cv_mkdir_p_creates_dirs,
200 [ac_cv_mkdir_p_creates_dirs=no
202 if mkdir conftestdir; then
203 cd conftestdir 2>/dev/null
204 mkdir -p dir1/dir2 >/dev/null 2>&1
205 if test -d dir1/dir2/. ; then
206 ac_cv_mkdir_p_creates_dirs=yes
214 if test "$ac_cv_install_d_creates_dirs" = yes ; then
215 INSTALL_DIRS='${INSTALL} -d'
216 elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then
217 INSTALL_DIRS='mkdir -p'
220 INSTALL_DIRS='${INSTALL} -d'
225 ###############################################################################
227 # Function to check whether gettimeofday() exists, and how to call it.
228 # This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS.
230 ###############################################################################
232 AC_DEFUN(AC_GETTIMEOFDAY_ARGS,
233 [AC_MSG_CHECKING(how to call gettimeofday)
234 AC_CACHE_VAL(ac_cv_gettimeofday_args,
235 [AC_TRY_COMPILE([#include <stdlib.h>
236 #include <sys/time.h>],
237 [struct timeval tv; struct timezone tzp;
238 gettimeofday(&tv, &tzp);],
239 [ac_gettimeofday_args=2],
240 [AC_TRY_COMPILE([#include <stdlib.h>
241 #include <sys/time.h>],
242 [struct timeval tv; gettimeofday(&tv);],
243 [ac_gettimeofday_args=1],
244 [ac_gettimeofday_args=0])])
245 ac_cv_gettimeofday_args=$ac_gettimeofday_args])
246 ac_gettimeofday_args=$ac_cv_gettimeofday_args
247 if test "$ac_gettimeofday_args" = 1 ; then
248 AC_DEFINE(HAVE_GETTIMEOFDAY)
249 AC_MSG_RESULT(one argument)
250 elif test "$ac_gettimeofday_args" = 2 ; then
251 AC_DEFINE(HAVE_GETTIMEOFDAY)
252 AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
253 AC_MSG_RESULT(two arguments)
255 AC_MSG_RESULT(unknown)
260 ###############################################################################
262 # Function to find perl5 (defines PERL and PERL_VERSION.)
264 ###############################################################################
266 # M4 sucks!! perl sucks too!!
268 perl_version_cmd='print $]'
271 AC_DEFUN(AC_PROG_PERL,
272 [AC_PATH_PROGS(PERL, [perl5 perl],,)
273 if test -z "$PERL" ; then
276 AC_CACHE_CHECK([perl version], ac_cv_perl_version,
277 [ac_cv_perl_version=`$PERL -e "$perl_version_cmd"`])
278 PERL_VERSION=$ac_cv_perl_version
283 ###############################################################################
285 # Function to demand "bc". Losers.
287 ###############################################################################
289 AC_DEFUN(AC_DEMAND_BC,
290 [ac_bc_result=`echo 6+9 | bc 2>/dev/null`
291 AC_MSG_CHECKING([for bc])
292 if test "$ac_bc_result" = "15" ; then
297 AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard
298 part of Unix since the 1970s. Come back when your vendor
303 ###############################################################################
305 # Functions to check how to do ICMP PING requests.
307 ###############################################################################
309 AC_DEFUN(AC_CHECK_ICMP,
310 [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp,
311 [AC_TRY_COMPILE([#include <stdlib.h>
318 #include <sys/types.h>
319 #include <sys/time.h>
322 #include <sys/socket.h>
323 #include <netinet/in_systm.h>
324 #include <netinet/in.h>
325 #include <netinet/ip.h>
326 #include <netinet/ip_icmp.h>
327 #include <netinet/udp.h>
328 #include <arpa/inet.h>
332 struct sockaddr_in si;
334 i.icmp_type = ICMP_ECHO;
339 si.sin_family = AF_INET;
340 #if defined(__DECC) || defined(_IP_VHL)
346 [ac_cv_have_icmp=yes],
347 [ac_cv_have_icmp=no])])
348 if test "$ac_cv_have_icmp" = yes ; then
352 AC_DEFUN(AC_CHECK_ICMPHDR,
353 [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr,
354 [AC_TRY_COMPILE([#include <stdlib.h>
361 #include <sys/types.h>
362 #include <sys/time.h>
365 #include <sys/socket.h>
366 #include <netinet/in_systm.h>
367 #include <netinet/in.h>
368 #include <netinet/ip.h>
369 #include <netinet/ip_icmp.h>
370 #include <netinet/udp.h>
371 #include <arpa/inet.h>
375 struct sockaddr_in si;
381 i.un.echo.sequence = 0;
382 si.sin_family = AF_INET;
384 [ac_cv_have_icmphdr=yes],
385 [ac_cv_have_icmphdr=no])])
386 if test "$ac_cv_have_icmphdr" = yes ; then
387 AC_DEFINE(HAVE_ICMPHDR)
391 ###############################################################################
393 # Functions to check for various X11 crap.
395 ###############################################################################
397 # Try and find the app-defaults directory.
398 # It sucks that autoconf doesn't do this already...
400 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
402 if mkdir conftestdir; then
403 cd conftestdir 2>/dev/null
404 # Make sure to not put "make" in the Imakefile rules, since we grep it out.
405 cat > Imakefile <<'EOF'
407 @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
409 if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then
410 # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
411 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
417 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
418 # Look for the directory under a standard set of common directories.
419 # Check X11 before X11Rn because it's often a symlink to the current release.
421 /usr/X11/lib/app-defaults \
422 /usr/X11R6/lib/app-defaults \
423 /usr/X11R6/lib/X11/app-defaults \
424 /usr/X11R5/lib/app-defaults \
425 /usr/X11R5/lib/X11/app-defaults \
426 /usr/X11R4/lib/app-defaults \
427 /usr/X11R4/lib/X11/app-defaults \
429 /usr/lib/X11/app-defaults \
430 /usr/lib/X11R6/app-defaults \
431 /usr/lib/X11R5/app-defaults \
432 /usr/lib/X11R4/app-defaults \
434 /usr/local/X11/lib/app-defaults \
435 /usr/local/X11R6/lib/app-defaults \
436 /usr/local/X11R5/lib/app-defaults \
437 /usr/local/X11R4/lib/app-defaults \
439 /usr/local/lib/X11/app-defaults \
440 /usr/local/lib/X11R6/app-defaults \
441 /usr/local/lib/X11R6/X11/app-defaults \
442 /usr/local/lib/X11R5/app-defaults \
443 /usr/local/lib/X11R5/X11/app-defaults \
444 /usr/local/lib/X11R4/app-defaults \
445 /usr/local/lib/X11R4/X11/app-defaults \
447 /usr/X386/lib/X11/app-defaults \
448 /usr/x386/lib/X11/app-defaults \
449 /usr/XFree86/lib/X11/app-defaults \
451 /usr/lib/X11/app-defaults \
452 /usr/local/lib/X11/app-defaults \
453 /usr/unsupported/lib/X11/app-defaults \
454 /usr/athena/lib/X11/app-defaults \
455 /usr/local/x11r5/lib/X11/app-defaults \
456 /usr/lpp/Xamples/lib/X11/app-defaults \
457 /lib/usr/lib/X11/app-defaults \
459 /usr/openwin/lib/app-defaults \
460 /usr/openwin/lib/X11/app-defaults \
461 /usr/openwin/share/lib/app-defaults \
462 /usr/openwin/share/lib/X11/app-defaults \
464 /X11R6/lib/app-defaults \
465 /X11R5/lib/app-defaults \
466 /X11R4/lib/app-defaults \
469 if test -d "$ac_dir"; then
470 ac_x_app_defaults=$ac_dir
476 AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
478 AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
479 [AC_PATH_X_APP_DEFAULTS_XMKMF
480 if test x"$ac_x_app_defaults" = x; then
481 AC_PATH_X_APP_DEFAULTS_DIRECT
483 if test x"$ac_x_app_defaults" = x; then
484 ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
486 # Record where we found app-defaults for the cache.
487 ac_cv_x_app_defaults="$ac_x_app_defaults"
489 eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
492 AC_DEFUN(AC_XPOINTER,
493 [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
494 [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
495 [XPointer foo = (XPointer) 0;],
496 [ac_cv_xpointer=yes],
497 [ac_cv_xpointer=no])])
498 if test "$ac_cv_xpointer" != yes; then
499 AC_DEFINE(XPointer,[char*])
503 # Random special-cases for X on certain pathological OSes.
504 # You know who you are.
506 AC_DEFUN(AC_X_RANDOM_PATHS,
510 # The following arcana was gleaned from conversations with
511 # Eric Schwartz <erics@col.hp.com>:
513 # On HPUX 10.x, the parts of X that HP considers "standard" live in
514 # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider
515 # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
516 # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems.
517 # Also, there are symlinks from /usr/include/ and /usr/lib/ into
518 # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
519 # you don't need any -I or -L arguments.
521 # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
522 # are the same division as 10.x. However, there are no symlinks to
523 # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
524 # arguments are always necessary.
526 # However, X11R6 was available on HPUX 9.x as a patch: if that
527 # patch was installed, then all of X11R6 went in to
528 # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
530 # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
531 # whether R5 was available as a patch; R6 undoubtedly was not.)
533 # So. We try and use the highest numbered pair of
534 # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
535 # that are available. We do not mix and match different versions
538 # Question I still don't know the answer to: (do you?)
540 # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
541 # /usr/contrib/X11R6/ could be installed as a patch, what was in
542 # that contrib directory? Did it contain so-called "standard"
543 # X11R6, or did it include Xaw and Xmu as well? If the former,
544 # where did one find Xaw and Xmu on 9.x R6 systems? Would this
545 # be a situation where one had to reach into the R5 headers and
546 # libs to find Xmu? That is, must both R6 and R5 directories
547 # be on the -I and -L lists in that case?
549 for version in X11R6 X11R5 X11R4 ; do
550 # if either pair of directories exists...
551 if test -d /usr/include/$version || test -d /usr/contrib/$version/include
553 # if contrib exists, use it...
554 if test -d /usr/contrib/$version/include ; then
555 X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
556 X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
558 # if the "standard" one exists, use it.
559 if test -d /usr/include/$version ; then
560 X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
561 X_LIBS="$X_LIBS -L/usr/lib/$version"
563 # since at least one of the pair exists, go no farther.
568 # Now find Motif. Thanks for not making xmkmf find this by
569 # default, you losers.
571 if test -d /usr/include/Motif2.1 ; then
572 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif2.1"
573 X_LIBS="$X_LIBS -L/usr/lib/Motif2.1"
574 elif test -d /usr/include/Motif1.2 ; then
575 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
576 X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
577 elif test -d /usr/include/Motif1.1 ; then
578 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
579 X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
582 # Now let's check for the pseudo-standard locations for OpenGL and XPM.
584 if test -d /opt/graphics/OpenGL/include ; then
585 # HP-UX 10.20 puts it here
586 X_CFLAGS="-I/opt/graphics/OpenGL/include $X_CFLAGS"
587 X_LIBS="-L/opt/graphics/OpenGL/lib $X_LIBS"
588 elif test -d /opt/Mesa/lib ; then
589 X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
590 X_LIBS="-L/opt/Mesa/lib $X_LIBS"
594 if test -d /opt/xpm/lib/X11 ; then
595 X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
596 X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
599 # On HPUX, default to installing in /opt/xscreensaver/ instead of
600 # in /usr/local/, unless there is already an xscreensaver in
601 # /usr/local/bin/. This can be overridden with the --prefix arg
602 # to configure. I'm not sure this is the right thing to do, but
603 # Richard Lloyd says so...
605 if test \! -x /usr/local/bin/xscreensaver ; then
606 ac_default_prefix=/opt/xscreensaver
612 # Thanks for not making xmkmf find this by default, pinheads.
613 # And thanks for moving things around again, too. Is this
614 # really the standard location now? What happened to the
615 # joke that this kind of thing went in /opt?
616 # cthomp says "answer: CDE (Common Disorganized Environment)"
618 if test -f /usr/dt/include/Xm/Xm.h ; then
619 X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
620 MOTIF_LIBS="$MOTIF_LIBS -L/usr/dt/lib -R/usr/dt/lib"
622 # Some versions of Slowlaris Motif require -lgen. But not all. Why?
623 AC_CHECK_LIB(gen, regcmp, [MOTIF_LIBS="$MOTIF_LIBS -lgen"])
629 # On MacOS X (10.x with "fink"), many things are under /sw/.
631 if test -d /sw/include ; then
632 X_CFLAGS="-I/sw/include $X_CFLAGS"
633 X_LIBS="-L/sw/lib $X_LIBS"
640 ###############################################################################
642 # Some utility functions to make checking for X things easier.
644 ###############################################################################
646 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
648 AC_DEFUN(AC_CHECK_X_HEADER, [
649 ac_save_CPPFLAGS="$CPPFLAGS"
650 if test \! -z "$includedir" ; then
651 CPPFLAGS="$CPPFLAGS -I$includedir"
653 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
654 AC_CHECK_HEADER([$1],[$2],[$3],[$4])
655 CPPFLAGS="$ac_save_CPPFLAGS"])
657 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
659 AC_DEFUN(AC_EGREP_X_HEADER, [
660 ac_save_CPPFLAGS="$CPPFLAGS"
661 if test \! -z "$includedir" ; then
662 CPPFLAGS="$CPPFLAGS -I$includedir"
664 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
665 AC_EGREP_HEADER([$1], [$2], [$3], [$4])
666 CPPFLAGS="$ac_save_CPPFLAGS"])
668 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
670 AC_DEFUN(AC_TRY_X_COMPILE, [
671 ac_save_CPPFLAGS="$CPPFLAGS"
672 if test \! -z "$includedir" ; then
673 CPPFLAGS="$CPPFLAGS -I$includedir"
675 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
676 AC_TRY_COMPILE([$1], [$2], [$3], [$4])
677 CPPFLAGS="$ac_save_CPPFLAGS"])
680 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
681 # Use this sparingly; it probably doesn't work very well on X programs.
683 AC_DEFUN(AC_CHECK_X_LIB, [
684 ac_save_CPPFLAGS="$CPPFLAGS"
685 ac_save_LDFLAGS="$LDFLAGS"
686 # ac_save_LIBS="$LIBS"
688 if test \! -z "$includedir" ; then
689 CPPFLAGS="$CPPFLAGS -I$includedir"
691 # note: $X_CFLAGS includes $x_includes
692 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
694 if test \! -z "$libdir" ; then
695 LDFLAGS="$LDFLAGS -L$libdir"
697 # note: $X_LIBS includes $x_libraries
698 LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
700 AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
701 CPPFLAGS="$ac_save_CPPFLAGS"
702 LDFLAGS="$ac_save_LDFLAGS"
703 # LIBS="$ac_save_LIBS"
706 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
707 # (But not the -L directories!)
709 AC_DEFUN(AC_TRY_X_RUN, [
710 ac_save_CPPFLAGS="$CPPFLAGS"
711 if test \! -z "$includedir" ; then
712 CPPFLAGS="$CPPFLAGS -I$includedir"
714 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
715 AC_TRY_RUN([$1], [$2], [$3], [$4])
716 CPPFLAGS="$ac_save_CPPFLAGS"])
720 # Usage: HANDLE_X_PATH_ARG([variable_name],
721 # [--command-line-option],
722 # [descriptive string])
724 # All of the --with options take three forms:
726 # --with-foo (or --with-foo=yes)
727 # --without-foo (or --with-foo=no)
730 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees
731 # a directory (string beginning with a slash) it checks to see whether
732 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
735 AC_DEFUN(HANDLE_X_PATH_ARG, [
741 AC_MSG_CHECKING([for [$3] headers])
744 X_CFLAGS="-I$d $X_CFLAGS"
747 AC_MSG_RESULT(not found ($d: no such directory))
750 AC_MSG_CHECKING([for [$3] libs])
753 X_LIBS="-L$d $X_LIBS"
756 AC_MSG_RESULT(not found ($d: no such directory))
759 # replace the directory string with "yes".
766 echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
767 echo " If it is a directory, then \`DIR/include' will be added to"
768 echo " the -I list, and \`DIR/lib' will be added to the -L list."
776 ###############################################################################
777 ###############################################################################
779 # End of function definitions. Now start actually executing stuff.
781 ###############################################################################
782 ###############################################################################
784 # random compiler setup
787 AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
795 # stuff for Makefiles
800 # By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'.
801 # That's wrong: it should be set to '${INSTALL}', so that one can
802 # implement the "install-strip" target properly (strip executables,
803 # but do not try to strip scripts.)
805 INSTALL_SCRIPT='${INSTALL}'
809 AC_CHECK_HEADERS(unistd.h)
818 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk)
820 AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
823 AC_CHECK_HEADERS(crypt.h sys/select.h)
826 if test -z "$PERL" ; then
827 # don't let it be blank...
833 if test "$have_x" != yes; then
834 AC_MSG_ERROR(Couldn't find X11 headers/libs. Try \`$0 --help'.)
837 AC_PATH_X_APP_DEFAULTS
842 ###############################################################################
846 ###############################################################################
849 GETTEXT_PACKAGE=xscreensaver
850 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE")
851 AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE")
852 AC_SUBST(GETTEXT_PACKAGE)
854 ALL_LINGUAS="ca da de es et fi fr hu it ja ko nl no pl pt pt_BR ru sk sv vi wa zh_CN zh_TW"
858 ###############################################################################
860 # Check for -lXmu (some fucked up vendors don't ship it...)
862 ###############################################################################
865 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes],,
868 #include <X11/Intrinsic.h>])
869 if test "$have_xmu" = no ; then
870 XMU_SRCS='$(UTILS_SRC)/xmu.c'
871 XMU_OBJS='$(UTILS_BIN)/xmu.o'
881 ###############################################################################
883 # Check for the SunOS 4.1.x _get_wmShellWidgetClass bug.
884 # See comp.windows.x FAQ question 124. The right fix is to
885 # get OpenWindows 3.0 patches 100512-02 and 100573-03.
887 ###############################################################################
889 if test "$have_xmu" = yes ; then
892 AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
894 [ac_save_LDFLAGS="$LDFLAGS"
895 if test \! -z "$x_libraries" ; then
896 LDFLAGS="$LDFLAGS -L$x_libraries"
898 # Note: this trick never works! (Generally.)
899 # We're only getting away with using AC_TRY_LINK
900 # with X libraries because we know it's SunOS.
901 LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
903 [ac_cv_sunos_xmu_bug=no],
904 [ac_cv_sunos_xmu_bug=yes])
905 LDFLAGS="$ac_save_LDFLAGS"])
906 if test "$ac_cv_sunos_xmu_bug" = yes ; then
907 AC_CACHE_CHECK([whether the compiler understands -static],
909 [ac_save_LDFLAGS="$LDFLAGS"
910 LDFLAGS="$LDFLAGS -static"
911 AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
912 LDFLAGS="$ac_save_LDFLAGS"])
913 if test "$ac_cv_ld_static" = yes ; then
914 LDFLAGS="$LDFLAGS -static"
916 LDFLAGS="$LDFLAGS -Bstatic"
924 ###############################################################################
926 # Handle the --with-hackdir option
928 ###############################################################################
931 with_hackdir_req=unspecified
932 AC_ARG_WITH(hackdir,[
933 Installation options:
935 --with-hackdir=DIR Where to install the hundreds of demo executables.
936 Default: \`PREFIX/lib/xscreensaver/'],
937 [with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes])
939 if test x"$with_hackdir" = xyes; then
940 HACKDIR='${exec_prefix}/lib/xscreensaver'
941 elif test x"$with_hackdir" = xno; then
944 # there must be a better way than this...
945 if test -z "`echo $with_hackdir | sed 's@^/.*@@'`" ; then
947 HACKDIR=$with_hackdir
950 HACKDIR="\${exec_prefix}$with_hackdir"
954 # canonicalize slashes.
955 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
957 # This option used to be called --enable-subdir; make sure that is no longer
958 # used, since configure brain-damagedly ignores unknown --enable options.
961 AC_ARG_ENABLE(subdir,,[obsolete_enable=yes])
962 if test -n "$obsolete_enable"; then
963 echo "error: the --enable-subdir option has been replaced with"
964 echo " the new --with-hackdir option; see \`configure --help'"
965 echo " for more information."
970 ###############################################################################
972 # Handle the --with-configdir option
974 ###############################################################################
977 with_configdir_req=unspecified
978 AC_ARG_WITH(configdir,
979 [ --with-configdir=DIR Where to install the data files that describe each
980 of the display modes to the GUI.
981 Default: \`GNOMEPREFIX/control-center/screensavers/'
982 or \`PREFIX/lib/xscreensaver/config/', depending on
983 whether GNOME is available.
985 [with_configdir="$withval"; with_configdir_req="$withval"],
986 [with_configdir=yes])
988 if test x"$with_configdir" = xyes; then
991 elif test x"$with_configdir" = xno; then
992 echo "error: must be yes, or a pathname: --with-configdir=$with_configdir"
995 # there must be a better way than this...
996 if test -z "`echo $with_configdir | sed 's@^/.*@@'`" ; then
998 HACK_CONF_DIR=$with_configdir
1001 HACK_CONF_DIR="\${exec_prefix}$with_configdir"
1008 ###############################################################################
1010 # Check for the SGI SCREEN_SAVER server extension.
1012 ###############################################################################
1015 with_sgi_req=unspecified
1016 AC_ARG_WITH(sgi-ext,
1017 [Except where noted, all of the --with options below can also take a
1018 directory argument: for example, \`--with-motif=/opt/Motif'. That would
1019 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
1020 to be added to the -L list, assuming those directories exist.
1022 By default, support for each of these options will be built in, if the
1023 relevant library routines exist. At run time, they will then be used
1024 only if the X server being used supports them. Each --with option has
1025 a corresponding --without option, to override building support for them
1028 Screen blanking and idle-detection options:
1030 --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.],
1031 [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
1033 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
1035 if test "$with_sgi" = yes; then
1036 AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
1038 AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],,
1039 [#include <X11/Xlib.h>])
1041 elif test "$with_sgi" != no; then
1042 echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
1047 ###############################################################################
1049 # Check for the MIT-SCREEN-SAVER server extension.
1051 ###############################################################################
1054 with_mit_req=unspecified
1055 AC_ARG_WITH(mit-ext,
1056 [ --with-mit-ext Include support for the MIT-SCREEN-SAVER extension.],
1057 [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
1059 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
1061 if test "$with_mit" = yes; then
1062 AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes],,
1063 [#include <X11/Xlib.h>])
1065 # Now check to see if it's really in the library; XF86Free-3.3 ships
1066 # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
1068 if test "$have_mit" = yes; then
1069 AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [true], [have_mit=no], -lm)
1071 if test "$have_mit" = no; then
1072 # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead
1073 # of in Xext. Thank you master, may I have another.
1074 AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
1075 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
1076 [true], -lX11 -lXext -lm)
1079 if test "$have_mit" = no; then
1080 # Double fuck! Looks like some versions of XFree86 (whichever version
1081 # it is that comes with RedHat Linux 2.0 -- I can't find a version
1082 # number) put this garbage in Xss instead of Xext. Thank you master,
1083 # may I have another.
1084 AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
1085 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
1086 [true], -lX11 -lXext -lm)
1089 if test "$have_mit" = yes; then
1090 AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
1095 elif test "$with_mit" != no; then
1096 echo "error: must be yes or no: --with-mit-ext=$with_mit"
1101 ###############################################################################
1103 # Check for the XIDLE server extension.
1105 ###############################################################################
1108 with_xidle_req=unspecified
1109 AC_ARG_WITH(xidle-ext,
1110 [ --with-xidle-ext Include support for the XIDLE extension.],
1111 [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
1113 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
1115 if test "$with_xidle" = yes; then
1116 AC_CHECK_X_HEADER(X11/extensions/xidle.h,
1118 AC_DEFINE(HAVE_XIDLE_EXTENSION)],,
1119 [#include <X11/Xlib.h>])
1120 elif test "$with_xidle" != no; then
1121 echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
1126 ###############################################################################
1128 # Check for the SGI-VIDEO-CONTROL server extension.
1130 ###############################################################################
1133 with_sgivc_req=unspecified
1134 AC_ARG_WITH(sgivc-ext,
1135 [ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension.],
1136 [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
1138 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
1140 if test "$with_sgivc" = yes; then
1142 # first check for XSGIvc.h
1143 AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],,
1144 [#include <X11/Xlib.h>])
1146 # if that succeeded, then check for the -lXsgivc
1147 if test "$have_sgivc" = yes; then
1149 AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
1150 [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
1154 # if that succeeded, then we've really got it.
1155 if test "$have_sgivc" = yes; then
1156 AC_DEFINE(HAVE_SGI_VC_EXTENSION)
1159 elif test "$with_sgivc" != no; then
1160 echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
1165 ###############################################################################
1167 # Check for the DPMS server extension.
1169 ###############################################################################
1172 with_dpms_req=unspecified
1173 AC_ARG_WITH(dpms-ext,
1174 [ --with-dpms-ext Include support for the DPMS extension.],
1175 [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
1177 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
1179 if test "$with_dpms" = yes; then
1181 # first check for dpms.h
1182 AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes],,
1183 [#include <X11/Xlib.h>
1184 #include <X11/Xmd.h>])
1186 # if that succeeded, then check for the DPMS code in the libraries
1187 if test "$have_dpms" = yes; then
1189 # first look in -lXext (this is where it is with XFree86 4.0)
1191 AC_CHECK_X_LIB(Xext, DPMSInfo, [have_dpms=yes], [true], -lXext -lX11)
1193 # if that failed, look in -lXdpms (this is where it was in XFree86 3.x)
1194 if test "$have_dpms" = no; then
1195 AC_CHECK_X_LIB(Xdpms, DPMSInfo,
1196 [have_dpms=yes; XDPMS_LIBS="-lXdpms"], [true],
1202 # if that succeeded, then we've really got it.
1203 if test "$have_dpms" = yes; then
1204 AC_DEFINE(HAVE_DPMS_EXTENSION)
1207 elif test "$with_dpms" != no; then
1208 echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
1213 ###############################################################################
1215 # Check for the XINERAMA server extension.
1217 ###############################################################################
1220 with_xinerama_req=unspecified
1221 AC_ARG_WITH(xinerama-ext,
1222 [ --with-xinerama-ext Include support for the XINERAMA extension.],
1223 [with_xinerama="$withval"; with_xinerama_req="$withval"],[with_xinerama=yes])
1225 HANDLE_X_PATH_ARG(with_xinerama, --with-xinerama-ext, XINERAMA)
1227 if test "$with_xinerama" = yes; then
1229 # first check for Xinerama.h
1230 AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes],,
1231 [#include <X11/Xlib.h>])
1233 # if that succeeded, then check for the XINERAMA code in the libraries
1234 if test "$have_xinerama" = yes; then
1236 # first look in -lXext
1238 AC_CHECK_X_LIB(Xext, XineramaQueryExtension, [have_xinerama=yes], [true],
1241 # if that failed, look in -lXinerama (this is where it is in XFree86 4.1.)
1242 if test "$have_xinerama" = no; then
1243 AC_CHECK_X_LIB(Xinerama, XineramaQueryExtension,
1244 [have_xinerama=yes; SAVER_LIBS="$SAVER_LIBS -lXinerama"],
1245 [true], -lXext -lX11)
1249 # if that succeeded, then we've really got it.
1250 if test "$have_xinerama" = yes; then
1251 AC_DEFINE(HAVE_XINERAMA)
1254 elif test "$with_xinerama" != no; then
1255 echo "error: must be yes or no: --with-xinerama-ext=$with_xinerama"
1260 ###############################################################################
1262 # Check for the XF86VMODE server extension (for virtual screens.)
1264 ###############################################################################
1267 with_xf86vmode_req=unspecified
1268 AC_ARG_WITH(xf86vmode-ext,
1269 [ --with-xf86vmode-ext Include support for XFree86 virtual screens.],
1270 [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"],
1271 [with_xf86vmode=yes])
1273 HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
1275 if test "$with_xf86vmode" = yes; then
1277 # first check for xf86vmode.h
1278 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],,
1279 [#include <X11/Xlib.h>])
1281 # if that succeeded, then check for the -lXxf86vm
1282 if test "$have_xf86vmode" = yes; then
1284 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
1285 [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
1286 [true], -lXext -lX11)
1289 # if that succeeded, then we've really got it.
1290 if test "$have_xf86vmode" = yes; then
1291 AC_DEFINE(HAVE_XF86VMODE)
1294 elif test "$with_xf86vmode" != no; then
1295 echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
1300 ###############################################################################
1302 # Check for the XF86VMODE server extension (for gamma fading.)
1304 ###############################################################################
1307 have_xf86gamma_ramp=no
1308 with_xf86gamma_req=unspecified
1309 AC_ARG_WITH(xf86gamma-ext,
1310 [ --with-xf86gamma-ext Include support for XFree86 gamma fading.],
1311 [with_xf86gamma="$withval"; with_xf86gamma_req="$withval"],
1312 [with_xf86gamma=yes])
1314 HANDLE_X_PATH_ARG(with_xf86gamma, --with-xf86gamma-ext, xf86gamma)
1316 if test "$with_xf86gamma" = yes; then
1318 # first check for xf86vmode.h, if we haven't already
1319 if test "$have_xf86vmode" = yes; then
1322 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],,
1323 [#include <X11/Xlib.h>])
1326 # if that succeeded, then check for the -lXxf86vm
1327 if test "$have_xf86gamma" = yes; then
1329 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGamma,
1330 [have_xf86gamma=yes],
1331 [true], -lXext -lX11)
1334 # check for the Ramp versions of the functions too.
1335 if test "$have_xf86gamma" = yes; then
1336 have_xf86gamma_ramp=no
1337 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGammaRamp,
1338 [have_xf86gamma_ramp=yes],
1339 [true], -lXext -lX11)
1342 # if those tests succeeded, then we've really got the functions.
1343 if test "$have_xf86gamma" = yes; then
1344 AC_DEFINE(HAVE_XF86VMODE_GAMMA)
1347 if test "$have_xf86gamma_ramp" = yes; then
1348 AC_DEFINE(HAVE_XF86VMODE_GAMMA_RAMP)
1351 # pull in the lib, if we haven't already
1352 if test "$have_xf86gamma" = yes -a "$have_xf86vmode" = no; then
1353 SAVER_LIBS="$SAVER_LIBS -lXxf86vm"
1356 elif test "$with_xf86gamma" != no; then
1357 echo "error: must be yes or no: --with-xf86gamma-ext=$with_xf86vmode"
1362 ###############################################################################
1364 # Check for XF86MiscSetGrabKeysState (but only bother if we are already
1365 # using other XF86 stuff.)
1367 ###############################################################################
1369 have_xf86miscsetgrabkeysstate=no
1370 if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then
1371 AC_CHECK_X_LIB(Xxf86misc, XF86MiscSetGrabKeysState,
1372 [have_xf86miscsetgrabkeysstate=yes],
1373 [true], -lXext -lX11)
1374 if test "$have_xf86miscsetgrabkeysstate" = yes ; then
1375 SAVER_LIBS="$SAVER_LIBS -lXxf86misc"
1376 AC_DEFINE(HAVE_XF86MISCSETGRABKEYSSTATE)
1381 ###############################################################################
1383 # Check for HP XHPDisableReset and XHPEnableReset.
1385 ###############################################################################
1387 AC_MSG_CHECKING([for XHPDisableReset in X11/XHPlib.h])
1388 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
1389 [AC_DEFINE(HAVE_XHPDISABLERESET)
1390 SAVER_LIBS="-lXhp11 $SAVER_LIBS"
1391 AC_MSG_RESULT(yes)],
1392 [AC_MSG_RESULT(no)])
1395 ###############################################################################
1397 # Check for /proc/interrupts.
1399 ###############################################################################
1401 have_proc_interrupts=no
1402 with_proc_interrupts_req=unspecified
1403 AC_ARG_WITH(proc-interrupts,
1404 [ --with-proc-interrupts Include support for consulting the /proc/interrupts
1405 file to notice keyboard activity.],
1406 [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
1407 [with_proc_interrupts=yes])
1409 if test "$with_proc_interrupts" = yes; then
1411 AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
1412 ac_cv_have_proc_interrupts,
1413 [ac_cv_have_proc_interrupts=no
1414 if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
1415 ac_cv_have_proc_interrupts=yes
1418 have_proc_interrupts=$ac_cv_have_proc_interrupts
1420 if test "$have_proc_interrupts" = yes; then
1421 AC_DEFINE(HAVE_PROC_INTERRUPTS)
1424 elif test "$with_proc_interrupts" != no; then
1425 echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
1430 ###############################################################################
1432 # The --enable-locking option
1434 ###############################################################################
1436 AC_ARG_ENABLE(locking,[
1437 Screen locking options:
1439 --enable-locking Compile in support for locking the display.
1440 --disable-locking Do not allow locking at all.],
1441 [enable_locking="$enableval"],[enable_locking=yes])
1442 if test "$enable_locking" = yes; then
1444 elif test "$enable_locking" = no; then
1445 AC_DEFINE(NO_LOCKING)
1447 echo "error: must be yes or no: --enable-locking=$enable_locking"
1453 ###############################################################################
1455 # The --enable-vt-locking option
1457 ###############################################################################
1459 #ac_vt_lockswitch=no
1460 #AC_ARG_ENABLE(vt-locking,[
1461 # --enable-vt-locking Compile in support for locking Virtual Terminals.
1462 # This is the default if the system supports it, and
1463 # if locking support is included (--enable-locking.)
1464 # --disable-vt-locking Do not allow locking of VTs, even if locking is
1466 # [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1467 #if test "$enable_vt_locking" = yes; then
1469 # AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1470 # [AC_TRY_COMPILE([#include <fcntl.h>
1471 # #include <sys/ioctl.h>
1472 # #include <sys/vt.h>],
1473 # [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1474 # [ac_cv_vt_lockswitch=yes],
1475 # [ac_cv_vt_lockswitch=no])])
1476 # ac_vt_lockswitch=$ac_cv_vt_lockswitch
1478 #elif test "$enable_vt_locking" = no; then
1481 # echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1485 #if test "$ac_vt_lockswitch" = yes; then
1486 # AC_DEFINE(HAVE_VT_LOCKSWITCH)
1487 # # the VT_LOCKSWITCH ioctl can only be used when running as root.
1488 # # #### but it doesn't work yet, so don't worry about that for now.
1493 ###############################################################################
1497 ###############################################################################
1501 # Solaris systems tend to come with PAM misconfigured.
1502 # Don't build it by default, even if the headers exist.
1506 # Default to building PAM support on all other systems, if it exists.
1507 with_pam_default=yes
1512 with_pam_req=unspecified
1515 [ --with-pam Include support for PAM (Pluggable Auth Modules.)],
1516 [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1518 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1520 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1521 AC_CACHE_CHECK([for PAM], ac_cv_pam,
1522 [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1525 if test "$ac_cv_pam" = yes ; then
1528 PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1530 # libpam typically requires dlopen and dlsym. On FreeBSD,
1531 # those are in libc. On Linux and Solaris, they're in libdl.
1532 AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1534 AC_MSG_CHECKING(how to call pam_strerror)
1535 AC_CACHE_VAL(ac_cv_pam_strerror_args,
1536 [AC_TRY_COMPILE([#include <stdio.h>
1538 #include <security/pam_appl.h>],
1539 [pam_handle_t *pamh = 0;
1540 char *s = pam_strerror(pamh, PAM_SUCCESS);],
1541 [ac_pam_strerror_args=2],
1542 [AC_TRY_COMPILE([#include <stdio.h>
1544 #include <security/pam_appl.h>],
1546 pam_strerror(PAM_SUCCESS);],
1547 [ac_pam_strerror_args=1],
1548 [ac_pam_strerror_args=0])])
1549 ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1550 ac_pam_strerror_args=$ac_cv_pam_strerror_args
1551 if test "$ac_pam_strerror_args" = 1 ; then
1552 AC_MSG_RESULT(one argument)
1553 elif test "$ac_pam_strerror_args" = 2 ; then
1554 AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1555 AC_MSG_RESULT(two arguments)
1557 AC_MSG_RESULT(unknown)
1563 ###############################################################################
1565 # Check for Kerberos.
1567 ###############################################################################
1571 with_kerberos_req=unspecified
1573 AC_ARG_WITH(kerberos,
1574 [ --with-kerberos Include support for Kerberos authentication.],
1575 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1577 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1579 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1580 AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
1581 [AC_TRY_X_COMPILE([#include <krb.h>],,
1582 [ac_cv_kerberos=yes],
1583 [ac_cv_kerberos=no])])
1584 AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
1585 [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
1586 [ac_cv_kerberos5=yes],
1587 [ac_cv_kerberos5=no])])
1589 if test "$ac_cv_kerberos" = yes ; then
1591 AC_DEFINE(HAVE_KERBEROS)
1594 if test "$ac_cv_kerberos5" = yes ; then
1596 # Andrew Snare <ajs@pigpond.com> wrote:
1598 # You were assuming that if kerberosV (krb5) was found, then kerberosIV
1599 # (krb4) was also available. This turns out not to be the case with
1600 # mit-krb-1.2.7; apparently backwards-compatibility with KerberosIV
1603 # So, disable kerberosV support if libkrb4 can't be found.
1604 # This is not the best solution, but it makes the compile not fail.
1606 AC_CHECK_X_LIB(krb4, krb_get_tf_realm,
1607 [have_kerberos=yes],
1609 if test "$have_kerberos" = yes ; then
1611 AC_DEFINE(HAVE_KERBEROS)
1612 AC_DEFINE(HAVE_KERBEROS5)
1615 AC_MSG_WARN([Cannot find compat lib (libkrb4) needed to use Kerberos 5])
1620 if test "$have_kerberos5" = yes ; then
1621 # from Matt Knopp <mhat@infocalypse.netlag.com>
1622 # (who got it from amu@mit.edu)
1624 PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"
1626 # jwz: MacOS X uses -lkrb5, but not -lcrypt
1627 AC_CHECK_X_LIB(crypt, crypt, [PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1629 elif test "$have_kerberos" = yes ; then
1630 # from Tim Showalter <tjs@psaux.com> for FreeBSD 4.2
1631 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err"
1634 if test "$have_kerberos" = yes ; then
1635 AC_CHECK_FUNC(res_search,,
1636 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1637 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1643 ###############################################################################
1645 # Check for the nine billion variants of shadow passwords...
1647 ###############################################################################
1652 with_shadow_req=unspecified
1655 [ --with-shadow Include support for shadow password authentication.],
1656 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1658 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1660 if test "$enable_locking" = no ; then
1666 ###############################################################################
1668 # Check for Sun "adjunct" passwords.
1670 ###############################################################################
1672 if test "$with_shadow" = yes ; then
1673 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1674 [AC_TRY_X_COMPILE([#include <stdlib.h>
1676 #include <sys/types.h>
1677 #include <sys/label.h>
1678 #include <sys/audit.h>
1679 #include <pwdadj.h>],
1680 [struct passwd_adjunct *p = getpwanam("nobody");
1681 const char *pw = p->pwa_passwd;],
1682 [ac_cv_sun_adjunct=yes],
1683 [ac_cv_sun_adjunct=no])])
1684 if test "$ac_cv_sun_adjunct" = yes; then
1685 have_shadow_adjunct=yes
1692 ###############################################################################
1694 # Check for DEC and SCO so-called "enhanced" security.
1696 ###############################################################################
1698 if test "$with_shadow" = yes ; then
1699 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1700 [AC_TRY_X_COMPILE([#include <stdlib.h>
1702 #include <sys/types.h>
1704 #include <sys/security.h>
1706 [struct pr_passwd *p;
1708 set_auth_parameters(0, 0);
1709 check_auth_parameters();
1710 p = getprpwnam("nobody");
1711 pw = p->ufld.fd_encrypt;],
1712 [ac_cv_enhanced_passwd=yes],
1713 [ac_cv_enhanced_passwd=no])])
1714 if test $ac_cv_enhanced_passwd = yes; then
1715 have_shadow_enhanced=yes
1719 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1720 # (I'm told it needs -lcurses too, but I don't understand why.)
1721 # But on DEC, it's in -lsecurity.
1723 AC_CHECK_LIB(prot, getprpwnam,
1724 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1725 [AC_CHECK_LIB(security, getprpwnam,
1726 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1731 ###############################################################################
1733 # Check for HP's entry in the "Not Invented Here" Sweepstakes.
1735 ###############################################################################
1737 if test "$with_shadow" = yes ; then
1738 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1739 [AC_TRY_X_COMPILE([#include <stdlib.h>
1741 #include <sys/types.h>
1743 #include <hpsecurity.h>
1745 [struct s_passwd *p = getspwnam("nobody");
1746 const char *pw = p->pw_passwd;],
1747 [ac_cv_hpux_passwd=yes],
1748 [ac_cv_hpux_passwd=no])])
1749 if test "$ac_cv_hpux_passwd" = yes; then
1750 have_shadow_hpux=yes
1754 # on HPUX, bigcrypt is in -lsec
1755 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1760 ###############################################################################
1762 # Check for FreeBSD-style shadow passwords.
1764 # On FreeBSD, getpwnam() and friends work just like on non-shadow-
1765 # password systems -- except you only get stuff in the pw_passwd field
1766 # if the running program is setuid. So, guess that we've got this
1767 # lossage to contend with if /etc/master.passwd exists, and default to
1768 # a setuid installation.
1770 ###############################################################################
1772 if test "$with_shadow" = yes ; then
1773 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1774 [if test -f /etc/master.passwd ; then
1775 ac_cv_master_passwd=yes
1777 ac_cv_master_passwd=no
1779 if test "$ac_cv_master_passwd" = yes; then
1785 ###############################################################################
1787 # Check for traditional (ha!) shadow passwords.
1789 ###############################################################################
1791 if test "$with_shadow" = yes ; then
1792 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1793 [AC_TRY_X_COMPILE([#include <stdlib.h>
1795 #include <sys/types.h>
1797 #include <shadow.h>],
1798 [struct spwd *p = getspnam("nobody");
1799 const char *pw = p->sp_pwdp;],
1801 [ac_cv_shadow=no])])
1802 if test "$ac_cv_shadow" = yes; then
1806 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1808 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1809 if test "$have_getspnam" = no ; then
1810 AC_CHECK_LIB(gen, getspnam,
1811 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1817 ###############################################################################
1819 # Check for other libraries needed for non-shadow passwords.
1821 ###############################################################################
1823 if test "$enable_locking" = yes ; then
1825 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1827 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1828 if test "$have_crypt" = no ; then
1829 AC_CHECK_LIB(crypt, crypt,
1830 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1835 # Most of the above shadow mechanisms will have set need_setuid to yes,
1836 # if they were found. But, on some systems, we need setuid even when
1837 # using plain old vanilla passwords.
1839 if test "$enable_locking" = yes ; then
1841 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1848 if test "$have_shadow_adjunct" = yes ; then
1849 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1850 elif test "$have_shadow_enhanced" = yes ; then
1851 AC_DEFINE(HAVE_ENHANCED_PASSWD)
1852 elif test "$have_shadow_hpux" = yes ; then
1853 AC_DEFINE(HAVE_HPUX_PASSWD)
1854 elif test "$have_shadow" = yes ; then
1855 AC_DEFINE(HAVE_SHADOW_PASSWD)
1859 ###############################################################################
1863 ###############################################################################
1866 with_motif_req=unspecified
1868 User interface options:
1870 --with-motif Use the Motif toolkit for the user interface
1871 (not recommended.)],
1872 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=yes])
1874 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
1876 if test "$with_motif" != yes -a "$with_motif" != no ; then
1877 echo "error: must be yes or no: --with-motif=$with_motif"
1881 if test "$with_motif" = yes; then
1883 AC_CHECK_X_HEADER(Xm/Xm.h,
1885 AC_DEFINE(HAVE_MOTIF)
1886 MOTIF_LIBS="$MOTIF_LIBS -lXm"],,
1887 [#include <stdlib.h>
1889 #include <X11/Intrinsic.h>])
1893 if test "$have_motif" = yes; then
1894 AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],,
1895 [#include <stdlib.h>
1897 #include <X11/Intrinsic.h>])
1901 ###############################################################################
1903 # Check for -lgtk (and Gnome stuff)
1905 ###############################################################################
1909 with_gtk_req=unspecified
1911 [ --with-gtk Use the Gtk toolkit for the user interface.],
1912 [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
1914 # if --with-gtk=/directory/ was specified, remember that directory so that
1915 # we can also look for the `gtk-config' program in that directory.
1925 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
1927 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
1928 echo "error: must be yes or no: --with-gtk=$with_gtk"
1933 with_gnome_req=unspecified
1935 [ --with-gnome Include support for the Gnome 1.x Control Center.
1936 (This option is not needed with GTK 2.x / Gnome 2.x.)
1938 [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
1940 # if --with-gnome=/directory/ was specified, remember that directory so that
1941 # we can also look for the `gnome-config' program in that directory.
1942 case "$with_gnome" in
1944 gnome_dir="$with_gnome"
1951 HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome)
1953 if test "$with_gnome" != yes -a "$with_gnome" != no ; then
1954 echo "error: must be yes or no: --with-gnome=$with_gnome"
1958 parse_gtk_version_string() {
1961 maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
1962 min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
1964 ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
1965 if test -z "$ac_gtk_version"; then
1966 ac_gtk_version=unknown
1967 ac_gtk_version_string=unknown
1975 if test "$with_gtk" = yes; then
1978 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
1979 # look in /foo/bin/ for glib-config, gtk-config, and gnome-config.
1983 if test ! -z "$gtk_dir"; then
1984 # canonicalize slashes.
1985 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
1986 gtk_path="$foo:$gtk_path"
1989 if test ! -z "$gnome_dir"; then
1990 # canonicalize slashes.
1991 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
1992 gtk_path="$foo:$gtk_path"
1995 AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path)
1997 if test -n "$pkg_config" ; then
2000 # run pkg-config based tests.
2003 pkg_check_version() {
2004 if test "$ok" = yes ; then
2007 AC_MSG_CHECKING(for $req)
2008 if $pkg_config --exists "$req" ; then
2009 vers=`$pkg_config --modversion "$req"`
2010 if $pkg_config --exists "$req >= $min" ; then
2011 AC_MSG_RESULT($vers)
2015 AC_MSG_RESULT($vers (wanted >= $min))
2027 AC_MSG_RESULT(checking for GTK 2.x with pkg-config based tests...)
2030 pkg_check_version gtk+-2.0 2.0.1 ; ac_gtk_version_string="$vers"
2031 pkg_check_version gmodule-2.0 2.0.0
2032 pkg_check_version libxml-2.0 2.4.6
2033 pkg_check_version libglade-2.0 1.99.0
2034 # pkg_check_version gdk_pixbuf 0.1
2037 if test "$have_gtk" = yes; then
2039 AC_DEFINE(HAVE_GTK2)
2041 if test -n "$ac_gtk_version_string" ; then
2042 gtk2_halfassed="$ac_gtk_version_string"
2043 gtk2_halfassed_lib="$req"
2047 if test "$have_gtk" = no; then
2049 # we don't have GTK 2. Let's look for GTK 1.
2051 AC_MSG_RESULT(checking for GTK 1.x with pkg-config based tests...)
2055 pkg_check_version gtk+ 1.2 ; ac_gtk_version_string="$vers"
2056 pkg_check_version glib 1.0
2057 pkg_check_version gdk_pixbuf 0.1
2060 # Now check for Gnome...
2062 if test "$have_gtk" = yes -a "$with_gnome" = yes; then
2065 pkg_check_version capplet 1.0
2066 pkg_check_version gnomeui 1.0
2067 pkg_check_version gdk_pixbuf 0.1
2070 if test "$have_gnome" = no; then
2073 AC_DEFINE(HAVE_CRAPPLET)
2078 if test "$have_gtk" = yes; then
2079 parse_gtk_version_string
2085 if test "$have_gtk" = yes; then
2086 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
2087 [ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`])
2088 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
2089 [ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs`])
2091 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
2092 ac_gtk_config_libs=$ac_cv_gtk_config_libs
2094 ac_gnome_config_cflags=$ac_gtk_config_cflags
2095 ac_gnome_config_libs=$ac_gtk_config_libs
2100 # run {gnome,gtk}-config based tests.
2102 AC_MSG_RESULT(checking for GTK 1.x with gtk-config based tests...)
2104 AC_PATH_PROGS(glib_config, glib12-config glib-config,, $gtk_path)
2105 AC_PATH_PROGS(gtk_config, gtk12-config gtk-config,, $gtk_path)
2107 if test "$with_gnome" = yes; then
2108 AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
2111 if test -n "$glib_config" -a -n "$gtk_config" ; then
2113 if test "$with_gnome" = yes -a -n "$gnome_config" ; then
2118 if test "$have_gtk" = yes; then
2119 AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
2120 [ac_cv_gtk_version_string=`$gtk_config --version`])
2121 ac_gtk_version_string=$ac_cv_gtk_version_string
2122 parse_gtk_version_string
2125 if test "$have_gtk" = yes; then
2126 if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
2134 if test "$have_gtk" = yes; then
2135 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
2136 [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
2137 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
2138 [ac_cv_gtk_config_libs=`$gtk_config --libs`])
2140 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
2141 ac_gtk_config_libs=$ac_cv_gtk_config_libs
2143 # Check for Gnome Capplet support.
2144 # Note that this is only needed with Gnome 1.x, not Gnome 2.x.
2145 # In a Gnome 2.x world, libcapplet will not exist.
2146 # (In fact, this likely won't even be checked, since in a Gnome 2.x
2147 # world, we will probably be up in the "$pkg_config" branch instead
2148 # of here in the "$gnome_config" branch.)
2150 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2151 gnome_config_libs="gtk capplet gnomeui gdk_pixbuf"
2152 AC_MSG_CHECKING(for Gnome capplet includes)
2153 AC_CACHE_VAL(ac_cv_gnome_config_cflags,
2154 [if ( $gnome_config --cflags $gnome_config_libs 2>&1 | \
2155 grep Unknown >/dev/null ) ; then
2156 ac_cv_gnome_config_cflags=''
2158 ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
2160 ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
2161 if test "$ac_gnome_config_cflags" = "" ; then
2165 AC_MSG_RESULT($ac_gnome_config_cflags)
2169 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2170 AC_MSG_CHECKING(for Gnome capplet libs)
2171 AC_CACHE_VAL(ac_cv_gnome_config_libs,
2172 [if ( $gnome_config --libs $gnome_config_libs 2>&1 |
2173 grep Unknown >/dev/null ) ; then
2174 ac_cv_gnome_config_libs=''
2176 ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
2178 ac_gnome_config_libs=$ac_cv_gnome_config_libs
2179 if test "$ac_gnome_config_libs" = "" ; then
2183 AC_MSG_RESULT($ac_gnome_config_libs)
2187 # If we have Gnome, then override the gtk-config values with
2188 # the gnome-config values.
2190 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2191 ac_gtk_config_cflags=$ac_gnome_config_cflags
2192 ac_gtk_config_libs=$ac_gnome_config_libs
2193 AC_DEFINE(HAVE_CRAPPLET)
2196 fi # end of {gnome,gtk}-config based tests
2198 if test "$have_gtk" = yes -a "$have_gtk2" = no; then
2199 # check for this function that was not in libcapplet 1.2.
2200 # (only needed in Gnome/Gtk 1.x, not Gnome/Gtk 2.x)
2201 AC_CHECK_X_LIB(capplet, capplet_widget_changes_are_immediate,
2202 [AC_DEFINE(HAVE_CRAPPLET_IMMEDIATE)], [true],
2203 $ac_gnome_config_libs)
2208 if test "$have_gtk" = yes; then
2209 if test -n "$pkg_config"; then
2210 if test "$have_gtk2" = yes; then
2211 GNOME_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
2213 GNOME_DATADIR=`$pkg_config --variable=prefix gtk+`
2216 GNOME_DATADIR=`$gtk_config --prefix`
2218 GNOME_DATADIR="$GNOME_DATADIR/share"
2221 # .desktop files go in different places in Gnome 1.x and Gnome 2.x...
2222 if test "$have_gtk2" = yes; then
2223 GNOME_PANELDIR='$(GNOME_PANELDIR2)'
2225 GNOME_PANELDIR='$(GNOME_PANELDIR1)'
2229 if test "$have_gtk" = yes; then
2230 INCLUDES="$INCLUDES $ac_gtk_config_cflags"
2231 GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
2234 if test "$have_gtk2" = yes; then
2237 GTK_EXTRA_OBJS="\$(GTK_EXTRA_OBJS)"
2244 # Check for the Gnome Help Browser.
2246 if test "$have_gtk" = yes; then
2247 AC_CHECK_PROGS(have_gnome_help, yelp gnome-help-browser, no)
2248 if test "$have_gnome_help" != no; then
2254 ###############################################################################
2258 ###############################################################################
2261 with_xml_req=unspecified
2264 [ --with-xml The XML toolkit is needed for some parts of
2265 the Gtk interface. Without it, the configuration
2266 interface will be much less featureful.],
2267 [with_xml="$withval"; with_xml_req="$withval"],[with_xml=yes])
2269 # if --with-xml=/directory/ was specified, remember that directory so that
2270 # we can also look for the `xml-config' program in that directory.
2280 HANDLE_X_PATH_ARG(with_xml, --with-xml, XML)
2282 if test "$with_xml" != yes -a "$with_xml" != no ; then
2283 echo "error: must be yes or no: --with-xml=$with_xml"
2287 if test "$with_xml" = yes; then
2291 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2292 # look in /foo/bin/ for for xml-config.
2296 if test ! -z "$gtk_dir"; then
2297 # canonicalize slashes.
2298 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2299 xml_path="$foo:$xml_path"
2302 if test ! -z "$gnome_dir"; then
2303 # canonicalize slashes.
2304 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2305 xml_path="$foo:$xml_path"
2308 if test -n "$pkg_config" ; then
2311 # run pkg-config based tests.
2316 # If we have Gtk 2.x, then *only* XML 2.x will work.
2317 # If we have Gtk 1.x, or don't have Gtk at all, then
2318 # either XML 1.x or 2.x will work.
2320 # First check for XML 2.x.
2322 pkg_check_version libxml-2.0 2.4.6
2324 # If that didn't work (we don't have XML 2.x) and we *don't* have
2325 # Gtk 2.x, then check to see if we have XML 1.x
2327 if test "$ok" = no -a "$have_gtk2" = no; then
2329 pkg_check_version libxml 1.0
2334 if test "$have_xml" = yes; then
2335 AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2336 [ac_cv_xml_config_cflags=`$pkg_config --cflags $pkgs`])
2337 AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2338 [ac_cv_xml_config_libs=`$pkg_config --libs $pkgs`])
2339 ac_xml_config_cflags=$ac_cv_xml_config_cflags
2340 ac_xml_config_libs=$ac_cv_xml_config_libs
2346 # run {xml2,xml}-config based tests.
2349 AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path)
2351 # If we found the xml-config program, run it to get flags.
2353 if test -n "$xml_config" ; then
2354 AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2355 [ac_cv_xml_config_cflags=`$xml_config --cflags`])
2356 AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2357 [ac_cv_xml_config_libs=`$xml_config --libs`])
2358 ac_xml_config_cflags=$ac_cv_xml_config_cflags
2359 ac_xml_config_libs=$ac_cv_xml_config_libs
2362 ac_save_xml_CPPFLAGS="$CPPFLAGS"
2363 CPPFLAGS="$CPPFLAGS $ac_xml_config_cflags"
2365 # first try <libxml/parser.h> which is the new way...
2367 AC_CHECK_X_HEADER(libxml/xmlIO.h, [have_xml=yes],,
2368 [#include <libxml/parser.h>])
2370 # if that didn't work, then try just <parser.h> which is the old way...
2372 if test "$have_xml" = no; then
2373 AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes; have_old_xml=yes],,
2374 [#include <parser.h>])
2377 CPPFLAGS="$ac_save_xml_CPPFLAGS"
2382 if test "$have_xml" = yes; then
2383 # we have the XML headers; now make sure zlib is around.
2384 # yes, it's stupid we have to do this too, but there is
2385 # dependency screwage in Gnome.
2386 AC_CHECK_X_LIB(z, zlibVersion, [have_zlib=yes])
2387 if test "$have_zlib" = no; then
2393 if test "$have_xml" = yes; then
2394 # we have the header, now check for the library
2397 AC_CHECK_X_LIB(c, xmlParseChunk,
2400 XML_LIBS="$ac_xml_config_libs"
2401 AC_DEFINE(HAVE_XML)],
2403 $ac_xml_config_libs)
2406 if test "$have_xml" = yes; then
2407 INCLUDES="$INCLUDES $ac_xml_config_cflags"
2408 GTK_LIBS="$GTK_LIBS $ac_xml_config_libs"
2410 if test "$have_old_xml" = yes; then
2411 AC_DEFINE(HAVE_OLD_XML_HEADERS)
2418 ###############################################################################
2420 # Checking whether Motif is really Lesstif.
2422 ###############################################################################
2425 if test "$have_motif" = yes ; then
2426 AC_CACHE_CHECK([whether Motif is really LessTif],
2428 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
2429 [long vers = LesstifVersion;],
2430 [ac_cv_have_lesstif=yes],
2431 [ac_cv_have_lesstif=no])])
2432 have_lesstif=$ac_cv_have_lesstif
2436 lesstif_version=unknown
2437 lesstif_version_string=unknown
2439 if test "$have_lesstif" = yes ; then
2441 echo unknown > conftest-lt
2442 AC_CACHE_CHECK([LessTif version number],
2443 ac_cv_lesstif_version_string,
2444 [AC_TRY_X_RUN([#include <stdio.h>
2447 FILE *f = fopen("conftest-lt", "w");
2449 fprintf(f, "%d %d.%d\n", LesstifVersion,
2450 LESSTIF_VERSION, LESSTIF_REVISION);
2454 [ltv=`cat conftest-lt`
2455 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
2456 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
2457 [ac_cv_lesstif_version=unknown
2458 ac_cv_lesstif_version_string=unknown],
2459 [ac_cv_lesstif_version=unknown
2460 ac_cv_lesstif_version_string=unknown])])
2462 lesstif_version=$ac_cv_lesstif_version
2463 lesstif_version_string=$ac_cv_lesstif_version_string
2468 if test "$have_motif" = yes ; then
2470 echo unknown > conftest-mt
2471 AC_CACHE_CHECK([Motif version number],
2472 ac_cv_motif_version_string,
2473 [AC_TRY_X_RUN([#include <stdio.h>
2476 FILE *f = fopen("conftest-mt", "w");
2478 fprintf(f, "%d %d.%d\n", XmVersion,
2479 XmVERSION, XmREVISION);
2483 [mtv=`cat conftest-mt`
2484 ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
2485 ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
2486 [ac_cv_motif_version=unknown
2487 ac_cv_motif_version_string=unknown],
2488 [ac_cv_motif_version=unknown
2489 ac_cv_motif_version_string=unknown])])
2491 motif_version=$ac_cv_motif_version
2492 motif_version_string=$ac_cv_motif_version_string
2497 ###############################################################################
2499 # Checking whether Motif requires -lXpm.
2501 # If this is Motif 2.x, and we have XPM, then link against XPM as well.
2502 # The deal is, Motif 2.x requires XPM -- but it's a compilation option
2503 # of the library whether to build the XPM code into libXm, or whether
2504 # to rely on an external libXm. So the only way to tell whether XPM is
2505 # a link-time requirement is to examine libXm.a, which is very
2506 # difficult to do in an autoconf script. So... if it's Motif 2.x, we
2507 # always link against XPM if the XPM lib exists (and this will be a
2508 # no-op if libXm happens to already have the XPM code in it.)
2510 ###############################################################################
2512 motif_requires_xpm=no
2513 if test "$have_motif" = yes ; then
2514 AC_MSG_CHECKING(whether Motif requires XPM)
2515 if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
2517 motif_requires_xpm=yes
2518 AC_MSG_RESULT(maybe)
2525 ###############################################################################
2527 # Checking whether Motif requires -lXp.
2529 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
2530 # Extension". Why this extension isn't in -lXext with all the others,
2533 ###############################################################################
2536 if test "$have_motif" = yes ; then
2538 AC_CHECK_X_LIB(Xp, XpQueryExtension,
2539 [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
2540 [true], -lX11 -lXext -lm)
2544 ###############################################################################
2546 # Checking whether Motif requires -lXintl (for _Xsetlocale.)
2548 ###############################################################################
2551 if test "$have_motif" = yes ; then
2552 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
2554 if test "$have_xintl" = yes; then
2555 MOTIF_LIBS="$MOTIF_LIBS -lXintl"
2560 ###############################################################################
2562 # Check for -lGL or -lMesaGL.
2564 ###############################################################################
2568 with_gl_req=unspecified
2573 --with-gl Build those demos which depend on OpenGL.],
2574 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
2576 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
2578 ac_mesagl_version=unknown
2579 ac_mesagl_version_string=unknown
2581 if test "$with_gl" = yes; then
2582 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
2583 if test "$have_gl" = yes ; then
2584 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no,
2585 [#include <GL/gl.h>])
2588 # If we have the headers, try and figure out which vendor it's from.
2590 if test "$have_gl" = yes ; then
2592 # We need to know whether it's MesaGL so that we know which libraries
2595 AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
2596 [ac_cv_have_mesa_gl=no
2597 AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
2599 ac_have_mesa_gl=$ac_cv_have_mesa_gl
2606 # Some versions of MesaGL are compiled to require -lpthread.
2607 # So if the Mesa headers exist, and -lpthread exists, then always
2608 # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
2610 if test "$ac_have_mesa_gl" = yes; then
2611 AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
2615 # If we have Mesa headers, check to see if we can link against -lMesaGL.
2616 # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
2617 # Else, warn that GL is busted. (We have the headers, but no libs.)
2620 if test "$ac_have_mesa_gl" = yes ; then
2621 AC_CHECK_X_LIB(MesaGL, glXCreateContext,
2623 GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
2624 [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
2627 if test "$gl_lib_1" = "" ; then
2628 AC_CHECK_X_LIB(GL, glXCreateContext,
2630 GL_LIBS="-lGL -lGLU $GL_LIBS"],
2631 [], -lGLU $GL_LIBS -lX11 -lXext -lm)
2634 if test "$gl_lib_1" = "" ; then
2635 # we have headers, but no libs -- bail.
2640 # linking works -- we can build the GL hacks.
2642 if test "$ac_have_mesa_gl" = yes ; then
2643 AC_DEFINE(HAVE_MESA_GL)
2649 # Now that we know we have GL headers and libs, do some more GL testing.
2652 if test "$have_gl" = yes ; then
2653 # If it's MesaGL, we'd like to issue a warning if the version number
2654 # is less than or equal to 2.6, because that version had a security bug.
2656 if test "$ac_have_mesa_gl" = yes; then
2658 AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
2659 [cat > conftest.$ac_ext <<EOF
2660 #line __oline__ "configure"
2661 #include "confdefs.h"
2663 #ifndef MESA_MAJOR_VERSION
2664 # include <GL/xmesa.h>
2665 # ifdef XMESA_MAJOR_VERSION
2666 /* Around Mesa 3.2, they took out the Mesa version number, so instead,
2667 we have to check the XMesa version number (the number of the X protocol
2668 support, which seems to be the same as the Mesa version number.)
2670 # define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
2671 # define MESA_MINOR_VERSION XMESA_MINOR_VERSION
2673 /* Oh great. Some time after 3.4, they took out the xmesa.h header file,
2674 so we have no way of telling what version of Mesa this is at all.
2675 So, we'll guess that the osmesa version (the "offscreen protocol")
2676 is less than or equal to the real mesa version number. Except that
2677 if OSmesa is 3.3, assume at least Mesa 3.4, since OSmesa was 3.3 in
2678 Mesa 3.4. And Mesa 3.3 had xmesa.h. What a complete load of shit!
2680 # include <GL/osmesa.h>
2681 # define MESA_MAJOR_VERSION OSMESA_MAJOR_VERSION
2682 # define MESA_MINOR_VERSION OSMESA_MINOR_VERSION or newer, probably?
2683 # if OSMESA_MAJOR_VERSION == 3 && OSMESA_MINOR_VERSION == 3
2684 # undef MESA_MINOR_VERSION
2685 # define MESA_MINOR_VERSION 4 or newer, probably?
2689 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
2692 ac_save_CPPFLAGS="$CPPFLAGS"
2693 if test \! -z "$includedir" ; then
2694 CPPFLAGS="$CPPFLAGS -I$includedir"
2696 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2698 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | grep configure:`
2702 mglv=`echo "$mglv" | sed -n \
2703 's/^configure: *\([0-9][0-9]*\) *\([0-9].*\)$/\1.\2/p'`
2706 rm -f conftest.$ac_ext
2708 CPPFLAGS="$ac_save_CPPFLAGS"
2710 if test "$mglv" = ""; then
2711 ac_mesagl_version=unknown
2712 ac_mesagl_version_string=unknown
2714 ac_mesagl_version_string="$mglv"
2717 maj=`echo "$mglv" | sed -n 's/^\([0-9][0-9]*\)\..*$/\1/p'`
2718 min=`echo "$mglv" | sed -n 's/^.*\.\([0-9][0-9]*\).*$/\1/p'`
2720 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
2721 if test -z "$ac_mesagl_version"; then
2722 ac_mesagl_version=unknown
2723 ac_mesagl_version_string=unknown
2726 ac_cv_mesagl_version=$ac_mesagl_version
2727 ac_cv_mesagl_version_string=$ac_mesagl_version_string
2729 ac_mesagl_version=$ac_cv_mesagl_version
2730 ac_mesagl_version_string=$ac_cv_mesagl_version_string
2734 # Check for OpenGL 1.1 features.
2736 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
2737 [true], $GL_LIBS -lX11 -lXext -lm)
2740 elif test "$with_gl" != no; then
2741 echo "error: must be yes or no: --with-gl=$with_gl"
2746 ###############################################################################
2750 ###############################################################################
2753 with_gle_req=unspecified
2756 [ --with-gle Build those demos which depend on GLE
2757 (the OpenGL "extrusion" library.)],
2758 [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
2760 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
2764 if test "$have_gl" = no ; then
2766 elif test "$with_gle" = yes; then
2768 AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no,
2769 [#include <GL/gl.h>])
2770 if test "$have_gle3" = yes ; then
2773 AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no,
2774 [#include <GL/gl.h>])
2775 if test "$have_gle" = yes ; then
2776 AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no,
2777 [#include <GL/gl.h>])
2781 if test "$have_gle" = yes ; then
2784 AC_CHECK_X_LIB(gle, gleCreateGC,
2785 [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
2786 [], $GL_LIBS -lX11 -lXext -lm)
2788 if test "$have_gle" = yes ; then
2792 # sometimes the libmatrix stuff is included in libgle. look there first.
2794 # I don't get it. For some reason, this test passes on SGI, as if
2795 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
2796 # Yet the link is succeeding. Why???
2798 # AC_CHECK_X_LIB(gle, uview_direction_d,
2799 # [have_gle=yes; gle_halfassed=no],
2800 # [], $GL_LIBS -lX11 -lXext -lm)
2802 # As of GLE 3 this is in libgle, and has changed name to uview_direction!
2804 if test "$have_gle3" = yes ; then
2805 AC_CHECK_X_LIB(gle, uview_direction,
2806 [have_gle=yes; gle_halfassed=no],
2807 [], $GL_LIBS -lX11 -lXext -lm)
2809 # if it wasn't in libgle, then look in libmatrix.
2810 if test "$have_gle" = no ; then
2811 AC_CHECK_X_LIB(matrix, uview_direction_d,
2812 [have_gle=yes; gle_halfassed=no;
2813 GLE_LIBS="$GLE_LIBS -lmatrix"],
2814 [], $GL_LIBS -lX11 -lXext -lm)
2818 if test "$have_gle" = yes ; then
2820 if test "$have_gle3" = yes ; then
2821 AC_DEFINE(HAVE_GLE3)
2825 elif test "$with_gle" != no; then
2826 echo "error: must be yes or no: --with-gle=$with_gle"
2833 ###############################################################################
2837 ###############################################################################
2840 with_xpm_req=unspecified
2842 [ --with-xpm Include support for XPM files in some demos.
2843 (Not needed if Pixbuf is used.)],
2844 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2846 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2848 if test "$with_xpm" = yes; then
2849 AC_CHECK_X_HEADER(X11/xpm.h,
2853 [#include <X11/Xlib.h>])
2854 elif test "$with_xpm" != no; then
2855 echo "error: must be yes or no: --with-xpm=$with_xpm"
2859 # See comment near $motif_requires_xpm, above.
2860 # Need to do this here, after both Motif and XPM have been checked for.
2862 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2863 if test "$motif_requires_xpm" = yes ; then
2864 MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
2868 ###############################################################################
2870 # Check for -lgdk_pixbuf.
2872 ###############################################################################
2875 with_gdk_pixbuf_req=unspecified
2877 [ --with-pixbuf Include support for the GDK-Pixbuf library in some
2878 demos, which will make it possible for them to read
2879 GIF, JPEG, and PNG files as well. (The path here is
2880 ignored if GTK 2.x is being used.)],
2881 [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
2882 [with_gdk_pixbuf=yes])
2884 # if --with-pixbuf=/directory/ was specified, remember that directory so that
2885 # we can also look for the `gdk-pixbuf-config' program in that directory.
2886 case "$with_gdk_pixbuf" in
2888 gdk_pixbuf_dir="$with_gdk_pixbuf"
2895 HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF)
2897 if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then
2898 echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
2902 if test "$with_gdk_pixbuf" = yes; then
2906 if test -n "$pkg_config" ; then
2909 # run pkg-config based tests.
2914 # If we have Gtk 2.x, then *only* gdk-pixbuf 2.x will work.
2915 # If we have Gtk 1.x, then *only* gdk-pixbuf 1.x will work.
2916 # If we don't have Gtk at all, then either will work.
2918 if test "$have_gtk" = no -o "$have_gtk2" = yes; then
2920 # we don't have Gtk; or we have Gtk 2.x. Check for pixbuf 2.x.
2922 AC_MSG_RESULT(checking for gdk_pixbuf 2.x with gtk-config based tests...)
2923 pkg_check_version gdk-pixbuf-2.0 2.0.0
2924 pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
2925 have_gdk_pixbuf="$ok"
2926 have_gdk_pixbuf2="$ok"
2929 if test "$have_gtk" = no -o "$have_gtk2" = no; then
2931 # we don't have Gtk; or we have Gtk 1.x.
2932 # If we don't have pixbuf 2.x, then check for pixbuf 1.x.
2934 if test "$have_gdk_pixbuf2" = no; then
2937 AC_MSG_RESULT(checking for gdk_pixbuf 1.x with gtk-config based tests...)
2938 pkg_check_version gdk_pixbuf 0.0
2939 pkg_check_version gdk_pixbuf_xlib 0.0
2940 have_gdk_pixbuf="$ok"
2944 if test "$have_gdk_pixbuf" = yes; then
2945 AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
2946 [ac_cv_gdk_pixbuf_config_cflags=`$pkg_config --cflags $pkgs`])
2947 AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
2948 [ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs`])
2950 ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
2951 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
2955 if test "$have_gdk_pixbuf" = no; then
2958 # run gdk-pixbuf-config based tests.
2959 # note that we can't assume that the existence of "pkg-config" means
2960 # that we don't have to look for gdk-pixbuf-config -- in Gnome 1.4,
2961 # pkg-config exists, but doesn't know about pixbuf.
2964 AC_MSG_RESULT(checking for gdk_pixbuf with gdk-pixbuf-config based tests...)
2966 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2967 # look in /foo/bin/ for for gdk-pixbuf-config.
2969 gdk_pixbuf_path="$PATH"
2971 if test ! -z "$gtk_dir"; then
2972 # canonicalize slashes.
2973 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2974 gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
2977 if test ! -z "$gnome_dir"; then
2978 # canonicalize slashes.
2979 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2980 gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
2983 AC_PATH_PROGS(gdk_pixbuf_config, gdk-pixbuf-config,, $gdk_pixbuf_path)
2985 # If we found the gdk-pixbuf-config program, run it to get flags.
2987 if test -n "$gdk_pixbuf_config" ; then
2988 AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
2989 [ac_cv_gdk_pixbuf_config_cflags=`$gdk_pixbuf_config --cflags`])
2990 AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
2991 [ac_cv_gdk_pixbuf_config_libs=`$gdk_pixbuf_config --libs`])
2993 # note that "gdk-pixbuf-config --libs" produces a link line including
2994 # -lgdk_pixbuf, but there's no way to get it to produce one that also
2995 # includes -lgdk_pixbuf_xlib. Since we don't know *exactly* what the
2996 # name of the library will be, construct it with sed...
2999 ac_cv_gdk_pixbuf_config_libs=`echo $ac_cv_gdk_pixbuf_config_libs | \
3000 sed 's@ \(-lgdk_pixbuf\([-_a-zA-Z0-9.]*\)\) @ \1 -lgdk_pixbuf_xlib\2 @'`
3003 ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
3004 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
3008 ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
3009 CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
3011 if test "$have_gdk_pixbuf" = no; then
3013 # we appear to have pixbuf; check for headers/libs to be sure.
3018 # check for header A...
3019 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
3021 # if that worked, check for header B...
3022 if test "$have_gdk_pixbuf" = yes; then
3024 gdk_pixbuf_halfassed=yes
3025 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h,
3026 [have_gdk_pixbuf=yes
3027 gdk_pixbuf_halfassed=no])
3029 # yay, it has a new name in Gtk 2.x...
3030 if test "$have_gdk_pixbuf" = no; then
3032 gdk_pixbuf_halfassed=yes
3033 AC_CHECK_X_HEADER(gdk-pixbuf-xlib/gdk-pixbuf-xlib.h,
3034 [have_gdk_pixbuf=yes
3035 gdk_pixbuf_halfassed=no])
3040 CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
3042 if test "$have_gdk_pixbuf" = yes; then
3043 # we have the headers, now check for the libraries
3045 gdk_pixbuf_halfassed=yes
3048 AC_CHECK_X_LIB(c, gdk_pixbuf_new_from_file, [have_gdk_pixbuf=yes],,
3049 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
3051 if test "$have_gdk_pixbuf" = yes; then
3053 AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init,
3054 [have_gdk_pixbuf=yes
3055 gdk_pixbuf_halfassed=no],,
3056 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
3060 if test "$have_gdk_pixbuf" = yes; then
3061 INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
3062 XPM_LIBS="$ac_gdk_pixbuf_config_libs"
3063 AC_DEFINE(HAVE_GDK_PIXBUF)
3070 ###############################################################################
3074 ###############################################################################
3077 with_jpeg_req=unspecified
3080 [ --with-jpeg Include support for the JPEG library.],
3081 [with_jpeg="$withval"; with_jpeg_req="$withval"],
3084 HANDLE_X_PATH_ARG(with_jpeg, --with-jpeg, JPEG)
3086 if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then
3087 echo "error: must be yes or no: --with-jpeg=$with_jpeg"
3091 if test "$with_jpeg" = yes; then
3094 AC_CHECK_X_HEADER(jpeglib.h, [have_jpeg=yes])
3096 if test "$have_jpeg" = yes; then
3097 # we have the header, now check for the library
3100 AC_CHECK_X_LIB(jpeg, jpeg_start_compress,
3104 AC_DEFINE(HAVE_JPEGLIB)])
3109 ###############################################################################
3111 # Check for the XSHM server extension.
3113 ###############################################################################
3116 with_xshm_req=unspecified
3117 AC_ARG_WITH(xshm-ext,
3118 [ --with-xshm-ext Include support for the Shared Memory extension.],
3119 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
3121 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
3123 if test "$with_xshm" = yes; then
3125 # first check for Xshm.h.
3126 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],,
3127 [#include <X11/Xlib.h>])
3129 # if that succeeded, then check for sys/ipc.h.
3130 if test "$have_xshm" = yes; then
3132 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
3135 # if that succeeded, then check for sys/shm.h.
3136 if test "$have_xshm" = yes; then
3138 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
3141 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
3142 # to exist, but the library code to not exist. And even better, the library
3143 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
3144 # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and
3145 # that's not quite right, but close enough.)
3149 if [ `uname -v` -eq 3 ]; then
3151 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
3152 [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
3153 [true], -lX11 -lXext -lm)
3158 # if that succeeded, then we've really got it.
3159 if test "$have_xshm" = yes; then
3160 AC_DEFINE(HAVE_XSHM_EXTENSION)
3163 elif test "$with_xshm" != no; then
3164 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
3169 ###############################################################################
3171 # Check for the DOUBLE-BUFFER server extension.
3173 ###############################################################################
3176 with_xdbe_req=unspecified
3177 AC_ARG_WITH(xdbe-ext,
3178 [ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.],
3179 [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
3181 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
3183 if test "$with_xdbe" = yes; then
3185 AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],,
3186 [#include <X11/Xlib.h>])
3187 if test "$have_xdbe" = yes; then
3188 AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
3191 elif test "$with_xdbe" != no; then
3192 echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
3197 ###############################################################################
3199 # Check for the SGI XReadDisplay server extension.
3201 # Note: this has to be down here, rather than up with the other server
3202 # extension tests, so that the output of `configure --help' is in the
3203 # right order. Arrgh!
3205 ###############################################################################
3208 with_readdisplay_req=unspecified
3209 AC_ARG_WITH(readdisplay,
3210 [ --with-readdisplay Include support for the XReadDisplay extension.],
3211 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
3212 [with_readdisplay=yes])
3214 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
3216 if test "$with_readdisplay" = yes; then
3217 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
3218 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),,
3219 [#include <X11/Xlib.h>])
3220 elif test "$with_readdisplay" != no; then
3221 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
3226 ###############################################################################
3228 # Check for a program to generate random text.
3230 # Zippy is funnier than the idiocy generally spat out by `fortune',
3231 # so first see if "fortune zippy" works. Else, use plain "fortune".
3233 # We used to dig around in Emacs to look for the "yow" program, but
3234 # most people who have Emacs also have "fortune zippy", so nevermind.
3236 ###############################################################################
3239 AC_ARG_WITH(fortune,[
3240 --with-fortune=PROGRAM Some demos are able to run an external program and
3241 display its text; this names the program to use by
3242 default (though it can be overridden with X
3243 resources.) Default is \"/usr/games/fortune\".],
3244 [with_fortune_req="$withval"; with_fortune="$withval"],[with_fortune=yes])
3246 if test "$with_fortune" = no || test "$with_fortune" = yes ; then
3251 if test -n "$with_fortune_req" ; then
3252 ac_cv_fortune_program=""
3253 case "$with_fortune_req" in
3256 set dummy $with_fortune_req ; fortune_tmp=$2
3257 AC_MSG_CHECKING([for $fortune_tmp])
3258 if test -x "$fortune_tmp" ; then
3266 set dummy $with_fortune_req ; fortune_tmp=$2
3268 unset ac_cv_path_fortune_tmp
3269 AC_PATH_PROG(fortune_tmp, $fortune_tmp, [])
3270 if test -z "$fortune_tmp" ; then
3275 ac_cv_fortune_program="$with_fortune"
3277 elif test -n "$ac_cv_fortune_program"; then
3278 AC_MSG_RESULT([checking for fortune... (cached) $ac_cv_fortune_program])
3281 unset ac_cv_path_fortune_tmp
3284 if test -z "$ac_cv_fortune_program" ; then
3286 # first look for fortune in /usr/games/ (and use absolute path)
3287 AC_PATH_PROGS(fortune_tmp, fortune,, "/usr/games")
3289 # if it's not there, look on $PATH (and don't use absolute path)
3290 if test -z "$fortune_tmp" ; then
3291 AC_CHECK_PROGS(fortune_tmp, fortune)
3294 # if we didn't find anything, then just assume /usr/games/
3295 if test -z "$fortune_tmp" ; then
3296 fortune_tmp="/usr/games/fortune"
3299 ac_cv_fortune_program="$fortune_tmp"
3301 # now check to see whether "fortune zippy" works.
3303 fortune_tmp="$fortune_tmp zippy"
3304 AC_MSG_CHECKING([for zippy quotes])
3305 if ( $fortune_tmp >/dev/null 2>&1 ); then
3306 ac_cv_fortune_program="$fortune_tmp"
3307 AC_MSG_RESULT($fortune_tmp)
3314 unset ac_cv_path_fortune_tmp
3317 AC_DEFINE_UNQUOTED(FORTUNE_PROGRAM, "$ac_cv_fortune_program")
3320 ###############################################################################
3322 # Check whether it's ok to install some hacks as setuid (e.g., "sonar")
3323 # This should be safe, but let's give people the option.
3325 ###############################################################################
3327 setuid_hacks_default=no
3328 setuid_hacks="$setuid_hacks_default"
3329 AC_ARG_WITH(setuid-hacks,
3330 [ --with-setuid-hacks Allow some demos to be installed \`setuid root'
3331 (which is needed in order to ping other hosts.)
3333 [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
3335 HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks)
3337 if test "$setuid_hacks" = yes; then
3339 elif test "$setuid_hacks" != no; then
3340 echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks"
3345 ###############################################################################
3347 # Done testing. Now, set up the various -I and -L variables,
3348 # and decide which GUI program to build by default.
3350 ###############################################################################
3357 if test \! -z "$includedir" ; then
3358 INCLUDES="$INCLUDES -I$includedir"
3361 if test \! -z "$libdir" ; then
3362 LDFLAGS="$LDFLAGS -L$libdir"
3366 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
3368 if test "$have_motif" = yes; then
3369 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
3370 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3372 if test "$have_gtk" = yes; then
3373 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
3374 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3378 if test "$have_kerberos" = yes; then
3379 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
3380 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
3382 if test "$have_pam" = yes; then
3383 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
3384 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
3385 INSTALL_PAM="install-pam"
3387 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
3388 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
3391 if test "$enable_locking" = yes; then
3392 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
3393 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
3395 LOCK_SRCS='$(NOLOCK_SRCS_1)'
3396 LOCK_OBJS='$(NOLOCK_OBJS_1)'
3399 INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)'
3401 if test "$need_setuid" = yes; then
3407 if test "$setuid_hacks" = yes; then
3414 if test "$have_gl" = yes; then
3415 GL_EXES='$(GL_EXES)'
3416 GL_UTIL_EXES='$(GL_UTIL_EXES)'
3420 GL_KLUDGE="-${tab} "
3423 if test "$have_gle" = yes; then
3424 GLE_EXES='$(GLE_EXES)'
3425 GLE_KLUDGE="${tab} "
3427 GLE_KLUDGE="-${tab} "
3430 if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then
3431 JPEG_EXES='$(JPEG_EXES)'
3435 # Another substitution in the XScreenSaver.ad.in file:
3437 if test "$have_gnome_help" = yes; then
3446 # Now that we know whether we have Gnome, we can decide where the XML
3447 # config files get installed.
3449 if test -z "$HACK_CONF_DIR" ; then
3450 if test -n "$GNOME_DATADIR" ; then
3451 HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers'
3453 HACK_CONF_DIR='${prefix}/lib/xscreensaver/config'
3459 # After computing $HACK_CONF_DIR, make sure $GLADE_DATADIR has a value
3460 # so that we know where to install the Gtk pixmaps.
3462 # It should usually be "/usr/share/pixmaps/", but we can't just use
3463 # "$(prefix)/share/pixmaps" because that would usually result in
3464 # "/usr/X11R6/share/pixmaps/", which is wrong. It needs to be the
3465 # Gnome/Gtk prefix, not the overall prefix.
3467 if test -n "$GNOME_DATADIR" ; then
3468 GLADE_DATADIR='$(GNOME_DATADIR)/xscreensaver'
3469 elif test "$have_gtk" = yes; then
3470 if test -n "$pkg_config"; then
3471 if test "$have_gtk2" = yes; then
3472 GLADE_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3474 GLADE_DATADIR=`$pkg_config --variable=prefix gtk+`
3477 GLADE_DATADIR=`$gtk_config --prefix`
3479 GLADE_DATADIR="$GLADE_DATADIR/share/xscreensaver"
3485 # Set PO_DATADIR to something sensible.
3487 AC_MSG_CHECKING([for locale directory])
3488 if test -n "$GNOME_DATADIR" ; then
3489 PO_DATADIR="$GNOME_DATADIR"
3490 elif test "$have_gtk" = yes; then
3491 if test -n "$pkg_config"; then
3492 if test "$have_gtk2" = yes; then
3493 PO_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3495 PO_DATADIR=`$pkg_config --variable=prefix gtk+`
3498 PO_DATADIR=`$gtk_config --prefix`
3500 PO_DATADIR="$PO_DATADIR/share"
3503 if test -z "$PO_DATADIR" ; then
3505 # #### Total fucking kludge --
3506 # Map /build/prefix/usr/X11R6/share/ to /build/prefix/usr/share/
3507 # but of course we need to expand all the nested variables to do that...
3515 PO_DATADIR=`echo $dd | sed 's@/X11R6/@/@'`
3518 AC_MSG_RESULT($PO_DATADIR/locale)
3521 # canonicalize slashes.
3522 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
3524 # gcc 3.0 likes to issue this warning for every file:
3526 # cc1: warning: changing search order for system directory "/usr/local/include"
3527 # cc1: warning: as it has already been specified as a non-system directory
3529 # Yay. We can only avoid that by deleting "-I${prefix}/include" from the list.
3530 # Which *should* be totally redundant, and thus an ok thing to delete?
3532 INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'`
3535 ###############################################################################
3537 # Perform substitutions and write Makefiles.
3539 ###############################################################################
3543 AC_SUBST(PREFERRED_DEMO_PROGRAM)
3544 AC_SUBST(ALL_DEMO_PROGRAMS)
3545 AC_SUBST(SAVER_LIBS)
3546 AC_SUBST(MOTIF_LIBS)
3554 AC_SUBST(XDPMS_LIBS)
3555 AC_SUBST(PASSWD_LIBS)
3556 AC_SUBST(INSTALL_SETUID)
3557 AC_SUBST(SETUID_HACKS)
3558 AC_SUBST(INSTALL_DIRS)
3559 AC_SUBST(NEED_SETUID)
3560 AC_SUBST(INSTALL_PAM)
3562 AC_SUBST(PASSWD_SRCS)
3563 AC_SUBST(PASSWD_OBJS)
3567 AC_SUBST(SAVER_GL_SRCS)
3568 AC_SUBST(SAVER_GL_OBJS)
3569 AC_SUBST(SAVER_GL_LIBS)
3574 AC_SUBST(GL_UTIL_EXES)
3578 AC_SUBST(GLE_KLUDGE)
3579 AC_SUBST(GNOMEHELP_Y)
3580 AC_SUBST(GNOMEHELP_N)
3582 AC_SUBST(GNOME_DATADIR)
3583 AC_SUBST(GLADE_DATADIR)
3584 AC_SUBST(PO_DATADIR)
3585 AC_SUBST(GNOME_PANELDIR)
3586 AC_SUBST(HACK_CONF_DIR)
3587 AC_SUBST(GTK_EXTRA_OBJS)
3589 APPDEFAULTS=$ac_x_app_defaults
3590 AC_SUBST(APPDEFAULTS)
3593 AC_SUBST(DEPEND_FLAGS)
3594 AC_SUBST(DEPEND_DEFINES)
3603 driver/XScreenSaver.ad
3604 driver/xscreensaver.kss)
3606 ###############################################################################
3608 # Print some warnings at the end.
3610 ###############################################################################
3612 warn_prefix_1=" Warning:"
3613 warn_prefix_2=" Note:"
3614 warn_prefix="$warn_prefix_1"
3617 warnsep=' #################################################################'
3620 if test "$warning" = no ; then
3621 echo '' ; echo "$warnsep" ; echo ''
3628 if test "$warning" = long ; then echo '' ; fi
3631 echo "$warn_prefix $rest"
3638 if test "$was" != no ; then echo '' ; fi
3640 echo "$warn_prefix $rest"
3650 warn_prefix="$warn_prefix_2"
3652 warn_prefix="$warn_prefix_1"
3656 warn_prefix="$warn_prefix_2"
3658 warn_prefix="$warn_prefix_1"
3662 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
3663 warn 'The SGI saver extension was requested, but was not found.'
3666 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
3667 warn 'The MIT saver extension was requested, but was not found.'
3670 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
3671 warn 'The XIdle extension was requested, but was not found.'
3674 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
3675 warn 'The XSHM extension was requested, but was not found.'
3678 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
3679 warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
3682 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
3683 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
3686 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
3687 warn 'The DPMS extension was requested, but was not found.'
3690 if test "$with_xinerama_req" = yes -a "$have_xinerama" = no ; then
3691 warn 'The Xinerama extension was requested, but was not found.'
3694 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
3695 warn 'The XF86VMODE extension was requested, but was not found.'
3698 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
3699 warn "Checking of /proc/interrupts was requested, but it's bogus."
3703 if test "$have_motif" = no -a "$have_gtk" = no; then
3704 warnL "Neither Motif nor Gtk seem to be available;"
3705 warn2 "the \`xscreensaver-demo' program requires one of these."
3707 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
3708 warnL "Use of Motif was requested, but it wasn't found;"
3709 warn2 "Gtk will be used instead."
3711 elif test "$jurassic_gtk" = yes ; then
3715 v="$ac_gtk_version_string"
3716 if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
3717 warnL "Use of Gtk was requested, but its version number is unknown;"
3718 elif test "$with_gtk_req" = yes ; then
3719 warnL "Use of Gtk was requested, but it is version $v;"
3721 warnL "Gtk was found on this system, but it is version $v;"
3724 warn2 "Gtk $pref_gtk or newer is required. Motif will be used instead."
3726 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
3727 warnL "Use of Gtk was requested, but it wasn't found."
3728 if test "$have_motif" = yes; then
3729 warn2 "Motif will be used instead."
3733 if test "$gtk2_halfassed" != no ; then
3734 warnL "GTK version $gtk2_halfassed was found, but at least one supporting"
3735 warn2 "library ($gtk2_halfassed_lib) was not, so GTK 2.x can't be used."
3736 v="$ac_gtk_version_string"
3737 warn2 "GTK $v is also installed, so it will be used instead."
3738 warn2 "Please read the above output and the \`config.log' file"
3739 warn2 "for more details."
3743 if test "$with_gnome_req" = yes -a "$have_gnome" = no \
3744 -a "$have_gtk2" = no; then
3745 # don't issue this warning if we have GTK2 -- in that case, the
3746 # Gnome-specific code isn't needed.
3747 warn 'Use of the Gnome Control Panel was requested, but the necessary'
3748 warn2 'headers and/or libraries were not found.'
3751 if test "$have_gtk" = yes ; then
3752 if test "$have_xml" = no ; then
3753 if test "$with_xml_req" = yes ; then
3754 warn 'Use of the XML library was requested, but the necessary'
3755 warn2 'headers and/or libraries were not found.'
3757 warn 'GTK is being used, but the XML library was not found.'
3760 if test "$xml_halfassed" = yes ; then
3762 if test "$have_zlib" = yes ; then
3763 which="XML libraries"
3765 which="\`zlib' library"
3769 warn2 'More specifically, we found the headers, but not the'
3770 warn2 "$which; so either XML is half-installed on this"
3771 warn2 "system, or something else went wrong. The \`config.log'"
3772 warn2 'file might contain some clues.'
3776 warn2 "Without XML, the per-display-mode \`Settings' dialogs"
3777 warn2 'will not be available. Specify the location of the XML'
3778 warn2 'library through the --with-xml option to configure.'
3782 if test "$have_gtk" = yes -a "$have_gdk_pixbuf" = no ; then
3783 warn "GTK is being used, but the GDK-Pixbuf library and/or"
3784 warn2 "headers were not found. That can't be good. Please"
3785 warn2 "install the GDK-Pixbuf development kit and re-configure."
3788 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
3790 preferred_lesstif=0.92
3792 if test "$lesstif_version" = unknown; then
3793 warnL "Unable to determine the LessTif version number!"
3794 warn2 "Make sure you are using version $preferred_lesstif or newer."
3795 warn2 "See <http://www.lesstif.org/>."
3797 elif test \! $lesstif_version -gt 82; then
3798 warnL "LessTif version $lesstif_version_string is being used."
3799 warn2 "LessTif versions 0.82 and earlier are too buggy to"
3800 warn2 "use with XScreenSaver; it is strongly recommended"
3801 warn2 "that you upgrade to at least version $preferred_lesstif!"
3802 warn2 "See <http://www.lesstif.org/>."
3807 if test "$have_motif" = yes -a "$have_gtk" = no ; then
3808 warn 'Motif is being used, and GTK is not.'
3810 warn2 'Though the Motif front-end to xscreensaver is still'
3811 warn2 'maintained, it is no longer being updated with new'
3812 warn2 'features: all new development on the xscreensaver-demo'
3813 warn2 'program is happening in the GTK version, and not in the'
3814 warn2 'Motif version. It is recommended that you build against'
3815 warn2 'GTK instead of Motif. See <http://www.gtk.org/>.'
3819 if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
3820 warnL 'Use of XPM was requested, but it was not found.'
3823 if test "$with_gdk_pixbuf_req" = yes -a "$have_gdk_pixbuf" = no; then
3824 warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
3827 if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no || \
3828 test "$gdk_pixbuf_halfassed" = yes; then
3830 if test "$with_xpm_req" = yes -o "$have_xpm" = yes ; then
3832 elif test "$with_xpm_req" = no ; then
3833 warnL 'The XPM library is not being used.'
3835 warnL 'The XPM library was not found.'
3838 if test "$with_gdk_pixbuf_req" = yes ; then
3840 elif test "$with_gdk_pixbuf_req" = no ; then
3841 warnL 'The GDK-Pixbuf library is not being used.'
3843 warnL 'The GDK-Pixbuf library was not found.'
3846 if test "$gdk_pixbuf_halfassed" = yes ; then
3848 warn2 'More specifically, we found the headers, but not the'
3849 warn2 'libraries; so either GDK-Pixbuf is half-installed on this'
3850 warn2 "system, or something else went wrong. The \`config.log'"
3851 warn2 'file might contain some clues.'
3855 warn2 'Some of the demos will not be as colorful as they'
3856 warn2 'could be. You should consider installing Pixbuf or'
3857 warn2 'XPM and re-running configure. The Pixbuf library is'
3858 warn2 'a part of GNOME. The XPM library comes with most'
3859 warn2 'X11 installations; you can also find it at the X11'
3860 warn2 'archive sites, such as <http://sunsite.unc.edu/>.'
3862 warn2 'GDK-Pixbuf is recommended over XPM, as it provides'
3863 warn2 'support for more image formats.'
3867 if test "$have_jpeg" = no ; then
3868 if test "$with_jpeg_req" = yes ; then
3869 warnL 'Use of libjpeg was requested, but it was not found.'
3870 elif test "$with_jpeg_req" = no ; then
3871 noteL 'The JPEG library is not being used.'
3873 noteL 'The JPEG library was not found.'
3876 if test "$jpeg_halfassed" = yes ; then
3878 warn2 'More specifically, we found the headers, but not the'
3879 warn2 'library; so either JPEG is half-installed on this'
3880 warn2 "system, or something else went wrong. The \`config.log'"
3881 warn2 'file might contain some clues.'
3885 if test "$have_gdk_pixbuf" = no ; then
3886 warn2 "This means that it won't be possible for the image-manipulating"
3887 warn2 "display modes to load files from disk; and it also means that"
3888 warn2 "the \`webcollage' program will be much slower."
3890 warn2 "This means the \`webcollage' program will be much slower."
3895 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
3896 preferred_mesagl=3.4
3897 mgv="$ac_mesagl_version_string"
3898 pgl="$preferred_mesagl"
3900 if test "$ac_mesagl_version" = unknown; then
3901 warnL "Unable to determine the MesaGL version number!"
3902 warn2 "Make sure you are using version $preferred_mesagl or newer."
3904 elif test \! "$ac_mesagl_version" -gt 2006; then
3905 warnL "MesaGL version number is $mgv --"
3906 warn2 "MesaGL 2.6 and earlier have a security bug. It is strongly"
3907 warn2 "recommended that you upgrade to at least version $preferred_mesagl."
3909 elif test \! "$ac_mesagl_version" -gt 3003; then
3910 warnL "MesaGL version number is $mgv --"
3911 warn2 "MesaGL 3.3 and earlier have some bugs; it is recommended"
3912 warn2 "that you upgrade to $pgl or newer."
3916 if test "$have_gl" = no ; then
3917 if test "$with_gl_req" = yes ; then
3918 warnL 'Use of GL was requested, but it was not found.'
3919 elif test "$with_gl_req" = no ; then
3920 noteL 'The OpenGL 3D library is not being used.'
3922 noteL 'The OpenGL 3D library was not found.'
3925 if test "$gl_halfassed" = yes ; then
3927 warn2 'More specifically, we found the headers, but not the'
3928 warn2 'libraries; so either GL is half-installed on this'
3929 warn2 "system, or something else went wrong. The \`config.log'"
3930 warn2 'file might contain some clues.'
3934 warn2 'Those demos which use 3D will not be built or installed.'
3935 warn2 'You might want to consider installing OpenGL and'
3936 warn2 "re-running configure. If your vendor doesn't ship"
3937 warn2 'their own implementation of OpenGL, you can get a free'
3938 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
3939 warn2 'info, see <http://www.opengl.org/>.'
3944 if test "$have_gl" = yes -a "$have_gle" = no ; then
3946 # nobody cares about this; don't print the warning unless it was
3947 # requested and not found, or halfway-found.
3948 if test "$with_gle_req" = yes -o "$gle_halfassed" = yes ; then
3950 if test "$with_gle_req" = yes ; then
3951 noteL 'Use of the GLE (GL Extrusion) library was requested, but'
3952 warn2 'it was not found (though the OpenGL library was found, and'
3953 warn2 'is being used.)'
3954 elif test "$with_gle_req" = no ; then
3955 noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
3956 warn2 'library is not.'
3958 noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
3962 if test "$gle_halfassed" = yes ; then
3964 warn2 'More specifically, we found the headers, but not the'
3965 warn2 'libraries; so either GLE is half-installed on this'
3966 warn2 "system, or something else went wrong. The \`config.log'"
3967 warn2 'file might contain some clues.'
3971 warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
3972 warn2 'will not be built or installed. You might want to consider'
3973 warn2 'installing GLE and re-running configure. You can find the'
3974 warn2 'GLE library at <http://www.linas.org/gle/>. For general'
3975 warn2 'OpenGL info, see <http://www.opengl.org/>.'
3981 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
3982 warn 'Use of XReadDisplay was requested, but it was not found.'
3985 if test -n "$with_fortune_req"; then
3986 if test "$with_fortune_req" != "$ac_cv_fortune_program" ; then
3987 warnL "$with_fortune_req was requested as the Fortune program,"
3988 warn2 "but was not found. The default will be used instead."
3992 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
3993 warn 'Use of Kerberos was requested, but it was not found.'
3996 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
3997 warn 'Use of PAM was requested, but it was not found.'
4000 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
4001 warn 'Use of shadow passwords was requested, but they were not found.'
4005 # You are in a twisty maze of namespaces and syntaxes, all alike.
4006 # Fuck the skull of Unix.
4008 eval bindir=${bindir}
4009 eval bindir=${bindir}
4010 eval bindir=${bindir}
4011 eval bindir=${bindir}
4012 eval bindir=${bindir}
4013 eval bindir=${bindir}
4014 eval HACKDIR=${HACKDIR}
4015 eval HACKDIR=${HACKDIR}
4016 eval HACKDIR=${HACKDIR}
4017 eval HACKDIR=${HACKDIR}
4018 eval HACKDIR=${HACKDIR}
4019 eval HACKDIR=${HACKDIR}
4020 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4021 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4022 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4023 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4024 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4025 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4027 # canonicalize slashes.
4028 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
4029 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
4030 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
4033 # Sanity check the hackdir
4034 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
4035 if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
4037 AC_MSG_ERROR([\"--with-hackdir=${bindir}/${bad_choice}\" won't work.
4038 There will be an executable installed with that name, so
4039 that can't be the name of a directory as well. Please
4040 re-configure with a different directory name.])
4047 # Now let's see if there's a previous RPM version already installed. Blargh!
4051 rpmv=`(rpm -qv xscreensaver) 2>/dev/null | \
4052 sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'`
4055 if test \! -z "$rpmv" ; then
4056 rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
4057 rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
4060 warnL "There is already an installed RPM of xscreensaver $rpmv"
4061 warn2 "on this system. You might want to remove it (with"
4062 warn2 '"rpm -ve xscreensaver") before running "make install"'
4063 warn2 "from this directory."
4065 warn2 "Alternately, you could build this version of xscreensaver"
4066 warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
4067 warn2 "file is included. See the RPM documentation for more info."
4070 if test "$rpmbdir" = "$rpmhdir" ; then
4071 warn2 "The RPM version was installed in $rpmbdir/."
4073 warn2 "The RPM version was installed in $rpmbdir/,"
4074 warn2 "with demos in $rpmhdir/."
4081 if test "${bindir}" = "${HACKDIR}" ; then
4085 if test "$do_dir_warning" = yes; then
4089 echo ' When you run "make install", the "xscreensaver",'
4090 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
4091 echo " will be installed in ${bindir}/."
4093 echo " The various graphics demos (160+ different executables) will"
4094 echo " be installed in ${HACKDIR}/."
4096 echo " If you would prefer the demos to be installed elsewhere,"
4097 echo " you should re-run configure with the --with-hackdir=DIR"
4098 echo " option. For more information, run \`./configure --help'."
4102 if test "$warning" != no; then
4103 echo '' ; echo "$warnsep" ; echo ''
4106 if test "$do_dir_warning" = no; then
4107 if test "$warning" = no; then
4110 echo "User programs will be installed in ${bindir}/"
4111 echo "Screen savers will be installed in ${HACKDIR}/"
4112 echo "Configuration will be installed in ${HACK_CONF_DIR}/"