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)
1299 if test "$with_xf86vmode" = yes; then
1301 # first check for xf86vmode.h
1302 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],,
1303 [#include <X11/Xlib.h>])
1305 # if that succeeded, then check for the -lXxf86vm
1306 if test "$have_xf86vmode" = yes; then
1308 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
1309 [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
1310 [true], -lXext -lX11)
1313 # if that succeeded, then we've really got it.
1314 if test "$have_xf86vmode" = yes; then
1315 AC_DEFINE(HAVE_XF86VMODE)
1318 elif test "$with_xf86vmode" != no; then
1319 echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
1324 ###############################################################################
1326 # Check for the XF86VMODE server extension (for gamma fading.)
1328 ###############################################################################
1331 have_xf86gamma_ramp=no
1332 with_xf86gamma_req=unspecified
1333 AC_ARG_WITH(xf86gamma-ext,
1334 [ --with-xf86gamma-ext Include support for XFree86 gamma fading.],
1335 [with_xf86gamma="$withval"; with_xf86gamma_req="$withval"],
1336 [with_xf86gamma=yes])
1338 HANDLE_X_PATH_ARG(with_xf86gamma, --with-xf86gamma-ext, xf86gamma)
1340 if test "$with_xf86gamma" = yes; then
1342 # first check for xf86vmode.h, if we haven't already
1343 if test "$have_xf86vmode" = yes; then
1346 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],,
1347 [#include <X11/Xlib.h>])
1350 # if that succeeded, then check for the -lXxf86vm
1351 if test "$have_xf86gamma" = yes; then
1353 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGamma,
1354 [have_xf86gamma=yes],
1355 [true], -lXext -lX11)
1358 # check for the Ramp versions of the functions too.
1359 if test "$have_xf86gamma" = yes; then
1360 have_xf86gamma_ramp=no
1361 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGammaRamp,
1362 [have_xf86gamma_ramp=yes],
1363 [true], -lXext -lX11)
1366 # if those tests succeeded, then we've really got the functions.
1367 if test "$have_xf86gamma" = yes; then
1368 AC_DEFINE(HAVE_XF86VMODE_GAMMA)
1371 if test "$have_xf86gamma_ramp" = yes; then
1372 AC_DEFINE(HAVE_XF86VMODE_GAMMA_RAMP)
1375 # pull in the lib, if we haven't already
1376 if test "$have_xf86gamma" = yes -a "$have_xf86vmode" = no; then
1377 SAVER_LIBS="$SAVER_LIBS -lXxf86vm"
1380 elif test "$with_xf86gamma" != no; then
1381 echo "error: must be yes or no: --with-xf86gamma-ext=$with_xf86vmode"
1386 ###############################################################################
1388 # Check for the RANDR (Resize and Rotate) server extension.
1390 # We need this to detect when the resolution of the desktop
1391 # has changed out from under us (this is a newer, different
1392 # mechanism than the XF86VMODE virtual viewports.)
1394 ###############################################################################
1397 with_randr_req=unspecified
1398 AC_ARG_WITH(randr-ext,
1399 [ --with-randr-ext Include support for the X Resize+Rotate extension.],
1400 [with_randr="$withval"; with_randr_req="$withval"],[with_randr=yes])
1402 HANDLE_X_PATH_ARG(with_randr, --with-randr-ext, RANDR)
1404 if test "$with_randr" = yes; then
1406 # first check for Randr.h
1407 AC_CHECK_X_HEADER(X11/extensions/Xrandr.h, [have_randr=yes],,
1408 [#include <X11/Xlib.h>])
1410 # if that succeeded, then check for the XRR code in the libraries
1411 if test "$have_randr" = yes; then
1413 # RANDR probably needs -lXrender
1415 AC_CHECK_X_LIB(Xrender, XRenderSetSubpixelOrder,
1416 [xrender_libs="-lXrender"], [true], -lXext -lX11)
1418 # first look for RANDR in -lXext
1420 AC_CHECK_X_LIB(Xext, XRRGetScreenInfo,
1421 [have_randr=yes; SAVER_LIBS="$SAVER_LIBS $xrender_libs"],
1422 [true], $xrender_libs -lXext -lX11)
1424 # if that failed, look in -lXrandr
1425 if test "$have_randr" = no; then
1426 AC_CHECK_X_LIB(Xrandr, XRRGetScreenInfo,
1427 [have_randr=yes; SAVER_LIBS="$SAVER_LIBS -lXrandr $xrender_libs"],
1428 [true], $xrender_libs -lXext -lX11)
1432 # if that succeeded, then we've really got it.
1433 if test "$have_randr" = yes; then
1434 AC_DEFINE(HAVE_RANDR)
1437 elif test "$with_randr" != no; then
1438 echo "error: must be yes or no: --with-randr-ext=$with_randr"
1443 ###############################################################################
1445 # Check for XF86MiscSetGrabKeysState (but only bother if we are already
1446 # using other XF86 stuff.)
1448 ###############################################################################
1450 have_xf86miscsetgrabkeysstate=no
1451 if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then
1452 AC_CHECK_X_LIB(Xxf86misc, XF86MiscSetGrabKeysState,
1453 [have_xf86miscsetgrabkeysstate=yes],
1454 [true], -lXext -lX11)
1455 if test "$have_xf86miscsetgrabkeysstate" = yes ; then
1456 SAVER_LIBS="$SAVER_LIBS -lXxf86misc"
1457 AC_DEFINE(HAVE_XF86MISCSETGRABKEYSSTATE)
1462 ###############################################################################
1464 # Check for HP XHPDisableReset and XHPEnableReset.
1466 ###############################################################################
1468 AC_MSG_CHECKING([for XHPDisableReset in X11/XHPlib.h])
1469 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
1470 [AC_DEFINE(HAVE_XHPDISABLERESET)
1471 SAVER_LIBS="-lXhp11 $SAVER_LIBS"
1472 AC_MSG_RESULT(yes)],
1473 [AC_MSG_RESULT(no)])
1476 ###############################################################################
1478 # Check for /proc/interrupts.
1480 ###############################################################################
1482 have_proc_interrupts=no
1483 with_proc_interrupts_req=unspecified
1484 AC_ARG_WITH(proc-interrupts,
1485 [ --with-proc-interrupts Include support for consulting the /proc/interrupts
1486 file to notice keyboard activity.],
1487 [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
1488 [with_proc_interrupts=yes])
1490 if test "$with_proc_interrupts" = yes; then
1492 AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
1493 ac_cv_have_proc_interrupts,
1494 [ac_cv_have_proc_interrupts=no
1495 if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
1496 ac_cv_have_proc_interrupts=yes
1499 have_proc_interrupts=$ac_cv_have_proc_interrupts
1501 if test "$have_proc_interrupts" = yes; then
1502 AC_DEFINE(HAVE_PROC_INTERRUPTS)
1505 elif test "$with_proc_interrupts" != no; then
1506 echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
1511 ###############################################################################
1513 # The --enable-locking option
1515 ###############################################################################
1517 AC_ARG_ENABLE(locking,[
1518 Screen locking options:
1520 --enable-locking Compile in support for locking the display.
1521 --disable-locking Do not allow locking at all.],
1522 [enable_locking="$enableval"],[enable_locking=yes])
1523 if test "$enable_locking" = yes; then
1525 elif test "$enable_locking" = no; then
1526 AC_DEFINE(NO_LOCKING)
1528 echo "error: must be yes or no: --enable-locking=$enable_locking"
1532 # We can't lock on MacOS X, so don't even bother compiling in support for it.
1534 if test "$ac_macosx" = yes; then
1535 if test "$enable_locking" = yes; then
1536 AC_MSG_RESULT(locking disabled: it doesn't work on MacOS X)
1538 AC_DEFINE(NO_LOCKING)
1543 ###############################################################################
1545 # The --enable-vt-locking option
1547 ###############################################################################
1549 #ac_vt_lockswitch=no
1550 #AC_ARG_ENABLE(vt-locking,[
1551 # --enable-vt-locking Compile in support for locking Virtual Terminals.
1552 # This is the default if the system supports it, and
1553 # if locking support is included (--enable-locking.)
1554 # --disable-vt-locking Do not allow locking of VTs, even if locking is
1556 # [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1557 #if test "$enable_vt_locking" = yes; then
1559 # AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1560 # [AC_TRY_COMPILE([#include <fcntl.h>
1561 # #include <sys/ioctl.h>
1562 # #include <sys/vt.h>],
1563 # [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1564 # [ac_cv_vt_lockswitch=yes],
1565 # [ac_cv_vt_lockswitch=no])])
1566 # ac_vt_lockswitch=$ac_cv_vt_lockswitch
1568 #elif test "$enable_vt_locking" = no; then
1571 # echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1575 #if test "$ac_vt_lockswitch" = yes; then
1576 # AC_DEFINE(HAVE_VT_LOCKSWITCH)
1577 # # the VT_LOCKSWITCH ioctl can only be used when running as root.
1578 # # #### but it doesn't work yet, so don't worry about that for now.
1583 ###############################################################################
1587 ###############################################################################
1591 # Solaris systems tend to come with PAM misconfigured.
1592 # Don't build it by default, even if the headers exist.
1596 # Default to building PAM support on all other systems, if it exists.
1597 with_pam_default=yes
1602 with_pam_req=unspecified
1605 [ --with-pam Include support for PAM (Pluggable Auth Modules.)],
1606 [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1608 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1610 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1611 AC_CACHE_CHECK([for PAM], ac_cv_pam,
1612 [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1615 if test "$ac_cv_pam" = yes ; then
1618 PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1620 # libpam typically requires dlopen and dlsym. On FreeBSD,
1621 # those are in libc. On Linux and Solaris, they're in libdl.
1622 AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1624 # On Linux, sigtimedwait() is in libc; on Solaris, it's in librt.
1626 AC_CHECK_LIB(c, sigtimedwait, [have_timedwait=yes])
1627 if test "$have_timedwait" = no ; then
1628 AC_CHECK_LIB(rt, sigtimedwait, [PASSWD_LIBS="${PASSWD_LIBS} -lrt"])
1631 AC_MSG_CHECKING(how to call pam_strerror)
1632 AC_CACHE_VAL(ac_cv_pam_strerror_args,
1633 [AC_TRY_COMPILE([#include <stdio.h>
1635 #include <security/pam_appl.h>],
1636 [pam_handle_t *pamh = 0;
1637 char *s = pam_strerror(pamh, PAM_SUCCESS);],
1638 [ac_pam_strerror_args=2],
1639 [AC_TRY_COMPILE([#include <stdio.h>
1641 #include <security/pam_appl.h>],
1643 pam_strerror(PAM_SUCCESS);],
1644 [ac_pam_strerror_args=1],
1645 [ac_pam_strerror_args=0])])
1646 ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1647 ac_pam_strerror_args=$ac_cv_pam_strerror_args
1648 if test "$ac_pam_strerror_args" = 1 ; then
1649 AC_MSG_RESULT(one argument)
1650 elif test "$ac_pam_strerror_args" = 2 ; then
1651 AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1652 AC_MSG_RESULT(two arguments)
1654 AC_MSG_RESULT(unknown)
1660 ###############################################################################
1662 # Check for Kerberos.
1664 ###############################################################################
1668 with_kerberos_req=unspecified
1670 AC_ARG_WITH(kerberos,
1671 [ --with-kerberos Include support for Kerberos authentication.],
1672 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1674 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1676 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1677 AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
1678 [AC_TRY_X_COMPILE([#include <krb.h>],,
1679 [ac_cv_kerberos=yes],
1680 [ac_cv_kerberos=no])])
1681 AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
1682 [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
1683 [ac_cv_kerberos5=yes],
1684 [ac_cv_kerberos5=no])])
1686 if test "$ac_cv_kerberos" = yes ; then
1688 AC_DEFINE(HAVE_KERBEROS)
1691 if test "$ac_cv_kerberos5" = yes ; then
1693 # Andrew Snare <ajs@pigpond.com> wrote:
1695 # You were assuming that if kerberosV (krb5) was found, then kerberosIV
1696 # (krb4) was also available. This turns out not to be the case with
1697 # mit-krb-1.2.7; apparently backwards-compatibility with KerberosIV
1700 # So, disable kerberosV support if libkrb4 can't be found.
1701 # This is not the best solution, but it makes the compile not fail.
1703 AC_CHECK_X_LIB(krb4, krb_get_tf_realm,
1704 [have_kerberos=yes],
1706 if test "$have_kerberos" = yes ; then
1708 AC_DEFINE(HAVE_KERBEROS)
1709 AC_DEFINE(HAVE_KERBEROS5)
1712 AC_MSG_WARN([Cannot find compat lib (libkrb4) needed to use Kerberos 5])
1717 if test "$have_kerberos5" = yes ; then
1718 # from Matt Knopp <mhat@infocalypse.netlag.com>
1719 # (who got it from amu@mit.edu)
1721 PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"
1723 # jwz: MacOS X uses -lkrb5, but not -lcrypt
1724 AC_CHECK_X_LIB(crypt, crypt, [PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1726 elif test "$have_kerberos" = yes ; then
1727 # from Tim Showalter <tjs@psaux.com> for FreeBSD 4.2
1728 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err"
1731 if test "$have_kerberos" = yes ; then
1732 AC_CHECK_FUNC(res_search,,
1733 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1734 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1740 ###############################################################################
1742 # Check for the nine billion variants of shadow passwords...
1744 ###############################################################################
1749 with_shadow_req=unspecified
1752 [ --with-shadow Include support for shadow password authentication.],
1753 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1755 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1757 if test "$enable_locking" = no ; then
1763 ###############################################################################
1765 # Check for Sun "adjunct" passwords.
1767 ###############################################################################
1769 if test "$with_shadow" = yes ; then
1770 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1771 [AC_TRY_X_COMPILE([#include <stdlib.h>
1773 #include <sys/types.h>
1774 #include <sys/label.h>
1775 #include <sys/audit.h>
1776 #include <pwdadj.h>],
1777 [struct passwd_adjunct *p = getpwanam("nobody");
1778 const char *pw = p->pwa_passwd;],
1779 [ac_cv_sun_adjunct=yes],
1780 [ac_cv_sun_adjunct=no])])
1781 if test "$ac_cv_sun_adjunct" = yes; then
1782 have_shadow_adjunct=yes
1789 ###############################################################################
1791 # Check for DEC and SCO so-called "enhanced" security.
1793 ###############################################################################
1795 if test "$with_shadow" = yes ; then
1796 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1797 [AC_TRY_X_COMPILE([#include <stdlib.h>
1799 #include <sys/types.h>
1801 #include <sys/security.h>
1803 [struct pr_passwd *p;
1805 set_auth_parameters(0, 0);
1806 check_auth_parameters();
1807 p = getprpwnam("nobody");
1808 pw = p->ufld.fd_encrypt;],
1809 [ac_cv_enhanced_passwd=yes],
1810 [ac_cv_enhanced_passwd=no])])
1811 if test $ac_cv_enhanced_passwd = yes; then
1812 have_shadow_enhanced=yes
1816 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1817 # (I'm told it needs -lcurses too, but I don't understand why.)
1818 # But on DEC, it's in -lsecurity.
1820 AC_CHECK_LIB(prot, getprpwnam,
1821 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1822 [AC_CHECK_LIB(security, getprpwnam,
1823 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1828 ###############################################################################
1830 # Check for HP's entry in the "Not Invented Here" Sweepstakes.
1832 ###############################################################################
1834 if test "$with_shadow" = yes ; then
1835 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1836 [AC_TRY_X_COMPILE([#include <stdlib.h>
1838 #include <sys/types.h>
1840 #include <hpsecurity.h>
1842 [struct s_passwd *p = getspwnam("nobody");
1843 const char *pw = p->pw_passwd;],
1844 [ac_cv_hpux_passwd=yes],
1845 [ac_cv_hpux_passwd=no])])
1846 if test "$ac_cv_hpux_passwd" = yes; then
1847 have_shadow_hpux=yes
1851 # on HPUX, bigcrypt is in -lsec
1852 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1857 ###############################################################################
1859 # Check for FreeBSD-style shadow passwords.
1861 # On FreeBSD, getpwnam() and friends work just like on non-shadow-
1862 # password systems -- except you only get stuff in the pw_passwd field
1863 # if the running program is setuid. So, guess that we've got this
1864 # lossage to contend with if /etc/master.passwd exists, and default to
1865 # a setuid installation.
1867 ###############################################################################
1869 if test "$with_shadow" = yes ; then
1870 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1871 [if test -f /etc/master.passwd ; then
1872 ac_cv_master_passwd=yes
1874 ac_cv_master_passwd=no
1876 if test "$ac_cv_master_passwd" = yes; then
1882 ###############################################################################
1884 # Check for traditional (ha!) shadow passwords.
1886 ###############################################################################
1888 if test "$with_shadow" = yes ; then
1889 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1890 [AC_TRY_X_COMPILE([#include <stdlib.h>
1892 #include <sys/types.h>
1894 #include <shadow.h>],
1895 [struct spwd *p = getspnam("nobody");
1896 const char *pw = p->sp_pwdp;],
1898 [ac_cv_shadow=no])])
1899 if test "$ac_cv_shadow" = yes; then
1903 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1905 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1906 if test "$have_getspnam" = no ; then
1907 AC_CHECK_LIB(gen, getspnam,
1908 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1914 ###############################################################################
1916 # Check for other libraries needed for non-shadow passwords.
1918 ###############################################################################
1920 if test "$enable_locking" = yes ; then
1922 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1924 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1925 if test "$have_crypt" = no ; then
1926 AC_CHECK_LIB(crypt, crypt,
1927 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1932 # Most of the above shadow mechanisms will have set need_setuid to yes,
1933 # if they were found. But, on some systems, we need setuid even when
1934 # using plain old vanilla passwords.
1936 if test "$enable_locking" = yes ; then
1938 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1945 if test "$have_shadow_adjunct" = yes ; then
1946 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1947 elif test "$have_shadow_enhanced" = yes ; then
1948 AC_DEFINE(HAVE_ENHANCED_PASSWD)
1949 elif test "$have_shadow_hpux" = yes ; then
1950 AC_DEFINE(HAVE_HPUX_PASSWD)
1951 elif test "$have_shadow" = yes ; then
1952 AC_DEFINE(HAVE_SHADOW_PASSWD)
1956 ###############################################################################
1958 # Check for external password helper
1959 # On SuSE, instead of having xscreensaver be a setuid program, they
1960 # fork an external program that takes the password on stdin, and
1961 # returns true if that password is a valid one. Then only that
1962 # smaller program needs to be setuid.
1964 # (Note that this external program is not a GUI: the GUI is still
1965 # all in xscreensaver itself; the external program just does auth.)
1967 ###############################################################################
1969 have_passwd_helper=no
1970 with_passwd_helper_req=unspecified
1972 AC_ARG_WITH(passwd-helper,
1973 [ --with-passwd-helper Include support for an external password
1974 verification helper program.],
1975 [with_passwd_helper="$withval"; with_passwd_helper_req="$withval"],[with_passwd_helper=no])
1976 # no HANDLE_X_PATH_ARG for this one
1978 if test "$enable_locking" = no ; then
1979 with_passwd_helper_req=no
1980 with_passwd_helper=no
1983 case "$with_passwd_helper" in
1986 AC_DEFINE_UNQUOTED(PASSWD_HELPER_PROGRAM, "$with_passwd_helper")
1987 have_passwd_helper=yes;;
1989 echo "error: --with-passwd-helper needs full pathname of helper (not '$with_passwd_helper')." >&2
1994 ###############################################################################
1998 ###############################################################################
2001 with_motif_req=unspecified
2003 User interface options:
2005 --with-motif Use the Motif toolkit for the user interface
2006 (not recommended.)],
2007 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no])
2009 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
2011 if test "$with_motif" != yes -a "$with_motif" != no ; then
2012 echo "error: must be yes or no: --with-motif=$with_motif"
2016 if test "$with_motif" = yes; then
2018 AC_CHECK_X_HEADER(Xm/Xm.h,
2020 AC_DEFINE(HAVE_MOTIF)
2021 MOTIF_LIBS="$MOTIF_LIBS -lXm"],,
2022 [#include <stdlib.h>
2024 #include <X11/Intrinsic.h>])
2028 if test "$have_motif" = yes; then
2029 AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],,
2030 [#include <stdlib.h>
2032 #include <X11/Intrinsic.h>])
2036 ###############################################################################
2038 # Check for -lgtk (and Gnome stuff)
2040 ###############################################################################
2044 with_gtk_req=unspecified
2046 [ --with-gtk Use the Gtk toolkit for the user interface.],
2047 [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
2049 # if --with-gtk=/directory/ was specified, remember that directory so that
2050 # we can also look for the `gtk-config' program in that directory.
2060 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
2062 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
2063 echo "error: must be yes or no: --with-gtk=$with_gtk"
2068 with_gnome_req=unspecified
2070 [ --with-gnome Include support for the Gnome 1.x Control Center.
2071 (This option is not needed with GTK 2.x / Gnome 2.x.)
2073 [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
2075 # if --with-gnome=/directory/ was specified, remember that directory so that
2076 # we can also look for the `gnome-config' program in that directory.
2077 case "$with_gnome" in
2079 gnome_dir="$with_gnome"
2086 HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome)
2088 if test "$with_gnome" != yes -a "$with_gnome" != no ; then
2089 echo "error: must be yes or no: --with-gnome=$with_gnome"
2093 parse_gtk_version_string() {
2096 maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
2097 min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
2099 ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
2100 if test -z "$ac_gtk_version"; then
2101 ac_gtk_version=unknown
2102 ac_gtk_version_string=unknown
2110 if test "$with_gtk" = yes; then
2113 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2114 # look in /foo/bin/ for glib-config, gtk-config, and gnome-config.
2118 if test ! -z "$gtk_dir"; then
2119 # canonicalize slashes.
2120 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2121 gtk_path="$foo:$gtk_path"
2124 if test ! -z "$gnome_dir"; then
2125 # canonicalize slashes.
2126 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2127 gtk_path="$foo:$gtk_path"
2130 AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path)
2132 if test -n "$pkg_config" ; then
2135 # run pkg-config based tests.
2138 pkg_check_version() {
2139 if test "$ok" = yes ; then
2142 AC_MSG_CHECKING(for $req)
2143 if $pkg_config --exists "$req" ; then
2144 vers=`$pkg_config --modversion "$req"`
2145 if $pkg_config --exists "$req >= $min" ; then
2146 AC_MSG_RESULT($vers)
2150 AC_MSG_RESULT($vers (wanted >= $min))
2162 AC_MSG_RESULT(checking for GTK 2.x with pkg-config based tests...)
2165 pkg_check_version gtk+-2.0 2.0.1 ; ac_gtk_version_string="$vers"
2166 pkg_check_version gmodule-2.0 2.0.0
2167 pkg_check_version libxml-2.0 2.4.6
2168 pkg_check_version libglade-2.0 1.99.0
2169 # pkg_check_version gdk_pixbuf 0.1
2172 if test "$have_gtk" = yes; then
2174 AC_DEFINE(HAVE_GTK2)
2176 if test -n "$ac_gtk_version_string" ; then
2177 gtk2_halfassed="$ac_gtk_version_string"
2178 gtk2_halfassed_lib="$req"
2182 if test "$have_gtk" = no; then
2184 # we don't have GTK 2. Let's look for GTK 1.
2186 AC_MSG_RESULT(checking for GTK 1.x with pkg-config based tests...)
2190 pkg_check_version gtk+ 1.2 ; ac_gtk_version_string="$vers"
2191 pkg_check_version glib 1.0
2192 pkg_check_version gdk_pixbuf 0.1
2195 # Now check for Gnome...
2197 if test "$have_gtk" = yes -a "$with_gnome" = yes; then
2200 pkg_check_version capplet 1.0
2201 pkg_check_version gnomeui 1.0
2202 pkg_check_version gdk_pixbuf 0.1
2205 if test "$have_gnome" = no; then
2208 AC_DEFINE(HAVE_CRAPPLET)
2213 if test "$have_gtk" = yes; then
2214 parse_gtk_version_string
2220 if test "$have_gtk" = yes; then
2221 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
2222 [ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`])
2223 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
2224 [ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs`])
2226 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
2227 ac_gtk_config_libs=$ac_cv_gtk_config_libs
2229 ac_gnome_config_cflags=$ac_gtk_config_cflags
2230 ac_gnome_config_libs=$ac_gtk_config_libs
2235 # run {gnome,gtk}-config based tests.
2237 AC_MSG_RESULT(checking for GTK 1.x with gtk-config based tests...)
2239 AC_PATH_PROGS(glib_config, glib12-config glib-config,, $gtk_path)
2240 AC_PATH_PROGS(gtk_config, gtk12-config gtk-config,, $gtk_path)
2242 if test "$with_gnome" = yes; then
2243 AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
2246 if test -n "$glib_config" -a -n "$gtk_config" ; then
2248 if test "$with_gnome" = yes -a -n "$gnome_config" ; then
2253 if test "$have_gtk" = yes; then
2254 AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
2255 [ac_cv_gtk_version_string=`$gtk_config --version`])
2256 ac_gtk_version_string=$ac_cv_gtk_version_string
2257 parse_gtk_version_string
2260 if test "$have_gtk" = yes; then
2261 if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
2269 if test "$have_gtk" = yes; then
2270 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
2271 [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
2272 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
2273 [ac_cv_gtk_config_libs=`$gtk_config --libs`])
2275 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
2276 ac_gtk_config_libs=$ac_cv_gtk_config_libs
2278 # Check for Gnome Capplet support.
2279 # Note that this is only needed with Gnome 1.x, not Gnome 2.x.
2280 # In a Gnome 2.x world, libcapplet will not exist.
2281 # (In fact, this likely won't even be checked, since in a Gnome 2.x
2282 # world, we will probably be up in the "$pkg_config" branch instead
2283 # of here in the "$gnome_config" branch.)
2285 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2286 gnome_config_libs="gtk capplet gnomeui gdk_pixbuf"
2287 AC_MSG_CHECKING(for Gnome capplet includes)
2288 AC_CACHE_VAL(ac_cv_gnome_config_cflags,
2289 [if ( $gnome_config --cflags $gnome_config_libs 2>&1 | \
2290 grep Unknown >/dev/null ) ; then
2291 ac_cv_gnome_config_cflags=''
2293 ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
2295 ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
2296 if test "$ac_gnome_config_cflags" = "" ; then
2300 AC_MSG_RESULT($ac_gnome_config_cflags)
2304 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2305 AC_MSG_CHECKING(for Gnome capplet libs)
2306 AC_CACHE_VAL(ac_cv_gnome_config_libs,
2307 [if ( $gnome_config --libs $gnome_config_libs 2>&1 |
2308 grep Unknown >/dev/null ) ; then
2309 ac_cv_gnome_config_libs=''
2311 ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
2313 ac_gnome_config_libs=$ac_cv_gnome_config_libs
2314 if test "$ac_gnome_config_libs" = "" ; then
2318 AC_MSG_RESULT($ac_gnome_config_libs)
2322 # If we have Gnome, then override the gtk-config values with
2323 # the gnome-config values.
2325 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2326 ac_gtk_config_cflags=$ac_gnome_config_cflags
2327 ac_gtk_config_libs=$ac_gnome_config_libs
2328 AC_DEFINE(HAVE_CRAPPLET)
2331 fi # end of {gnome,gtk}-config based tests
2333 if test "$have_gtk" = yes -a "$have_gtk2" = no; then
2334 # check for this function that was not in libcapplet 1.2.
2335 # (only needed in Gnome/Gtk 1.x, not Gnome/Gtk 2.x)
2336 AC_CHECK_X_LIB(capplet, capplet_widget_changes_are_immediate,
2337 [AC_DEFINE(HAVE_CRAPPLET_IMMEDIATE)], [true],
2338 $ac_gnome_config_libs)
2343 if test "$have_gtk" = yes; then
2344 if test -n "$pkg_config"; then
2345 if test "$have_gtk2" = yes; then
2346 GNOME_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
2348 GNOME_DATADIR=`$pkg_config --variable=prefix gtk+`
2351 GNOME_DATADIR=`$gtk_config --prefix`
2353 GNOME_DATADIR="$GNOME_DATADIR/share"
2356 # .desktop files go in different places in Gnome 1.x and Gnome 2.x...
2357 if test "$have_gtk2" = yes; then
2358 GNOME_PANELDIR='$(GNOME_PANELDIR2)'
2360 GNOME_PANELDIR='$(GNOME_PANELDIR1)'
2364 if test "$have_gtk" = yes; then
2365 INCLUDES="$INCLUDES $ac_gtk_config_cflags"
2366 GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
2369 if test "$have_gtk2" = yes; then
2372 GTK_EXTRA_OBJS="\$(GTK_EXTRA_OBJS)"
2379 # Check for the Gnome Help Browser.
2381 if test "$have_gtk" = yes; then
2382 AC_CHECK_PROGS(have_gnome_help, yelp gnome-help-browser, no)
2383 if test "$have_gnome_help" != no; then
2389 ###############################################################################
2393 ###############################################################################
2396 with_xml_req=unspecified
2399 [ --with-xml The XML toolkit is needed for some parts of
2400 the Gtk interface. Without it, the configuration
2401 interface will be much less featureful.],
2402 [with_xml="$withval"; with_xml_req="$withval"],[with_xml=yes])
2404 # if --with-xml=/directory/ was specified, remember that directory so that
2405 # we can also look for the `xml-config' program in that directory.
2415 HANDLE_X_PATH_ARG(with_xml, --with-xml, XML)
2417 if test "$with_xml" != yes -a "$with_xml" != no ; then
2418 echo "error: must be yes or no: --with-xml=$with_xml"
2422 if test "$with_xml" = yes; then
2426 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2427 # look in /foo/bin/ for for xml-config.
2431 if test ! -z "$gtk_dir"; then
2432 # canonicalize slashes.
2433 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2434 xml_path="$foo:$xml_path"
2437 if test ! -z "$gnome_dir"; then
2438 # canonicalize slashes.
2439 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2440 xml_path="$foo:$xml_path"
2443 if test -n "$pkg_config" ; then
2446 # run pkg-config based tests.
2451 # If we have Gtk 2.x, then *only* XML 2.x will work.
2452 # If we have Gtk 1.x, or don't have Gtk at all, then
2453 # either XML 1.x or 2.x will work.
2455 # First check for XML 2.x.
2457 pkg_check_version libxml-2.0 2.4.6
2459 # If that didn't work (we don't have XML 2.x) and we *don't* have
2460 # Gtk 2.x, then check to see if we have XML 1.x
2462 if test "$ok" = no -a "$have_gtk2" = no; then
2464 pkg_check_version libxml 1.0
2469 if test "$have_xml" = yes; then
2470 AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2471 [ac_cv_xml_config_cflags=`$pkg_config --cflags $pkgs`])
2472 AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2473 [ac_cv_xml_config_libs=`$pkg_config --libs $pkgs`])
2474 ac_xml_config_cflags=$ac_cv_xml_config_cflags
2475 ac_xml_config_libs=$ac_cv_xml_config_libs
2481 # run {xml2,xml}-config based tests.
2484 AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path)
2486 # If we found the xml-config program, run it to get flags.
2488 if test -n "$xml_config" ; then
2489 AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2490 [ac_cv_xml_config_cflags=`$xml_config --cflags`])
2491 AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2492 [ac_cv_xml_config_libs=`$xml_config --libs`])
2493 ac_xml_config_cflags=$ac_cv_xml_config_cflags
2494 ac_xml_config_libs=$ac_cv_xml_config_libs
2497 ac_save_xml_CPPFLAGS="$CPPFLAGS"
2498 CPPFLAGS="$CPPFLAGS $ac_xml_config_cflags"
2500 # first try <libxml/parser.h> which is the new way...
2502 AC_CHECK_X_HEADER(libxml/xmlIO.h, [have_xml=yes],,
2503 [#include <libxml/parser.h>])
2505 # if that didn't work, then try just <parser.h> which is the old way...
2507 if test "$have_xml" = no; then
2508 AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes; have_old_xml=yes],,
2509 [#include <parser.h>])
2512 CPPFLAGS="$ac_save_xml_CPPFLAGS"
2517 if test "$have_xml" = yes; then
2518 # we have the XML headers; now make sure zlib is around.
2519 # yes, it's stupid we have to do this too, but there is
2520 # dependency screwage in Gnome.
2521 AC_CHECK_X_LIB(z, zlibVersion, [have_zlib=yes])
2522 if test "$have_zlib" = no; then
2528 if test "$have_xml" = yes; then
2529 # we have the header, now check for the library
2532 AC_CHECK_X_LIB(c, xmlParseChunk,
2535 XML_LIBS="$ac_xml_config_libs"
2536 AC_DEFINE(HAVE_XML)],
2538 $ac_xml_config_libs)
2541 if test "$have_xml" = yes; then
2542 INCLUDES="$INCLUDES $ac_xml_config_cflags"
2543 GTK_LIBS="$GTK_LIBS $ac_xml_config_libs"
2545 if test "$have_old_xml" = yes; then
2546 AC_DEFINE(HAVE_OLD_XML_HEADERS)
2553 ###############################################################################
2555 # Checking whether Motif is really Lesstif.
2557 ###############################################################################
2560 if test "$have_motif" = yes ; then
2561 AC_CACHE_CHECK([whether Motif is really LessTif],
2563 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
2564 [long vers = LesstifVersion;],
2565 [ac_cv_have_lesstif=yes],
2566 [ac_cv_have_lesstif=no])])
2567 have_lesstif=$ac_cv_have_lesstif
2571 lesstif_version=unknown
2572 lesstif_version_string=unknown
2574 if test "$have_lesstif" = yes ; then
2576 echo unknown > conftest-lt
2577 AC_CACHE_CHECK([LessTif version number],
2578 ac_cv_lesstif_version_string,
2579 [AC_TRY_X_RUN([#include <stdio.h>
2582 FILE *f = fopen("conftest-lt", "w");
2584 fprintf(f, "%d %d.%d\n", LesstifVersion,
2585 LESSTIF_VERSION, LESSTIF_REVISION);
2589 [ltv=`cat conftest-lt`
2590 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
2591 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
2592 [ac_cv_lesstif_version=unknown
2593 ac_cv_lesstif_version_string=unknown],
2594 [ac_cv_lesstif_version=unknown
2595 ac_cv_lesstif_version_string=unknown])])
2597 lesstif_version=$ac_cv_lesstif_version
2598 lesstif_version_string=$ac_cv_lesstif_version_string
2603 if test "$have_motif" = yes ; then
2605 echo unknown > conftest-mt
2606 AC_CACHE_CHECK([Motif version number],
2607 ac_cv_motif_version_string,
2608 [AC_TRY_X_RUN([#include <stdio.h>
2611 FILE *f = fopen("conftest-mt", "w");
2613 fprintf(f, "%d %d.%d\n", XmVersion,
2614 XmVERSION, XmREVISION);
2618 [mtv=`cat conftest-mt`
2619 ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
2620 ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
2621 [ac_cv_motif_version=unknown
2622 ac_cv_motif_version_string=unknown],
2623 [ac_cv_motif_version=unknown
2624 ac_cv_motif_version_string=unknown])])
2626 motif_version=$ac_cv_motif_version
2627 motif_version_string=$ac_cv_motif_version_string
2632 ###############################################################################
2634 # Checking whether Motif requires -lXpm.
2636 # If this is Motif 2.x, and we have XPM, then link against XPM as well.
2637 # The deal is, Motif 2.x requires XPM -- but it's a compilation option
2638 # of the library whether to build the XPM code into libXm, or whether
2639 # to rely on an external libXm. So the only way to tell whether XPM is
2640 # a link-time requirement is to examine libXm.a, which is very
2641 # difficult to do in an autoconf script. So... if it's Motif 2.x, we
2642 # always link against XPM if the XPM lib exists (and this will be a
2643 # no-op if libXm happens to already have the XPM code in it.)
2645 ###############################################################################
2647 motif_requires_xpm=no
2648 if test "$have_motif" = yes ; then
2649 AC_MSG_CHECKING(whether Motif requires XPM)
2650 if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
2652 motif_requires_xpm=yes
2653 AC_MSG_RESULT(maybe)
2660 ###############################################################################
2662 # Checking whether Motif requires -lXp.
2664 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
2665 # Extension". Why this extension isn't in -lXext with all the others,
2668 ###############################################################################
2671 if test "$have_motif" = yes ; then
2673 AC_CHECK_X_LIB(Xp, XpQueryExtension,
2674 [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
2675 [true], -lX11 -lXext -lm)
2679 ###############################################################################
2681 # Checking whether Motif requires -lXintl (for _Xsetlocale.)
2683 ###############################################################################
2686 if test "$have_motif" = yes ; then
2687 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
2689 if test "$have_xintl" = yes; then
2690 MOTIF_LIBS="$MOTIF_LIBS -lXintl"
2695 ###############################################################################
2697 # Check for -lGL or -lMesaGL.
2699 ###############################################################################
2703 with_gl_req=unspecified
2708 --with-gl Build those demos which depend on OpenGL.],
2709 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
2711 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
2713 ac_mesagl_version=unknown
2714 ac_mesagl_version_string=unknown
2716 if test "$with_gl" = yes; then
2717 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
2718 if test "$have_gl" = yes ; then
2719 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no,
2720 [#include <GL/gl.h>])
2723 # If we have the headers, try and figure out which vendor it's from.
2725 if test "$have_gl" = yes ; then
2727 # We need to know whether it's MesaGL so that we know which libraries
2730 AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
2731 [ac_cv_have_mesa_gl=no
2732 AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
2734 ac_have_mesa_gl=$ac_cv_have_mesa_gl
2741 # Some versions of MesaGL are compiled to require -lpthread.
2742 # So if the Mesa headers exist, and -lpthread exists, then always
2743 # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
2745 if test "$ac_have_mesa_gl" = yes; then
2746 AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
2750 # If we have Mesa headers, check to see if we can link against -lMesaGL.
2751 # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
2752 # Else, warn that GL is busted. (We have the headers, but no libs.)
2755 if test "$ac_have_mesa_gl" = yes ; then
2756 AC_CHECK_X_LIB(MesaGL, glXCreateContext,
2758 GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
2759 [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
2762 if test "$gl_lib_1" = "" ; then
2763 AC_CHECK_X_LIB(GL, glXCreateContext,
2765 GL_LIBS="-lGL -lGLU $GL_LIBS"],
2766 [], -lGLU $GL_LIBS -lX11 -lXext -lm)
2769 if test "$gl_lib_1" = "" ; then
2770 # we have headers, but no libs -- bail.
2775 # linking works -- we can build the GL hacks.
2777 if test "$ac_have_mesa_gl" = yes ; then
2778 AC_DEFINE(HAVE_MESA_GL)
2784 # Now that we know we have GL headers and libs, do some more GL testing.
2787 if test "$have_gl" = yes ; then
2788 # If it's MesaGL, we'd like to issue a warning if the version number
2789 # is less than or equal to 2.6, because that version had a security bug.
2791 if test "$ac_have_mesa_gl" = yes; then
2793 AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
2794 [cat > conftest.$ac_ext <<EOF
2795 #line __oline__ "configure"
2796 #include "confdefs.h"
2798 #ifndef MESA_MAJOR_VERSION
2799 # include <GL/xmesa.h>
2800 # ifdef XMESA_MAJOR_VERSION
2801 /* Around Mesa 3.2, they took out the Mesa version number, so instead,
2802 we have to check the XMesa version number (the number of the X protocol
2803 support, which seems to be the same as the Mesa version number.)
2805 # define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
2806 # define MESA_MINOR_VERSION XMESA_MINOR_VERSION
2808 /* Oh great. Some time after 3.4, they took out the xmesa.h header file,
2809 so we have no way of telling what version of Mesa this is at all.
2810 So, we'll guess that the osmesa version (the "offscreen protocol")
2811 is less than or equal to the real mesa version number. Except that
2812 if OSmesa is 3.3, assume at least Mesa 3.4, since OSmesa was 3.3 in
2813 Mesa 3.4. And Mesa 3.3 had xmesa.h. What a complete load of shit!
2815 # include <GL/osmesa.h>
2816 # define MESA_MAJOR_VERSION OSMESA_MAJOR_VERSION
2817 # define MESA_MINOR_VERSION OSMESA_MINOR_VERSION or newer, probably?
2818 # if OSMESA_MAJOR_VERSION == 3 && OSMESA_MINOR_VERSION == 3
2819 # undef MESA_MINOR_VERSION
2820 # define MESA_MINOR_VERSION 4 or newer, probably?
2824 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
2827 ac_save_CPPFLAGS="$CPPFLAGS"
2828 if test \! -z "$includedir" ; then
2829 CPPFLAGS="$CPPFLAGS -I$includedir"
2831 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2833 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | grep configure:`
2837 mglv=`echo "$mglv" | sed -n \
2838 's/^configure: *\([0-9][0-9]*\) *\([0-9].*\)$/\1.\2/p'`
2841 rm -f conftest.$ac_ext
2843 CPPFLAGS="$ac_save_CPPFLAGS"
2845 if test "$mglv" = ""; then
2846 ac_mesagl_version=unknown
2847 ac_mesagl_version_string=unknown
2849 ac_mesagl_version_string="$mglv"
2852 maj=`echo "$mglv" | sed -n 's/^\([0-9][0-9]*\)\..*$/\1/p'`
2853 min=`echo "$mglv" | sed -n 's/^.*\.\([0-9][0-9]*\).*$/\1/p'`
2855 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
2856 if test -z "$ac_mesagl_version"; then
2857 ac_mesagl_version=unknown
2858 ac_mesagl_version_string=unknown
2861 ac_cv_mesagl_version=$ac_mesagl_version
2862 ac_cv_mesagl_version_string=$ac_mesagl_version_string
2864 ac_mesagl_version=$ac_cv_mesagl_version
2865 ac_mesagl_version_string=$ac_cv_mesagl_version_string
2869 # Check for OpenGL 1.1 features.
2871 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
2872 [true], $GL_LIBS -lX11 -lXext -lm)
2875 elif test "$with_gl" != no; then
2876 echo "error: must be yes or no: --with-gl=$with_gl"
2881 ###############################################################################
2885 ###############################################################################
2888 with_gle_req=unspecified
2891 [ --with-gle Build those demos which depend on GLE
2892 (the OpenGL "extrusion" library.)],
2893 [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
2895 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
2899 if test "$have_gl" = no ; then
2901 elif test "$with_gle" = yes; then
2903 AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no,
2904 [#include <GL/gl.h>])
2905 if test "$have_gle3" = yes ; then
2908 AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no,
2909 [#include <GL/gl.h>])
2910 if test "$have_gle" = yes ; then
2911 AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no,
2912 [#include <GL/gl.h>])
2916 if test "$have_gle" = yes ; then
2919 AC_CHECK_X_LIB(gle, gleCreateGC,
2920 [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
2921 [], $GL_LIBS -lX11 -lXext -lm)
2923 if test "$have_gle" = yes ; then
2927 # sometimes the libmatrix stuff is included in libgle. look there first.
2929 # I don't get it. For some reason, this test passes on SGI, as if
2930 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
2931 # Yet the link is succeeding. Why???
2933 # AC_CHECK_X_LIB(gle, uview_direction_d,
2934 # [have_gle=yes; gle_halfassed=no],
2935 # [], $GL_LIBS -lX11 -lXext -lm)
2937 # As of GLE 3 this is in libgle, and has changed name to uview_direction!
2939 if test "$have_gle3" = yes ; then
2940 AC_CHECK_X_LIB(gle, uview_direction,
2941 [have_gle=yes; gle_halfassed=no],
2942 [], $GL_LIBS -lX11 -lXext -lm)
2944 # if it wasn't in libgle, then look in libmatrix.
2945 if test "$have_gle" = no ; then
2946 AC_CHECK_X_LIB(matrix, uview_direction_d,
2947 [have_gle=yes; gle_halfassed=no;
2948 GLE_LIBS="$GLE_LIBS -lmatrix"],
2949 [], $GL_LIBS -lX11 -lXext -lm)
2953 if test "$have_gle" = yes ; then
2955 if test "$have_gle3" = yes ; then
2956 AC_DEFINE(HAVE_GLE3)
2960 elif test "$with_gle" != no; then
2961 echo "error: must be yes or no: --with-gle=$with_gle"
2968 ###############################################################################
2972 ###############################################################################
2975 with_xpm_req=unspecified
2977 [ --with-xpm Include support for XPM files in some demos.
2978 (Not needed if Pixbuf is used.)],
2979 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2981 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2983 if test "$with_xpm" = yes; then
2984 AC_CHECK_X_HEADER(X11/xpm.h,
2988 [#include <X11/Xlib.h>])
2989 elif test "$with_xpm" != no; then
2990 echo "error: must be yes or no: --with-xpm=$with_xpm"
2994 # See comment near $motif_requires_xpm, above.
2995 # Need to do this here, after both Motif and XPM have been checked for.
2997 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2998 if test "$motif_requires_xpm" = yes ; then
2999 MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
3003 ###############################################################################
3005 # Check for -lgdk_pixbuf.
3007 ###############################################################################
3010 with_gdk_pixbuf_req=unspecified
3012 [ --with-pixbuf Include support for the GDK-Pixbuf library in some
3013 demos, which will make it possible for them to read
3014 GIF, JPEG, and PNG files as well. (The path here is
3015 ignored if GTK 2.x is being used.)],
3016 [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
3017 [with_gdk_pixbuf=yes])
3019 # if --with-pixbuf=/directory/ was specified, remember that directory so that
3020 # we can also look for the `gdk-pixbuf-config' program in that directory.
3021 case "$with_gdk_pixbuf" in
3023 gdk_pixbuf_dir="$with_gdk_pixbuf"
3030 HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF)
3032 if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then
3033 echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
3037 if test "$with_gdk_pixbuf" = yes; then
3041 if test -n "$pkg_config" ; then
3044 # run pkg-config based tests.
3049 # If we have Gtk 2.x, then *only* gdk-pixbuf 2.x will work.
3050 # If we have Gtk 1.x, then *only* gdk-pixbuf 1.x will work.
3051 # If we don't have Gtk at all, then either will work.
3053 if test "$have_gtk" = no -o "$have_gtk2" = yes; then
3055 # we don't have Gtk; or we have Gtk 2.x. Check for pixbuf 2.x.
3057 AC_MSG_RESULT(checking for gdk_pixbuf 2.x with gtk-config based tests...)
3058 pkg_check_version gdk-pixbuf-2.0 2.0.0
3059 pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
3060 have_gdk_pixbuf="$ok"
3061 have_gdk_pixbuf2="$ok"
3064 if test "$have_gtk" = no -o "$have_gtk2" = no; then
3066 # we don't have Gtk; or we have Gtk 1.x.
3067 # If we don't have pixbuf 2.x, then check for pixbuf 1.x.
3069 if test "$have_gdk_pixbuf2" = no; then
3072 AC_MSG_RESULT(checking for gdk_pixbuf 1.x with gtk-config based tests...)
3073 pkg_check_version gdk_pixbuf 0.0
3074 pkg_check_version gdk_pixbuf_xlib 0.0
3075 have_gdk_pixbuf="$ok"
3079 if test "$have_gdk_pixbuf" = yes; then
3080 AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
3081 [ac_cv_gdk_pixbuf_config_cflags=`$pkg_config --cflags $pkgs`])
3082 AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
3083 [ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs`])
3085 ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
3086 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
3090 if test "$have_gdk_pixbuf" = no; then
3093 # run gdk-pixbuf-config based tests.
3094 # note that we can't assume that the existence of "pkg-config" means
3095 # that we don't have to look for gdk-pixbuf-config -- in Gnome 1.4,
3096 # pkg-config exists, but doesn't know about pixbuf.
3099 AC_MSG_RESULT(checking for gdk_pixbuf with gdk-pixbuf-config based tests...)
3101 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
3102 # look in /foo/bin/ for for gdk-pixbuf-config.
3104 gdk_pixbuf_path="$PATH"
3106 if test ! -z "$gtk_dir"; then
3107 # canonicalize slashes.
3108 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
3109 gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
3112 if test ! -z "$gnome_dir"; then
3113 # canonicalize slashes.
3114 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
3115 gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
3118 AC_PATH_PROGS(gdk_pixbuf_config, gdk-pixbuf-config,, $gdk_pixbuf_path)
3120 # If we found the gdk-pixbuf-config program, run it to get flags.
3122 if test -n "$gdk_pixbuf_config" ; then
3123 AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
3124 [ac_cv_gdk_pixbuf_config_cflags=`$gdk_pixbuf_config --cflags`])
3125 AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
3126 [ac_cv_gdk_pixbuf_config_libs=`$gdk_pixbuf_config --libs`])
3128 # note that "gdk-pixbuf-config --libs" produces a link line including
3129 # -lgdk_pixbuf, but there's no way to get it to produce one that also
3130 # includes -lgdk_pixbuf_xlib. Since we don't know *exactly* what the
3131 # name of the library will be, construct it with sed...
3134 ac_cv_gdk_pixbuf_config_libs=`echo $ac_cv_gdk_pixbuf_config_libs | \
3135 sed 's@ \(-lgdk_pixbuf\([-_a-zA-Z0-9.]*\)\) @ \1 -lgdk_pixbuf_xlib\2 @'`
3138 ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
3139 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
3143 ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
3144 CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
3146 if test "$have_gdk_pixbuf" = no; then
3148 # we appear to have pixbuf; check for headers/libs to be sure.
3153 # check for header A...
3154 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
3156 # if that worked, check for header B...
3157 if test "$have_gdk_pixbuf" = yes; then
3159 gdk_pixbuf_halfassed=yes
3160 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h,
3161 [have_gdk_pixbuf=yes
3162 gdk_pixbuf_halfassed=no])
3164 # yay, it has a new name in Gtk 2.x...
3165 if test "$have_gdk_pixbuf" = no; then
3167 gdk_pixbuf_halfassed=yes
3168 AC_CHECK_X_HEADER(gdk-pixbuf-xlib/gdk-pixbuf-xlib.h,
3169 [have_gdk_pixbuf=yes
3170 gdk_pixbuf_halfassed=no])
3175 CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
3177 if test "$have_gdk_pixbuf" = yes; then
3178 # we have the headers, now check for the libraries
3180 gdk_pixbuf_halfassed=yes
3183 AC_CHECK_X_LIB(c, gdk_pixbuf_new_from_file, [have_gdk_pixbuf=yes],,
3184 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
3186 if test "$have_gdk_pixbuf" = yes; then
3188 AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init,
3189 [have_gdk_pixbuf=yes
3190 gdk_pixbuf_halfassed=no],,
3191 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
3195 if test "$have_gdk_pixbuf" = yes; then
3196 INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
3197 XPM_LIBS="$ac_gdk_pixbuf_config_libs"
3198 AC_DEFINE(HAVE_GDK_PIXBUF)
3205 ###############################################################################
3209 ###############################################################################
3212 with_jpeg_req=unspecified
3215 [ --with-jpeg Include support for the JPEG library.],
3216 [with_jpeg="$withval"; with_jpeg_req="$withval"],
3219 HANDLE_X_PATH_ARG(with_jpeg, --with-jpeg, JPEG)
3221 if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then
3222 echo "error: must be yes or no: --with-jpeg=$with_jpeg"
3226 if test "$with_jpeg" = yes; then
3229 AC_CHECK_X_HEADER(jpeglib.h, [have_jpeg=yes])
3231 if test "$have_jpeg" = yes; then
3232 # we have the header, now check for the library
3235 AC_CHECK_X_LIB(jpeg, jpeg_start_compress,
3239 AC_DEFINE(HAVE_JPEGLIB)])
3244 ###############################################################################
3246 # Check for pty support for 'phosphor'
3248 ###############################################################################
3251 AC_CHECK_HEADERS(pty.h util.h)
3252 AC_CHECK_X_LIB(util, forkpty,
3254 AC_DEFINE(HAVE_FORKPTY)])
3257 ###############################################################################
3259 # Check for the XSHM server extension.
3261 ###############################################################################
3264 with_xshm_req=unspecified
3265 AC_ARG_WITH(xshm-ext,
3266 [ --with-xshm-ext Include support for the Shared Memory extension.],
3267 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
3269 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
3271 if test "$with_xshm" = yes; then
3273 # first check for Xshm.h.
3274 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],,
3275 [#include <X11/Xlib.h>])
3277 # if that succeeded, then check for sys/ipc.h.
3278 if test "$have_xshm" = yes; then
3280 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
3283 # if that succeeded, then check for sys/shm.h.
3284 if test "$have_xshm" = yes; then
3286 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
3289 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
3290 # to exist, but the library code to not exist. And even better, the library
3291 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
3292 # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and
3293 # that's not quite right, but close enough.)
3297 if [ `uname -v` -eq 3 ]; then
3299 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
3300 [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
3301 [true], -lX11 -lXext -lm)
3306 # if that succeeded, then we've really got it.
3307 if test "$have_xshm" = yes; then
3308 AC_DEFINE(HAVE_XSHM_EXTENSION)
3311 elif test "$with_xshm" != no; then
3312 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
3317 ###############################################################################
3319 # Check for the DOUBLE-BUFFER server extension.
3321 ###############################################################################
3324 with_xdbe_req=unspecified
3325 AC_ARG_WITH(xdbe-ext,
3326 [ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.],
3327 [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
3329 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
3331 if test "$with_xdbe" = yes; then
3333 AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],,
3334 [#include <X11/Xlib.h>])
3335 if test "$have_xdbe" = yes; then
3336 AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
3339 elif test "$with_xdbe" != no; then
3340 echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
3345 ###############################################################################
3347 # Check for the SGI XReadDisplay server extension.
3349 # Note: this has to be down here, rather than up with the other server
3350 # extension tests, so that the output of `configure --help' is in the
3351 # right order. Arrgh!
3353 ###############################################################################
3356 with_readdisplay_req=unspecified
3357 AC_ARG_WITH(readdisplay,
3358 [ --with-readdisplay Include support for the XReadDisplay extension.],
3359 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
3360 [with_readdisplay=yes])
3362 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
3364 if test "$with_readdisplay" = yes; then
3365 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
3366 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),,
3367 [#include <X11/Xlib.h>])
3368 elif test "$with_readdisplay" != no; then
3369 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
3374 ###############################################################################
3376 # Check for a program to generate random text.
3378 # Zippy is funnier than the idiocy generally spat out by `fortune',
3379 # so first see if "fortune zippy" works. Else, use plain "fortune".
3381 # We used to dig around in Emacs to look for the "yow" program, but
3382 # most people who have Emacs also have "fortune zippy", so nevermind.
3384 ###############################################################################
3387 AC_ARG_WITH(fortune,[
3388 --with-fortune=PROGRAM Some demos are able to run an external program and
3389 display its text; this names the program to use by
3390 default (though it can be overridden with X
3391 resources.) Default is "/usr/games/fortune".],
3392 [with_fortune_req="$withval"; with_fortune="$withval"],[with_fortune=yes])
3394 if test "$with_fortune" = no || test "$with_fortune" = yes ; then
3399 if test -n "$with_fortune_req" ; then
3400 ac_cv_fortune_program=""
3401 case "$with_fortune_req" in
3404 set dummy $with_fortune_req ; fortune_tmp=$2
3405 AC_MSG_CHECKING([for $fortune_tmp])
3406 if test -x "$fortune_tmp" ; then
3414 set dummy $with_fortune_req ; fortune_tmp=$2
3416 unset ac_cv_path_fortune_tmp
3417 AC_PATH_PROG(fortune_tmp, $fortune_tmp, [])
3418 if test -z "$fortune_tmp" ; then
3423 ac_cv_fortune_program="$with_fortune"
3425 elif test -n "$ac_cv_fortune_program"; then
3426 AC_MSG_RESULT([checking for fortune... (cached) $ac_cv_fortune_program])
3429 unset ac_cv_path_fortune_tmp
3432 if test -z "$ac_cv_fortune_program" ; then
3434 # first look for fortune in /usr/games/ (and use absolute path)
3435 AC_PATH_PROGS(fortune_tmp, fortune,, "/usr/games")
3437 # if it's not there, look on $PATH (and don't use absolute path)
3438 if test -z "$fortune_tmp" ; then
3439 AC_CHECK_PROGS(fortune_tmp, fortune)
3442 # if we didn't find anything, then just assume /usr/games/
3443 if test -z "$fortune_tmp" ; then
3444 fortune_tmp="/usr/games/fortune"
3447 ac_cv_fortune_program="$fortune_tmp"
3449 # now check to see whether "fortune zippy" works.
3451 fortune_tmp="$fortune_tmp zippy"
3452 AC_MSG_CHECKING([for zippy quotes])
3453 if ( $fortune_tmp >/dev/null 2>&1 ); then
3454 ac_cv_fortune_program="$fortune_tmp"
3455 AC_MSG_RESULT($fortune_tmp)
3462 unset ac_cv_path_fortune_tmp
3465 AC_DEFINE_UNQUOTED(FORTUNE_PROGRAM, "$ac_cv_fortune_program")
3468 ###############################################################################
3470 # Check whether it's ok to install some hacks as setuid (e.g., "sonar")
3471 # This should be safe, but let's give people the option.
3473 ###############################################################################
3475 setuid_hacks_default=no
3476 setuid_hacks="$setuid_hacks_default"
3477 AC_ARG_WITH(setuid-hacks,
3478 [ --with-setuid-hacks Allow some demos to be installed `setuid root'
3479 (which is needed in order to ping other hosts.)
3481 [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
3483 HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks)
3485 if test "$setuid_hacks" = yes; then
3487 elif test "$setuid_hacks" != no; then
3488 echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks"
3493 ###############################################################################
3495 # Done testing. Now, set up the various -I and -L variables,
3496 # and decide which GUI program to build by default.
3498 ###############################################################################
3505 if test \! -z "$includedir" ; then
3506 INCLUDES="$INCLUDES -I$includedir"
3509 if test \! -z "$libdir" ; then
3510 LDFLAGS="$LDFLAGS -L$libdir"
3514 PREFERRED_DEMO_PROGRAM=''
3516 if test "$have_motif" = yes; then
3517 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
3518 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3520 if test "$have_gtk" = yes; then
3521 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
3522 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3526 if test "$have_kerberos" = yes; then
3527 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
3528 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
3530 if test "$have_pam" = yes; then
3531 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
3532 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
3533 INSTALL_PAM="install-pam"
3535 if test "$have_passwd_helper" = yes; then
3536 PASSWD_SRCS="$PASSWD_SRCS \$(PWHELPER_SRCS)"
3537 PASSWD_OBJS="$PASSWD_OBJS \$(PWHELPER_OBJS)"
3539 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
3540 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
3543 if test "$enable_locking" = yes; then
3544 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
3545 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
3547 LOCK_SRCS='$(NOLOCK_SRCS_1)'
3548 LOCK_OBJS='$(NOLOCK_OBJS_1)'
3551 if test "$ac_macosx" = yes; then
3552 EXES_OSX='$(EXES_OSX)'
3553 SCRIPTS_OSX='$(SCRIPTS_OSX)'
3554 MEN_OSX='$(MEN_OSX)'
3562 INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)'
3564 if test "$need_setuid" = yes; then
3570 if test "$setuid_hacks" = yes; then
3577 if test "$have_gl" = yes; then
3578 GL_EXES='$(GL_EXES)'
3579 GL_UTIL_EXES='$(GL_UTIL_EXES)'
3583 GL_KLUDGE="-${tab} "
3586 if test "$have_gle" = yes; then
3587 GLE_EXES='$(GLE_EXES)'
3588 GLE_KLUDGE="${tab} "
3590 GLE_KLUDGE="-${tab} "
3593 if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then
3594 JPEG_EXES='$(JPEG_EXES)'
3598 # Another substitution in the XScreenSaver.ad.in file:
3600 if test "$have_gnome_help" = yes; then
3609 # Now that we know whether we have Gnome, we can decide where the XML
3610 # config files get installed.
3612 if test -z "$HACK_CONF_DIR" ; then
3613 if test -n "$GNOME_DATADIR" ; then
3614 HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers'
3616 HACK_CONF_DIR='${prefix}/lib/xscreensaver/config'
3622 # After computing $HACK_CONF_DIR, make sure $GLADE_DATADIR has a value
3623 # so that we know where to install the Gtk pixmaps.
3625 # It should usually be "/usr/share/pixmaps/", but we can't just use
3626 # "$(prefix)/share/pixmaps" because that would usually result in
3627 # "/usr/X11R6/share/pixmaps/", which is wrong. It needs to be the
3628 # Gnome/Gtk prefix, not the overall prefix.
3630 if test -n "$GNOME_DATADIR" ; then
3631 GLADE_DATADIR='$(GNOME_DATADIR)/xscreensaver'
3632 elif test "$have_gtk" = yes; then
3633 if test -n "$pkg_config"; then
3634 if test "$have_gtk2" = yes; then
3635 GLADE_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3637 GLADE_DATADIR=`$pkg_config --variable=prefix gtk+`
3640 GLADE_DATADIR=`$gtk_config --prefix`
3642 GLADE_DATADIR="$GLADE_DATADIR/share/xscreensaver"
3648 # Set PO_DATADIR to something sensible.
3650 AC_MSG_CHECKING([for locale directory])
3651 if test -n "$GNOME_DATADIR" ; then
3652 PO_DATADIR="$GNOME_DATADIR"
3653 elif test "$have_gtk" = yes; then
3654 if test -n "$pkg_config"; then
3655 if test "$have_gtk2" = yes; then
3656 PO_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3658 PO_DATADIR=`$pkg_config --variable=prefix gtk+`
3661 PO_DATADIR=`$gtk_config --prefix`
3663 PO_DATADIR="$PO_DATADIR/share"
3666 if test -z "$PO_DATADIR" ; then
3668 # #### Total fucking kludge --
3669 # Map /build/prefix/usr/X11R6/share/ to /build/prefix/usr/share/
3670 # but of course we need to expand all the nested variables to do that...
3678 PO_DATADIR=`echo $dd | sed 's@/X11R6/@/@'`
3681 AC_MSG_RESULT($PO_DATADIR/locale)
3684 # canonicalize slashes.
3685 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
3687 # gcc 3.0 likes to issue this warning for every file:
3689 # cc1: warning: changing search order for system directory "/usr/local/include"
3690 # cc1: warning: as it has already been specified as a non-system directory
3692 # Yay. We can only avoid that by deleting "-I${prefix}/include" from the list.
3693 # Which *should* be totally redundant, and thus an ok thing to delete?
3695 INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'`
3698 ###############################################################################
3700 # Perform substitutions and write Makefiles.
3702 ###############################################################################
3706 AC_SUBST(PREFERRED_DEMO_PROGRAM)
3707 AC_SUBST(ALL_DEMO_PROGRAMS)
3708 AC_SUBST(SAVER_LIBS)
3709 AC_SUBST(MOTIF_LIBS)
3718 AC_SUBST(XDPMS_LIBS)
3719 AC_SUBST(PASSWD_LIBS)
3720 AC_SUBST(INSTALL_SETUID)
3721 AC_SUBST(SETUID_HACKS)
3722 AC_SUBST(INSTALL_DIRS)
3723 AC_SUBST(NEED_SETUID)
3724 AC_SUBST(INSTALL_PAM)
3728 AC_SUBST(SCRIPTS_OSX)
3731 AC_SUBST(PASSWD_SRCS)
3732 AC_SUBST(PASSWD_OBJS)
3736 AC_SUBST(SAVER_GL_SRCS)
3737 AC_SUBST(SAVER_GL_OBJS)
3738 AC_SUBST(SAVER_GL_LIBS)
3743 AC_SUBST(GL_UTIL_EXES)
3747 AC_SUBST(GLE_KLUDGE)
3748 AC_SUBST(GNOMEHELP_Y)
3749 AC_SUBST(GNOMEHELP_N)
3751 AC_SUBST(GNOME_DATADIR)
3752 AC_SUBST(GLADE_DATADIR)
3753 AC_SUBST(PO_DATADIR)
3754 AC_SUBST(GNOME_PANELDIR)
3755 AC_SUBST(HACK_CONF_DIR)
3756 AC_SUBST(GTK_EXTRA_OBJS)
3758 APPDEFAULTS=$ac_x_app_defaults
3759 AC_SUBST(APPDEFAULTS)
3762 AC_SUBST(DEPEND_FLAGS)
3763 AC_SUBST(DEPEND_DEFINES)
3772 driver/XScreenSaver.ad
3773 driver/xscreensaver.kss)
3775 ###############################################################################
3777 # Print some warnings at the end.
3779 ###############################################################################
3781 warn_prefix_1=" Warning:"
3782 warn_prefix_2=" Note:"
3783 warn_prefix="$warn_prefix_1"
3786 warnsep=' #################################################################'
3789 if test "$warning" = no ; then
3790 echo '' ; echo "$warnsep" ; echo ''
3797 if test "$warning" = long ; then echo '' ; fi
3800 echo "$warn_prefix $rest"
3807 if test "$was" != no ; then echo '' ; fi
3809 echo "$warn_prefix $rest"
3819 warn_prefix="$warn_prefix_2"
3821 warn_prefix="$warn_prefix_1"
3825 warn_prefix="$warn_prefix_2"
3827 warn_prefix="$warn_prefix_1"
3831 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
3832 warn 'The SGI saver extension was requested, but was not found.'
3835 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
3836 warn 'The MIT saver extension was requested, but was not found.'
3839 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
3840 warn 'The XIdle extension was requested, but was not found.'
3843 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
3844 warn 'The XSHM extension was requested, but was not found.'
3847 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
3848 warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
3851 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
3852 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
3855 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
3856 warn 'The DPMS extension was requested, but was not found.'
3859 if test "$with_xinerama_req" = yes -a "$have_xinerama" = no ; then
3860 warn 'The Xinerama extension was requested, but was not found.'
3863 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
3864 warn 'The XF86VMODE extension was requested, but was not found.'
3867 if test "$with_randr_req" = yes -a "$have_randr" = no ; then
3868 warn 'The RANDR extension was requested, but was not found.'
3871 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
3872 warn "Checking of /proc/interrupts was requested, but it's bogus."
3876 warn2 'Though the Motif front-end to xscreensaver is still'
3877 warn2 'maintained, it is no longer being updated with new'
3878 warn2 'features: all new development on the xscreensaver-demo'
3879 warn2 'program is happening in the GTK version, and not in the'
3880 warn2 'Motif version. It is recommended that you build against'
3881 warn2 'GTK instead of Motif. See <http://www.gtk.org/>.'
3884 if test "$have_motif" = no -a "$have_gtk" = no; then
3886 if test "$with_motif" = yes; then
3887 warnL "Neither the GTK nor Motif libraries were found; the"
3888 warn2 "\`xscreensaver-demo' program requires one of these."
3892 warnL "The GTK libraries do not seem to be available; the"
3893 warn2 "\`xscreensaver-demo' program requires them."
3895 warn2 'You can use Motif or Lesstif instead of GTK (use the'
3896 warn2 "\`--with-motif' option) but that is NOT recommended."
3900 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
3901 warnL "Use of Motif was requested, but it wasn't found;"
3902 warn2 "Gtk will be used instead."
3904 elif test "$jurassic_gtk" = yes ; then
3908 v="$ac_gtk_version_string"
3909 if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
3910 warnL "Use of Gtk was requested, but its version number is unknown;"
3911 elif test "$with_gtk_req" = yes ; then
3912 warnL "Use of Gtk was requested, but it is version $v;"
3914 warnL "Gtk was found on this system, but it is version $v;"
3917 warn2 "Gtk $pref_gtk or newer is required."
3919 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
3920 warnL "Use of Gtk was requested, but it wasn't found."
3923 if test "$gtk2_halfassed" != no ; then
3924 warnL "GTK version $gtk2_halfassed was found, but at least one supporting"
3925 warn2 "library ($gtk2_halfassed_lib) was not, so GTK 2.x can't be used."
3926 if test "$have_gtk" = yes ; then
3927 v="$ac_gtk_version_string"
3928 warn2 "GTK $v is also installed, so it will be used instead."
3929 warn2 "Please read the above output and the \`config.log' file"
3930 warn2 "for more details."
3935 if test "$with_gnome_req" = yes -a "$have_gnome" = no \
3936 -a "$have_gtk2" = no; then
3937 # don't issue this warning if we have GTK2 -- in that case, the
3938 # Gnome-specific code isn't needed.
3939 warn 'Use of the Gnome Control Panel was requested, but the necessary'
3940 warn2 'headers and/or libraries were not found.'
3943 if test "$have_gtk" = yes ; then
3944 if test "$have_xml" = no ; then
3945 if test "$with_xml_req" = yes ; then
3946 warn 'Use of the XML library was requested, but the necessary'
3947 warn2 'headers and/or libraries were not found.'
3949 warn 'GTK is being used, but the XML library was not found.'
3952 if test "$xml_halfassed" = yes ; then
3954 if test "$have_zlib" = yes ; then
3955 which="XML libraries"
3957 which="\`zlib' library"
3961 warn2 'More specifically, we found the headers, but not the'
3962 warn2 "$which; so either XML is half-installed on this"
3963 warn2 "system, or something else went wrong. The \`config.log'"
3964 warn2 'file might contain some clues.'
3968 warn2 "Without XML, the per-display-mode \`Settings' dialogs"
3969 warn2 'will not be available. Specify the location of the XML'
3970 warn2 'library through the --with-xml option to configure.'
3974 if test "$have_gtk" = yes -a "$have_gdk_pixbuf" = no ; then
3975 warn "GTK is being used, but the GDK-Pixbuf library and/or"
3976 warn2 "headers were not found. That can't be good. Please"
3977 warn2 "install the GDK-Pixbuf development kit and re-configure."
3980 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
3982 preferred_lesstif=0.92
3984 if test "$lesstif_version" = unknown; then
3985 warnL "Unable to determine the LessTif version number!"
3986 warn2 "Make sure you are using version $preferred_lesstif or newer."
3987 warn2 "See <http://www.lesstif.org/>."
3989 elif test \! $lesstif_version -gt 82; then
3990 warnL "LessTif version $lesstif_version_string is being used."
3991 warn2 "LessTif versions 0.82 and earlier are too buggy to"
3992 warn2 "use with XScreenSaver; it is strongly recommended"
3993 warn2 "that you upgrade to at least version $preferred_lesstif!"
3994 warn2 "See <http://www.lesstif.org/>."
3999 if test "$have_motif" = yes -a "$have_gtk" = no ; then
4000 warn 'Motif is being used, and GTK is not.'
4006 if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
4007 warnL 'Use of XPM was requested, but it was not found.'
4010 if test "$with_gdk_pixbuf_req" = yes -a "$have_gdk_pixbuf" = no; then
4011 warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
4014 if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no || \
4015 test "$gdk_pixbuf_halfassed" = yes; then
4017 if test "$with_xpm_req" = yes -o "$have_xpm" = yes ; then
4019 elif test "$with_xpm_req" = no ; then
4020 warnL 'The XPM library is not being used.'
4022 warnL 'The XPM library was not found.'
4025 if test "$with_gdk_pixbuf_req" = yes ; then
4027 elif test "$with_gdk_pixbuf_req" = no ; then
4028 warnL 'The GDK-Pixbuf library is not being used.'
4030 warnL 'The GDK-Pixbuf library was not found.'
4033 if test "$gdk_pixbuf_halfassed" = yes ; then
4035 warn2 'More specifically, we found the headers, but not the'
4036 warn2 'libraries; so either GDK-Pixbuf is half-installed on this'
4037 warn2 "system, or something else went wrong. The \`config.log'"
4038 warn2 'file might contain some clues.'
4042 warn2 'Some of the demos will not be as colorful as they'
4043 warn2 'could be. You should consider installing Pixbuf or'
4044 warn2 'XPM and re-running configure. The Pixbuf library is'
4045 warn2 'a part of GNOME. The XPM library comes with most'
4046 warn2 'X11 installations; you can also find it at the X11'
4047 warn2 'archive sites, such as <http://sunsite.unc.edu/>.'
4049 warn2 'GDK-Pixbuf is recommended over XPM, as it provides'
4050 warn2 'support for more image formats.'
4054 if test "$have_jpeg" = no ; then
4055 if test "$with_jpeg_req" = yes ; then
4056 warnL 'Use of libjpeg was requested, but it was not found.'
4057 elif test "$with_jpeg_req" = no ; then
4058 noteL 'The JPEG library is not being used.'
4060 noteL 'The JPEG library was not found.'
4063 if test "$jpeg_halfassed" = yes ; then
4065 warn2 'More specifically, we found the headers, but not the'
4066 warn2 'library; so either JPEG is half-installed on this'
4067 warn2 "system, or something else went wrong. The \`config.log'"
4068 warn2 'file might contain some clues.'
4072 if test "$have_gdk_pixbuf" = no ; then
4073 warn2 "This means that it won't be possible for the image-manipulating"
4074 warn2 "display modes to load files from disk; and it also means that"
4075 warn2 "the \`webcollage' program will be much slower."
4077 warn2 "This means the \`webcollage' program will be much slower."
4082 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
4083 preferred_mesagl=3.4
4084 mgv="$ac_mesagl_version_string"
4085 pgl="$preferred_mesagl"
4087 if test "$ac_mesagl_version" = unknown; then
4088 warnL "Unable to determine the MesaGL version number!"
4089 warn2 "Make sure you are using version $preferred_mesagl or newer."
4091 elif test \! "$ac_mesagl_version" -gt 2006; then
4092 warnL "MesaGL version number is $mgv --"
4093 warn2 "MesaGL 2.6 and earlier have a security bug. It is strongly"
4094 warn2 "recommended that you upgrade to at least version $preferred_mesagl."
4096 elif test \! "$ac_mesagl_version" -gt 3003; then
4097 warnL "MesaGL version number is $mgv --"
4098 warn2 "MesaGL 3.3 and earlier have some bugs; it is recommended"
4099 warn2 "that you upgrade to $pgl or newer."
4103 if test "$have_gl" = no ; then
4104 if test "$with_gl_req" = yes ; then
4105 warnL 'Use of GL was requested, but it was not found.'
4106 elif test "$with_gl_req" = no ; then
4107 noteL 'The OpenGL 3D library is not being used.'
4109 noteL 'The OpenGL 3D library was not found.'
4112 if test "$gl_halfassed" = yes ; then
4114 warn2 'More specifically, we found the headers, but not the'
4115 warn2 'libraries; so either GL is half-installed on this'
4116 warn2 "system, or something else went wrong. The \`config.log'"
4117 warn2 'file might contain some clues.'
4121 warn2 'Those demos which use 3D will not be built or installed.'
4122 warn2 'You might want to consider installing OpenGL and'
4123 warn2 "re-running configure. If your vendor doesn't ship"
4124 warn2 'their own implementation of OpenGL, you can get a free'
4125 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
4126 warn2 'info, see <http://www.opengl.org/>.'
4131 if test "$have_gl" = yes -a "$have_gle" = no ; then
4133 # nobody cares about this; don't print the warning unless it was
4134 # requested and not found, or halfway-found.
4135 if test "$with_gle_req" = yes -o "$gle_halfassed" = yes ; then
4137 if test "$with_gle_req" = yes ; then
4138 noteL 'Use of the GLE (GL Extrusion) library was requested, but'
4139 warn2 'it was not found (though the OpenGL library was found, and'
4140 warn2 'is being used.)'
4141 elif test "$with_gle_req" = no ; then
4142 noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
4143 warn2 'library is not.'
4145 noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
4149 if test "$gle_halfassed" = yes ; then
4151 warn2 'More specifically, we found the headers, but not the'
4152 warn2 'libraries; so either GLE is half-installed on this'
4153 warn2 "system, or something else went wrong. The \`config.log'"
4154 warn2 'file might contain some clues.'
4158 warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
4159 warn2 'will not be built or installed. You might want to consider'
4160 warn2 'installing GLE and re-running configure. You can find the'
4161 warn2 'GLE library at <http://www.linas.org/gle/>. For general'
4162 warn2 'OpenGL info, see <http://www.opengl.org/>.'
4168 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
4169 warn 'Use of XReadDisplay was requested, but it was not found.'
4172 if test -n "$with_fortune_req"; then
4173 if test "$with_fortune_req" != "$ac_cv_fortune_program" ; then
4174 warnL "$with_fortune_req was requested as the Fortune program,"
4175 warn2 "but was not found. The default will be used instead."
4179 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
4180 warn 'Use of Kerberos was requested, but it was not found.'
4183 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
4184 warn 'Use of PAM was requested, but it was not found.'
4187 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
4188 warn 'Use of shadow passwords was requested, but they were not found.'
4192 # You are in a twisty maze of namespaces and syntaxes, all alike.
4193 # Fuck the skull of Unix.
4195 eval bindir=${bindir}
4196 eval bindir=${bindir}
4197 eval bindir=${bindir}
4198 eval bindir=${bindir}
4199 eval bindir=${bindir}
4200 eval bindir=${bindir}
4201 eval HACKDIR=${HACKDIR}
4202 eval HACKDIR=${HACKDIR}
4203 eval HACKDIR=${HACKDIR}
4204 eval HACKDIR=${HACKDIR}
4205 eval HACKDIR=${HACKDIR}
4206 eval HACKDIR=${HACKDIR}
4207 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4208 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4209 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4210 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4211 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4212 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4214 # canonicalize slashes.
4215 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
4216 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
4217 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
4220 # Sanity check the hackdir
4221 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
4222 if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
4224 AC_MSG_ERROR([\"--with-hackdir=${bindir}/${bad_choice}\" won't work.
4225 There will be an executable installed with that name, so
4226 that can't be the name of a directory as well. Please
4227 re-configure with a different directory name.])
4234 # Now let's see if there's a previous RPM version already installed. Blargh!
4238 rpmv=`(rpm -qv xscreensaver) 2>/dev/null | \
4239 sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'`
4242 if test \! -z "$rpmv" ; then
4243 rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
4244 rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
4247 warnL "There is already an installed RPM of xscreensaver $rpmv"
4248 warn2 "on this system. You might want to remove it (with"
4249 warn2 '"rpm -ve xscreensaver") before running "make install"'
4250 warn2 "from this directory."
4252 warn2 "Alternately, you could build this version of xscreensaver"
4253 warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
4254 warn2 "file is included. See the RPM documentation for more info."
4257 if test "$rpmbdir" = "$rpmhdir" ; then
4258 warn2 "The RPM version was installed in $rpmbdir/."
4260 warn2 "The RPM version was installed in $rpmbdir/,"
4261 warn2 "with demos in $rpmhdir/."
4268 if test "${bindir}" = "${HACKDIR}" ; then
4272 if test "$do_dir_warning" = yes; then
4276 echo ' When you run "make install", the "xscreensaver",'
4277 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
4278 echo " will be installed in ${bindir}/."
4280 echo " The various graphics demos (180+ different executables) will"
4281 echo " be installed in ${HACKDIR}/."
4283 echo " If you would prefer the demos to be installed elsewhere,"
4284 echo " you should re-run configure with the --with-hackdir=DIR"
4285 echo " option. For more information, run \`./configure --help'."
4289 if test "$warning" != no; then
4290 echo '' ; echo "$warnsep" ; echo ''
4293 if test "$do_dir_warning" = no; then
4294 if test "$warning" = no; then
4297 echo "User programs will be installed in ${bindir}/"
4298 echo "Screen savers will be installed in ${HACKDIR}/"
4299 echo "Configuration will be installed in ${HACK_CONF_DIR}/"