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)
61 AC_MSG_CHECKING([whether the compiler works on ANSI C])
62 AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
65 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
66 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
68 if test -n "$GCC"; then
69 AC_MSG_RESULT(Turning on gcc compiler warnings.)
70 CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs"
72 # supposedly gcc 3.4 will have "-Wdeclaration-after-statement"
73 # and then perhaps we can do without -pedantic?
76 *-irix5* |*-irix6.[0-3]* )
77 AC_MSG_RESULT(Turning on SGI compiler warnings.)
78 CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
81 # if test -z "$GCC"; then
82 # AC_MSG_RESULT(Turning on DEC C compiler warnings.)
83 # CC="$CC -migrate -w0 -verbose -warnprotos"
91 ###############################################################################
93 # Functions to figure out how to disable // comments in ANSI C code.
95 # (With recent gcc, this is done with "-std=c89". With older gcc, this
96 # is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to
97 # gcc. Old gcc doesn't support -std, and new gcc doesn't support -lang.
98 # so much for compatibility!)
100 # UPDATE: apparently there is NO WAY to tell gcc 3.2.2 to require that
101 # declarations preceed statements, without resorting to "-pedantic".
102 # This means that there is no way to get gcc3 to issue warnings that
103 # ensure that your code complies with the ANSI/ISO C89 standard, without
104 # also drowning in totally useless warnings. Thank you master may I
107 # So, I give up, let's just use -pedantic.
109 ###############################################################################
111 AC_DEFUN(AC_GCC_ACCEPTS_STD,
112 [if test -n "$GCC"; then
113 AC_CACHE_CHECK([whether gcc accepts -std],
114 ac_cv_gcc_accepts_std,
115 [if ( ( gcc -E -std=c89 - </dev/null >/dev/null ) 2>&1 | \
116 grep unrecognized >/dev/null ); then
117 ac_cv_gcc_accepts_std=no
119 ac_cv_gcc_accepts_std=yes
121 ac_gcc_accepts_std="$ac_cv_gcc_accepts_std"
125 AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE,
126 [if test -n "$GCC"; then
128 AC_MSG_RESULT(Disabling C++ comments in ANSI C code.)
130 # The reason that // comments are banned from xscreensaver is that gcc is
131 # basically the only compiler in the world that supports them in C code.
132 # All other vendors support them only in their C++ compilers, not in their
133 # ANSI C compilers. This means that it's a portability problem: every time
134 # these comments have snuck into the xscreensaver source code, I've gotten
135 # complaints about it the next day. So we turn off support for them in gcc
136 # as well to prevent them from accidentially slipping in.
138 if test "$ac_gcc_accepts_std" = yes ; then
140 # -std=c89 defines __STRICT_ANSI__, which we don't want.
141 # (That appears to be the only additional preprocessor symbol
142 # it defines, in addition to the syntax changes it makes.)
144 # -std=gnu89 is no good, because // comments were a GNU extension
145 # before they were in the ANSI C 99 spec... (gcc 2.96 permits //
146 # with -std=gnu89 but not with -std=c89.)
148 CC="$CC -std=c89 -U__STRICT_ANSI__"
151 CC="$CC -Wp,-lang-c89"
157 ###############################################################################
159 # Function to figure out how to turn off Objective C on MacOS X.
160 # (We have to do this to work around an Apple-specific gcc bug.)
162 ###############################################################################
164 AC_DEFUN(AC_GCC_ACCEPTS_NO_CPP_PRECOMP,
165 [if test -n "$GCC"; then
166 AC_CACHE_CHECK([whether gcc accepts -no-cpp-precomp],
167 ac_cv_gcc_accepts_no_cpp_precomp,
168 [if ( ( gcc -E -no-cpp-precomp - </dev/null >/dev/null ) 2>&1 | \
169 grep unrecognized >/dev/null ); then
170 ac_cv_gcc_accepts_no_cpp_precomp=no
172 ac_cv_gcc_accepts_no_cpp_precomp=yes
174 ac_gcc_accepts_no_cpp_precomp="$ac_cv_gcc_accepts_no_cpp_precomp"
178 AC_DEFUN(AC_NO_OBJECTIVE_C,
179 [if test -n "$GCC"; then
180 AC_GCC_ACCEPTS_NO_CPP_PRECOMP
181 if test "$ac_gcc_accepts_no_cpp_precomp" = yes ; then
182 AC_MSG_RESULT(Disabling Objective C extensions in ANSI C code.)
183 CC="$CC -no-cpp-precomp"
189 ###############################################################################
191 # Function to figure out how to create directory trees.
193 ###############################################################################
195 AC_DEFUN(AC_PROG_INSTALL_DIRS,
196 [AC_CACHE_CHECK([whether \"\${INSTALL} -d\" creates intermediate directories],
197 ac_cv_install_d_creates_dirs,
198 [ac_cv_install_d_creates_dirs=no
200 if mkdir conftestdir; then
201 cd conftestdir 2>/dev/null
202 ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1
203 if test -d dir1/dir2/. ; then
204 ac_cv_install_d_creates_dirs=yes
211 if test "$ac_cv_install_d_creates_dirs" = no ; then
212 AC_CACHE_CHECK([whether \"mkdir -p\" creates intermediate directories],
213 ac_cv_mkdir_p_creates_dirs,
214 [ac_cv_mkdir_p_creates_dirs=no
216 if mkdir conftestdir; then
217 cd conftestdir 2>/dev/null
218 mkdir -p dir1/dir2 >/dev/null 2>&1
219 if test -d dir1/dir2/. ; then
220 ac_cv_mkdir_p_creates_dirs=yes
228 if test "$ac_cv_install_d_creates_dirs" = yes ; then
229 INSTALL_DIRS='${INSTALL} -d'
230 elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then
231 INSTALL_DIRS='mkdir -p'
234 INSTALL_DIRS='${INSTALL} -d'
239 ###############################################################################
241 # Function to check whether gettimeofday() exists, and how to call it.
242 # This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS.
244 ###############################################################################
246 AC_DEFUN(AC_GETTIMEOFDAY_ARGS,
247 [AC_MSG_CHECKING(how to call gettimeofday)
248 AC_CACHE_VAL(ac_cv_gettimeofday_args,
249 [AC_TRY_COMPILE([#include <stdlib.h>
250 #include <sys/time.h>],
251 [struct timeval tv; struct timezone tzp;
252 gettimeofday(&tv, &tzp);],
253 [ac_gettimeofday_args=2],
254 [AC_TRY_COMPILE([#include <stdlib.h>
255 #include <sys/time.h>],
256 [struct timeval tv; gettimeofday(&tv);],
257 [ac_gettimeofday_args=1],
258 [ac_gettimeofday_args=0])])
259 ac_cv_gettimeofday_args=$ac_gettimeofday_args])
260 ac_gettimeofday_args=$ac_cv_gettimeofday_args
261 if test "$ac_gettimeofday_args" = 1 ; then
262 AC_DEFINE(HAVE_GETTIMEOFDAY)
263 AC_MSG_RESULT(one argument)
264 elif test "$ac_gettimeofday_args" = 2 ; then
265 AC_DEFINE(HAVE_GETTIMEOFDAY)
266 AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
267 AC_MSG_RESULT(two arguments)
269 AC_MSG_RESULT(unknown)
274 ###############################################################################
276 # Function to find perl5 (defines PERL and PERL_VERSION.)
278 ###############################################################################
280 # M4 sucks!! perl sucks too!!
282 perl_version_cmd='print $]'
285 AC_DEFUN(AC_PROG_PERL,
286 [AC_PATH_PROGS(PERL, [perl5 perl],,)
287 if test -z "$PERL" ; then
290 AC_CACHE_CHECK([perl version], ac_cv_perl_version,
291 [ac_cv_perl_version=`$PERL -e "$perl_version_cmd"`])
292 PERL_VERSION=$ac_cv_perl_version
297 ###############################################################################
299 # Function to demand "bc". Losers.
301 ###############################################################################
303 AC_DEFUN(AC_DEMAND_BC,
304 [ac_bc_result=`echo 6+9 | bc 2>/dev/null`
305 AC_MSG_CHECKING([for bc])
306 if test "$ac_bc_result" = "15" ; then
311 AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard
312 part of Unix since the 1970s. Come back when your vendor
317 ###############################################################################
319 # Functions to check how to do ICMP PING requests.
321 ###############################################################################
323 AC_DEFUN(AC_CHECK_ICMP,
324 [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp,
325 [AC_TRY_COMPILE([#include <stdlib.h>
332 #include <sys/types.h>
333 #include <sys/time.h>
336 #include <sys/socket.h>
337 #include <netinet/in_systm.h>
338 #include <netinet/in.h>
339 #include <netinet/ip.h>
340 #include <netinet/ip_icmp.h>
341 #include <netinet/udp.h>
342 #include <arpa/inet.h>
346 struct sockaddr_in si;
348 i.icmp_type = ICMP_ECHO;
353 si.sin_family = AF_INET;
354 #if defined(__DECC) || defined(_IP_VHL)
360 [ac_cv_have_icmp=yes],
361 [ac_cv_have_icmp=no])])
362 if test "$ac_cv_have_icmp" = yes ; then
366 AC_DEFUN(AC_CHECK_ICMPHDR,
367 [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr,
368 [AC_TRY_COMPILE([#include <stdlib.h>
375 #include <sys/types.h>
376 #include <sys/time.h>
379 #include <sys/socket.h>
380 #include <netinet/in_systm.h>
381 #include <netinet/in.h>
382 #include <netinet/ip.h>
383 #include <netinet/ip_icmp.h>
384 #include <netinet/udp.h>
385 #include <arpa/inet.h>
389 struct sockaddr_in si;
395 i.un.echo.sequence = 0;
396 si.sin_family = AF_INET;
398 [ac_cv_have_icmphdr=yes],
399 [ac_cv_have_icmphdr=no])])
400 if test "$ac_cv_have_icmphdr" = yes ; then
401 AC_DEFINE(HAVE_ICMPHDR)
405 ###############################################################################
407 # Functions to check for various X11 crap.
409 ###############################################################################
411 # Try and find the app-defaults directory.
412 # It sucks that autoconf doesn't do this already...
414 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
416 if mkdir conftestdir; then
417 cd conftestdir 2>/dev/null
418 # Make sure to not put "make" in the Imakefile rules, since we grep it out.
419 cat > Imakefile <<'EOF'
421 @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
423 if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then
424 # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
425 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
431 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
432 # Look for the directory under a standard set of common directories.
433 # Check X11 before X11Rn because it's often a symlink to the current release.
435 /usr/X11/lib/app-defaults \
436 /usr/X11R6/lib/app-defaults \
437 /usr/X11R6/lib/X11/app-defaults \
438 /usr/X11R5/lib/app-defaults \
439 /usr/X11R5/lib/X11/app-defaults \
440 /usr/X11R4/lib/app-defaults \
441 /usr/X11R4/lib/X11/app-defaults \
443 /usr/lib/X11/app-defaults \
444 /usr/lib/X11R6/app-defaults \
445 /usr/lib/X11R5/app-defaults \
446 /usr/lib/X11R4/app-defaults \
448 /usr/local/X11/lib/app-defaults \
449 /usr/local/X11R6/lib/app-defaults \
450 /usr/local/X11R5/lib/app-defaults \
451 /usr/local/X11R4/lib/app-defaults \
453 /usr/local/lib/X11/app-defaults \
454 /usr/local/lib/X11R6/app-defaults \
455 /usr/local/lib/X11R6/X11/app-defaults \
456 /usr/local/lib/X11R5/app-defaults \
457 /usr/local/lib/X11R5/X11/app-defaults \
458 /usr/local/lib/X11R4/app-defaults \
459 /usr/local/lib/X11R4/X11/app-defaults \
461 /usr/X386/lib/X11/app-defaults \
462 /usr/x386/lib/X11/app-defaults \
463 /usr/XFree86/lib/X11/app-defaults \
465 /usr/lib/X11/app-defaults \
466 /usr/local/lib/X11/app-defaults \
467 /usr/unsupported/lib/X11/app-defaults \
468 /usr/athena/lib/X11/app-defaults \
469 /usr/local/x11r5/lib/X11/app-defaults \
470 /usr/lpp/Xamples/lib/X11/app-defaults \
471 /lib/usr/lib/X11/app-defaults \
473 /usr/openwin/lib/app-defaults \
474 /usr/openwin/lib/X11/app-defaults \
475 /usr/openwin/share/lib/app-defaults \
476 /usr/openwin/share/lib/X11/app-defaults \
478 /X11R6/lib/app-defaults \
479 /X11R5/lib/app-defaults \
480 /X11R4/lib/app-defaults \
483 if test -d "$ac_dir"; then
484 ac_x_app_defaults=$ac_dir
490 AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
492 AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
493 [AC_PATH_X_APP_DEFAULTS_XMKMF
494 if test x"$ac_x_app_defaults" = x; then
495 AC_PATH_X_APP_DEFAULTS_DIRECT
497 if test x"$ac_x_app_defaults" = x; then
498 ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
500 # Record where we found app-defaults for the cache.
501 ac_cv_x_app_defaults="$ac_x_app_defaults"
503 eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
506 AC_DEFUN(AC_XPOINTER,
507 [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
508 [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
509 [XPointer foo = (XPointer) 0;],
510 [ac_cv_xpointer=yes],
511 [ac_cv_xpointer=no])])
512 if test "$ac_cv_xpointer" != yes; then
513 AC_DEFINE(XPointer,[char*])
517 # Random special-cases for X on certain pathological OSes.
518 # You know who you are.
520 AC_DEFUN(AC_X_RANDOM_PATHS,
524 # The following arcana was gleaned from conversations with
525 # Eric Schwartz <erics@col.hp.com>:
527 # On HPUX 10.x, the parts of X that HP considers "standard" live in
528 # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider
529 # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
530 # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems.
531 # Also, there are symlinks from /usr/include/ and /usr/lib/ into
532 # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
533 # you don't need any -I or -L arguments.
535 # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
536 # are the same division as 10.x. However, there are no symlinks to
537 # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
538 # arguments are always necessary.
540 # However, X11R6 was available on HPUX 9.x as a patch: if that
541 # patch was installed, then all of X11R6 went in to
542 # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
544 # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
545 # whether R5 was available as a patch; R6 undoubtedly was not.)
547 # So. We try and use the highest numbered pair of
548 # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
549 # that are available. We do not mix and match different versions
552 # Question I still don't know the answer to: (do you?)
554 # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
555 # /usr/contrib/X11R6/ could be installed as a patch, what was in
556 # that contrib directory? Did it contain so-called "standard"
557 # X11R6, or did it include Xaw and Xmu as well? If the former,
558 # where did one find Xaw and Xmu on 9.x R6 systems? Would this
559 # be a situation where one had to reach into the R5 headers and
560 # libs to find Xmu? That is, must both R6 and R5 directories
561 # be on the -I and -L lists in that case?
563 for version in X11R6 X11R5 X11R4 ; do
564 # if either pair of directories exists...
565 if test -d /usr/include/$version || test -d /usr/contrib/$version/include
567 # if contrib exists, use it...
568 if test -d /usr/contrib/$version/include ; then
569 X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
570 X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
572 # if the "standard" one exists, use it.
573 if test -d /usr/include/$version ; then
574 X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
575 X_LIBS="$X_LIBS -L/usr/lib/$version"
577 # since at least one of the pair exists, go no farther.
582 # Now find Motif. Thanks for not making xmkmf find this by
583 # default, you losers.
585 if test -d /usr/include/Motif2.1 ; then
586 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif2.1"
587 X_LIBS="$X_LIBS -L/usr/lib/Motif2.1"
588 elif test -d /usr/include/Motif1.2 ; then
589 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
590 X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
591 elif test -d /usr/include/Motif1.1 ; then
592 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
593 X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
596 # Now let's check for the pseudo-standard locations for OpenGL and XPM.
598 if test -d /opt/graphics/OpenGL/include ; then
599 # HP-UX 10.20 puts it here
600 X_CFLAGS="-I/opt/graphics/OpenGL/include $X_CFLAGS"
601 X_LIBS="-L/opt/graphics/OpenGL/lib $X_LIBS"
602 elif test -d /opt/Mesa/lib ; then
603 X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
604 X_LIBS="-L/opt/Mesa/lib $X_LIBS"
608 if test -d /opt/xpm/lib/X11 ; then
609 X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
610 X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
613 # On HPUX, default to installing in /opt/xscreensaver/ instead of
614 # in /usr/local/, unless there is already an xscreensaver in
615 # /usr/local/bin/. This can be overridden with the --prefix arg
616 # to configure. I'm not sure this is the right thing to do, but
617 # Richard Lloyd says so...
619 if test \! -x /usr/local/bin/xscreensaver ; then
620 ac_default_prefix=/opt/xscreensaver
626 # Thanks for not making xmkmf find this by default, pinheads.
627 # And thanks for moving things around again, too. Is this
628 # really the standard location now? What happened to the
629 # joke that this kind of thing went in /opt?
630 # cthomp says "answer: CDE (Common Disorganized Environment)"
632 if test -f /usr/dt/include/Xm/Xm.h ; then
633 X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
634 MOTIF_LIBS="$MOTIF_LIBS -L/usr/dt/lib -R/usr/dt/lib"
636 # Some versions of Slowlaris Motif require -lgen. But not all. Why?
637 AC_CHECK_LIB(gen, regcmp, [MOTIF_LIBS="$MOTIF_LIBS -lgen"])
643 # On MacOS X (10.x with "fink"), many things are under /sw/.
645 if test -d /sw/include ; then
646 X_CFLAGS="-I/sw/include $X_CFLAGS"
647 X_LIBS="-L/sw/lib $X_LIBS"
654 ###############################################################################
656 # Some utility functions to make checking for X things easier.
658 ###############################################################################
660 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
662 AC_DEFUN(AC_CHECK_X_HEADER, [
663 ac_save_CPPFLAGS="$CPPFLAGS"
664 if test \! -z "$includedir" ; then
665 CPPFLAGS="$CPPFLAGS -I$includedir"
667 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
668 AC_CHECK_HEADER([$1],[$2],[$3],[$4])
669 CPPFLAGS="$ac_save_CPPFLAGS"])
671 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
673 AC_DEFUN(AC_EGREP_X_HEADER, [
674 ac_save_CPPFLAGS="$CPPFLAGS"
675 if test \! -z "$includedir" ; then
676 CPPFLAGS="$CPPFLAGS -I$includedir"
678 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
679 AC_EGREP_HEADER([$1], [$2], [$3], [$4])
680 CPPFLAGS="$ac_save_CPPFLAGS"])
682 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
684 AC_DEFUN(AC_TRY_X_COMPILE, [
685 ac_save_CPPFLAGS="$CPPFLAGS"
686 if test \! -z "$includedir" ; then
687 CPPFLAGS="$CPPFLAGS -I$includedir"
689 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
690 AC_TRY_COMPILE([$1], [$2], [$3], [$4])
691 CPPFLAGS="$ac_save_CPPFLAGS"])
694 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
695 # Use this sparingly; it probably doesn't work very well on X programs.
697 AC_DEFUN(AC_CHECK_X_LIB, [
698 ac_save_CPPFLAGS="$CPPFLAGS"
699 ac_save_LDFLAGS="$LDFLAGS"
700 # ac_save_LIBS="$LIBS"
702 if test \! -z "$includedir" ; then
703 CPPFLAGS="$CPPFLAGS -I$includedir"
705 # note: $X_CFLAGS includes $x_includes
706 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
708 if test \! -z "$libdir" ; then
709 LDFLAGS="$LDFLAGS -L$libdir"
711 # note: $X_LIBS includes $x_libraries
712 LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
714 AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
715 CPPFLAGS="$ac_save_CPPFLAGS"
716 LDFLAGS="$ac_save_LDFLAGS"
717 # LIBS="$ac_save_LIBS"
720 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
721 # (But not the -L directories!)
723 AC_DEFUN(AC_TRY_X_RUN, [
724 ac_save_CPPFLAGS="$CPPFLAGS"
725 if test \! -z "$includedir" ; then
726 CPPFLAGS="$CPPFLAGS -I$includedir"
728 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
729 AC_TRY_RUN([$1], [$2], [$3], [$4])
730 CPPFLAGS="$ac_save_CPPFLAGS"])
734 # Usage: HANDLE_X_PATH_ARG([variable_name],
735 # [--command-line-option],
736 # [descriptive string])
738 # All of the --with options take three forms:
740 # --with-foo (or --with-foo=yes)
741 # --without-foo (or --with-foo=no)
744 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees
745 # a directory (string beginning with a slash) it checks to see whether
746 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
749 AC_DEFUN(HANDLE_X_PATH_ARG, [
755 AC_MSG_CHECKING([for [$3] headers])
758 X_CFLAGS="-I$d $X_CFLAGS"
761 AC_MSG_RESULT(not found ($d: no such directory))
764 AC_MSG_CHECKING([for [$3] libs])
767 X_LIBS="-L$d $X_LIBS"
770 AC_MSG_RESULT(not found ($d: no such directory))
773 # replace the directory string with "yes".
780 echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
781 echo " If it is a directory, then \`DIR/include' will be added to"
782 echo " the -I list, and \`DIR/lib' will be added to the -L list."
790 ###############################################################################
791 ###############################################################################
793 # End of function definitions. Now start actually executing stuff.
795 ###############################################################################
796 ###############################################################################
798 # random compiler setup
801 AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
809 # stuff for Makefiles
814 # By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'.
815 # That's wrong: it should be set to '${INSTALL}', so that one can
816 # implement the "install-strip" target properly (strip executables,
817 # but do not try to strip scripts.)
819 INSTALL_SCRIPT='${INSTALL}'
823 AC_CHECK_HEADERS(unistd.h)
832 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk)
833 AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
836 AC_CHECK_HEADERS(crypt.h sys/select.h)
839 if test -z "$PERL" ; then
840 # don't let it be blank...
846 if test "$have_x" != yes; then
847 AC_MSG_ERROR(Couldn't find X11 headers/libs. Try \`$0 --help'.)
850 AC_PATH_X_APP_DEFAULTS
854 AC_MSG_CHECKING(whether this is MacOS X)
861 AC_MSG_RESULT($ac_macosx)
865 ###############################################################################
869 ###############################################################################
872 GETTEXT_PACKAGE=xscreensaver
873 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE")
874 AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE")
875 AC_SUBST(GETTEXT_PACKAGE)
877 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"
879 MKINSTALLDIRS="$INSTALL_DIRS"
882 ###############################################################################
884 # Check for -lXmu (some fucked up vendors don't ship it...)
886 ###############################################################################
889 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes],,
892 #include <X11/Intrinsic.h>])
893 if test "$have_xmu" = no ; then
894 XMU_SRCS='$(UTILS_SRC)/xmu.c'
895 XMU_OBJS='$(UTILS_BIN)/xmu.o'
905 ###############################################################################
907 # Check for the SunOS 4.1.x _get_wmShellWidgetClass bug.
908 # See comp.windows.x FAQ question 124. The right fix is to
909 # get OpenWindows 3.0 patches 100512-02 and 100573-03.
911 ###############################################################################
913 if test "$have_xmu" = yes ; then
916 AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
918 [ac_save_LDFLAGS="$LDFLAGS"
919 if test \! -z "$x_libraries" ; then
920 LDFLAGS="$LDFLAGS -L$x_libraries"
922 # Note: this trick never works! (Generally.)
923 # We're only getting away with using AC_TRY_LINK
924 # with X libraries because we know it's SunOS.
925 LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
927 [ac_cv_sunos_xmu_bug=no],
928 [ac_cv_sunos_xmu_bug=yes])
929 LDFLAGS="$ac_save_LDFLAGS"])
930 if test "$ac_cv_sunos_xmu_bug" = yes ; then
931 AC_CACHE_CHECK([whether the compiler understands -static],
933 [ac_save_LDFLAGS="$LDFLAGS"
934 LDFLAGS="$LDFLAGS -static"
935 AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
936 LDFLAGS="$ac_save_LDFLAGS"])
937 if test "$ac_cv_ld_static" = yes ; then
938 LDFLAGS="$LDFLAGS -static"
940 LDFLAGS="$LDFLAGS -Bstatic"
948 ###############################################################################
950 # Handle the --with-hackdir option
952 ###############################################################################
955 with_hackdir_req=unspecified
956 AC_ARG_WITH(hackdir,[
957 Installation options:
959 --with-hackdir=DIR Where to install the hundreds of demo executables.
960 Default: \`PREFIX/lib/xscreensaver/'],
961 [with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes])
963 if test x"$with_hackdir" = xyes; then
964 HACKDIR='${exec_prefix}/lib/xscreensaver'
965 elif test x"$with_hackdir" = xno; then
968 # there must be a better way than this...
969 if test -z "`echo $with_hackdir | sed 's@^/.*@@'`" ; then
971 HACKDIR=$with_hackdir
974 HACKDIR="\${exec_prefix}$with_hackdir"
978 # canonicalize slashes.
979 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
981 # This option used to be called --enable-subdir; make sure that is no longer
982 # used, since configure brain-damagedly ignores unknown --enable options.
985 AC_ARG_ENABLE(subdir,,[obsolete_enable=yes])
986 if test -n "$obsolete_enable"; then
987 echo "error: the --enable-subdir option has been replaced with"
988 echo " the new --with-hackdir option; see \`configure --help'"
989 echo " for more information."
994 ###############################################################################
996 # Handle the --with-configdir option
998 ###############################################################################
1001 with_configdir_req=unspecified
1002 AC_ARG_WITH(configdir,
1003 [ --with-configdir=DIR Where to install the data files that describe each
1004 of the display modes to the GUI.
1005 Default: \`GNOMEPREFIX/control-center/screensavers/'
1006 or \`PREFIX/lib/xscreensaver/config/', depending on
1007 whether GNOME is available.
1009 [with_configdir="$withval"; with_configdir_req="$withval"],
1010 [with_configdir=yes])
1012 if test x"$with_configdir" = xyes; then
1013 # filled in later...
1015 elif test x"$with_configdir" = xno; then
1016 echo "error: must be yes, or a pathname: --with-configdir=$with_configdir"
1019 # there must be a better way than this...
1020 if test -z "`echo $with_configdir | sed 's@^/.*@@'`" ; then
1022 HACK_CONF_DIR=$with_configdir
1025 HACK_CONF_DIR="\${exec_prefix}$with_configdir"
1032 ###############################################################################
1034 # Check for the SGI SCREEN_SAVER server extension.
1036 ###############################################################################
1039 with_sgi_req=unspecified
1040 AC_ARG_WITH(sgi-ext,
1041 [Except where noted, all of the --with options below can also take a
1042 directory argument: for example, \`--with-motif=/opt/Motif'. That would
1043 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
1044 to be added to the -L list, assuming those directories exist.
1046 By default, support for each of these options will be built in, if the
1047 relevant library routines exist. At run time, they will then be used
1048 only if the X server being used supports them. Each --with option has
1049 a corresponding --without option, to override building support for them
1052 Screen blanking and idle-detection options:
1054 --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.],
1055 [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
1057 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
1059 if test "$with_sgi" = yes; then
1060 AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
1062 AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],,
1063 [#include <X11/Xlib.h>])
1065 elif test "$with_sgi" != no; then
1066 echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
1071 ###############################################################################
1073 # Check for the MIT-SCREEN-SAVER server extension.
1075 ###############################################################################
1078 with_mit_req=unspecified
1079 AC_ARG_WITH(mit-ext,
1080 [ --with-mit-ext Include support for the MIT-SCREEN-SAVER extension.],
1081 [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
1083 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
1085 if test "$with_mit" = yes; then
1086 AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes],,
1087 [#include <X11/Xlib.h>])
1089 # Now check to see if it's really in the library; XF86Free-3.3 ships
1090 # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
1092 if test "$have_mit" = yes; then
1093 AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [true], [have_mit=no], -lm)
1095 if test "$have_mit" = no; then
1096 # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead
1097 # of in Xext. Thank you master, may I have another.
1098 AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
1099 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
1100 [true], -lX11 -lXext -lm)
1103 if test "$have_mit" = no; then
1104 # Double fuck! Looks like some versions of XFree86 (whichever version
1105 # it is that comes with RedHat Linux 2.0 -- I can't find a version
1106 # number) put this garbage in Xss instead of Xext. Thank you master,
1107 # may I have another.
1108 AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
1109 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
1110 [true], -lX11 -lXext -lm)
1113 if test "$have_mit" = yes; then
1114 AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
1119 elif test "$with_mit" != no; then
1120 echo "error: must be yes or no: --with-mit-ext=$with_mit"
1125 ###############################################################################
1127 # Check for the XIDLE server extension.
1129 ###############################################################################
1132 with_xidle_req=unspecified
1133 AC_ARG_WITH(xidle-ext,
1134 [ --with-xidle-ext Include support for the XIDLE extension.],
1135 [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
1137 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
1139 if test "$with_xidle" = yes; then
1140 AC_CHECK_X_HEADER(X11/extensions/xidle.h,
1142 AC_DEFINE(HAVE_XIDLE_EXTENSION)],,
1143 [#include <X11/Xlib.h>])
1144 elif test "$with_xidle" != no; then
1145 echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
1150 ###############################################################################
1152 # Check for the SGI-VIDEO-CONTROL server extension.
1154 ###############################################################################
1157 with_sgivc_req=unspecified
1158 AC_ARG_WITH(sgivc-ext,
1159 [ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension.],
1160 [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
1162 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
1164 if test "$with_sgivc" = yes; then
1166 # first check for XSGIvc.h
1167 AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],,
1168 [#include <X11/Xlib.h>])
1170 # if that succeeded, then check for the -lXsgivc
1171 if test "$have_sgivc" = yes; then
1173 AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
1174 [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
1178 # if that succeeded, then we've really got it.
1179 if test "$have_sgivc" = yes; then
1180 AC_DEFINE(HAVE_SGI_VC_EXTENSION)
1183 elif test "$with_sgivc" != no; then
1184 echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
1189 ###############################################################################
1191 # Check for the DPMS server extension.
1193 ###############################################################################
1196 with_dpms_req=unspecified
1197 AC_ARG_WITH(dpms-ext,
1198 [ --with-dpms-ext Include support for the DPMS extension.],
1199 [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
1201 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
1203 if test "$with_dpms" = yes; then
1205 # first check for dpms.h
1206 AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes],,
1207 [#include <X11/Xlib.h>
1208 #include <X11/Xmd.h>])
1210 # if that succeeded, then check for the DPMS code in the libraries
1211 if test "$have_dpms" = yes; then
1213 # first look in -lXext (this is where it is with XFree86 4.0)
1215 AC_CHECK_X_LIB(Xext, DPMSInfo, [have_dpms=yes], [true], -lXext -lX11)
1217 # if that failed, look in -lXdpms (this is where it was in XFree86 3.x)
1218 if test "$have_dpms" = no; then
1219 AC_CHECK_X_LIB(Xdpms, DPMSInfo,
1220 [have_dpms=yes; XDPMS_LIBS="-lXdpms"], [true],
1226 # if that succeeded, then we've really got it.
1227 if test "$have_dpms" = yes; then
1228 AC_DEFINE(HAVE_DPMS_EXTENSION)
1231 elif test "$with_dpms" != no; then
1232 echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
1237 ###############################################################################
1239 # Check for the XINERAMA server extension.
1241 ###############################################################################
1244 with_xinerama_req=unspecified
1245 AC_ARG_WITH(xinerama-ext,
1246 [ --with-xinerama-ext Include support for the XINERAMA extension.],
1247 [with_xinerama="$withval"; with_xinerama_req="$withval"],[with_xinerama=yes])
1249 HANDLE_X_PATH_ARG(with_xinerama, --with-xinerama-ext, XINERAMA)
1251 if test "$with_xinerama" = yes; then
1253 # first check for Xinerama.h
1254 AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes],,
1255 [#include <X11/Xlib.h>])
1257 # if that succeeded, then check for the XINERAMA code in the libraries
1258 if test "$have_xinerama" = yes; then
1260 # first look in -lXext
1262 AC_CHECK_X_LIB(Xext, XineramaQueryScreens, [have_xinerama=yes], [true],
1265 # if that failed, look in -lXinerama (this is where it is in XFree86 4.1.)
1266 if test "$have_xinerama" = no; then
1267 AC_CHECK_X_LIB(Xinerama, XineramaQueryScreens,
1268 [have_xinerama=yes; SAVER_LIBS="$SAVER_LIBS -lXinerama"],
1269 [true], -lXext -lX11)
1273 # if that succeeded, then we've really got it.
1274 if test "$have_xinerama" = yes; then
1275 AC_DEFINE(HAVE_XINERAMA)
1278 elif test "$with_xinerama" != no; then
1279 echo "error: must be yes or no: --with-xinerama-ext=$with_xinerama"
1284 ###############################################################################
1286 # Check for the XF86VMODE server extension (for virtual screens.)
1288 ###############################################################################
1291 with_xf86vmode_req=unspecified
1292 AC_ARG_WITH(xf86vmode-ext,
1293 [ --with-xf86vmode-ext Include support for XFree86 virtual screens.],
1294 [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"],
1295 [with_xf86vmode=yes])
1297 HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
1299 if test "$with_xf86vmode" = yes; then
1301 # first check for xf86vmode.h
1302 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],,
1303 [#include <X11/Xlib.h>])
1305 # if that succeeded, then check for the -lXxf86vm
1306 if test "$have_xf86vmode" = yes; then
1308 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
1309 [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
1310 [true], -lXext -lX11)
1313 # if that succeeded, then we've really got it.
1314 if test "$have_xf86vmode" = yes; then
1315 AC_DEFINE(HAVE_XF86VMODE)
1318 elif test "$with_xf86vmode" != no; then
1319 echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
1324 ###############################################################################
1326 # Check for the XF86VMODE server extension (for gamma fading.)
1328 ###############################################################################
1331 have_xf86gamma_ramp=no
1332 with_xf86gamma_req=unspecified
1333 AC_ARG_WITH(xf86gamma-ext,
1334 [ --with-xf86gamma-ext Include support for XFree86 gamma fading.],
1335 [with_xf86gamma="$withval"; with_xf86gamma_req="$withval"],
1336 [with_xf86gamma=yes])
1338 HANDLE_X_PATH_ARG(with_xf86gamma, --with-xf86gamma-ext, xf86gamma)
1340 if test "$with_xf86gamma" = yes; then
1342 # first check for xf86vmode.h, if we haven't already
1343 if test "$have_xf86vmode" = yes; then
1346 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],,
1347 [#include <X11/Xlib.h>])
1350 # if that succeeded, then check for the -lXxf86vm
1351 if test "$have_xf86gamma" = yes; then
1353 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGamma,
1354 [have_xf86gamma=yes],
1355 [true], -lXext -lX11)
1358 # check for the Ramp versions of the functions too.
1359 if test "$have_xf86gamma" = yes; then
1360 have_xf86gamma_ramp=no
1361 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGammaRamp,
1362 [have_xf86gamma_ramp=yes],
1363 [true], -lXext -lX11)
1366 # if those tests succeeded, then we've really got the functions.
1367 if test "$have_xf86gamma" = yes; then
1368 AC_DEFINE(HAVE_XF86VMODE_GAMMA)
1371 if test "$have_xf86gamma_ramp" = yes; then
1372 AC_DEFINE(HAVE_XF86VMODE_GAMMA_RAMP)
1375 # pull in the lib, if we haven't already
1376 if test "$have_xf86gamma" = yes -a "$have_xf86vmode" = no; then
1377 SAVER_LIBS="$SAVER_LIBS -lXxf86vm"
1380 elif test "$with_xf86gamma" != no; then
1381 echo "error: must be yes or no: --with-xf86gamma-ext=$with_xf86vmode"
1386 ###############################################################################
1388 # Check for XF86MiscSetGrabKeysState (but only bother if we are already
1389 # using other XF86 stuff.)
1391 ###############################################################################
1393 have_xf86miscsetgrabkeysstate=no
1394 if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then
1395 AC_CHECK_X_LIB(Xxf86misc, XF86MiscSetGrabKeysState,
1396 [have_xf86miscsetgrabkeysstate=yes],
1397 [true], -lXext -lX11)
1398 if test "$have_xf86miscsetgrabkeysstate" = yes ; then
1399 SAVER_LIBS="$SAVER_LIBS -lXxf86misc"
1400 AC_DEFINE(HAVE_XF86MISCSETGRABKEYSSTATE)
1405 ###############################################################################
1407 # Check for HP XHPDisableReset and XHPEnableReset.
1409 ###############################################################################
1411 AC_MSG_CHECKING([for XHPDisableReset in X11/XHPlib.h])
1412 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
1413 [AC_DEFINE(HAVE_XHPDISABLERESET)
1414 SAVER_LIBS="-lXhp11 $SAVER_LIBS"
1415 AC_MSG_RESULT(yes)],
1416 [AC_MSG_RESULT(no)])
1419 ###############################################################################
1421 # Check for /proc/interrupts.
1423 ###############################################################################
1425 have_proc_interrupts=no
1426 with_proc_interrupts_req=unspecified
1427 AC_ARG_WITH(proc-interrupts,
1428 [ --with-proc-interrupts Include support for consulting the /proc/interrupts
1429 file to notice keyboard activity.],
1430 [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
1431 [with_proc_interrupts=yes])
1433 if test "$with_proc_interrupts" = yes; then
1435 AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
1436 ac_cv_have_proc_interrupts,
1437 [ac_cv_have_proc_interrupts=no
1438 if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
1439 ac_cv_have_proc_interrupts=yes
1442 have_proc_interrupts=$ac_cv_have_proc_interrupts
1444 if test "$have_proc_interrupts" = yes; then
1445 AC_DEFINE(HAVE_PROC_INTERRUPTS)
1448 elif test "$with_proc_interrupts" != no; then
1449 echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
1454 ###############################################################################
1456 # The --enable-locking option
1458 ###############################################################################
1460 AC_ARG_ENABLE(locking,[
1461 Screen locking options:
1463 --enable-locking Compile in support for locking the display.
1464 --disable-locking Do not allow locking at all.],
1465 [enable_locking="$enableval"],[enable_locking=yes])
1466 if test "$enable_locking" = yes; then
1468 elif test "$enable_locking" = no; then
1469 AC_DEFINE(NO_LOCKING)
1471 echo "error: must be yes or no: --enable-locking=$enable_locking"
1475 # We can't lock on MacOS X, so don't even bother compiling in support for it.
1477 if test "$ac_macosx" = yes; then
1478 if test "$enable_locking" = yes; then
1479 AC_MSG_RESULT(locking disabled: it doesn't work on MacOS X)
1481 AC_DEFINE(NO_LOCKING)
1486 ###############################################################################
1488 # The --enable-vt-locking option
1490 ###############################################################################
1492 #ac_vt_lockswitch=no
1493 #AC_ARG_ENABLE(vt-locking,[
1494 # --enable-vt-locking Compile in support for locking Virtual Terminals.
1495 # This is the default if the system supports it, and
1496 # if locking support is included (--enable-locking.)
1497 # --disable-vt-locking Do not allow locking of VTs, even if locking is
1499 # [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1500 #if test "$enable_vt_locking" = yes; then
1502 # AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1503 # [AC_TRY_COMPILE([#include <fcntl.h>
1504 # #include <sys/ioctl.h>
1505 # #include <sys/vt.h>],
1506 # [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1507 # [ac_cv_vt_lockswitch=yes],
1508 # [ac_cv_vt_lockswitch=no])])
1509 # ac_vt_lockswitch=$ac_cv_vt_lockswitch
1511 #elif test "$enable_vt_locking" = no; then
1514 # echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1518 #if test "$ac_vt_lockswitch" = yes; then
1519 # AC_DEFINE(HAVE_VT_LOCKSWITCH)
1520 # # the VT_LOCKSWITCH ioctl can only be used when running as root.
1521 # # #### but it doesn't work yet, so don't worry about that for now.
1526 ###############################################################################
1530 ###############################################################################
1534 # Solaris systems tend to come with PAM misconfigured.
1535 # Don't build it by default, even if the headers exist.
1539 # Default to building PAM support on all other systems, if it exists.
1540 with_pam_default=yes
1545 with_pam_req=unspecified
1548 [ --with-pam Include support for PAM (Pluggable Auth Modules.)],
1549 [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1551 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1553 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1554 AC_CACHE_CHECK([for PAM], ac_cv_pam,
1555 [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1558 if test "$ac_cv_pam" = yes ; then
1561 PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1563 # libpam typically requires dlopen and dlsym. On FreeBSD,
1564 # those are in libc. On Linux and Solaris, they're in libdl.
1565 AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1567 # On Linux, sigtimedwait() is in libc; on Solaris, it's in librt.
1569 AC_CHECK_LIB(c, sigtimedwait, [have_timedwait=yes])
1570 if test "$have_timedwait" = no ; then
1571 AC_CHECK_LIB(rt, sigtimedwait, [PASSWD_LIBS="${PASSWD_LIBS} -lrt"])
1574 AC_MSG_CHECKING(how to call pam_strerror)
1575 AC_CACHE_VAL(ac_cv_pam_strerror_args,
1576 [AC_TRY_COMPILE([#include <stdio.h>
1578 #include <security/pam_appl.h>],
1579 [pam_handle_t *pamh = 0;
1580 char *s = pam_strerror(pamh, PAM_SUCCESS);],
1581 [ac_pam_strerror_args=2],
1582 [AC_TRY_COMPILE([#include <stdio.h>
1584 #include <security/pam_appl.h>],
1586 pam_strerror(PAM_SUCCESS);],
1587 [ac_pam_strerror_args=1],
1588 [ac_pam_strerror_args=0])])
1589 ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1590 ac_pam_strerror_args=$ac_cv_pam_strerror_args
1591 if test "$ac_pam_strerror_args" = 1 ; then
1592 AC_MSG_RESULT(one argument)
1593 elif test "$ac_pam_strerror_args" = 2 ; then
1594 AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1595 AC_MSG_RESULT(two arguments)
1597 AC_MSG_RESULT(unknown)
1603 ###############################################################################
1605 # Check for Kerberos.
1607 ###############################################################################
1611 with_kerberos_req=unspecified
1613 AC_ARG_WITH(kerberos,
1614 [ --with-kerberos Include support for Kerberos authentication.],
1615 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1617 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1619 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1620 AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
1621 [AC_TRY_X_COMPILE([#include <krb.h>],,
1622 [ac_cv_kerberos=yes],
1623 [ac_cv_kerberos=no])])
1624 AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
1625 [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
1626 [ac_cv_kerberos5=yes],
1627 [ac_cv_kerberos5=no])])
1629 if test "$ac_cv_kerberos" = yes ; then
1631 AC_DEFINE(HAVE_KERBEROS)
1634 if test "$ac_cv_kerberos5" = yes ; then
1636 # Andrew Snare <ajs@pigpond.com> wrote:
1638 # You were assuming that if kerberosV (krb5) was found, then kerberosIV
1639 # (krb4) was also available. This turns out not to be the case with
1640 # mit-krb-1.2.7; apparently backwards-compatibility with KerberosIV
1643 # So, disable kerberosV support if libkrb4 can't be found.
1644 # This is not the best solution, but it makes the compile not fail.
1646 AC_CHECK_X_LIB(krb4, krb_get_tf_realm,
1647 [have_kerberos=yes],
1649 if test "$have_kerberos" = yes ; then
1651 AC_DEFINE(HAVE_KERBEROS)
1652 AC_DEFINE(HAVE_KERBEROS5)
1655 AC_MSG_WARN([Cannot find compat lib (libkrb4) needed to use Kerberos 5])
1660 if test "$have_kerberos5" = yes ; then
1661 # from Matt Knopp <mhat@infocalypse.netlag.com>
1662 # (who got it from amu@mit.edu)
1664 PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"
1666 # jwz: MacOS X uses -lkrb5, but not -lcrypt
1667 AC_CHECK_X_LIB(crypt, crypt, [PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1669 elif test "$have_kerberos" = yes ; then
1670 # from Tim Showalter <tjs@psaux.com> for FreeBSD 4.2
1671 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err"
1674 if test "$have_kerberos" = yes ; then
1675 AC_CHECK_FUNC(res_search,,
1676 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1677 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1683 ###############################################################################
1685 # Check for the nine billion variants of shadow passwords...
1687 ###############################################################################
1692 with_shadow_req=unspecified
1695 [ --with-shadow Include support for shadow password authentication.],
1696 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1698 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1700 if test "$enable_locking" = no ; then
1706 ###############################################################################
1708 # Check for Sun "adjunct" passwords.
1710 ###############################################################################
1712 if test "$with_shadow" = yes ; then
1713 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1714 [AC_TRY_X_COMPILE([#include <stdlib.h>
1716 #include <sys/types.h>
1717 #include <sys/label.h>
1718 #include <sys/audit.h>
1719 #include <pwdadj.h>],
1720 [struct passwd_adjunct *p = getpwanam("nobody");
1721 const char *pw = p->pwa_passwd;],
1722 [ac_cv_sun_adjunct=yes],
1723 [ac_cv_sun_adjunct=no])])
1724 if test "$ac_cv_sun_adjunct" = yes; then
1725 have_shadow_adjunct=yes
1732 ###############################################################################
1734 # Check for DEC and SCO so-called "enhanced" security.
1736 ###############################################################################
1738 if test "$with_shadow" = yes ; then
1739 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1740 [AC_TRY_X_COMPILE([#include <stdlib.h>
1742 #include <sys/types.h>
1744 #include <sys/security.h>
1746 [struct pr_passwd *p;
1748 set_auth_parameters(0, 0);
1749 check_auth_parameters();
1750 p = getprpwnam("nobody");
1751 pw = p->ufld.fd_encrypt;],
1752 [ac_cv_enhanced_passwd=yes],
1753 [ac_cv_enhanced_passwd=no])])
1754 if test $ac_cv_enhanced_passwd = yes; then
1755 have_shadow_enhanced=yes
1759 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1760 # (I'm told it needs -lcurses too, but I don't understand why.)
1761 # But on DEC, it's in -lsecurity.
1763 AC_CHECK_LIB(prot, getprpwnam,
1764 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1765 [AC_CHECK_LIB(security, getprpwnam,
1766 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1771 ###############################################################################
1773 # Check for HP's entry in the "Not Invented Here" Sweepstakes.
1775 ###############################################################################
1777 if test "$with_shadow" = yes ; then
1778 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1779 [AC_TRY_X_COMPILE([#include <stdlib.h>
1781 #include <sys/types.h>
1783 #include <hpsecurity.h>
1785 [struct s_passwd *p = getspwnam("nobody");
1786 const char *pw = p->pw_passwd;],
1787 [ac_cv_hpux_passwd=yes],
1788 [ac_cv_hpux_passwd=no])])
1789 if test "$ac_cv_hpux_passwd" = yes; then
1790 have_shadow_hpux=yes
1794 # on HPUX, bigcrypt is in -lsec
1795 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1800 ###############################################################################
1802 # Check for FreeBSD-style shadow passwords.
1804 # On FreeBSD, getpwnam() and friends work just like on non-shadow-
1805 # password systems -- except you only get stuff in the pw_passwd field
1806 # if the running program is setuid. So, guess that we've got this
1807 # lossage to contend with if /etc/master.passwd exists, and default to
1808 # a setuid installation.
1810 ###############################################################################
1812 if test "$with_shadow" = yes ; then
1813 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1814 [if test -f /etc/master.passwd ; then
1815 ac_cv_master_passwd=yes
1817 ac_cv_master_passwd=no
1819 if test "$ac_cv_master_passwd" = yes; then
1825 ###############################################################################
1827 # Check for traditional (ha!) shadow passwords.
1829 ###############################################################################
1831 if test "$with_shadow" = yes ; then
1832 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1833 [AC_TRY_X_COMPILE([#include <stdlib.h>
1835 #include <sys/types.h>
1837 #include <shadow.h>],
1838 [struct spwd *p = getspnam("nobody");
1839 const char *pw = p->sp_pwdp;],
1841 [ac_cv_shadow=no])])
1842 if test "$ac_cv_shadow" = yes; then
1846 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1848 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1849 if test "$have_getspnam" = no ; then
1850 AC_CHECK_LIB(gen, getspnam,
1851 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1857 ###############################################################################
1859 # Check for other libraries needed for non-shadow passwords.
1861 ###############################################################################
1863 if test "$enable_locking" = yes ; then
1865 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1867 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1868 if test "$have_crypt" = no ; then
1869 AC_CHECK_LIB(crypt, crypt,
1870 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1875 # Most of the above shadow mechanisms will have set need_setuid to yes,
1876 # if they were found. But, on some systems, we need setuid even when
1877 # using plain old vanilla passwords.
1879 if test "$enable_locking" = yes ; then
1881 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1888 if test "$have_shadow_adjunct" = yes ; then
1889 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1890 elif test "$have_shadow_enhanced" = yes ; then
1891 AC_DEFINE(HAVE_ENHANCED_PASSWD)
1892 elif test "$have_shadow_hpux" = yes ; then
1893 AC_DEFINE(HAVE_HPUX_PASSWD)
1894 elif test "$have_shadow" = yes ; then
1895 AC_DEFINE(HAVE_SHADOW_PASSWD)
1899 ###############################################################################
1901 # Check for external password helper
1902 # On SuSE, instead of having xscreensaver be a setuid program, they
1903 # fork an external program that takes the password on stdin, and
1904 # returns true if that password is a valid one. Then only that
1905 # smaller program needs to be setuid.
1907 # (Note that this external program is not a GUI: the GUI is still
1908 # all in xscreensaver itself; the external program just does auth.)
1910 ###############################################################################
1912 have_passwd_helper=no
1913 with_passwd_helper_req=unspecified
1915 AC_ARG_WITH(passwd-helper,
1916 [ --with-passwd-helper Include support for an external password
1917 verification helper program.],
1918 [with_passwd_helper="$withval"; with_passwd_helper_req="$withval"],[with_passwd_helper=no])
1919 # no HANDLE_X_PATH_ARG for this one
1921 if test "$enable_locking" = no ; then
1922 with_passwd_helper_req=no
1923 with_passwd_helper=no
1926 case "$with_passwd_helper" in
1929 AC_DEFINE_UNQUOTED(PASSWD_HELPER_PROGRAM, "$with_passwd_helper")
1930 have_passwd_helper=yes;;
1932 echo "error: --with-passwd-helper needs full pathname of helper (not '$with_passwd_helper')." >&2
1937 ###############################################################################
1941 ###############################################################################
1944 with_motif_req=unspecified
1946 User interface options:
1948 --with-motif Use the Motif toolkit for the user interface
1949 (not recommended.)],
1950 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no])
1952 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
1954 if test "$with_motif" != yes -a "$with_motif" != no ; then
1955 echo "error: must be yes or no: --with-motif=$with_motif"
1959 if test "$with_motif" = yes; then
1961 AC_CHECK_X_HEADER(Xm/Xm.h,
1963 AC_DEFINE(HAVE_MOTIF)
1964 MOTIF_LIBS="$MOTIF_LIBS -lXm"],,
1965 [#include <stdlib.h>
1967 #include <X11/Intrinsic.h>])
1971 if test "$have_motif" = yes; then
1972 AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],,
1973 [#include <stdlib.h>
1975 #include <X11/Intrinsic.h>])
1979 ###############################################################################
1981 # Check for -lgtk (and Gnome stuff)
1983 ###############################################################################
1987 with_gtk_req=unspecified
1989 [ --with-gtk Use the Gtk toolkit for the user interface.],
1990 [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
1992 # if --with-gtk=/directory/ was specified, remember that directory so that
1993 # we can also look for the `gtk-config' program in that directory.
2003 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
2005 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
2006 echo "error: must be yes or no: --with-gtk=$with_gtk"
2011 with_gnome_req=unspecified
2013 [ --with-gnome Include support for the Gnome 1.x Control Center.
2014 (This option is not needed with GTK 2.x / Gnome 2.x.)
2016 [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
2018 # if --with-gnome=/directory/ was specified, remember that directory so that
2019 # we can also look for the `gnome-config' program in that directory.
2020 case "$with_gnome" in
2022 gnome_dir="$with_gnome"
2029 HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome)
2031 if test "$with_gnome" != yes -a "$with_gnome" != no ; then
2032 echo "error: must be yes or no: --with-gnome=$with_gnome"
2036 parse_gtk_version_string() {
2039 maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
2040 min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
2042 ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
2043 if test -z "$ac_gtk_version"; then
2044 ac_gtk_version=unknown
2045 ac_gtk_version_string=unknown
2053 if test "$with_gtk" = yes; then
2056 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2057 # look in /foo/bin/ for glib-config, gtk-config, and gnome-config.
2061 if test ! -z "$gtk_dir"; then
2062 # canonicalize slashes.
2063 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2064 gtk_path="$foo:$gtk_path"
2067 if test ! -z "$gnome_dir"; then
2068 # canonicalize slashes.
2069 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2070 gtk_path="$foo:$gtk_path"
2073 AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path)
2075 if test -n "$pkg_config" ; then
2078 # run pkg-config based tests.
2081 pkg_check_version() {
2082 if test "$ok" = yes ; then
2085 AC_MSG_CHECKING(for $req)
2086 if $pkg_config --exists "$req" ; then
2087 vers=`$pkg_config --modversion "$req"`
2088 if $pkg_config --exists "$req >= $min" ; then
2089 AC_MSG_RESULT($vers)
2093 AC_MSG_RESULT($vers (wanted >= $min))
2105 AC_MSG_RESULT(checking for GTK 2.x with pkg-config based tests...)
2108 pkg_check_version gtk+-2.0 2.0.1 ; ac_gtk_version_string="$vers"
2109 pkg_check_version gmodule-2.0 2.0.0
2110 pkg_check_version libxml-2.0 2.4.6
2111 pkg_check_version libglade-2.0 1.99.0
2112 # pkg_check_version gdk_pixbuf 0.1
2115 if test "$have_gtk" = yes; then
2117 AC_DEFINE(HAVE_GTK2)
2119 if test -n "$ac_gtk_version_string" ; then
2120 gtk2_halfassed="$ac_gtk_version_string"
2121 gtk2_halfassed_lib="$req"
2125 if test "$have_gtk" = no; then
2127 # we don't have GTK 2. Let's look for GTK 1.
2129 AC_MSG_RESULT(checking for GTK 1.x with pkg-config based tests...)
2133 pkg_check_version gtk+ 1.2 ; ac_gtk_version_string="$vers"
2134 pkg_check_version glib 1.0
2135 pkg_check_version gdk_pixbuf 0.1
2138 # Now check for Gnome...
2140 if test "$have_gtk" = yes -a "$with_gnome" = yes; then
2143 pkg_check_version capplet 1.0
2144 pkg_check_version gnomeui 1.0
2145 pkg_check_version gdk_pixbuf 0.1
2148 if test "$have_gnome" = no; then
2151 AC_DEFINE(HAVE_CRAPPLET)
2156 if test "$have_gtk" = yes; then
2157 parse_gtk_version_string
2163 if test "$have_gtk" = yes; then
2164 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
2165 [ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`])
2166 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
2167 [ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs`])
2169 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
2170 ac_gtk_config_libs=$ac_cv_gtk_config_libs
2172 ac_gnome_config_cflags=$ac_gtk_config_cflags
2173 ac_gnome_config_libs=$ac_gtk_config_libs
2178 # run {gnome,gtk}-config based tests.
2180 AC_MSG_RESULT(checking for GTK 1.x with gtk-config based tests...)
2182 AC_PATH_PROGS(glib_config, glib12-config glib-config,, $gtk_path)
2183 AC_PATH_PROGS(gtk_config, gtk12-config gtk-config,, $gtk_path)
2185 if test "$with_gnome" = yes; then
2186 AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
2189 if test -n "$glib_config" -a -n "$gtk_config" ; then
2191 if test "$with_gnome" = yes -a -n "$gnome_config" ; then
2196 if test "$have_gtk" = yes; then
2197 AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
2198 [ac_cv_gtk_version_string=`$gtk_config --version`])
2199 ac_gtk_version_string=$ac_cv_gtk_version_string
2200 parse_gtk_version_string
2203 if test "$have_gtk" = yes; then
2204 if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
2212 if test "$have_gtk" = yes; then
2213 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
2214 [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
2215 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
2216 [ac_cv_gtk_config_libs=`$gtk_config --libs`])
2218 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
2219 ac_gtk_config_libs=$ac_cv_gtk_config_libs
2221 # Check for Gnome Capplet support.
2222 # Note that this is only needed with Gnome 1.x, not Gnome 2.x.
2223 # In a Gnome 2.x world, libcapplet will not exist.
2224 # (In fact, this likely won't even be checked, since in a Gnome 2.x
2225 # world, we will probably be up in the "$pkg_config" branch instead
2226 # of here in the "$gnome_config" branch.)
2228 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2229 gnome_config_libs="gtk capplet gnomeui gdk_pixbuf"
2230 AC_MSG_CHECKING(for Gnome capplet includes)
2231 AC_CACHE_VAL(ac_cv_gnome_config_cflags,
2232 [if ( $gnome_config --cflags $gnome_config_libs 2>&1 | \
2233 grep Unknown >/dev/null ) ; then
2234 ac_cv_gnome_config_cflags=''
2236 ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
2238 ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
2239 if test "$ac_gnome_config_cflags" = "" ; then
2243 AC_MSG_RESULT($ac_gnome_config_cflags)
2247 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2248 AC_MSG_CHECKING(for Gnome capplet libs)
2249 AC_CACHE_VAL(ac_cv_gnome_config_libs,
2250 [if ( $gnome_config --libs $gnome_config_libs 2>&1 |
2251 grep Unknown >/dev/null ) ; then
2252 ac_cv_gnome_config_libs=''
2254 ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
2256 ac_gnome_config_libs=$ac_cv_gnome_config_libs
2257 if test "$ac_gnome_config_libs" = "" ; then
2261 AC_MSG_RESULT($ac_gnome_config_libs)
2265 # If we have Gnome, then override the gtk-config values with
2266 # the gnome-config values.
2268 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2269 ac_gtk_config_cflags=$ac_gnome_config_cflags
2270 ac_gtk_config_libs=$ac_gnome_config_libs
2271 AC_DEFINE(HAVE_CRAPPLET)
2274 fi # end of {gnome,gtk}-config based tests
2276 if test "$have_gtk" = yes -a "$have_gtk2" = no; then
2277 # check for this function that was not in libcapplet 1.2.
2278 # (only needed in Gnome/Gtk 1.x, not Gnome/Gtk 2.x)
2279 AC_CHECK_X_LIB(capplet, capplet_widget_changes_are_immediate,
2280 [AC_DEFINE(HAVE_CRAPPLET_IMMEDIATE)], [true],
2281 $ac_gnome_config_libs)
2286 if test "$have_gtk" = yes; then
2287 if test -n "$pkg_config"; then
2288 if test "$have_gtk2" = yes; then
2289 GNOME_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
2291 GNOME_DATADIR=`$pkg_config --variable=prefix gtk+`
2294 GNOME_DATADIR=`$gtk_config --prefix`
2296 GNOME_DATADIR="$GNOME_DATADIR/share"
2299 # .desktop files go in different places in Gnome 1.x and Gnome 2.x...
2300 if test "$have_gtk2" = yes; then
2301 GNOME_PANELDIR='$(GNOME_PANELDIR2)'
2303 GNOME_PANELDIR='$(GNOME_PANELDIR1)'
2307 if test "$have_gtk" = yes; then
2308 INCLUDES="$INCLUDES $ac_gtk_config_cflags"
2309 GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
2312 if test "$have_gtk2" = yes; then
2315 GTK_EXTRA_OBJS="\$(GTK_EXTRA_OBJS)"
2322 # Check for the Gnome Help Browser.
2324 if test "$have_gtk" = yes; then
2325 AC_CHECK_PROGS(have_gnome_help, yelp gnome-help-browser, no)
2326 if test "$have_gnome_help" != no; then
2332 ###############################################################################
2336 ###############################################################################
2339 with_xml_req=unspecified
2342 [ --with-xml The XML toolkit is needed for some parts of
2343 the Gtk interface. Without it, the configuration
2344 interface will be much less featureful.],
2345 [with_xml="$withval"; with_xml_req="$withval"],[with_xml=yes])
2347 # if --with-xml=/directory/ was specified, remember that directory so that
2348 # we can also look for the `xml-config' program in that directory.
2358 HANDLE_X_PATH_ARG(with_xml, --with-xml, XML)
2360 if test "$with_xml" != yes -a "$with_xml" != no ; then
2361 echo "error: must be yes or no: --with-xml=$with_xml"
2365 if test "$with_xml" = yes; then
2369 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2370 # look in /foo/bin/ for for xml-config.
2374 if test ! -z "$gtk_dir"; then
2375 # canonicalize slashes.
2376 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2377 xml_path="$foo:$xml_path"
2380 if test ! -z "$gnome_dir"; then
2381 # canonicalize slashes.
2382 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2383 xml_path="$foo:$xml_path"
2386 if test -n "$pkg_config" ; then
2389 # run pkg-config based tests.
2394 # If we have Gtk 2.x, then *only* XML 2.x will work.
2395 # If we have Gtk 1.x, or don't have Gtk at all, then
2396 # either XML 1.x or 2.x will work.
2398 # First check for XML 2.x.
2400 pkg_check_version libxml-2.0 2.4.6
2402 # If that didn't work (we don't have XML 2.x) and we *don't* have
2403 # Gtk 2.x, then check to see if we have XML 1.x
2405 if test "$ok" = no -a "$have_gtk2" = no; then
2407 pkg_check_version libxml 1.0
2412 if test "$have_xml" = yes; then
2413 AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2414 [ac_cv_xml_config_cflags=`$pkg_config --cflags $pkgs`])
2415 AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2416 [ac_cv_xml_config_libs=`$pkg_config --libs $pkgs`])
2417 ac_xml_config_cflags=$ac_cv_xml_config_cflags
2418 ac_xml_config_libs=$ac_cv_xml_config_libs
2424 # run {xml2,xml}-config based tests.
2427 AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path)
2429 # If we found the xml-config program, run it to get flags.
2431 if test -n "$xml_config" ; then
2432 AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2433 [ac_cv_xml_config_cflags=`$xml_config --cflags`])
2434 AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2435 [ac_cv_xml_config_libs=`$xml_config --libs`])
2436 ac_xml_config_cflags=$ac_cv_xml_config_cflags
2437 ac_xml_config_libs=$ac_cv_xml_config_libs
2440 ac_save_xml_CPPFLAGS="$CPPFLAGS"
2441 CPPFLAGS="$CPPFLAGS $ac_xml_config_cflags"
2443 # first try <libxml/parser.h> which is the new way...
2445 AC_CHECK_X_HEADER(libxml/xmlIO.h, [have_xml=yes],,
2446 [#include <libxml/parser.h>])
2448 # if that didn't work, then try just <parser.h> which is the old way...
2450 if test "$have_xml" = no; then
2451 AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes; have_old_xml=yes],,
2452 [#include <parser.h>])
2455 CPPFLAGS="$ac_save_xml_CPPFLAGS"
2460 if test "$have_xml" = yes; then
2461 # we have the XML headers; now make sure zlib is around.
2462 # yes, it's stupid we have to do this too, but there is
2463 # dependency screwage in Gnome.
2464 AC_CHECK_X_LIB(z, zlibVersion, [have_zlib=yes])
2465 if test "$have_zlib" = no; then
2471 if test "$have_xml" = yes; then
2472 # we have the header, now check for the library
2475 AC_CHECK_X_LIB(c, xmlParseChunk,
2478 XML_LIBS="$ac_xml_config_libs"
2479 AC_DEFINE(HAVE_XML)],
2481 $ac_xml_config_libs)
2484 if test "$have_xml" = yes; then
2485 INCLUDES="$INCLUDES $ac_xml_config_cflags"
2486 GTK_LIBS="$GTK_LIBS $ac_xml_config_libs"
2488 if test "$have_old_xml" = yes; then
2489 AC_DEFINE(HAVE_OLD_XML_HEADERS)
2496 ###############################################################################
2498 # Checking whether Motif is really Lesstif.
2500 ###############################################################################
2503 if test "$have_motif" = yes ; then
2504 AC_CACHE_CHECK([whether Motif is really LessTif],
2506 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
2507 [long vers = LesstifVersion;],
2508 [ac_cv_have_lesstif=yes],
2509 [ac_cv_have_lesstif=no])])
2510 have_lesstif=$ac_cv_have_lesstif
2514 lesstif_version=unknown
2515 lesstif_version_string=unknown
2517 if test "$have_lesstif" = yes ; then
2519 echo unknown > conftest-lt
2520 AC_CACHE_CHECK([LessTif version number],
2521 ac_cv_lesstif_version_string,
2522 [AC_TRY_X_RUN([#include <stdio.h>
2525 FILE *f = fopen("conftest-lt", "w");
2527 fprintf(f, "%d %d.%d\n", LesstifVersion,
2528 LESSTIF_VERSION, LESSTIF_REVISION);
2532 [ltv=`cat conftest-lt`
2533 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
2534 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
2535 [ac_cv_lesstif_version=unknown
2536 ac_cv_lesstif_version_string=unknown],
2537 [ac_cv_lesstif_version=unknown
2538 ac_cv_lesstif_version_string=unknown])])
2540 lesstif_version=$ac_cv_lesstif_version
2541 lesstif_version_string=$ac_cv_lesstif_version_string
2546 if test "$have_motif" = yes ; then
2548 echo unknown > conftest-mt
2549 AC_CACHE_CHECK([Motif version number],
2550 ac_cv_motif_version_string,
2551 [AC_TRY_X_RUN([#include <stdio.h>
2554 FILE *f = fopen("conftest-mt", "w");
2556 fprintf(f, "%d %d.%d\n", XmVersion,
2557 XmVERSION, XmREVISION);
2561 [mtv=`cat conftest-mt`
2562 ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
2563 ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
2564 [ac_cv_motif_version=unknown
2565 ac_cv_motif_version_string=unknown],
2566 [ac_cv_motif_version=unknown
2567 ac_cv_motif_version_string=unknown])])
2569 motif_version=$ac_cv_motif_version
2570 motif_version_string=$ac_cv_motif_version_string
2575 ###############################################################################
2577 # Checking whether Motif requires -lXpm.
2579 # If this is Motif 2.x, and we have XPM, then link against XPM as well.
2580 # The deal is, Motif 2.x requires XPM -- but it's a compilation option
2581 # of the library whether to build the XPM code into libXm, or whether
2582 # to rely on an external libXm. So the only way to tell whether XPM is
2583 # a link-time requirement is to examine libXm.a, which is very
2584 # difficult to do in an autoconf script. So... if it's Motif 2.x, we
2585 # always link against XPM if the XPM lib exists (and this will be a
2586 # no-op if libXm happens to already have the XPM code in it.)
2588 ###############################################################################
2590 motif_requires_xpm=no
2591 if test "$have_motif" = yes ; then
2592 AC_MSG_CHECKING(whether Motif requires XPM)
2593 if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
2595 motif_requires_xpm=yes
2596 AC_MSG_RESULT(maybe)
2603 ###############################################################################
2605 # Checking whether Motif requires -lXp.
2607 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
2608 # Extension". Why this extension isn't in -lXext with all the others,
2611 ###############################################################################
2614 if test "$have_motif" = yes ; then
2616 AC_CHECK_X_LIB(Xp, XpQueryExtension,
2617 [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
2618 [true], -lX11 -lXext -lm)
2622 ###############################################################################
2624 # Checking whether Motif requires -lXintl (for _Xsetlocale.)
2626 ###############################################################################
2629 if test "$have_motif" = yes ; then
2630 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
2632 if test "$have_xintl" = yes; then
2633 MOTIF_LIBS="$MOTIF_LIBS -lXintl"
2638 ###############################################################################
2640 # Check for -lGL or -lMesaGL.
2642 ###############################################################################
2646 with_gl_req=unspecified
2651 --with-gl Build those demos which depend on OpenGL.],
2652 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
2654 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
2656 ac_mesagl_version=unknown
2657 ac_mesagl_version_string=unknown
2659 if test "$with_gl" = yes; then
2660 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
2661 if test "$have_gl" = yes ; then
2662 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no,
2663 [#include <GL/gl.h>])
2666 # If we have the headers, try and figure out which vendor it's from.
2668 if test "$have_gl" = yes ; then
2670 # We need to know whether it's MesaGL so that we know which libraries
2673 AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
2674 [ac_cv_have_mesa_gl=no
2675 AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
2677 ac_have_mesa_gl=$ac_cv_have_mesa_gl
2684 # Some versions of MesaGL are compiled to require -lpthread.
2685 # So if the Mesa headers exist, and -lpthread exists, then always
2686 # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
2688 if test "$ac_have_mesa_gl" = yes; then
2689 AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
2693 # If we have Mesa headers, check to see if we can link against -lMesaGL.
2694 # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
2695 # Else, warn that GL is busted. (We have the headers, but no libs.)
2698 if test "$ac_have_mesa_gl" = yes ; then
2699 AC_CHECK_X_LIB(MesaGL, glXCreateContext,
2701 GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
2702 [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
2705 if test "$gl_lib_1" = "" ; then
2706 AC_CHECK_X_LIB(GL, glXCreateContext,
2708 GL_LIBS="-lGL -lGLU $GL_LIBS"],
2709 [], -lGLU $GL_LIBS -lX11 -lXext -lm)
2712 if test "$gl_lib_1" = "" ; then
2713 # we have headers, but no libs -- bail.
2718 # linking works -- we can build the GL hacks.
2720 if test "$ac_have_mesa_gl" = yes ; then
2721 AC_DEFINE(HAVE_MESA_GL)
2727 # Now that we know we have GL headers and libs, do some more GL testing.
2730 if test "$have_gl" = yes ; then
2731 # If it's MesaGL, we'd like to issue a warning if the version number
2732 # is less than or equal to 2.6, because that version had a security bug.
2734 if test "$ac_have_mesa_gl" = yes; then
2736 AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
2737 [cat > conftest.$ac_ext <<EOF
2738 #line __oline__ "configure"
2739 #include "confdefs.h"
2741 #ifndef MESA_MAJOR_VERSION
2742 # include <GL/xmesa.h>
2743 # ifdef XMESA_MAJOR_VERSION
2744 /* Around Mesa 3.2, they took out the Mesa version number, so instead,
2745 we have to check the XMesa version number (the number of the X protocol
2746 support, which seems to be the same as the Mesa version number.)
2748 # define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
2749 # define MESA_MINOR_VERSION XMESA_MINOR_VERSION
2751 /* Oh great. Some time after 3.4, they took out the xmesa.h header file,
2752 so we have no way of telling what version of Mesa this is at all.
2753 So, we'll guess that the osmesa version (the "offscreen protocol")
2754 is less than or equal to the real mesa version number. Except that
2755 if OSmesa is 3.3, assume at least Mesa 3.4, since OSmesa was 3.3 in
2756 Mesa 3.4. And Mesa 3.3 had xmesa.h. What a complete load of shit!
2758 # include <GL/osmesa.h>
2759 # define MESA_MAJOR_VERSION OSMESA_MAJOR_VERSION
2760 # define MESA_MINOR_VERSION OSMESA_MINOR_VERSION or newer, probably?
2761 # if OSMESA_MAJOR_VERSION == 3 && OSMESA_MINOR_VERSION == 3
2762 # undef MESA_MINOR_VERSION
2763 # define MESA_MINOR_VERSION 4 or newer, probably?
2767 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
2770 ac_save_CPPFLAGS="$CPPFLAGS"
2771 if test \! -z "$includedir" ; then
2772 CPPFLAGS="$CPPFLAGS -I$includedir"
2774 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2776 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | grep configure:`
2780 mglv=`echo "$mglv" | sed -n \
2781 's/^configure: *\([0-9][0-9]*\) *\([0-9].*\)$/\1.\2/p'`
2784 rm -f conftest.$ac_ext
2786 CPPFLAGS="$ac_save_CPPFLAGS"
2788 if test "$mglv" = ""; then
2789 ac_mesagl_version=unknown
2790 ac_mesagl_version_string=unknown
2792 ac_mesagl_version_string="$mglv"
2795 maj=`echo "$mglv" | sed -n 's/^\([0-9][0-9]*\)\..*$/\1/p'`
2796 min=`echo "$mglv" | sed -n 's/^.*\.\([0-9][0-9]*\).*$/\1/p'`
2798 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
2799 if test -z "$ac_mesagl_version"; then
2800 ac_mesagl_version=unknown
2801 ac_mesagl_version_string=unknown
2804 ac_cv_mesagl_version=$ac_mesagl_version
2805 ac_cv_mesagl_version_string=$ac_mesagl_version_string
2807 ac_mesagl_version=$ac_cv_mesagl_version
2808 ac_mesagl_version_string=$ac_cv_mesagl_version_string
2812 # Check for OpenGL 1.1 features.
2814 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
2815 [true], $GL_LIBS -lX11 -lXext -lm)
2818 elif test "$with_gl" != no; then
2819 echo "error: must be yes or no: --with-gl=$with_gl"
2824 ###############################################################################
2828 ###############################################################################
2831 with_gle_req=unspecified
2834 [ --with-gle Build those demos which depend on GLE
2835 (the OpenGL "extrusion" library.)],
2836 [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
2838 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
2842 if test "$have_gl" = no ; then
2844 elif test "$with_gle" = yes; then
2846 AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no,
2847 [#include <GL/gl.h>])
2848 if test "$have_gle3" = yes ; then
2851 AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no,
2852 [#include <GL/gl.h>])
2853 if test "$have_gle" = yes ; then
2854 AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no,
2855 [#include <GL/gl.h>])
2859 if test "$have_gle" = yes ; then
2862 AC_CHECK_X_LIB(gle, gleCreateGC,
2863 [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
2864 [], $GL_LIBS -lX11 -lXext -lm)
2866 if test "$have_gle" = yes ; then
2870 # sometimes the libmatrix stuff is included in libgle. look there first.
2872 # I don't get it. For some reason, this test passes on SGI, as if
2873 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
2874 # Yet the link is succeeding. Why???
2876 # AC_CHECK_X_LIB(gle, uview_direction_d,
2877 # [have_gle=yes; gle_halfassed=no],
2878 # [], $GL_LIBS -lX11 -lXext -lm)
2880 # As of GLE 3 this is in libgle, and has changed name to uview_direction!
2882 if test "$have_gle3" = yes ; then
2883 AC_CHECK_X_LIB(gle, uview_direction,
2884 [have_gle=yes; gle_halfassed=no],
2885 [], $GL_LIBS -lX11 -lXext -lm)
2887 # if it wasn't in libgle, then look in libmatrix.
2888 if test "$have_gle" = no ; then
2889 AC_CHECK_X_LIB(matrix, uview_direction_d,
2890 [have_gle=yes; gle_halfassed=no;
2891 GLE_LIBS="$GLE_LIBS -lmatrix"],
2892 [], $GL_LIBS -lX11 -lXext -lm)
2896 if test "$have_gle" = yes ; then
2898 if test "$have_gle3" = yes ; then
2899 AC_DEFINE(HAVE_GLE3)
2903 elif test "$with_gle" != no; then
2904 echo "error: must be yes or no: --with-gle=$with_gle"
2911 ###############################################################################
2915 ###############################################################################
2918 with_xpm_req=unspecified
2920 [ --with-xpm Include support for XPM files in some demos.
2921 (Not needed if Pixbuf is used.)],
2922 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2924 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2926 if test "$with_xpm" = yes; then
2927 AC_CHECK_X_HEADER(X11/xpm.h,
2931 [#include <X11/Xlib.h>])
2932 elif test "$with_xpm" != no; then
2933 echo "error: must be yes or no: --with-xpm=$with_xpm"
2937 # See comment near $motif_requires_xpm, above.
2938 # Need to do this here, after both Motif and XPM have been checked for.
2940 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2941 if test "$motif_requires_xpm" = yes ; then
2942 MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
2946 ###############################################################################
2948 # Check for -lgdk_pixbuf.
2950 ###############################################################################
2953 with_gdk_pixbuf_req=unspecified
2955 [ --with-pixbuf Include support for the GDK-Pixbuf library in some
2956 demos, which will make it possible for them to read
2957 GIF, JPEG, and PNG files as well. (The path here is
2958 ignored if GTK 2.x is being used.)],
2959 [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
2960 [with_gdk_pixbuf=yes])
2962 # if --with-pixbuf=/directory/ was specified, remember that directory so that
2963 # we can also look for the `gdk-pixbuf-config' program in that directory.
2964 case "$with_gdk_pixbuf" in
2966 gdk_pixbuf_dir="$with_gdk_pixbuf"
2973 HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF)
2975 if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then
2976 echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
2980 if test "$with_gdk_pixbuf" = yes; then
2984 if test -n "$pkg_config" ; then
2987 # run pkg-config based tests.
2992 # If we have Gtk 2.x, then *only* gdk-pixbuf 2.x will work.
2993 # If we have Gtk 1.x, then *only* gdk-pixbuf 1.x will work.
2994 # If we don't have Gtk at all, then either will work.
2996 if test "$have_gtk" = no -o "$have_gtk2" = yes; then
2998 # we don't have Gtk; or we have Gtk 2.x. Check for pixbuf 2.x.
3000 AC_MSG_RESULT(checking for gdk_pixbuf 2.x with gtk-config based tests...)
3001 pkg_check_version gdk-pixbuf-2.0 2.0.0
3002 pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
3003 have_gdk_pixbuf="$ok"
3004 have_gdk_pixbuf2="$ok"
3007 if test "$have_gtk" = no -o "$have_gtk2" = no; then
3009 # we don't have Gtk; or we have Gtk 1.x.
3010 # If we don't have pixbuf 2.x, then check for pixbuf 1.x.
3012 if test "$have_gdk_pixbuf2" = no; then
3015 AC_MSG_RESULT(checking for gdk_pixbuf 1.x with gtk-config based tests...)
3016 pkg_check_version gdk_pixbuf 0.0
3017 pkg_check_version gdk_pixbuf_xlib 0.0
3018 have_gdk_pixbuf="$ok"
3022 if test "$have_gdk_pixbuf" = yes; then
3023 AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
3024 [ac_cv_gdk_pixbuf_config_cflags=`$pkg_config --cflags $pkgs`])
3025 AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
3026 [ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs`])
3028 ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
3029 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
3033 if test "$have_gdk_pixbuf" = no; then
3036 # run gdk-pixbuf-config based tests.
3037 # note that we can't assume that the existence of "pkg-config" means
3038 # that we don't have to look for gdk-pixbuf-config -- in Gnome 1.4,
3039 # pkg-config exists, but doesn't know about pixbuf.
3042 AC_MSG_RESULT(checking for gdk_pixbuf with gdk-pixbuf-config based tests...)
3044 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
3045 # look in /foo/bin/ for for gdk-pixbuf-config.
3047 gdk_pixbuf_path="$PATH"
3049 if test ! -z "$gtk_dir"; then
3050 # canonicalize slashes.
3051 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
3052 gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
3055 if test ! -z "$gnome_dir"; then
3056 # canonicalize slashes.
3057 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
3058 gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
3061 AC_PATH_PROGS(gdk_pixbuf_config, gdk-pixbuf-config,, $gdk_pixbuf_path)
3063 # If we found the gdk-pixbuf-config program, run it to get flags.
3065 if test -n "$gdk_pixbuf_config" ; then
3066 AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
3067 [ac_cv_gdk_pixbuf_config_cflags=`$gdk_pixbuf_config --cflags`])
3068 AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
3069 [ac_cv_gdk_pixbuf_config_libs=`$gdk_pixbuf_config --libs`])
3071 # note that "gdk-pixbuf-config --libs" produces a link line including
3072 # -lgdk_pixbuf, but there's no way to get it to produce one that also
3073 # includes -lgdk_pixbuf_xlib. Since we don't know *exactly* what the
3074 # name of the library will be, construct it with sed...
3077 ac_cv_gdk_pixbuf_config_libs=`echo $ac_cv_gdk_pixbuf_config_libs | \
3078 sed 's@ \(-lgdk_pixbuf\([-_a-zA-Z0-9.]*\)\) @ \1 -lgdk_pixbuf_xlib\2 @'`
3081 ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
3082 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
3086 ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
3087 CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
3089 if test "$have_gdk_pixbuf" = no; then
3091 # we appear to have pixbuf; check for headers/libs to be sure.
3096 # check for header A...
3097 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
3099 # if that worked, check for header B...
3100 if test "$have_gdk_pixbuf" = yes; then
3102 gdk_pixbuf_halfassed=yes
3103 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h,
3104 [have_gdk_pixbuf=yes
3105 gdk_pixbuf_halfassed=no])
3107 # yay, it has a new name in Gtk 2.x...
3108 if test "$have_gdk_pixbuf" = no; then
3110 gdk_pixbuf_halfassed=yes
3111 AC_CHECK_X_HEADER(gdk-pixbuf-xlib/gdk-pixbuf-xlib.h,
3112 [have_gdk_pixbuf=yes
3113 gdk_pixbuf_halfassed=no])
3118 CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
3120 if test "$have_gdk_pixbuf" = yes; then
3121 # we have the headers, now check for the libraries
3123 gdk_pixbuf_halfassed=yes
3126 AC_CHECK_X_LIB(c, gdk_pixbuf_new_from_file, [have_gdk_pixbuf=yes],,
3127 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
3129 if test "$have_gdk_pixbuf" = yes; then
3131 AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init,
3132 [have_gdk_pixbuf=yes
3133 gdk_pixbuf_halfassed=no],,
3134 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
3138 if test "$have_gdk_pixbuf" = yes; then
3139 INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
3140 XPM_LIBS="$ac_gdk_pixbuf_config_libs"
3141 AC_DEFINE(HAVE_GDK_PIXBUF)
3148 ###############################################################################
3152 ###############################################################################
3155 with_jpeg_req=unspecified
3158 [ --with-jpeg Include support for the JPEG library.],
3159 [with_jpeg="$withval"; with_jpeg_req="$withval"],
3162 HANDLE_X_PATH_ARG(with_jpeg, --with-jpeg, JPEG)
3164 if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then
3165 echo "error: must be yes or no: --with-jpeg=$with_jpeg"
3169 if test "$with_jpeg" = yes; then
3172 AC_CHECK_X_HEADER(jpeglib.h, [have_jpeg=yes])
3174 if test "$have_jpeg" = yes; then
3175 # we have the header, now check for the library
3178 AC_CHECK_X_LIB(jpeg, jpeg_start_compress,
3182 AC_DEFINE(HAVE_JPEGLIB)])
3187 ###############################################################################
3189 # Check for pty support for 'phosphor'
3191 ###############################################################################
3195 AC_CHECK_X_HEADER(pty.h, [have_ptys=yes])
3196 if test "$have_ptys" = yes; then
3197 # we have the header, now check for the library
3199 AC_CHECK_X_LIB(util, forkpty,
3202 AC_DEFINE(HAVE_FORKPTY)])
3206 ###############################################################################
3208 # Check for the XSHM server extension.
3210 ###############################################################################
3213 with_xshm_req=unspecified
3214 AC_ARG_WITH(xshm-ext,
3215 [ --with-xshm-ext Include support for the Shared Memory extension.],
3216 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
3218 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
3220 if test "$with_xshm" = yes; then
3222 # first check for Xshm.h.
3223 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],,
3224 [#include <X11/Xlib.h>])
3226 # if that succeeded, then check for sys/ipc.h.
3227 if test "$have_xshm" = yes; then
3229 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
3232 # if that succeeded, then check for sys/shm.h.
3233 if test "$have_xshm" = yes; then
3235 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
3238 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
3239 # to exist, but the library code to not exist. And even better, the library
3240 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
3241 # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and
3242 # that's not quite right, but close enough.)
3246 if [ `uname -v` -eq 3 ]; then
3248 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
3249 [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
3250 [true], -lX11 -lXext -lm)
3255 # if that succeeded, then we've really got it.
3256 if test "$have_xshm" = yes; then
3257 AC_DEFINE(HAVE_XSHM_EXTENSION)
3260 elif test "$with_xshm" != no; then
3261 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
3266 ###############################################################################
3268 # Check for the DOUBLE-BUFFER server extension.
3270 ###############################################################################
3273 with_xdbe_req=unspecified
3274 AC_ARG_WITH(xdbe-ext,
3275 [ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.],
3276 [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
3278 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
3280 if test "$with_xdbe" = yes; then
3282 AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],,
3283 [#include <X11/Xlib.h>])
3284 if test "$have_xdbe" = yes; then
3285 AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
3288 elif test "$with_xdbe" != no; then
3289 echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
3294 ###############################################################################
3296 # Check for the SGI XReadDisplay server extension.
3298 # Note: this has to be down here, rather than up with the other server
3299 # extension tests, so that the output of `configure --help' is in the
3300 # right order. Arrgh!
3302 ###############################################################################
3305 with_readdisplay_req=unspecified
3306 AC_ARG_WITH(readdisplay,
3307 [ --with-readdisplay Include support for the XReadDisplay extension.],
3308 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
3309 [with_readdisplay=yes])
3311 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
3313 if test "$with_readdisplay" = yes; then
3314 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
3315 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),,
3316 [#include <X11/Xlib.h>])
3317 elif test "$with_readdisplay" != no; then
3318 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
3323 ###############################################################################
3325 # Check for a program to generate random text.
3327 # Zippy is funnier than the idiocy generally spat out by `fortune',
3328 # so first see if "fortune zippy" works. Else, use plain "fortune".
3330 # We used to dig around in Emacs to look for the "yow" program, but
3331 # most people who have Emacs also have "fortune zippy", so nevermind.
3333 ###############################################################################
3336 AC_ARG_WITH(fortune,[
3337 --with-fortune=PROGRAM Some demos are able to run an external program and
3338 display its text; this names the program to use by
3339 default (though it can be overridden with X
3340 resources.) Default is \"/usr/games/fortune\".],
3341 [with_fortune_req="$withval"; with_fortune="$withval"],[with_fortune=yes])
3343 if test "$with_fortune" = no || test "$with_fortune" = yes ; then
3348 if test -n "$with_fortune_req" ; then
3349 ac_cv_fortune_program=""
3350 case "$with_fortune_req" in
3353 set dummy $with_fortune_req ; fortune_tmp=$2
3354 AC_MSG_CHECKING([for $fortune_tmp])
3355 if test -x "$fortune_tmp" ; then
3363 set dummy $with_fortune_req ; fortune_tmp=$2
3365 unset ac_cv_path_fortune_tmp
3366 AC_PATH_PROG(fortune_tmp, $fortune_tmp, [])
3367 if test -z "$fortune_tmp" ; then
3372 ac_cv_fortune_program="$with_fortune"
3374 elif test -n "$ac_cv_fortune_program"; then
3375 AC_MSG_RESULT([checking for fortune... (cached) $ac_cv_fortune_program])
3378 unset ac_cv_path_fortune_tmp
3381 if test -z "$ac_cv_fortune_program" ; then
3383 # first look for fortune in /usr/games/ (and use absolute path)
3384 AC_PATH_PROGS(fortune_tmp, fortune,, "/usr/games")
3386 # if it's not there, look on $PATH (and don't use absolute path)
3387 if test -z "$fortune_tmp" ; then
3388 AC_CHECK_PROGS(fortune_tmp, fortune)
3391 # if we didn't find anything, then just assume /usr/games/
3392 if test -z "$fortune_tmp" ; then
3393 fortune_tmp="/usr/games/fortune"
3396 ac_cv_fortune_program="$fortune_tmp"
3398 # now check to see whether "fortune zippy" works.
3400 fortune_tmp="$fortune_tmp zippy"
3401 AC_MSG_CHECKING([for zippy quotes])
3402 if ( $fortune_tmp >/dev/null 2>&1 ); then
3403 ac_cv_fortune_program="$fortune_tmp"
3404 AC_MSG_RESULT($fortune_tmp)
3411 unset ac_cv_path_fortune_tmp
3414 AC_DEFINE_UNQUOTED(FORTUNE_PROGRAM, "$ac_cv_fortune_program")
3417 ###############################################################################
3419 # Check whether it's ok to install some hacks as setuid (e.g., "sonar")
3420 # This should be safe, but let's give people the option.
3422 ###############################################################################
3424 setuid_hacks_default=no
3425 setuid_hacks="$setuid_hacks_default"
3426 AC_ARG_WITH(setuid-hacks,
3427 [ --with-setuid-hacks Allow some demos to be installed \`setuid root'
3428 (which is needed in order to ping other hosts.)
3430 [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
3432 HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks)
3434 if test "$setuid_hacks" = yes; then
3436 elif test "$setuid_hacks" != no; then
3437 echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks"
3442 ###############################################################################
3444 # Done testing. Now, set up the various -I and -L variables,
3445 # and decide which GUI program to build by default.
3447 ###############################################################################
3454 if test \! -z "$includedir" ; then
3455 INCLUDES="$INCLUDES -I$includedir"
3458 if test \! -z "$libdir" ; then
3459 LDFLAGS="$LDFLAGS -L$libdir"
3463 PREFERRED_DEMO_PROGRAM=''
3465 if test "$have_motif" = yes; then
3466 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
3467 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3469 if test "$have_gtk" = yes; then
3470 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
3471 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3475 if test "$have_kerberos" = yes; then
3476 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
3477 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
3479 if test "$have_pam" = yes; then
3480 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
3481 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
3482 INSTALL_PAM="install-pam"
3484 if test "$have_passwd_helper" = yes; then
3485 PASSWD_SRCS="$PASSWD_SRCS \$(PWHELPER_SRCS)"
3486 PASSWD_OBJS="$PASSWD_OBJS \$(PWHELPER_OBJS)"
3488 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
3489 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
3492 if test "$enable_locking" = yes; then
3493 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
3494 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
3496 LOCK_SRCS='$(NOLOCK_SRCS_1)'
3497 LOCK_OBJS='$(NOLOCK_OBJS_1)'
3500 if test "$ac_macosx" = yes; then
3501 EXES_OSX='$(EXES_OSX)'
3502 SCRIPTS_OSX='$(SCRIPTS_OSX)'
3503 MEN_OSX='$(MEN_OSX)'
3511 INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)'
3513 if test "$need_setuid" = yes; then
3519 if test "$setuid_hacks" = yes; then
3526 if test "$have_gl" = yes; then
3527 GL_EXES='$(GL_EXES)'
3528 GL_UTIL_EXES='$(GL_UTIL_EXES)'
3532 GL_KLUDGE="-${tab} "
3535 if test "$have_gle" = yes; then
3536 GLE_EXES='$(GLE_EXES)'
3537 GLE_KLUDGE="${tab} "
3539 GLE_KLUDGE="-${tab} "
3542 if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then
3543 JPEG_EXES='$(JPEG_EXES)'
3547 # Another substitution in the XScreenSaver.ad.in file:
3549 if test "$have_gnome_help" = yes; then
3558 # Now that we know whether we have Gnome, we can decide where the XML
3559 # config files get installed.
3561 if test -z "$HACK_CONF_DIR" ; then
3562 if test -n "$GNOME_DATADIR" ; then
3563 HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers'
3565 HACK_CONF_DIR='${prefix}/lib/xscreensaver/config'
3571 # After computing $HACK_CONF_DIR, make sure $GLADE_DATADIR has a value
3572 # so that we know where to install the Gtk pixmaps.
3574 # It should usually be "/usr/share/pixmaps/", but we can't just use
3575 # "$(prefix)/share/pixmaps" because that would usually result in
3576 # "/usr/X11R6/share/pixmaps/", which is wrong. It needs to be the
3577 # Gnome/Gtk prefix, not the overall prefix.
3579 if test -n "$GNOME_DATADIR" ; then
3580 GLADE_DATADIR='$(GNOME_DATADIR)/xscreensaver'
3581 elif test "$have_gtk" = yes; then
3582 if test -n "$pkg_config"; then
3583 if test "$have_gtk2" = yes; then
3584 GLADE_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3586 GLADE_DATADIR=`$pkg_config --variable=prefix gtk+`
3589 GLADE_DATADIR=`$gtk_config --prefix`
3591 GLADE_DATADIR="$GLADE_DATADIR/share/xscreensaver"
3597 # Set PO_DATADIR to something sensible.
3599 AC_MSG_CHECKING([for locale directory])
3600 if test -n "$GNOME_DATADIR" ; then
3601 PO_DATADIR="$GNOME_DATADIR"
3602 elif test "$have_gtk" = yes; then
3603 if test -n "$pkg_config"; then
3604 if test "$have_gtk2" = yes; then
3605 PO_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3607 PO_DATADIR=`$pkg_config --variable=prefix gtk+`
3610 PO_DATADIR=`$gtk_config --prefix`
3612 PO_DATADIR="$PO_DATADIR/share"
3615 if test -z "$PO_DATADIR" ; then
3617 # #### Total fucking kludge --
3618 # Map /build/prefix/usr/X11R6/share/ to /build/prefix/usr/share/
3619 # but of course we need to expand all the nested variables to do that...
3627 PO_DATADIR=`echo $dd | sed 's@/X11R6/@/@'`
3630 AC_MSG_RESULT($PO_DATADIR/locale)
3633 # canonicalize slashes.
3634 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
3636 # gcc 3.0 likes to issue this warning for every file:
3638 # cc1: warning: changing search order for system directory "/usr/local/include"
3639 # cc1: warning: as it has already been specified as a non-system directory
3641 # Yay. We can only avoid that by deleting "-I${prefix}/include" from the list.
3642 # Which *should* be totally redundant, and thus an ok thing to delete?
3644 INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'`
3647 ###############################################################################
3649 # Perform substitutions and write Makefiles.
3651 ###############################################################################
3655 AC_SUBST(PREFERRED_DEMO_PROGRAM)
3656 AC_SUBST(ALL_DEMO_PROGRAMS)
3657 AC_SUBST(SAVER_LIBS)
3658 AC_SUBST(MOTIF_LIBS)
3667 AC_SUBST(XDPMS_LIBS)
3668 AC_SUBST(PASSWD_LIBS)
3669 AC_SUBST(INSTALL_SETUID)
3670 AC_SUBST(SETUID_HACKS)
3671 AC_SUBST(INSTALL_DIRS)
3672 AC_SUBST(NEED_SETUID)
3673 AC_SUBST(INSTALL_PAM)
3677 AC_SUBST(SCRIPTS_OSX)
3680 AC_SUBST(PASSWD_SRCS)
3681 AC_SUBST(PASSWD_OBJS)
3685 AC_SUBST(SAVER_GL_SRCS)
3686 AC_SUBST(SAVER_GL_OBJS)
3687 AC_SUBST(SAVER_GL_LIBS)
3692 AC_SUBST(GL_UTIL_EXES)
3696 AC_SUBST(GLE_KLUDGE)
3697 AC_SUBST(GNOMEHELP_Y)
3698 AC_SUBST(GNOMEHELP_N)
3700 AC_SUBST(GNOME_DATADIR)
3701 AC_SUBST(GLADE_DATADIR)
3702 AC_SUBST(PO_DATADIR)
3703 AC_SUBST(GNOME_PANELDIR)
3704 AC_SUBST(HACK_CONF_DIR)
3705 AC_SUBST(GTK_EXTRA_OBJS)
3707 APPDEFAULTS=$ac_x_app_defaults
3708 AC_SUBST(APPDEFAULTS)
3711 AC_SUBST(DEPEND_FLAGS)
3712 AC_SUBST(DEPEND_DEFINES)
3721 driver/XScreenSaver.ad
3722 driver/xscreensaver.kss)
3724 ###############################################################################
3726 # Print some warnings at the end.
3728 ###############################################################################
3730 warn_prefix_1=" Warning:"
3731 warn_prefix_2=" Note:"
3732 warn_prefix="$warn_prefix_1"
3735 warnsep=' #################################################################'
3738 if test "$warning" = no ; then
3739 echo '' ; echo "$warnsep" ; echo ''
3746 if test "$warning" = long ; then echo '' ; fi
3749 echo "$warn_prefix $rest"
3756 if test "$was" != no ; then echo '' ; fi
3758 echo "$warn_prefix $rest"
3768 warn_prefix="$warn_prefix_2"
3770 warn_prefix="$warn_prefix_1"
3774 warn_prefix="$warn_prefix_2"
3776 warn_prefix="$warn_prefix_1"
3780 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
3781 warn 'The SGI saver extension was requested, but was not found.'
3784 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
3785 warn 'The MIT saver extension was requested, but was not found.'
3788 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
3789 warn 'The XIdle extension was requested, but was not found.'
3792 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
3793 warn 'The XSHM extension was requested, but was not found.'
3796 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
3797 warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
3800 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
3801 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
3804 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
3805 warn 'The DPMS extension was requested, but was not found.'
3808 if test "$with_xinerama_req" = yes -a "$have_xinerama" = no ; then
3809 warn 'The Xinerama extension was requested, but was not found.'
3812 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
3813 warn 'The XF86VMODE extension was requested, but was not found.'
3816 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
3817 warn "Checking of /proc/interrupts was requested, but it's bogus."
3821 warn2 'Though the Motif front-end to xscreensaver is still'
3822 warn2 'maintained, it is no longer being updated with new'
3823 warn2 'features: all new development on the xscreensaver-demo'
3824 warn2 'program is happening in the GTK version, and not in the'
3825 warn2 'Motif version. It is recommended that you build against'
3826 warn2 'GTK instead of Motif. See <http://www.gtk.org/>.'
3829 if test "$have_motif" = no -a "$have_gtk" = no; then
3831 if test "$with_motif" = yes; then
3832 warnL "Neither the GTK nor Motif libraries were found; the"
3833 warn2 "\`xscreensaver-demo' program requires one of these."
3837 warnL "The GTK libraries do not seem to be available; the"
3838 warn2 "\`xscreensaver-demo' program requires them."
3840 warn2 'You can use Motif or Lesstif instead of GTK (use the'
3841 warn2 "\`--with-motif' option) but that is NOT recommended."
3845 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
3846 warnL "Use of Motif was requested, but it wasn't found;"
3847 warn2 "Gtk will be used instead."
3849 elif test "$jurassic_gtk" = yes ; then
3853 v="$ac_gtk_version_string"
3854 if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
3855 warnL "Use of Gtk was requested, but its version number is unknown;"
3856 elif test "$with_gtk_req" = yes ; then
3857 warnL "Use of Gtk was requested, but it is version $v;"
3859 warnL "Gtk was found on this system, but it is version $v;"
3862 warn2 "Gtk $pref_gtk or newer is required."
3864 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
3865 warnL "Use of Gtk was requested, but it wasn't found."
3868 if test "$gtk2_halfassed" != no ; then
3869 warnL "GTK version $gtk2_halfassed was found, but at least one supporting"
3870 warn2 "library ($gtk2_halfassed_lib) was not, so GTK 2.x can't be used."
3871 if test "$have_gtk" = yes ; then
3872 v="$ac_gtk_version_string"
3873 warn2 "GTK $v is also installed, so it will be used instead."
3874 warn2 "Please read the above output and the \`config.log' file"
3875 warn2 "for more details."
3880 if test "$with_gnome_req" = yes -a "$have_gnome" = no \
3881 -a "$have_gtk2" = no; then
3882 # don't issue this warning if we have GTK2 -- in that case, the
3883 # Gnome-specific code isn't needed.
3884 warn 'Use of the Gnome Control Panel was requested, but the necessary'
3885 warn2 'headers and/or libraries were not found.'
3888 if test "$have_gtk" = yes ; then
3889 if test "$have_xml" = no ; then
3890 if test "$with_xml_req" = yes ; then
3891 warn 'Use of the XML library was requested, but the necessary'
3892 warn2 'headers and/or libraries were not found.'
3894 warn 'GTK is being used, but the XML library was not found.'
3897 if test "$xml_halfassed" = yes ; then
3899 if test "$have_zlib" = yes ; then
3900 which="XML libraries"
3902 which="\`zlib' library"
3906 warn2 'More specifically, we found the headers, but not the'
3907 warn2 "$which; so either XML is half-installed on this"
3908 warn2 "system, or something else went wrong. The \`config.log'"
3909 warn2 'file might contain some clues.'
3913 warn2 "Without XML, the per-display-mode \`Settings' dialogs"
3914 warn2 'will not be available. Specify the location of the XML'
3915 warn2 'library through the --with-xml option to configure.'
3919 if test "$have_gtk" = yes -a "$have_gdk_pixbuf" = no ; then
3920 warn "GTK is being used, but the GDK-Pixbuf library and/or"
3921 warn2 "headers were not found. That can't be good. Please"
3922 warn2 "install the GDK-Pixbuf development kit and re-configure."
3925 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
3927 preferred_lesstif=0.92
3929 if test "$lesstif_version" = unknown; then
3930 warnL "Unable to determine the LessTif version number!"
3931 warn2 "Make sure you are using version $preferred_lesstif or newer."
3932 warn2 "See <http://www.lesstif.org/>."
3934 elif test \! $lesstif_version -gt 82; then
3935 warnL "LessTif version $lesstif_version_string is being used."
3936 warn2 "LessTif versions 0.82 and earlier are too buggy to"
3937 warn2 "use with XScreenSaver; it is strongly recommended"
3938 warn2 "that you upgrade to at least version $preferred_lesstif!"
3939 warn2 "See <http://www.lesstif.org/>."
3944 if test "$have_motif" = yes -a "$have_gtk" = no ; then
3945 warn 'Motif is being used, and GTK is not.'
3951 if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
3952 warnL 'Use of XPM was requested, but it was not found.'
3955 if test "$with_gdk_pixbuf_req" = yes -a "$have_gdk_pixbuf" = no; then
3956 warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
3959 if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no || \
3960 test "$gdk_pixbuf_halfassed" = yes; then
3962 if test "$with_xpm_req" = yes -o "$have_xpm" = yes ; then
3964 elif test "$with_xpm_req" = no ; then
3965 warnL 'The XPM library is not being used.'
3967 warnL 'The XPM library was not found.'
3970 if test "$with_gdk_pixbuf_req" = yes ; then
3972 elif test "$with_gdk_pixbuf_req" = no ; then
3973 warnL 'The GDK-Pixbuf library is not being used.'
3975 warnL 'The GDK-Pixbuf library was not found.'
3978 if test "$gdk_pixbuf_halfassed" = yes ; then
3980 warn2 'More specifically, we found the headers, but not the'
3981 warn2 'libraries; so either GDK-Pixbuf is half-installed on this'
3982 warn2 "system, or something else went wrong. The \`config.log'"
3983 warn2 'file might contain some clues.'
3987 warn2 'Some of the demos will not be as colorful as they'
3988 warn2 'could be. You should consider installing Pixbuf or'
3989 warn2 'XPM and re-running configure. The Pixbuf library is'
3990 warn2 'a part of GNOME. The XPM library comes with most'
3991 warn2 'X11 installations; you can also find it at the X11'
3992 warn2 'archive sites, such as <http://sunsite.unc.edu/>.'
3994 warn2 'GDK-Pixbuf is recommended over XPM, as it provides'
3995 warn2 'support for more image formats.'
3999 if test "$have_jpeg" = no ; then
4000 if test "$with_jpeg_req" = yes ; then
4001 warnL 'Use of libjpeg was requested, but it was not found.'
4002 elif test "$with_jpeg_req" = no ; then
4003 noteL 'The JPEG library is not being used.'
4005 noteL 'The JPEG library was not found.'
4008 if test "$jpeg_halfassed" = yes ; then
4010 warn2 'More specifically, we found the headers, but not the'
4011 warn2 'library; so either JPEG is half-installed on this'
4012 warn2 "system, or something else went wrong. The \`config.log'"
4013 warn2 'file might contain some clues.'
4017 if test "$have_gdk_pixbuf" = no ; then
4018 warn2 "This means that it won't be possible for the image-manipulating"
4019 warn2 "display modes to load files from disk; and it also means that"
4020 warn2 "the \`webcollage' program will be much slower."
4022 warn2 "This means the \`webcollage' program will be much slower."
4027 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
4028 preferred_mesagl=3.4
4029 mgv="$ac_mesagl_version_string"
4030 pgl="$preferred_mesagl"
4032 if test "$ac_mesagl_version" = unknown; then
4033 warnL "Unable to determine the MesaGL version number!"
4034 warn2 "Make sure you are using version $preferred_mesagl or newer."
4036 elif test \! "$ac_mesagl_version" -gt 2006; then
4037 warnL "MesaGL version number is $mgv --"
4038 warn2 "MesaGL 2.6 and earlier have a security bug. It is strongly"
4039 warn2 "recommended that you upgrade to at least version $preferred_mesagl."
4041 elif test \! "$ac_mesagl_version" -gt 3003; then
4042 warnL "MesaGL version number is $mgv --"
4043 warn2 "MesaGL 3.3 and earlier have some bugs; it is recommended"
4044 warn2 "that you upgrade to $pgl or newer."
4048 if test "$have_gl" = no ; then
4049 if test "$with_gl_req" = yes ; then
4050 warnL 'Use of GL was requested, but it was not found.'
4051 elif test "$with_gl_req" = no ; then
4052 noteL 'The OpenGL 3D library is not being used.'
4054 noteL 'The OpenGL 3D library was not found.'
4057 if test "$gl_halfassed" = yes ; then
4059 warn2 'More specifically, we found the headers, but not the'
4060 warn2 'libraries; so either GL is half-installed on this'
4061 warn2 "system, or something else went wrong. The \`config.log'"
4062 warn2 'file might contain some clues.'
4066 warn2 'Those demos which use 3D will not be built or installed.'
4067 warn2 'You might want to consider installing OpenGL and'
4068 warn2 "re-running configure. If your vendor doesn't ship"
4069 warn2 'their own implementation of OpenGL, you can get a free'
4070 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
4071 warn2 'info, see <http://www.opengl.org/>.'
4076 if test "$have_gl" = yes -a "$have_gle" = no ; then
4078 # nobody cares about this; don't print the warning unless it was
4079 # requested and not found, or halfway-found.
4080 if test "$with_gle_req" = yes -o "$gle_halfassed" = yes ; then
4082 if test "$with_gle_req" = yes ; then
4083 noteL 'Use of the GLE (GL Extrusion) library was requested, but'
4084 warn2 'it was not found (though the OpenGL library was found, and'
4085 warn2 'is being used.)'
4086 elif test "$with_gle_req" = no ; then
4087 noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
4088 warn2 'library is not.'
4090 noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
4094 if test "$gle_halfassed" = yes ; then
4096 warn2 'More specifically, we found the headers, but not the'
4097 warn2 'libraries; so either GLE is half-installed on this'
4098 warn2 "system, or something else went wrong. The \`config.log'"
4099 warn2 'file might contain some clues.'
4103 warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
4104 warn2 'will not be built or installed. You might want to consider'
4105 warn2 'installing GLE and re-running configure. You can find the'
4106 warn2 'GLE library at <http://www.linas.org/gle/>. For general'
4107 warn2 'OpenGL info, see <http://www.opengl.org/>.'
4113 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
4114 warn 'Use of XReadDisplay was requested, but it was not found.'
4117 if test -n "$with_fortune_req"; then
4118 if test "$with_fortune_req" != "$ac_cv_fortune_program" ; then
4119 warnL "$with_fortune_req was requested as the Fortune program,"
4120 warn2 "but was not found. The default will be used instead."
4124 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
4125 warn 'Use of Kerberos was requested, but it was not found.'
4128 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
4129 warn 'Use of PAM was requested, but it was not found.'
4132 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
4133 warn 'Use of shadow passwords was requested, but they were not found.'
4137 # You are in a twisty maze of namespaces and syntaxes, all alike.
4138 # Fuck the skull of Unix.
4140 eval bindir=${bindir}
4141 eval bindir=${bindir}
4142 eval bindir=${bindir}
4143 eval bindir=${bindir}
4144 eval bindir=${bindir}
4145 eval bindir=${bindir}
4146 eval HACKDIR=${HACKDIR}
4147 eval HACKDIR=${HACKDIR}
4148 eval HACKDIR=${HACKDIR}
4149 eval HACKDIR=${HACKDIR}
4150 eval HACKDIR=${HACKDIR}
4151 eval HACKDIR=${HACKDIR}
4152 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4153 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4154 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4155 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4156 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4157 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4159 # canonicalize slashes.
4160 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
4161 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
4162 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
4165 # Sanity check the hackdir
4166 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
4167 if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
4169 AC_MSG_ERROR([\"--with-hackdir=${bindir}/${bad_choice}\" won't work.
4170 There will be an executable installed with that name, so
4171 that can't be the name of a directory as well. Please
4172 re-configure with a different directory name.])
4179 # Now let's see if there's a previous RPM version already installed. Blargh!
4183 rpmv=`(rpm -qv xscreensaver) 2>/dev/null | \
4184 sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'`
4187 if test \! -z "$rpmv" ; then
4188 rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
4189 rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
4192 warnL "There is already an installed RPM of xscreensaver $rpmv"
4193 warn2 "on this system. You might want to remove it (with"
4194 warn2 '"rpm -ve xscreensaver") before running "make install"'
4195 warn2 "from this directory."
4197 warn2 "Alternately, you could build this version of xscreensaver"
4198 warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
4199 warn2 "file is included. See the RPM documentation for more info."
4202 if test "$rpmbdir" = "$rpmhdir" ; then
4203 warn2 "The RPM version was installed in $rpmbdir/."
4205 warn2 "The RPM version was installed in $rpmbdir/,"
4206 warn2 "with demos in $rpmhdir/."
4213 if test "${bindir}" = "${HACKDIR}" ; then
4217 if test "$do_dir_warning" = yes; then
4221 echo ' When you run "make install", the "xscreensaver",'
4222 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
4223 echo " will be installed in ${bindir}/."
4225 echo " The various graphics demos (175+ different executables) will"
4226 echo " be installed in ${HACKDIR}/."
4228 echo " If you would prefer the demos to be installed elsewhere,"
4229 echo " you should re-run configure with the --with-hackdir=DIR"
4230 echo " option. For more information, run \`./configure --help'."
4234 if test "$warning" != no; then
4235 echo '' ; echo "$warnsep" ; echo ''
4238 if test "$do_dir_warning" = no; then
4239 if test "$warning" = no; then
4242 echo "User programs will be installed in ${bindir}/"
4243 echo "Screen savers will be installed in ${HACKDIR}/"
4244 echo "Configuration will be installed in ${HACK_CONF_DIR}/"