1 # configure.in --- xscreensaver, Copyright (c) 1997-2004 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)
1301 if test "$with_xf86vmode" = yes; then
1303 # first check for xf86vmode.h
1304 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],,
1305 [#include <X11/Xlib.h>])
1307 # if that succeeded, then check for the -lXxf86vm
1308 if test "$have_xf86vmode" = yes; then
1310 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
1311 [have_xf86vmode=yes;
1312 VIDMODE_LIBS="-lXxf86vm";
1313 SAVER_LIBS="$SAVER_LIBS $VIDMODE_LIBS"],
1314 [true], -lXext -lX11)
1317 # if that succeeded, then we've really got it.
1318 if test "$have_xf86vmode" = yes; then
1319 AC_DEFINE(HAVE_XF86VMODE)
1322 elif test "$with_xf86vmode" != no; then
1323 echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
1328 ###############################################################################
1330 # Check for the XF86VMODE server extension (for gamma fading.)
1332 ###############################################################################
1335 have_xf86gamma_ramp=no
1336 with_xf86gamma_req=unspecified
1337 AC_ARG_WITH(xf86gamma-ext,
1338 [ --with-xf86gamma-ext Include support for XFree86 gamma fading.],
1339 [with_xf86gamma="$withval"; with_xf86gamma_req="$withval"],
1340 [with_xf86gamma=yes])
1342 HANDLE_X_PATH_ARG(with_xf86gamma, --with-xf86gamma-ext, xf86gamma)
1344 if test "$with_xf86gamma" = yes; then
1346 # first check for xf86vmode.h, if we haven't already
1347 if test "$have_xf86vmode" = yes; then
1350 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],,
1351 [#include <X11/Xlib.h>])
1354 # if that succeeded, then check for the -lXxf86vm
1355 if test "$have_xf86gamma" = yes; then
1357 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGamma,
1358 [have_xf86gamma=yes],
1359 [true], -lXext -lX11)
1362 # check for the Ramp versions of the functions too.
1363 if test "$have_xf86gamma" = yes; then
1364 have_xf86gamma_ramp=no
1365 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGammaRamp,
1366 [have_xf86gamma_ramp=yes],
1367 [true], -lXext -lX11)
1370 # if those tests succeeded, then we've really got the functions.
1371 if test "$have_xf86gamma" = yes; then
1372 AC_DEFINE(HAVE_XF86VMODE_GAMMA)
1375 if test "$have_xf86gamma_ramp" = yes; then
1376 AC_DEFINE(HAVE_XF86VMODE_GAMMA_RAMP)
1379 # pull in the lib, if we haven't already
1380 if test "$have_xf86gamma" = yes -a "$have_xf86vmode" = no; then
1381 SAVER_LIBS="$SAVER_LIBS -lXxf86vm"
1384 elif test "$with_xf86gamma" != no; then
1385 echo "error: must be yes or no: --with-xf86gamma-ext=$with_xf86vmode"
1390 ###############################################################################
1392 # Check for the RANDR (Resize and Rotate) server extension.
1394 # We need this to detect when the resolution of the desktop
1395 # has changed out from under us (this is a newer, different
1396 # mechanism than the XF86VMODE virtual viewports.)
1398 ###############################################################################
1401 with_randr_req=unspecified
1402 AC_ARG_WITH(randr-ext,
1403 [ --with-randr-ext Include support for the X Resize+Rotate extension.],
1404 [with_randr="$withval"; with_randr_req="$withval"],[with_randr=yes])
1406 HANDLE_X_PATH_ARG(with_randr, --with-randr-ext, RANDR)
1408 if test "$with_randr" = yes; then
1410 # first check for Randr.h
1411 AC_CHECK_X_HEADER(X11/extensions/Xrandr.h, [have_randr=yes],,
1412 [#include <X11/Xlib.h>])
1414 # if that succeeded, then check for the XRR code in the libraries
1415 if test "$have_randr" = yes; then
1417 # RANDR probably needs -lXrender
1419 AC_CHECK_X_LIB(Xrender, XRenderSetSubpixelOrder,
1420 [xrender_libs="-lXrender"], [true], -lXext -lX11)
1422 # first look for RANDR in -lXext
1424 AC_CHECK_X_LIB(Xext, XRRGetScreenInfo,
1425 [have_randr=yes; SAVER_LIBS="$SAVER_LIBS $xrender_libs"],
1426 [true], $xrender_libs -lXext -lX11)
1428 # if that failed, look in -lXrandr
1429 if test "$have_randr" = no; then
1430 AC_CHECK_X_LIB(Xrandr, XRRGetScreenInfo,
1431 [have_randr=yes; SAVER_LIBS="$SAVER_LIBS -lXrandr $xrender_libs"],
1432 [true], $xrender_libs -lXext -lX11)
1436 # if that succeeded, then we've really got it.
1437 if test "$have_randr" = yes; then
1438 AC_DEFINE(HAVE_RANDR)
1441 elif test "$with_randr" != no; then
1442 echo "error: must be yes or no: --with-randr-ext=$with_randr"
1447 ###############################################################################
1449 # Check for XF86MiscSetGrabKeysState (but only bother if we are already
1450 # using other XF86 stuff.)
1452 ###############################################################################
1454 have_xf86miscsetgrabkeysstate=no
1455 if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then
1456 AC_CHECK_X_LIB(Xxf86misc, XF86MiscSetGrabKeysState,
1457 [have_xf86miscsetgrabkeysstate=yes],
1458 [true], -lXext -lX11)
1459 if test "$have_xf86miscsetgrabkeysstate" = yes ; then
1460 SAVER_LIBS="$SAVER_LIBS -lXxf86misc"
1461 AC_DEFINE(HAVE_XF86MISCSETGRABKEYSSTATE)
1466 ###############################################################################
1468 # Check for HP XHPDisableReset and XHPEnableReset.
1470 ###############################################################################
1472 AC_MSG_CHECKING([for XHPDisableReset in X11/XHPlib.h])
1473 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
1474 [AC_DEFINE(HAVE_XHPDISABLERESET)
1475 SAVER_LIBS="-lXhp11 $SAVER_LIBS"
1476 AC_MSG_RESULT(yes)],
1477 [AC_MSG_RESULT(no)])
1480 ###############################################################################
1482 # Check for /proc/interrupts.
1484 ###############################################################################
1486 have_proc_interrupts=no
1487 with_proc_interrupts_req=unspecified
1488 AC_ARG_WITH(proc-interrupts,
1489 [ --with-proc-interrupts Include support for consulting the /proc/interrupts
1490 file to notice keyboard activity.],
1491 [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
1492 [with_proc_interrupts=yes])
1494 if test "$with_proc_interrupts" = yes; then
1496 AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
1497 ac_cv_have_proc_interrupts,
1498 [ac_cv_have_proc_interrupts=no
1499 if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
1500 ac_cv_have_proc_interrupts=yes
1503 have_proc_interrupts=$ac_cv_have_proc_interrupts
1505 if test "$have_proc_interrupts" = yes; then
1506 AC_DEFINE(HAVE_PROC_INTERRUPTS)
1509 elif test "$with_proc_interrupts" != no; then
1510 echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
1515 ###############################################################################
1517 # The --enable-locking option
1519 ###############################################################################
1521 AC_ARG_ENABLE(locking,[
1522 Screen locking options:
1524 --enable-locking Compile in support for locking the display.
1525 --disable-locking Do not allow locking at all.],
1526 [enable_locking="$enableval"],[enable_locking=yes])
1527 if test "$enable_locking" = yes; then
1529 elif test "$enable_locking" = no; then
1530 AC_DEFINE(NO_LOCKING)
1532 echo "error: must be yes or no: --enable-locking=$enable_locking"
1536 # We can't lock on MacOS X, so don't even bother compiling in support for it.
1538 if test "$ac_macosx" = yes; then
1539 if test "$enable_locking" = yes; then
1540 AC_MSG_RESULT(locking disabled: it doesn't work on MacOS X)
1542 AC_DEFINE(NO_LOCKING)
1547 ###############################################################################
1549 # The --enable-vt-locking option
1551 ###############################################################################
1553 #ac_vt_lockswitch=no
1554 #AC_ARG_ENABLE(vt-locking,[
1555 # --enable-vt-locking Compile in support for locking Virtual Terminals.
1556 # This is the default if the system supports it, and
1557 # if locking support is included (--enable-locking.)
1558 # --disable-vt-locking Do not allow locking of VTs, even if locking is
1560 # [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1561 #if test "$enable_vt_locking" = yes; then
1563 # AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1564 # [AC_TRY_COMPILE([#include <fcntl.h>
1565 # #include <sys/ioctl.h>
1566 # #include <sys/vt.h>],
1567 # [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1568 # [ac_cv_vt_lockswitch=yes],
1569 # [ac_cv_vt_lockswitch=no])])
1570 # ac_vt_lockswitch=$ac_cv_vt_lockswitch
1572 #elif test "$enable_vt_locking" = no; then
1575 # echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1579 #if test "$ac_vt_lockswitch" = yes; then
1580 # AC_DEFINE(HAVE_VT_LOCKSWITCH)
1581 # # the VT_LOCKSWITCH ioctl can only be used when running as root.
1582 # # #### but it doesn't work yet, so don't worry about that for now.
1587 ###############################################################################
1591 ###############################################################################
1595 # Solaris systems tend to come with PAM misconfigured.
1596 # Don't build it by default, even if the headers exist.
1600 # Default to building PAM support on all other systems, if it exists.
1601 with_pam_default=yes
1606 with_pam_req=unspecified
1609 [ --with-pam Include support for PAM (Pluggable Auth Modules.)],
1610 [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1612 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1614 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1615 AC_CACHE_CHECK([for PAM], ac_cv_pam,
1616 [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1619 if test "$ac_cv_pam" = yes ; then
1622 PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1624 # libpam typically requires dlopen and dlsym. On FreeBSD,
1625 # those are in libc. On Linux and Solaris, they're in libdl.
1626 AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1628 # On Linux, sigtimedwait() is in libc; on Solaris, it's in librt.
1630 AC_CHECK_LIB(c, sigtimedwait, [have_timedwait=yes])
1631 if test "$have_timedwait" = no ; then
1632 AC_CHECK_LIB(rt, sigtimedwait, [PASSWD_LIBS="${PASSWD_LIBS} -lrt"])
1635 AC_MSG_CHECKING(how to call pam_strerror)
1636 AC_CACHE_VAL(ac_cv_pam_strerror_args,
1637 [AC_TRY_COMPILE([#include <stdio.h>
1639 #include <security/pam_appl.h>],
1640 [pam_handle_t *pamh = 0;
1641 char *s = pam_strerror(pamh, PAM_SUCCESS);],
1642 [ac_pam_strerror_args=2],
1643 [AC_TRY_COMPILE([#include <stdio.h>
1645 #include <security/pam_appl.h>],
1647 pam_strerror(PAM_SUCCESS);],
1648 [ac_pam_strerror_args=1],
1649 [ac_pam_strerror_args=0])])
1650 ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1651 ac_pam_strerror_args=$ac_cv_pam_strerror_args
1652 if test "$ac_pam_strerror_args" = 1 ; then
1653 AC_MSG_RESULT(one argument)
1654 elif test "$ac_pam_strerror_args" = 2 ; then
1655 AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1656 AC_MSG_RESULT(two arguments)
1658 AC_MSG_RESULT(unknown)
1664 ###############################################################################
1666 # Check for Kerberos.
1668 ###############################################################################
1672 with_kerberos_req=unspecified
1674 AC_ARG_WITH(kerberos,
1675 [ --with-kerberos Include support for Kerberos authentication.],
1676 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1678 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1680 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1681 AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
1682 [AC_TRY_X_COMPILE([#include <krb.h>],,
1683 [ac_cv_kerberos=yes],
1684 [ac_cv_kerberos=no])])
1685 AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
1686 [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
1687 [ac_cv_kerberos5=yes],
1688 [ac_cv_kerberos5=no])])
1690 if test "$ac_cv_kerberos" = yes ; then
1692 AC_DEFINE(HAVE_KERBEROS)
1695 if test "$ac_cv_kerberos5" = yes ; then
1697 # Andrew Snare <ajs@pigpond.com> wrote:
1699 # You were assuming that if kerberosV (krb5) was found, then kerberosIV
1700 # (krb4) was also available. This turns out not to be the case with
1701 # mit-krb-1.2.7; apparently backwards-compatibility with KerberosIV
1704 # So, disable kerberosV support if libkrb4 can't be found.
1705 # This is not the best solution, but it makes the compile not fail.
1707 AC_CHECK_X_LIB(krb4, krb_get_tf_realm,
1708 [have_kerberos=yes],
1710 if test "$have_kerberos" = yes ; then
1712 AC_DEFINE(HAVE_KERBEROS)
1713 AC_DEFINE(HAVE_KERBEROS5)
1716 AC_MSG_WARN([Cannot find compat lib (libkrb4) needed to use Kerberos 5])
1721 if test "$have_kerberos5" = yes ; then
1722 # from Matt Knopp <mhat@infocalypse.netlag.com>
1723 # (who got it from amu@mit.edu)
1725 PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"
1727 # jwz: MacOS X uses -lkrb5, but not -lcrypt
1728 AC_CHECK_X_LIB(crypt, crypt, [PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1730 elif test "$have_kerberos" = yes ; then
1731 # from Tim Showalter <tjs@psaux.com> for FreeBSD 4.2
1732 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err"
1735 if test "$have_kerberos" = yes ; then
1736 AC_CHECK_FUNC(res_search,,
1737 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1738 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1744 ###############################################################################
1746 # Check for the nine billion variants of shadow passwords...
1748 ###############################################################################
1753 with_shadow_req=unspecified
1756 [ --with-shadow Include support for shadow password authentication.],
1757 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1759 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1761 if test "$enable_locking" = no ; then
1767 ###############################################################################
1769 # Check for Sun "adjunct" passwords.
1771 ###############################################################################
1773 if test "$with_shadow" = yes ; then
1774 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1775 [AC_TRY_X_COMPILE([#include <stdlib.h>
1777 #include <sys/types.h>
1778 #include <sys/label.h>
1779 #include <sys/audit.h>
1780 #include <pwdadj.h>],
1781 [struct passwd_adjunct *p = getpwanam("nobody");
1782 const char *pw = p->pwa_passwd;],
1783 [ac_cv_sun_adjunct=yes],
1784 [ac_cv_sun_adjunct=no])])
1785 if test "$ac_cv_sun_adjunct" = yes; then
1786 have_shadow_adjunct=yes
1793 ###############################################################################
1795 # Check for DEC and SCO so-called "enhanced" security.
1797 ###############################################################################
1799 if test "$with_shadow" = yes ; then
1800 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1801 [AC_TRY_X_COMPILE([#include <stdlib.h>
1803 #include <sys/types.h>
1805 #include <sys/security.h>
1807 [struct pr_passwd *p;
1809 set_auth_parameters(0, 0);
1810 check_auth_parameters();
1811 p = getprpwnam("nobody");
1812 pw = p->ufld.fd_encrypt;],
1813 [ac_cv_enhanced_passwd=yes],
1814 [ac_cv_enhanced_passwd=no])])
1815 if test $ac_cv_enhanced_passwd = yes; then
1816 have_shadow_enhanced=yes
1820 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1821 # (I'm told it needs -lcurses too, but I don't understand why.)
1822 # But on DEC, it's in -lsecurity.
1824 AC_CHECK_LIB(prot, getprpwnam,
1825 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1826 [AC_CHECK_LIB(security, getprpwnam,
1827 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1832 ###############################################################################
1834 # Check for HP's entry in the "Not Invented Here" Sweepstakes.
1836 ###############################################################################
1838 if test "$with_shadow" = yes ; then
1839 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1840 [AC_TRY_X_COMPILE([#include <stdlib.h>
1842 #include <sys/types.h>
1844 #include <hpsecurity.h>
1846 [struct s_passwd *p = getspwnam("nobody");
1847 const char *pw = p->pw_passwd;],
1848 [ac_cv_hpux_passwd=yes],
1849 [ac_cv_hpux_passwd=no])])
1850 if test "$ac_cv_hpux_passwd" = yes; then
1851 have_shadow_hpux=yes
1855 # on HPUX, bigcrypt is in -lsec
1856 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1861 ###############################################################################
1863 # Check for FreeBSD-style shadow passwords.
1865 # On FreeBSD, getpwnam() and friends work just like on non-shadow-
1866 # password systems -- except you only get stuff in the pw_passwd field
1867 # if the running program is setuid. So, guess that we've got this
1868 # lossage to contend with if /etc/master.passwd exists, and default to
1869 # a setuid installation.
1871 ###############################################################################
1873 if test "$with_shadow" = yes ; then
1874 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1875 [if test -f /etc/master.passwd ; then
1876 ac_cv_master_passwd=yes
1878 ac_cv_master_passwd=no
1880 if test "$ac_cv_master_passwd" = yes; then
1886 ###############################################################################
1888 # Check for traditional (ha!) shadow passwords.
1890 ###############################################################################
1892 if test "$with_shadow" = yes ; then
1893 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1894 [AC_TRY_X_COMPILE([#include <stdlib.h>
1896 #include <sys/types.h>
1898 #include <shadow.h>],
1899 [struct spwd *p = getspnam("nobody");
1900 const char *pw = p->sp_pwdp;],
1902 [ac_cv_shadow=no])])
1903 if test "$ac_cv_shadow" = yes; then
1907 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1909 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1910 if test "$have_getspnam" = no ; then
1911 AC_CHECK_LIB(gen, getspnam,
1912 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1918 ###############################################################################
1920 # Check for other libraries needed for non-shadow passwords.
1922 ###############################################################################
1924 if test "$enable_locking" = yes ; then
1926 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1928 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1929 if test "$have_crypt" = no ; then
1930 AC_CHECK_LIB(crypt, crypt,
1931 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1936 # Most of the above shadow mechanisms will have set need_setuid to yes,
1937 # if they were found. But, on some systems, we need setuid even when
1938 # using plain old vanilla passwords.
1940 if test "$enable_locking" = yes ; then
1942 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1949 if test "$have_shadow_adjunct" = yes ; then
1950 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1951 elif test "$have_shadow_enhanced" = yes ; then
1952 AC_DEFINE(HAVE_ENHANCED_PASSWD)
1953 elif test "$have_shadow_hpux" = yes ; then
1954 AC_DEFINE(HAVE_HPUX_PASSWD)
1955 elif test "$have_shadow" = yes ; then
1956 AC_DEFINE(HAVE_SHADOW_PASSWD)
1960 ###############################################################################
1962 # Check for external password helper
1963 # On SuSE, instead of having xscreensaver be a setuid program, they
1964 # fork an external program that takes the password on stdin, and
1965 # returns true if that password is a valid one. Then only that
1966 # smaller program needs to be setuid.
1968 # (Note that this external program is not a GUI: the GUI is still
1969 # all in xscreensaver itself; the external program just does auth.)
1971 ###############################################################################
1973 have_passwd_helper=no
1974 with_passwd_helper_req=unspecified
1976 AC_ARG_WITH(passwd-helper,
1977 [ --with-passwd-helper Include support for an external password
1978 verification helper program.],
1979 [with_passwd_helper="$withval"; with_passwd_helper_req="$withval"],[with_passwd_helper=no])
1980 # no HANDLE_X_PATH_ARG for this one
1982 if test "$enable_locking" = no ; then
1983 with_passwd_helper_req=no
1984 with_passwd_helper=no
1987 case "$with_passwd_helper" in
1990 AC_DEFINE_UNQUOTED(PASSWD_HELPER_PROGRAM, "$with_passwd_helper")
1991 have_passwd_helper=yes;;
1993 echo "error: --with-passwd-helper needs full pathname of helper (not '$with_passwd_helper')." >&2
1998 ###############################################################################
2002 ###############################################################################
2005 with_motif_req=unspecified
2007 User interface options:
2009 --with-motif Use the Motif toolkit for the user interface
2010 (not recommended.)],
2011 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no])
2013 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
2015 if test "$with_motif" != yes -a "$with_motif" != no ; then
2016 echo "error: must be yes or no: --with-motif=$with_motif"
2020 if test "$with_motif" = yes; then
2022 AC_CHECK_X_HEADER(Xm/Xm.h,
2024 AC_DEFINE(HAVE_MOTIF)
2025 MOTIF_LIBS="$MOTIF_LIBS -lXm"],,
2026 [#include <stdlib.h>
2028 #include <X11/Intrinsic.h>])
2032 if test "$have_motif" = yes; then
2033 AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],,
2034 [#include <stdlib.h>
2036 #include <X11/Intrinsic.h>])
2040 ###############################################################################
2042 # Check for -lgtk (and Gnome stuff)
2044 ###############################################################################
2048 with_gtk_req=unspecified
2050 [ --with-gtk Use the Gtk toolkit for the user interface.],
2051 [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
2053 # if --with-gtk=/directory/ was specified, remember that directory so that
2054 # we can also look for the `gtk-config' program in that directory.
2064 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
2066 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
2067 echo "error: must be yes or no: --with-gtk=$with_gtk"
2072 with_gnome_req=unspecified
2074 [ --with-gnome Include support for the Gnome 1.x Control Center.
2075 (This option is not needed with GTK 2.x / Gnome 2.x.)
2077 [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
2079 # if --with-gnome=/directory/ was specified, remember that directory so that
2080 # we can also look for the `gnome-config' program in that directory.
2081 case "$with_gnome" in
2083 gnome_dir="$with_gnome"
2090 HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome)
2092 if test "$with_gnome" != yes -a "$with_gnome" != no ; then
2093 echo "error: must be yes or no: --with-gnome=$with_gnome"
2097 parse_gtk_version_string() {
2100 maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
2101 min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
2103 ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
2104 if test -z "$ac_gtk_version"; then
2105 ac_gtk_version=unknown
2106 ac_gtk_version_string=unknown
2114 if test "$with_gtk" = yes; then
2117 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2118 # look in /foo/bin/ for glib-config, gtk-config, and gnome-config.
2122 if test ! -z "$gtk_dir"; then
2123 # canonicalize slashes.
2124 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2125 gtk_path="$foo:$gtk_path"
2128 if test ! -z "$gnome_dir"; then
2129 # canonicalize slashes.
2130 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2131 gtk_path="$foo:$gtk_path"
2134 AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path)
2136 if test -n "$pkg_config" ; then
2139 # run pkg-config based tests.
2142 pkg_check_version() {
2143 if test "$ok" = yes ; then
2146 AC_MSG_CHECKING(for $req)
2147 if $pkg_config --exists "$req" ; then
2148 vers=`$pkg_config --modversion "$req"`
2149 if $pkg_config --exists "$req >= $min" ; then
2150 AC_MSG_RESULT($vers)
2154 AC_MSG_RESULT($vers (wanted >= $min))
2166 AC_MSG_RESULT(checking for GTK 2.x with pkg-config based tests...)
2169 pkg_check_version gtk+-2.0 2.0.1 ; ac_gtk_version_string="$vers"
2170 pkg_check_version gmodule-2.0 2.0.0
2171 pkg_check_version libxml-2.0 2.4.6
2172 pkg_check_version libglade-2.0 1.99.0
2173 # pkg_check_version gdk_pixbuf 0.1
2176 if test "$have_gtk" = yes; then
2178 AC_DEFINE(HAVE_GTK2)
2180 if test -n "$ac_gtk_version_string" ; then
2181 gtk2_halfassed="$ac_gtk_version_string"
2182 gtk2_halfassed_lib="$req"
2186 if test "$have_gtk" = no; then
2188 # we don't have GTK 2. Let's look for GTK 1.
2190 AC_MSG_RESULT(checking for GTK 1.x with pkg-config based tests...)
2194 pkg_check_version gtk+ 1.2 ; ac_gtk_version_string="$vers"
2195 pkg_check_version glib 1.0
2196 pkg_check_version gdk_pixbuf 0.1
2199 # Now check for Gnome...
2201 if test "$have_gtk" = yes -a "$with_gnome" = yes; then
2204 pkg_check_version capplet 1.0
2205 pkg_check_version gnomeui 1.0
2206 pkg_check_version gdk_pixbuf 0.1
2209 if test "$have_gnome" = no; then
2212 AC_DEFINE(HAVE_CRAPPLET)
2217 if test "$have_gtk" = yes; then
2218 parse_gtk_version_string
2224 if test "$have_gtk" = yes; then
2225 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
2226 [ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`])
2227 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
2228 [ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs`])
2230 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
2231 ac_gtk_config_libs=$ac_cv_gtk_config_libs
2233 ac_gnome_config_cflags=$ac_gtk_config_cflags
2234 ac_gnome_config_libs=$ac_gtk_config_libs
2239 # run {gnome,gtk}-config based tests.
2241 AC_MSG_RESULT(checking for GTK 1.x with gtk-config based tests...)
2243 AC_PATH_PROGS(glib_config, glib12-config glib-config,, $gtk_path)
2244 AC_PATH_PROGS(gtk_config, gtk12-config gtk-config,, $gtk_path)
2246 if test "$with_gnome" = yes; then
2247 AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
2250 if test -n "$glib_config" -a -n "$gtk_config" ; then
2252 if test "$with_gnome" = yes -a -n "$gnome_config" ; then
2257 if test "$have_gtk" = yes; then
2258 AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
2259 [ac_cv_gtk_version_string=`$gtk_config --version`])
2260 ac_gtk_version_string=$ac_cv_gtk_version_string
2261 parse_gtk_version_string
2264 if test "$have_gtk" = yes; then
2265 if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
2273 if test "$have_gtk" = yes; then
2274 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
2275 [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
2276 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
2277 [ac_cv_gtk_config_libs=`$gtk_config --libs`])
2279 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
2280 ac_gtk_config_libs=$ac_cv_gtk_config_libs
2282 # Check for Gnome Capplet support.
2283 # Note that this is only needed with Gnome 1.x, not Gnome 2.x.
2284 # In a Gnome 2.x world, libcapplet will not exist.
2285 # (In fact, this likely won't even be checked, since in a Gnome 2.x
2286 # world, we will probably be up in the "$pkg_config" branch instead
2287 # of here in the "$gnome_config" branch.)
2289 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2290 gnome_config_libs="gtk capplet gnomeui gdk_pixbuf"
2291 AC_MSG_CHECKING(for Gnome capplet includes)
2292 AC_CACHE_VAL(ac_cv_gnome_config_cflags,
2293 [if ( $gnome_config --cflags $gnome_config_libs 2>&1 | \
2294 grep Unknown >/dev/null ) ; then
2295 ac_cv_gnome_config_cflags=''
2297 ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
2299 ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
2300 if test "$ac_gnome_config_cflags" = "" ; then
2304 AC_MSG_RESULT($ac_gnome_config_cflags)
2308 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2309 AC_MSG_CHECKING(for Gnome capplet libs)
2310 AC_CACHE_VAL(ac_cv_gnome_config_libs,
2311 [if ( $gnome_config --libs $gnome_config_libs 2>&1 |
2312 grep Unknown >/dev/null ) ; then
2313 ac_cv_gnome_config_libs=''
2315 ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
2317 ac_gnome_config_libs=$ac_cv_gnome_config_libs
2318 if test "$ac_gnome_config_libs" = "" ; then
2322 AC_MSG_RESULT($ac_gnome_config_libs)
2326 # If we have Gnome, then override the gtk-config values with
2327 # the gnome-config values.
2329 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2330 ac_gtk_config_cflags=$ac_gnome_config_cflags
2331 ac_gtk_config_libs=$ac_gnome_config_libs
2332 AC_DEFINE(HAVE_CRAPPLET)
2335 fi # end of {gnome,gtk}-config based tests
2337 if test "$have_gtk" = yes -a "$have_gtk2" = no; then
2338 # check for this function that was not in libcapplet 1.2.
2339 # (only needed in Gnome/Gtk 1.x, not Gnome/Gtk 2.x)
2340 AC_CHECK_X_LIB(capplet, capplet_widget_changes_are_immediate,
2341 [AC_DEFINE(HAVE_CRAPPLET_IMMEDIATE)], [true],
2342 $ac_gnome_config_libs)
2347 if test "$have_gtk" = yes; then
2348 if test -n "$pkg_config"; then
2349 if test "$have_gtk2" = yes; then
2350 GNOME_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
2352 GNOME_DATADIR=`$pkg_config --variable=prefix gtk+`
2355 GNOME_DATADIR=`$gtk_config --prefix`
2357 GNOME_DATADIR="$GNOME_DATADIR/share"
2360 # .desktop files go in different places in Gnome 1.x and Gnome 2.x...
2361 if test "$have_gtk2" = yes; then
2362 GNOME_PANELDIR='$(GNOME_PANELDIR2)'
2364 GNOME_PANELDIR='$(GNOME_PANELDIR1)'
2368 if test "$have_gtk" = yes; then
2369 INCLUDES="$INCLUDES $ac_gtk_config_cflags"
2370 GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
2373 if test "$have_gtk2" = yes; then
2376 GTK_EXTRA_OBJS="\$(GTK_EXTRA_OBJS)"
2383 # Check for the Gnome Help Browser.
2385 if test "$have_gtk" = yes; then
2386 AC_CHECK_PROGS(have_gnome_help, yelp gnome-help-browser, no)
2387 if test "$have_gnome_help" != no; then
2393 ###############################################################################
2397 ###############################################################################
2400 with_xml_req=unspecified
2403 [ --with-xml The XML toolkit is needed for some parts of
2404 the Gtk interface. Without it, the configuration
2405 interface will be much less featureful.],
2406 [with_xml="$withval"; with_xml_req="$withval"],[with_xml=yes])
2408 # if --with-xml=/directory/ was specified, remember that directory so that
2409 # we can also look for the `xml-config' program in that directory.
2419 HANDLE_X_PATH_ARG(with_xml, --with-xml, XML)
2421 if test "$with_xml" != yes -a "$with_xml" != no ; then
2422 echo "error: must be yes or no: --with-xml=$with_xml"
2426 if test "$with_xml" = yes; then
2430 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2431 # look in /foo/bin/ for for xml-config.
2435 if test ! -z "$gtk_dir"; then
2436 # canonicalize slashes.
2437 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2438 xml_path="$foo:$xml_path"
2441 if test ! -z "$gnome_dir"; then
2442 # canonicalize slashes.
2443 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2444 xml_path="$foo:$xml_path"
2447 if test -n "$pkg_config" ; then
2450 # run pkg-config based tests.
2455 # If we have Gtk 2.x, then *only* XML 2.x will work.
2456 # If we have Gtk 1.x, or don't have Gtk at all, then
2457 # either XML 1.x or 2.x will work.
2459 # First check for XML 2.x.
2461 pkg_check_version libxml-2.0 2.4.6
2463 # If that didn't work (we don't have XML 2.x) and we *don't* have
2464 # Gtk 2.x, then check to see if we have XML 1.x
2466 if test "$ok" = no -a "$have_gtk2" = no; then
2468 pkg_check_version libxml 1.0
2473 if test "$have_xml" = yes; then
2474 AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2475 [ac_cv_xml_config_cflags=`$pkg_config --cflags $pkgs`])
2476 AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2477 [ac_cv_xml_config_libs=`$pkg_config --libs $pkgs`])
2478 ac_xml_config_cflags=$ac_cv_xml_config_cflags
2479 ac_xml_config_libs=$ac_cv_xml_config_libs
2485 # run {xml2,xml}-config based tests.
2488 AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path)
2490 # If we found the xml-config program, run it to get flags.
2492 if test -n "$xml_config" ; then
2493 AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2494 [ac_cv_xml_config_cflags=`$xml_config --cflags`])
2495 AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2496 [ac_cv_xml_config_libs=`$xml_config --libs`])
2497 ac_xml_config_cflags=$ac_cv_xml_config_cflags
2498 ac_xml_config_libs=$ac_cv_xml_config_libs
2501 ac_save_xml_CPPFLAGS="$CPPFLAGS"
2502 CPPFLAGS="$CPPFLAGS $ac_xml_config_cflags"
2504 # first try <libxml/parser.h> which is the new way...
2506 AC_CHECK_X_HEADER(libxml/xmlIO.h, [have_xml=yes],,
2507 [#include <libxml/parser.h>])
2509 # if that didn't work, then try just <parser.h> which is the old way...
2511 if test "$have_xml" = no; then
2512 AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes; have_old_xml=yes],,
2513 [#include <parser.h>])
2516 CPPFLAGS="$ac_save_xml_CPPFLAGS"
2521 if test "$have_xml" = yes; then
2522 # we have the XML headers; now make sure zlib is around.
2523 # yes, it's stupid we have to do this too, but there is
2524 # dependency screwage in Gnome.
2525 AC_CHECK_X_LIB(z, zlibVersion, [have_zlib=yes])
2526 if test "$have_zlib" = no; then
2532 if test "$have_xml" = yes; then
2533 # we have the header, now check for the library
2536 AC_CHECK_X_LIB(c, xmlParseChunk,
2539 XML_LIBS="$ac_xml_config_libs"
2540 AC_DEFINE(HAVE_XML)],
2542 $ac_xml_config_libs)
2545 if test "$have_xml" = yes; then
2546 INCLUDES="$INCLUDES $ac_xml_config_cflags"
2547 GTK_LIBS="$GTK_LIBS $ac_xml_config_libs"
2549 if test "$have_old_xml" = yes; then
2550 AC_DEFINE(HAVE_OLD_XML_HEADERS)
2557 ###############################################################################
2559 # Checking whether Motif is really Lesstif.
2561 ###############################################################################
2564 if test "$have_motif" = yes ; then
2565 AC_CACHE_CHECK([whether Motif is really LessTif],
2567 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
2568 [long vers = LesstifVersion;],
2569 [ac_cv_have_lesstif=yes],
2570 [ac_cv_have_lesstif=no])])
2571 have_lesstif=$ac_cv_have_lesstif
2575 lesstif_version=unknown
2576 lesstif_version_string=unknown
2578 if test "$have_lesstif" = yes ; then
2580 echo unknown > conftest-lt
2581 AC_CACHE_CHECK([LessTif version number],
2582 ac_cv_lesstif_version_string,
2583 [AC_TRY_X_RUN([#include <stdio.h>
2586 FILE *f = fopen("conftest-lt", "w");
2588 fprintf(f, "%d %d.%d\n", LesstifVersion,
2589 LESSTIF_VERSION, LESSTIF_REVISION);
2593 [ltv=`cat conftest-lt`
2594 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
2595 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
2596 [ac_cv_lesstif_version=unknown
2597 ac_cv_lesstif_version_string=unknown],
2598 [ac_cv_lesstif_version=unknown
2599 ac_cv_lesstif_version_string=unknown])])
2601 lesstif_version=$ac_cv_lesstif_version
2602 lesstif_version_string=$ac_cv_lesstif_version_string
2607 if test "$have_motif" = yes ; then
2609 echo unknown > conftest-mt
2610 AC_CACHE_CHECK([Motif version number],
2611 ac_cv_motif_version_string,
2612 [AC_TRY_X_RUN([#include <stdio.h>
2615 FILE *f = fopen("conftest-mt", "w");
2617 fprintf(f, "%d %d.%d\n", XmVersion,
2618 XmVERSION, XmREVISION);
2622 [mtv=`cat conftest-mt`
2623 ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
2624 ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
2625 [ac_cv_motif_version=unknown
2626 ac_cv_motif_version_string=unknown],
2627 [ac_cv_motif_version=unknown
2628 ac_cv_motif_version_string=unknown])])
2630 motif_version=$ac_cv_motif_version
2631 motif_version_string=$ac_cv_motif_version_string
2636 ###############################################################################
2638 # Checking whether Motif requires -lXpm.
2640 # If this is Motif 2.x, and we have XPM, then link against XPM as well.
2641 # The deal is, Motif 2.x requires XPM -- but it's a compilation option
2642 # of the library whether to build the XPM code into libXm, or whether
2643 # to rely on an external libXm. So the only way to tell whether XPM is
2644 # a link-time requirement is to examine libXm.a, which is very
2645 # difficult to do in an autoconf script. So... if it's Motif 2.x, we
2646 # always link against XPM if the XPM lib exists (and this will be a
2647 # no-op if libXm happens to already have the XPM code in it.)
2649 ###############################################################################
2651 motif_requires_xpm=no
2652 if test "$have_motif" = yes ; then
2653 AC_MSG_CHECKING(whether Motif requires XPM)
2654 if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
2656 motif_requires_xpm=yes
2657 AC_MSG_RESULT(maybe)
2664 ###############################################################################
2666 # Checking whether Motif requires -lXp.
2668 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
2669 # Extension". Why this extension isn't in -lXext with all the others,
2672 ###############################################################################
2675 if test "$have_motif" = yes ; then
2677 AC_CHECK_X_LIB(Xp, XpQueryExtension,
2678 [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
2679 [true], -lX11 -lXext -lm)
2683 ###############################################################################
2685 # Checking whether Motif requires -lXintl (for _Xsetlocale.)
2687 ###############################################################################
2690 if test "$have_motif" = yes ; then
2691 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
2693 if test "$have_xintl" = yes; then
2694 MOTIF_LIBS="$MOTIF_LIBS -lXintl"
2699 ###############################################################################
2701 # Check for -lGL or -lMesaGL.
2703 ###############################################################################
2707 with_gl_req=unspecified
2712 --with-gl Build those demos which depend on OpenGL.],
2713 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
2715 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
2717 ac_mesagl_version=unknown
2718 ac_mesagl_version_string=unknown
2720 if test "$with_gl" = yes; then
2721 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
2722 if test "$have_gl" = yes ; then
2723 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no,
2724 [#include <GL/gl.h>])
2727 # If we have the headers, try and figure out which vendor it's from.
2729 if test "$have_gl" = yes ; then
2731 # We need to know whether it's MesaGL so that we know which libraries
2734 AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
2735 [ac_cv_have_mesa_gl=no
2736 AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
2738 ac_have_mesa_gl=$ac_cv_have_mesa_gl
2745 # Some versions of MesaGL are compiled to require -lpthread.
2746 # So if the Mesa headers exist, and -lpthread exists, then always
2747 # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
2749 if test "$ac_have_mesa_gl" = yes; then
2750 AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
2754 # If we have Mesa headers, check to see if we can link against -lMesaGL.
2755 # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
2756 # Else, warn that GL is busted. (We have the headers, but no libs.)
2759 if test "$ac_have_mesa_gl" = yes ; then
2760 AC_CHECK_X_LIB(MesaGL, glXCreateContext,
2762 GL_LIBS="-lMesaGL -lMesaGLU $VIDMODE_LIBS $GL_LIBS"],
2763 [], -lMesaGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm)
2766 if test "$gl_lib_1" = "" ; then
2767 AC_CHECK_X_LIB(GL, glXCreateContext,
2769 GL_LIBS="-lGL -lGLU $VIDMODE_LIBS $GL_LIBS"],
2770 [], -lGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm)
2773 if test "$gl_lib_1" = "" ; then
2774 # we have headers, but no libs -- bail.
2779 # linking works -- we can build the GL hacks.
2781 if test "$ac_have_mesa_gl" = yes ; then
2782 AC_DEFINE(HAVE_MESA_GL)
2788 # Now that we know we have GL headers and libs, do some more GL testing.
2791 if test "$have_gl" = yes ; then
2792 # If it's MesaGL, we'd like to issue a warning if the version number
2793 # is less than or equal to 2.6, because that version had a security bug.
2795 if test "$ac_have_mesa_gl" = yes; then
2797 AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
2798 [cat > conftest.$ac_ext <<EOF
2799 #line __oline__ "configure"
2800 #include "confdefs.h"
2802 #ifndef MESA_MAJOR_VERSION
2803 # include <GL/xmesa.h>
2804 # ifdef XMESA_MAJOR_VERSION
2805 /* Around Mesa 3.2, they took out the Mesa version number, so instead,
2806 we have to check the XMesa version number (the number of the X protocol
2807 support, which seems to be the same as the Mesa version number.)
2809 # define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
2810 # define MESA_MINOR_VERSION XMESA_MINOR_VERSION
2812 /* Oh great. Some time after 3.4, they took out the xmesa.h header file,
2813 so we have no way of telling what version of Mesa this is at all.
2814 So, we'll guess that the osmesa version (the "offscreen protocol")
2815 is less than or equal to the real mesa version number. Except that
2816 if OSmesa is 3.3, assume at least Mesa 3.4, since OSmesa was 3.3 in
2817 Mesa 3.4. And Mesa 3.3 had xmesa.h. What a complete load of shit!
2819 # include <GL/osmesa.h>
2820 # define MESA_MAJOR_VERSION OSMESA_MAJOR_VERSION
2821 # define MESA_MINOR_VERSION OSMESA_MINOR_VERSION or newer, probably?
2822 # if OSMESA_MAJOR_VERSION == 3 && OSMESA_MINOR_VERSION == 3
2823 # undef MESA_MINOR_VERSION
2824 # define MESA_MINOR_VERSION 4 or newer, probably?
2828 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
2831 ac_save_CPPFLAGS="$CPPFLAGS"
2832 if test \! -z "$includedir" ; then
2833 CPPFLAGS="$CPPFLAGS -I$includedir"
2835 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2837 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | grep configure:`
2841 mglv=`echo "$mglv" | sed -n \
2842 's/^configure: *\([0-9][0-9]*\) *\([0-9].*\)$/\1.\2/p'`
2845 rm -f conftest.$ac_ext
2847 CPPFLAGS="$ac_save_CPPFLAGS"
2849 if test "$mglv" = ""; then
2850 ac_mesagl_version=unknown
2851 ac_mesagl_version_string=unknown
2853 ac_mesagl_version_string="$mglv"
2856 maj=`echo "$mglv" | sed -n 's/^\([0-9][0-9]*\)\..*$/\1/p'`
2857 min=`echo "$mglv" | sed -n 's/^.*\.\([0-9][0-9]*\).*$/\1/p'`
2859 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
2860 if test -z "$ac_mesagl_version"; then
2861 ac_mesagl_version=unknown
2862 ac_mesagl_version_string=unknown
2865 ac_cv_mesagl_version=$ac_mesagl_version
2866 ac_cv_mesagl_version_string=$ac_mesagl_version_string
2868 ac_mesagl_version=$ac_cv_mesagl_version
2869 ac_mesagl_version_string=$ac_cv_mesagl_version_string
2873 # Check for OpenGL 1.1 features.
2875 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
2876 [true], $GL_LIBS -lX11 -lXext -lm)
2879 elif test "$with_gl" != no; then
2880 echo "error: must be yes or no: --with-gl=$with_gl"
2885 ###############################################################################
2889 ###############################################################################
2892 with_gle_req=unspecified
2895 [ --with-gle Build those demos which depend on GLE
2896 (the OpenGL "extrusion" library.)],
2897 [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
2899 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
2903 if test "$have_gl" = no ; then
2905 elif test "$with_gle" = yes; then
2907 AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no,
2908 [#include <GL/gl.h>])
2909 if test "$have_gle3" = yes ; then
2912 AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no,
2913 [#include <GL/gl.h>])
2914 if test "$have_gle" = yes ; then
2915 AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no,
2916 [#include <GL/gl.h>])
2920 if test "$have_gle" = yes ; then
2923 AC_CHECK_X_LIB(gle, gleCreateGC,
2924 [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
2925 [], $GL_LIBS -lX11 -lXext -lm)
2927 if test "$have_gle" = yes ; then
2931 # sometimes the libmatrix stuff is included in libgle. look there first.
2933 # I don't get it. For some reason, this test passes on SGI, as if
2934 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
2935 # Yet the link is succeeding. Why???
2937 # AC_CHECK_X_LIB(gle, uview_direction_d,
2938 # [have_gle=yes; gle_halfassed=no],
2939 # [], $GL_LIBS -lX11 -lXext -lm)
2941 # As of GLE 3 this is in libgle, and has changed name to uview_direction!
2943 if test "$have_gle3" = yes ; then
2944 AC_CHECK_X_LIB(gle, uview_direction,
2945 [have_gle=yes; gle_halfassed=no],
2946 [], $GL_LIBS -lX11 -lXext -lm)
2948 # if it wasn't in libgle, then look in libmatrix.
2949 if test "$have_gle" = no ; then
2950 AC_CHECK_X_LIB(matrix, uview_direction_d,
2951 [have_gle=yes; gle_halfassed=no;
2952 GLE_LIBS="$GLE_LIBS -lmatrix"],
2953 [], $GL_LIBS -lX11 -lXext -lm)
2957 if test "$have_gle" = yes ; then
2959 if test "$have_gle3" = yes ; then
2960 AC_DEFINE(HAVE_GLE3)
2964 elif test "$with_gle" != no; then
2965 echo "error: must be yes or no: --with-gle=$with_gle"
2972 ###############################################################################
2976 ###############################################################################
2979 with_xpm_req=unspecified
2981 [ --with-xpm Include support for XPM files in some demos.
2982 (Not needed if Pixbuf is used.)],
2983 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2985 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2987 if test "$with_xpm" = yes; then
2988 AC_CHECK_X_HEADER(X11/xpm.h,
2992 [#include <X11/Xlib.h>])
2993 elif test "$with_xpm" != no; then
2994 echo "error: must be yes or no: --with-xpm=$with_xpm"
2998 # See comment near $motif_requires_xpm, above.
2999 # Need to do this here, after both Motif and XPM have been checked for.
3001 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
3002 if test "$motif_requires_xpm" = yes ; then
3003 MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
3007 ###############################################################################
3009 # Check for -lgdk_pixbuf.
3011 ###############################################################################
3014 with_gdk_pixbuf_req=unspecified
3016 [ --with-pixbuf Include support for the GDK-Pixbuf library in some
3017 demos, which will make it possible for them to read
3018 GIF, JPEG, and PNG files as well. (The path here is
3019 ignored if GTK 2.x is being used.)],
3020 [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
3021 [with_gdk_pixbuf=yes])
3023 # if --with-pixbuf=/directory/ was specified, remember that directory so that
3024 # we can also look for the `gdk-pixbuf-config' program in that directory.
3025 case "$with_gdk_pixbuf" in
3027 gdk_pixbuf_dir="$with_gdk_pixbuf"
3034 HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF)
3036 if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then
3037 echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
3041 if test "$with_gdk_pixbuf" = yes; then
3045 if test -n "$pkg_config" ; then
3048 # run pkg-config based tests.
3053 # If we have Gtk 2.x, then *only* gdk-pixbuf 2.x will work.
3054 # If we have Gtk 1.x, then *only* gdk-pixbuf 1.x will work.
3055 # If we don't have Gtk at all, then either will work.
3057 if test "$have_gtk" = no -o "$have_gtk2" = yes; then
3059 # we don't have Gtk; or we have Gtk 2.x. Check for pixbuf 2.x.
3061 AC_MSG_RESULT(checking for gdk_pixbuf 2.x with gtk-config based tests...)
3062 pkg_check_version gdk-pixbuf-2.0 2.0.0
3063 pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
3064 have_gdk_pixbuf="$ok"
3065 have_gdk_pixbuf2="$ok"
3068 if test "$have_gtk" = no -o "$have_gtk2" = no; then
3070 # we don't have Gtk; or we have Gtk 1.x.
3071 # If we don't have pixbuf 2.x, then check for pixbuf 1.x.
3073 if test "$have_gdk_pixbuf2" = no; then
3076 AC_MSG_RESULT(checking for gdk_pixbuf 1.x with gtk-config based tests...)
3077 pkg_check_version gdk_pixbuf 0.0
3078 pkg_check_version gdk_pixbuf_xlib 0.0
3079 have_gdk_pixbuf="$ok"
3083 if test "$have_gdk_pixbuf" = yes; then
3084 AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
3085 [ac_cv_gdk_pixbuf_config_cflags=`$pkg_config --cflags $pkgs`])
3086 AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
3087 [ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs`])
3089 ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
3090 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
3094 if test "$have_gdk_pixbuf" = no; then
3097 # run gdk-pixbuf-config based tests.
3098 # note that we can't assume that the existence of "pkg-config" means
3099 # that we don't have to look for gdk-pixbuf-config -- in Gnome 1.4,
3100 # pkg-config exists, but doesn't know about pixbuf.
3103 AC_MSG_RESULT(checking for gdk_pixbuf with gdk-pixbuf-config based tests...)
3105 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
3106 # look in /foo/bin/ for for gdk-pixbuf-config.
3108 gdk_pixbuf_path="$PATH"
3110 if test ! -z "$gtk_dir"; then
3111 # canonicalize slashes.
3112 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
3113 gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
3116 if test ! -z "$gnome_dir"; then
3117 # canonicalize slashes.
3118 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
3119 gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
3122 AC_PATH_PROGS(gdk_pixbuf_config, gdk-pixbuf-config,, $gdk_pixbuf_path)
3124 # If we found the gdk-pixbuf-config program, run it to get flags.
3126 if test -n "$gdk_pixbuf_config" ; then
3127 AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
3128 [ac_cv_gdk_pixbuf_config_cflags=`$gdk_pixbuf_config --cflags`])
3129 AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
3130 [ac_cv_gdk_pixbuf_config_libs=`$gdk_pixbuf_config --libs`])
3132 # note that "gdk-pixbuf-config --libs" produces a link line including
3133 # -lgdk_pixbuf, but there's no way to get it to produce one that also
3134 # includes -lgdk_pixbuf_xlib. Since we don't know *exactly* what the
3135 # name of the library will be, construct it with sed...
3138 ac_cv_gdk_pixbuf_config_libs=`echo $ac_cv_gdk_pixbuf_config_libs | \
3139 sed 's@ \(-lgdk_pixbuf\([-_a-zA-Z0-9.]*\)\) @ \1 -lgdk_pixbuf_xlib\2 @'`
3142 ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
3143 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
3147 ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
3148 CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
3150 if test "$have_gdk_pixbuf" = no; then
3152 # we appear to have pixbuf; check for headers/libs to be sure.
3157 # check for header A...
3158 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
3160 # if that worked, check for header B...
3161 if test "$have_gdk_pixbuf" = yes; then
3163 gdk_pixbuf_halfassed=yes
3164 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h,
3165 [have_gdk_pixbuf=yes
3166 gdk_pixbuf_halfassed=no])
3168 # yay, it has a new name in Gtk 2.x...
3169 if test "$have_gdk_pixbuf" = no; then
3171 gdk_pixbuf_halfassed=yes
3172 AC_CHECK_X_HEADER(gdk-pixbuf-xlib/gdk-pixbuf-xlib.h,
3173 [have_gdk_pixbuf=yes
3174 gdk_pixbuf_halfassed=no])
3179 CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
3181 if test "$have_gdk_pixbuf" = yes; then
3182 # we have the headers, now check for the libraries
3184 gdk_pixbuf_halfassed=yes
3187 AC_CHECK_X_LIB(c, gdk_pixbuf_new_from_file, [have_gdk_pixbuf=yes],,
3188 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
3190 if test "$have_gdk_pixbuf" = yes; then
3192 AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init,
3193 [have_gdk_pixbuf=yes
3194 gdk_pixbuf_halfassed=no],,
3195 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
3199 if test "$have_gdk_pixbuf" = yes; then
3200 INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
3201 XPM_LIBS="$ac_gdk_pixbuf_config_libs"
3202 AC_DEFINE(HAVE_GDK_PIXBUF)
3209 ###############################################################################
3213 ###############################################################################
3216 with_jpeg_req=unspecified
3219 [ --with-jpeg Include support for the JPEG library.],
3220 [with_jpeg="$withval"; with_jpeg_req="$withval"],
3223 HANDLE_X_PATH_ARG(with_jpeg, --with-jpeg, JPEG)
3225 if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then
3226 echo "error: must be yes or no: --with-jpeg=$with_jpeg"
3230 if test "$with_jpeg" = yes; then
3233 AC_CHECK_X_HEADER(jpeglib.h, [have_jpeg=yes])
3235 if test "$have_jpeg" = yes; then
3236 # we have the header, now check for the library
3239 AC_CHECK_X_LIB(jpeg, jpeg_start_compress,
3243 AC_DEFINE(HAVE_JPEGLIB)])
3248 ###############################################################################
3250 # Check for pty support for 'phosphor'
3252 ###############################################################################
3255 AC_CHECK_HEADERS(pty.h util.h)
3256 AC_CHECK_X_LIB(util, forkpty,
3258 AC_DEFINE(HAVE_FORKPTY)])
3261 ###############################################################################
3263 # Check for the XSHM server extension.
3265 ###############################################################################
3268 with_xshm_req=unspecified
3269 AC_ARG_WITH(xshm-ext,
3270 [ --with-xshm-ext Include support for the Shared Memory extension.],
3271 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
3273 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
3275 if test "$with_xshm" = yes; then
3277 # first check for Xshm.h.
3278 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],,
3279 [#include <X11/Xlib.h>])
3281 # if that succeeded, then check for sys/ipc.h.
3282 if test "$have_xshm" = yes; then
3284 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
3287 # if that succeeded, then check for sys/shm.h.
3288 if test "$have_xshm" = yes; then
3290 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
3293 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
3294 # to exist, but the library code to not exist. And even better, the library
3295 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
3296 # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and
3297 # that's not quite right, but close enough.)
3301 if [ `uname -v` -eq 3 ]; then
3303 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
3304 [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
3305 [true], -lX11 -lXext -lm)
3310 # if that succeeded, then we've really got it.
3311 if test "$have_xshm" = yes; then
3312 AC_DEFINE(HAVE_XSHM_EXTENSION)
3315 elif test "$with_xshm" != no; then
3316 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
3321 ###############################################################################
3323 # Check for the DOUBLE-BUFFER server extension.
3325 ###############################################################################
3328 with_xdbe_req=unspecified
3329 AC_ARG_WITH(xdbe-ext,
3330 [ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.],
3331 [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
3333 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
3335 if test "$with_xdbe" = yes; then
3337 AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],,
3338 [#include <X11/Xlib.h>])
3339 if test "$have_xdbe" = yes; then
3340 AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
3343 elif test "$with_xdbe" != no; then
3344 echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
3349 ###############################################################################
3351 # Check for the SGI XReadDisplay server extension.
3353 # Note: this has to be down here, rather than up with the other server
3354 # extension tests, so that the output of `configure --help' is in the
3355 # right order. Arrgh!
3357 ###############################################################################
3360 with_readdisplay_req=unspecified
3361 AC_ARG_WITH(readdisplay,
3362 [ --with-readdisplay Include support for the XReadDisplay extension.],
3363 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
3364 [with_readdisplay=yes])
3366 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
3368 if test "$with_readdisplay" = yes; then
3369 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
3370 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),,
3371 [#include <X11/Xlib.h>])
3372 elif test "$with_readdisplay" != no; then
3373 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
3378 ###############################################################################
3380 # Check for a program to generate random text.
3382 # Zippy is funnier than the idiocy generally spat out by `fortune',
3383 # so first see if "fortune zippy" works. Else, use plain "fortune".
3385 # We used to dig around in Emacs to look for the "yow" program, but
3386 # most people who have Emacs also have "fortune zippy", so nevermind.
3388 ###############################################################################
3391 AC_ARG_WITH(fortune,[
3392 --with-fortune=PROGRAM Some demos are able to run an external program and
3393 display its text; this names the program to use by
3394 default (though it can be overridden with X
3395 resources.) Default is "/usr/games/fortune".],
3396 [with_fortune_req="$withval"; with_fortune="$withval"],[with_fortune=yes])
3398 if test "$with_fortune" = no || test "$with_fortune" = yes ; then
3403 if test -n "$with_fortune_req" ; then
3404 ac_cv_fortune_program=""
3405 case "$with_fortune_req" in
3408 set dummy $with_fortune_req ; fortune_tmp=$2
3409 AC_MSG_CHECKING([for $fortune_tmp])
3410 if test -x "$fortune_tmp" ; then
3418 set dummy $with_fortune_req ; fortune_tmp=$2
3420 unset ac_cv_path_fortune_tmp
3421 AC_PATH_PROG(fortune_tmp, $fortune_tmp, [])
3422 if test -z "$fortune_tmp" ; then
3427 ac_cv_fortune_program="$with_fortune"
3429 elif test -n "$ac_cv_fortune_program"; then
3430 AC_MSG_RESULT([checking for fortune... (cached) $ac_cv_fortune_program])
3433 unset ac_cv_path_fortune_tmp
3436 if test -z "$ac_cv_fortune_program" ; then
3438 # first look for fortune in /usr/games/ (and use absolute path)
3439 AC_PATH_PROGS(fortune_tmp, fortune,, "/usr/games")
3441 # if it's not there, look on $PATH (and don't use absolute path)
3442 if test -z "$fortune_tmp" ; then
3443 AC_CHECK_PROGS(fortune_tmp, fortune)
3446 # if we didn't find anything, then just assume /usr/games/
3447 if test -z "$fortune_tmp" ; then
3448 fortune_tmp="/usr/games/fortune"
3451 ac_cv_fortune_program="$fortune_tmp"
3453 # now check to see whether "fortune zippy" works.
3455 fortune_tmp="$fortune_tmp zippy"
3456 AC_MSG_CHECKING([for zippy quotes])
3457 if ( $fortune_tmp >/dev/null 2>&1 ); then
3458 ac_cv_fortune_program="$fortune_tmp"
3459 AC_MSG_RESULT($fortune_tmp)
3466 unset ac_cv_path_fortune_tmp
3469 AC_DEFINE_UNQUOTED(FORTUNE_PROGRAM, "$ac_cv_fortune_program")
3472 ###############################################################################
3474 # Check whether it's ok to install some hacks as setuid (e.g., "sonar")
3475 # This should be safe, but let's give people the option.
3477 ###############################################################################
3479 setuid_hacks_default=no
3480 setuid_hacks="$setuid_hacks_default"
3481 AC_ARG_WITH(setuid-hacks,
3482 [ --with-setuid-hacks Allow some demos to be installed `setuid root'
3483 (which is needed in order to ping other hosts.)
3485 [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
3487 HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks)
3489 if test "$setuid_hacks" = yes; then
3491 elif test "$setuid_hacks" != no; then
3492 echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks"
3497 ###############################################################################
3499 # Done testing. Now, set up the various -I and -L variables,
3500 # and decide which GUI program to build by default.
3502 ###############################################################################
3509 if test \! -z "$includedir" ; then
3510 INCLUDES="$INCLUDES -I$includedir"
3513 if test \! -z "$libdir" ; then
3514 LDFLAGS="$LDFLAGS -L$libdir"
3518 PREFERRED_DEMO_PROGRAM=''
3520 if test "$have_motif" = yes; then
3521 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
3522 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3524 if test "$have_gtk" = yes; then
3525 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
3526 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3530 if test "$have_kerberos" = yes; then
3531 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
3532 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
3534 if test "$have_pam" = yes; then
3535 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
3536 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
3537 INSTALL_PAM="install-pam"
3539 if test "$have_passwd_helper" = yes; then
3540 PASSWD_SRCS="$PASSWD_SRCS \$(PWHELPER_SRCS)"
3541 PASSWD_OBJS="$PASSWD_OBJS \$(PWHELPER_OBJS)"
3543 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
3544 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
3547 if test "$enable_locking" = yes; then
3548 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
3549 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
3551 LOCK_SRCS='$(NOLOCK_SRCS_1)'
3552 LOCK_OBJS='$(NOLOCK_OBJS_1)'
3555 if test "$ac_macosx" = yes; then
3556 EXES_OSX='$(EXES_OSX)'
3557 SCRIPTS_OSX='$(SCRIPTS_OSX)'
3558 MEN_OSX='$(MEN_OSX)'
3566 INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)'
3568 if test "$need_setuid" = yes; then
3574 if test "$setuid_hacks" = yes; then
3581 if test "$have_gl" = yes; then
3582 GL_EXES='$(GL_EXES)'
3583 GL_UTIL_EXES='$(GL_UTIL_EXES)'
3587 GL_KLUDGE="-${tab} "
3590 if test "$have_gle" = yes; then
3591 GLE_EXES='$(GLE_EXES)'
3592 GLE_KLUDGE="${tab} "
3594 GLE_KLUDGE="-${tab} "
3597 if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then
3598 JPEG_EXES='$(JPEG_EXES)'
3602 # Another substitution in the XScreenSaver.ad.in file:
3604 if test "$have_gnome_help" = yes; then
3613 # Now that we know whether we have Gnome, we can decide where the XML
3614 # config files get installed.
3616 if test -z "$HACK_CONF_DIR" ; then
3617 if test -n "$GNOME_DATADIR" ; then
3618 HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers'
3620 HACK_CONF_DIR='${prefix}/lib/xscreensaver/config'
3626 # After computing $HACK_CONF_DIR, make sure $GLADE_DATADIR has a value
3627 # so that we know where to install the Gtk pixmaps.
3629 # It should usually be "/usr/share/pixmaps/", but we can't just use
3630 # "$(prefix)/share/pixmaps" because that would usually result in
3631 # "/usr/X11R6/share/pixmaps/", which is wrong. It needs to be the
3632 # Gnome/Gtk prefix, not the overall prefix.
3634 if test -n "$GNOME_DATADIR" ; then
3635 GLADE_DATADIR='$(GNOME_DATADIR)/xscreensaver'
3636 elif test "$have_gtk" = yes; then
3637 if test -n "$pkg_config"; then
3638 if test "$have_gtk2" = yes; then
3639 GLADE_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3641 GLADE_DATADIR=`$pkg_config --variable=prefix gtk+`
3644 GLADE_DATADIR=`$gtk_config --prefix`
3646 GLADE_DATADIR="$GLADE_DATADIR/share/xscreensaver"
3652 # Set PO_DATADIR to something sensible.
3654 AC_MSG_CHECKING([for locale directory])
3655 if test -n "$GNOME_DATADIR" ; then
3656 PO_DATADIR="$GNOME_DATADIR"
3657 elif test "$have_gtk" = yes; then
3658 if test -n "$pkg_config"; then
3659 if test "$have_gtk2" = yes; then
3660 PO_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3662 PO_DATADIR=`$pkg_config --variable=prefix gtk+`
3665 PO_DATADIR=`$gtk_config --prefix`
3667 PO_DATADIR="$PO_DATADIR/share"
3670 if test -z "$PO_DATADIR" ; then
3672 # #### Total fucking kludge --
3673 # Map /build/prefix/usr/X11R6/share/ to /build/prefix/usr/share/
3674 # but of course we need to expand all the nested variables to do that...
3682 PO_DATADIR=`echo $dd | sed 's@/X11R6/@/@'`
3685 AC_MSG_RESULT($PO_DATADIR/locale)
3688 # canonicalize slashes.
3689 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
3691 # gcc 3.0 likes to issue this warning for every file:
3693 # cc1: warning: changing search order for system directory "/usr/local/include"
3694 # cc1: warning: as it has already been specified as a non-system directory
3696 # Yay. We can only avoid that by deleting "-I${prefix}/include" from the list.
3697 # Which *should* be totally redundant, and thus an ok thing to delete?
3699 INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'`
3702 ###############################################################################
3704 # Perform substitutions and write Makefiles.
3706 ###############################################################################
3710 AC_SUBST(PREFERRED_DEMO_PROGRAM)
3711 AC_SUBST(ALL_DEMO_PROGRAMS)
3712 AC_SUBST(SAVER_LIBS)
3713 AC_SUBST(MOTIF_LIBS)
3722 AC_SUBST(XDPMS_LIBS)
3723 AC_SUBST(PASSWD_LIBS)
3724 AC_SUBST(INSTALL_SETUID)
3725 AC_SUBST(SETUID_HACKS)
3726 AC_SUBST(INSTALL_DIRS)
3727 AC_SUBST(NEED_SETUID)
3728 AC_SUBST(INSTALL_PAM)
3732 AC_SUBST(SCRIPTS_OSX)
3735 AC_SUBST(PASSWD_SRCS)
3736 AC_SUBST(PASSWD_OBJS)
3740 AC_SUBST(SAVER_GL_SRCS)
3741 AC_SUBST(SAVER_GL_OBJS)
3742 AC_SUBST(SAVER_GL_LIBS)
3747 AC_SUBST(GL_UTIL_EXES)
3751 AC_SUBST(GLE_KLUDGE)
3752 AC_SUBST(GNOMEHELP_Y)
3753 AC_SUBST(GNOMEHELP_N)
3755 AC_SUBST(GNOME_DATADIR)
3756 AC_SUBST(GLADE_DATADIR)
3757 AC_SUBST(PO_DATADIR)
3758 AC_SUBST(GNOME_PANELDIR)
3759 AC_SUBST(HACK_CONF_DIR)
3760 AC_SUBST(GTK_EXTRA_OBJS)
3762 APPDEFAULTS=$ac_x_app_defaults
3763 AC_SUBST(APPDEFAULTS)
3766 AC_SUBST(DEPEND_FLAGS)
3767 AC_SUBST(DEPEND_DEFINES)
3776 driver/XScreenSaver.ad
3777 driver/xscreensaver.kss)
3779 ###############################################################################
3781 # Print some warnings at the end.
3783 ###############################################################################
3785 warn_prefix_1=" Warning:"
3786 warn_prefix_2=" Note:"
3787 warn_prefix="$warn_prefix_1"
3790 warnsep=' #################################################################'
3793 if test "$warning" = no ; then
3794 echo '' ; echo "$warnsep" ; echo ''
3801 if test "$warning" = long ; then echo '' ; fi
3804 echo "$warn_prefix $rest"
3811 if test "$was" != no ; then echo '' ; fi
3813 echo "$warn_prefix $rest"
3823 warn_prefix="$warn_prefix_2"
3825 warn_prefix="$warn_prefix_1"
3829 warn_prefix="$warn_prefix_2"
3831 warn_prefix="$warn_prefix_1"
3835 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
3836 warn 'The SGI saver extension was requested, but was not found.'
3839 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
3840 warn 'The MIT saver extension was requested, but was not found.'
3843 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
3844 warn 'The XIdle extension was requested, but was not found.'
3847 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
3848 warn 'The XSHM extension was requested, but was not found.'
3851 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
3852 warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
3855 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
3856 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
3859 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
3860 warn 'The DPMS extension was requested, but was not found.'
3863 if test "$with_xinerama_req" = yes -a "$have_xinerama" = no ; then
3864 warn 'The Xinerama extension was requested, but was not found.'
3867 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
3868 warn 'The XF86VMODE extension was requested, but was not found.'
3871 if test "$with_randr_req" = yes -a "$have_randr" = no ; then
3872 warn 'The RANDR extension was requested, but was not found.'
3875 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
3876 warn "Checking of /proc/interrupts was requested, but it's bogus."
3880 warn2 'Though the Motif front-end to xscreensaver is still'
3881 warn2 'maintained, it is no longer being updated with new'
3882 warn2 'features: all new development on the xscreensaver-demo'
3883 warn2 'program is happening in the GTK version, and not in the'
3884 warn2 'Motif version. It is recommended that you build against'
3885 warn2 'GTK instead of Motif. See <http://www.gtk.org/>.'
3888 if test "$have_motif" = no -a "$have_gtk" = no; then
3890 if test "$with_motif" = yes; then
3891 warnL "Neither the GTK nor Motif libraries were found; the"
3892 warn2 "\`xscreensaver-demo' program requires one of these."
3896 warnL "The GTK libraries do not seem to be available; the"
3897 warn2 "\`xscreensaver-demo' program requires them."
3899 warn2 'You can use Motif or Lesstif instead of GTK (use the'
3900 warn2 "\`--with-motif' option) but that is NOT recommended."
3904 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
3905 warnL "Use of Motif was requested, but it wasn't found;"
3906 warn2 "Gtk will be used instead."
3908 elif test "$jurassic_gtk" = yes ; then
3912 v="$ac_gtk_version_string"
3913 if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
3914 warnL "Use of Gtk was requested, but its version number is unknown;"
3915 elif test "$with_gtk_req" = yes ; then
3916 warnL "Use of Gtk was requested, but it is version $v;"
3918 warnL "Gtk was found on this system, but it is version $v;"
3921 warn2 "Gtk $pref_gtk or newer is required."
3923 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
3924 warnL "Use of Gtk was requested, but it wasn't found."
3927 if test "$gtk2_halfassed" != no ; then
3928 warnL "GTK version $gtk2_halfassed was found, but at least one supporting"
3929 warn2 "library ($gtk2_halfassed_lib) was not, so GTK 2.x can't be used."
3930 if test "$have_gtk" = yes ; then
3931 v="$ac_gtk_version_string"
3932 warn2 "GTK $v is also installed, so it will be used instead."
3933 warn2 "Please read the above output and the \`config.log' file"
3934 warn2 "for more details."
3939 if test "$with_gnome_req" = yes -a "$have_gnome" = no \
3940 -a "$have_gtk2" = no; then
3941 # don't issue this warning if we have GTK2 -- in that case, the
3942 # Gnome-specific code isn't needed.
3943 warn 'Use of the Gnome Control Panel was requested, but the necessary'
3944 warn2 'headers and/or libraries were not found.'
3947 if test "$have_gtk" = yes ; then
3948 if test "$have_xml" = no ; then
3949 if test "$with_xml_req" = yes ; then
3950 warn 'Use of the XML library was requested, but the necessary'
3951 warn2 'headers and/or libraries were not found.'
3953 warn 'GTK is being used, but the XML library was not found.'
3956 if test "$xml_halfassed" = yes ; then
3958 if test "$have_zlib" = yes ; then
3959 which="XML libraries"
3961 which="\`zlib' library"
3965 warn2 'More specifically, we found the headers, but not the'
3966 warn2 "$which; so either XML is half-installed on this"
3967 warn2 "system, or something else went wrong. The \`config.log'"
3968 warn2 'file might contain some clues.'
3972 warn2 "Without XML, the per-display-mode \`Settings' dialogs"
3973 warn2 'will not be available. Specify the location of the XML'
3974 warn2 'library through the --with-xml option to configure.'
3978 if test "$have_gtk" = yes -a "$have_gdk_pixbuf" = no ; then
3979 warn "GTK is being used, but the GDK-Pixbuf library and/or"
3980 warn2 "headers were not found. That can't be good. Please"
3981 warn2 "install the GDK-Pixbuf development kit and re-configure."
3984 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
3986 preferred_lesstif=0.92
3988 if test "$lesstif_version" = unknown; then
3989 warnL "Unable to determine the LessTif version number!"
3990 warn2 "Make sure you are using version $preferred_lesstif or newer."
3991 warn2 "See <http://www.lesstif.org/>."
3993 elif test \! $lesstif_version -gt 82; then
3994 warnL "LessTif version $lesstif_version_string is being used."
3995 warn2 "LessTif versions 0.82 and earlier are too buggy to"
3996 warn2 "use with XScreenSaver; it is strongly recommended"
3997 warn2 "that you upgrade to at least version $preferred_lesstif!"
3998 warn2 "See <http://www.lesstif.org/>."
4003 if test "$have_motif" = yes -a "$have_gtk" = no ; then
4004 warn 'Motif is being used, and GTK is not.'
4010 if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
4011 warnL 'Use of XPM was requested, but it was not found.'
4014 if test "$with_gdk_pixbuf_req" = yes -a "$have_gdk_pixbuf" = no; then
4015 warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
4018 if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no || \
4019 test "$gdk_pixbuf_halfassed" = yes; then
4021 if test "$with_xpm_req" = yes -o "$have_xpm" = yes ; then
4023 elif test "$with_xpm_req" = no ; then
4024 warnL 'The XPM library is not being used.'
4026 warnL 'The XPM library was not found.'
4029 if test "$with_gdk_pixbuf_req" = yes ; then
4031 elif test "$with_gdk_pixbuf_req" = no ; then
4032 warnL 'The GDK-Pixbuf library is not being used.'
4034 warnL 'The GDK-Pixbuf library was not found.'
4037 if test "$gdk_pixbuf_halfassed" = yes ; then
4039 warn2 'More specifically, we found the headers, but not the'
4040 warn2 'libraries; so either GDK-Pixbuf is half-installed on this'
4041 warn2 "system, or something else went wrong. The \`config.log'"
4042 warn2 'file might contain some clues.'
4046 warn2 'Some of the demos will not be as colorful as they'
4047 warn2 'could be. You should consider installing Pixbuf or'
4048 warn2 'XPM and re-running configure. The Pixbuf library is'
4049 warn2 'a part of GNOME. The XPM library comes with most'
4050 warn2 'X11 installations; you can also find it at the X11'
4051 warn2 'archive sites, such as <http://sunsite.unc.edu/>.'
4053 warn2 'GDK-Pixbuf is recommended over XPM, as it provides'
4054 warn2 'support for more image formats.'
4058 if test "$have_jpeg" = no ; then
4059 if test "$with_jpeg_req" = yes ; then
4060 warnL 'Use of libjpeg was requested, but it was not found.'
4061 elif test "$with_jpeg_req" = no ; then
4062 noteL 'The JPEG library is not being used.'
4064 noteL 'The JPEG library was not found.'
4067 if test "$jpeg_halfassed" = yes ; then
4069 warn2 'More specifically, we found the headers, but not the'
4070 warn2 'library; so either JPEG is half-installed on this'
4071 warn2 "system, or something else went wrong. The \`config.log'"
4072 warn2 'file might contain some clues.'
4076 if test "$have_gdk_pixbuf" = no ; then
4077 warn2 "This means that it won't be possible for the image-manipulating"
4078 warn2 "display modes to load files from disk; and it also means that"
4079 warn2 "the \`webcollage' program will be much slower."
4081 warn2 "This means the \`webcollage' program will be much slower."
4086 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
4087 preferred_mesagl=3.4
4088 mgv="$ac_mesagl_version_string"
4089 pgl="$preferred_mesagl"
4091 if test "$ac_mesagl_version" = unknown; then
4092 warnL "Unable to determine the MesaGL version number!"
4093 warn2 "Make sure you are using version $preferred_mesagl or newer."
4095 elif test \! "$ac_mesagl_version" -gt 2006; then
4096 warnL "MesaGL version number is $mgv --"
4097 warn2 "MesaGL 2.6 and earlier have a security bug. It is strongly"
4098 warn2 "recommended that you upgrade to at least version $preferred_mesagl."
4100 elif test \! "$ac_mesagl_version" -gt 3003; then
4101 warnL "MesaGL version number is $mgv --"
4102 warn2 "MesaGL 3.3 and earlier have some bugs; it is recommended"
4103 warn2 "that you upgrade to $pgl or newer."
4107 if test "$have_gl" = no ; then
4108 if test "$with_gl_req" = yes ; then
4109 warnL 'Use of GL was requested, but it was not found.'
4110 elif test "$with_gl_req" = no ; then
4111 noteL 'The OpenGL 3D library is not being used.'
4113 noteL 'The OpenGL 3D library was not found.'
4116 if test "$gl_halfassed" = yes ; then
4118 warn2 'More specifically, we found the headers, but not the'
4119 warn2 'libraries; so either GL is half-installed on this'
4120 warn2 "system, or something else went wrong. The \`config.log'"
4121 warn2 'file might contain some clues.'
4125 warn2 'Those demos which use 3D will not be built or installed.'
4126 warn2 'You might want to consider installing OpenGL and'
4127 warn2 "re-running configure. If your vendor doesn't ship"
4128 warn2 'their own implementation of OpenGL, you can get a free'
4129 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
4130 warn2 'info, see <http://www.opengl.org/>.'
4135 if test "$have_gl" = yes -a "$have_gle" = no ; then
4137 # nobody cares about this; don't print the warning unless it was
4138 # requested and not found, or halfway-found.
4139 if test "$with_gle_req" = yes -o "$gle_halfassed" = yes ; then
4141 if test "$with_gle_req" = yes ; then
4142 noteL 'Use of the GLE (GL Extrusion) library was requested, but'
4143 warn2 'it was not found (though the OpenGL library was found, and'
4144 warn2 'is being used.)'
4145 elif test "$with_gle_req" = no ; then
4146 noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
4147 warn2 'library is not.'
4149 noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
4153 if test "$gle_halfassed" = yes ; then
4155 warn2 'More specifically, we found the headers, but not the'
4156 warn2 'libraries; so either GLE is half-installed on this'
4157 warn2 "system, or something else went wrong. The \`config.log'"
4158 warn2 'file might contain some clues.'
4162 warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
4163 warn2 'will not be built or installed. You might want to consider'
4164 warn2 'installing GLE and re-running configure. You can find the'
4165 warn2 'GLE library at <http://www.linas.org/gle/>. For general'
4166 warn2 'OpenGL info, see <http://www.opengl.org/>.'
4172 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
4173 warn 'Use of XReadDisplay was requested, but it was not found.'
4176 if test -n "$with_fortune_req"; then
4177 if test "$with_fortune_req" != "$ac_cv_fortune_program" ; then
4178 warnL "$with_fortune_req was requested as the Fortune program,"
4179 warn2 "but was not found. The default will be used instead."
4183 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
4184 warn 'Use of Kerberos was requested, but it was not found.'
4187 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
4188 warn 'Use of PAM was requested, but it was not found.'
4191 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
4192 warn 'Use of shadow passwords was requested, but they were not found.'
4196 # You are in a twisty maze of namespaces and syntaxes, all alike.
4197 # Fuck the skull of Unix.
4199 eval bindir=${bindir}
4200 eval bindir=${bindir}
4201 eval bindir=${bindir}
4202 eval bindir=${bindir}
4203 eval bindir=${bindir}
4204 eval bindir=${bindir}
4205 eval HACKDIR=${HACKDIR}
4206 eval HACKDIR=${HACKDIR}
4207 eval HACKDIR=${HACKDIR}
4208 eval HACKDIR=${HACKDIR}
4209 eval HACKDIR=${HACKDIR}
4210 eval HACKDIR=${HACKDIR}
4211 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4212 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4213 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4214 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4215 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4216 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4218 # canonicalize slashes.
4219 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
4220 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
4221 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
4224 # Sanity check the hackdir
4225 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
4226 if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
4228 AC_MSG_ERROR([\"--with-hackdir=${bindir}/${bad_choice}\" won't work.
4229 There will be an executable installed with that name, so
4230 that can't be the name of a directory as well. Please
4231 re-configure with a different directory name.])
4238 # Now let's see if there's a previous RPM version already installed. Blargh!
4242 rpmv=`(rpm -qv xscreensaver) 2>/dev/null | \
4243 sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'`
4246 if test \! -z "$rpmv" ; then
4247 rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
4248 rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
4251 warnL "There is already an installed RPM of xscreensaver $rpmv"
4252 warn2 "on this system. You might want to remove it (with"
4253 warn2 '"rpm -ve xscreensaver") before running "make install"'
4254 warn2 "from this directory."
4256 warn2 "Alternately, you could build this version of xscreensaver"
4257 warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
4258 warn2 "file is included. See the RPM documentation for more info."
4261 if test "$rpmbdir" = "$rpmhdir" ; then
4262 warn2 "The RPM version was installed in $rpmbdir/."
4264 warn2 "The RPM version was installed in $rpmbdir/,"
4265 warn2 "with demos in $rpmhdir/."
4272 if test "${bindir}" = "${HACKDIR}" ; then
4276 if test "$do_dir_warning" = yes; then
4280 echo ' When you run "make install", the "xscreensaver",'
4281 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
4282 echo " will be installed in ${bindir}/."
4284 echo " The various graphics demos (180+ different executables) will"
4285 echo " be installed in ${HACKDIR}/."
4287 echo " If you would prefer the demos to be installed elsewhere,"
4288 echo " you should re-run configure with the --with-hackdir=DIR"
4289 echo " option. For more information, run \`./configure --help'."
4293 if test "$warning" != no; then
4294 echo '' ; echo "$warnsep" ; echo ''
4297 if test "$do_dir_warning" = no; then
4298 if test "$warning" = no; then
4301 echo "User programs will be installed in ${bindir}/"
4302 echo "Screen savers will be installed in ${HACKDIR}/"
4303 echo "Configuration will be installed in ${HACK_CONF_DIR}/"