1 # configure.in --- xscreensaver, Copyright (c) 1997-2003 Jamie Zawinski.
5 AC_INIT(driver/subprocs.c)
6 AC_CONFIG_HEADER(config.h)
8 echo "current directory: `pwd`"
9 echo "command line was: $0 $@"
12 # After checking to see that --srcdir is correct (which AC_INIT does)
13 # check for some random other files that come later in the tar file,
14 # to make sure everything is here.
16 for d in driver utils hacks hacks/glx ; do
17 f=$srcdir/$d/Makefile.in
18 if test \! -r $f ; then
20 echo "ERROR: The package is incomplete: $f does not exist."
21 echo " This probably means that your download was truncated."
27 ###############################################################################
29 # Function to figure out how to run the compiler.
31 ###############################################################################
33 AC_DEFUN(AC_PROG_CC_ANSI,
36 if test -z "$GCC"; then
37 AC_MSG_CHECKING(how to request ANSI compilation)
40 AC_MSG_RESULT(HPUX: adding -Ae)
44 AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e)
45 CC="$CC -qlanglvl=ansi -qhalt=e"
49 AC_MSG_RESULT(DEC: adding -std1 -ieee)
54 AC_MSG_RESULT(no idea)
59 AC_MSG_CHECKING([whether the compiler works on ANSI C])
60 AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
63 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
64 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
66 if test -n "$GCC"; then
67 AC_MSG_RESULT(Turning on gcc compiler warnings.)
68 CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs"
69 # supposedly gcc 3.4 will have "-Wdeclaration-after-statement"
70 # and then perhaps we can do without -pedantic?
73 *-irix5* |*-irix6.[0-3]* )
74 AC_MSG_RESULT(Turning on SGI compiler warnings.)
75 CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
78 # if test -z "$GCC"; then
79 # AC_MSG_RESULT(Turning on DEC C compiler warnings.)
80 # CC="$CC -migrate -w0 -verbose -warnprotos"
88 ###############################################################################
90 # Functions to figure out how to disable // comments in ANSI C code.
92 # (With recent gcc, this is done with "-std=c89". With older gcc, this
93 # is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to
94 # gcc. Old gcc doesn't support -std, and new gcc doesn't support -lang.
95 # so much for compatibility!)
97 # UPDATE: apparently there is NO WAY to tell gcc 3.2.2 to require that
98 # declarations preceed statements, without resorting to "-pedantic".
99 # This means that there is no way to get gcc3 to issue warnings that
100 # ensure that your code complies with the ANSI/ISO C89 standard, without
101 # also drowning in totally useless warnings. Thank you master may I
104 # So, I give up, let's just use -pedantic.
106 ###############################################################################
108 AC_DEFUN(AC_GCC_ACCEPTS_STD,
109 [if test -n "$GCC"; then
110 AC_CACHE_CHECK([whether gcc accepts -std],
111 ac_cv_gcc_accepts_std,
112 [if ( ( gcc -E -std=c89 - </dev/null >/dev/null ) 2>&1 | \
113 grep unrecognized >/dev/null ); then
114 ac_cv_gcc_accepts_std=no
116 ac_cv_gcc_accepts_std=yes
118 ac_gcc_accepts_std="$ac_cv_gcc_accepts_std"
122 AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE,
123 [if test -n "$GCC"; then
125 AC_MSG_RESULT(Disabling C++ comments in ANSI C code.)
127 # The reason that // comments are banned from xscreensaver is that gcc is
128 # basically the only compiler in the world that supports them in C code.
129 # All other vendors support them only in their C++ compilers, not in their
130 # ANSI C compilers. This means that it's a portability problem: every time
131 # these comments have snuck into the xscreensaver source code, I've gotten
132 # complaints about it the next day. So we turn off support for them in gcc
133 # as well to prevent them from accidentially slipping in.
135 if test "$ac_gcc_accepts_std" = yes ; then
137 # -std=c89 defines __STRICT_ANSI__, which we don't want.
138 # (That appears to be the only additional preprocessor symbol
139 # it defines, in addition to the syntax changes it makes.)
141 # -std=gnu89 is no good, because // comments were a GNU extension
142 # before they were in the ANSI C 99 spec... (gcc 2.96 permits //
143 # with -std=gnu89 but not with -std=c89.)
145 CC="$CC -std=c89 -U__STRICT_ANSI__"
148 CC="$CC -Wp,-lang-c89"
154 ###############################################################################
156 # Function to figure out how to turn off Objective C on MacOS X.
157 # (We have to do this to work around an Apple-specific gcc bug.)
159 ###############################################################################
161 AC_DEFUN(AC_GCC_ACCEPTS_NO_CPP_PRECOMP,
162 [if test -n "$GCC"; then
163 AC_CACHE_CHECK([whether gcc accepts -no-cpp-precomp],
164 ac_cv_gcc_accepts_no_cpp_precomp,
165 [if ( ( gcc -E -no-cpp-precomp - </dev/null >/dev/null ) 2>&1 | \
166 grep unrecognized >/dev/null ); then
167 ac_cv_gcc_accepts_no_cpp_precomp=no
169 ac_cv_gcc_accepts_no_cpp_precomp=yes
171 ac_gcc_accepts_no_cpp_precomp="$ac_cv_gcc_accepts_no_cpp_precomp"
175 AC_DEFUN(AC_NO_OBJECTIVE_C,
176 [if test -n "$GCC"; then
177 AC_GCC_ACCEPTS_NO_CPP_PRECOMP
178 if test "$ac_gcc_accepts_no_cpp_precomp" = yes ; then
179 AC_MSG_RESULT(Disabling Objective C extensions in ANSI C code.)
180 CC="$CC -no-cpp-precomp"
186 ###############################################################################
188 # Function to figure out how to create directory trees.
190 ###############################################################################
192 AC_DEFUN(AC_PROG_INSTALL_DIRS,
193 [AC_CACHE_CHECK([whether \"\${INSTALL} -d\" creates intermediate directories],
194 ac_cv_install_d_creates_dirs,
195 [ac_cv_install_d_creates_dirs=no
197 if mkdir conftestdir; then
198 cd conftestdir 2>/dev/null
199 ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1
200 if test -d dir1/dir2/. ; then
201 ac_cv_install_d_creates_dirs=yes
208 if test "$ac_cv_install_d_creates_dirs" = no ; then
209 AC_CACHE_CHECK([whether \"mkdir -p\" creates intermediate directories],
210 ac_cv_mkdir_p_creates_dirs,
211 [ac_cv_mkdir_p_creates_dirs=no
213 if mkdir conftestdir; then
214 cd conftestdir 2>/dev/null
215 mkdir -p dir1/dir2 >/dev/null 2>&1
216 if test -d dir1/dir2/. ; then
217 ac_cv_mkdir_p_creates_dirs=yes
225 if test "$ac_cv_install_d_creates_dirs" = yes ; then
226 INSTALL_DIRS='${INSTALL} -d'
227 elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then
228 INSTALL_DIRS='mkdir -p'
231 INSTALL_DIRS='${INSTALL} -d'
236 ###############################################################################
238 # Function to check whether gettimeofday() exists, and how to call it.
239 # This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS.
241 ###############################################################################
243 AC_DEFUN(AC_GETTIMEOFDAY_ARGS,
244 [AC_MSG_CHECKING(how to call gettimeofday)
245 AC_CACHE_VAL(ac_cv_gettimeofday_args,
246 [AC_TRY_COMPILE([#include <stdlib.h>
247 #include <sys/time.h>],
248 [struct timeval tv; struct timezone tzp;
249 gettimeofday(&tv, &tzp);],
250 [ac_gettimeofday_args=2],
251 [AC_TRY_COMPILE([#include <stdlib.h>
252 #include <sys/time.h>],
253 [struct timeval tv; gettimeofday(&tv);],
254 [ac_gettimeofday_args=1],
255 [ac_gettimeofday_args=0])])
256 ac_cv_gettimeofday_args=$ac_gettimeofday_args])
257 ac_gettimeofday_args=$ac_cv_gettimeofday_args
258 if test "$ac_gettimeofday_args" = 1 ; then
259 AC_DEFINE(HAVE_GETTIMEOFDAY)
260 AC_MSG_RESULT(one argument)
261 elif test "$ac_gettimeofday_args" = 2 ; then
262 AC_DEFINE(HAVE_GETTIMEOFDAY)
263 AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
264 AC_MSG_RESULT(two arguments)
266 AC_MSG_RESULT(unknown)
271 ###############################################################################
273 # Function to find perl5 (defines PERL and PERL_VERSION.)
275 ###############################################################################
277 # M4 sucks!! perl sucks too!!
279 perl_version_cmd='print $]'
282 AC_DEFUN(AC_PROG_PERL,
283 [AC_PATH_PROGS(PERL, [perl5 perl],,)
284 if test -z "$PERL" ; then
287 AC_CACHE_CHECK([perl version], ac_cv_perl_version,
288 [ac_cv_perl_version=`$PERL -e "$perl_version_cmd"`])
289 PERL_VERSION=$ac_cv_perl_version
294 ###############################################################################
296 # Function to demand "bc". Losers.
298 ###############################################################################
300 AC_DEFUN(AC_DEMAND_BC,
301 [ac_bc_result=`echo 6+9 | bc 2>/dev/null`
302 AC_MSG_CHECKING([for bc])
303 if test "$ac_bc_result" = "15" ; then
308 AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard
309 part of Unix since the 1970s. Come back when your vendor
314 ###############################################################################
316 # Functions to check how to do ICMP PING requests.
318 ###############################################################################
320 AC_DEFUN(AC_CHECK_ICMP,
321 [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp,
322 [AC_TRY_COMPILE([#include <stdlib.h>
329 #include <sys/types.h>
330 #include <sys/time.h>
333 #include <sys/socket.h>
334 #include <netinet/in_systm.h>
335 #include <netinet/in.h>
336 #include <netinet/ip.h>
337 #include <netinet/ip_icmp.h>
338 #include <netinet/udp.h>
339 #include <arpa/inet.h>
343 struct sockaddr_in si;
345 i.icmp_type = ICMP_ECHO;
350 si.sin_family = AF_INET;
351 #if defined(__DECC) || defined(_IP_VHL)
357 [ac_cv_have_icmp=yes],
358 [ac_cv_have_icmp=no])])
359 if test "$ac_cv_have_icmp" = yes ; then
363 AC_DEFUN(AC_CHECK_ICMPHDR,
364 [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr,
365 [AC_TRY_COMPILE([#include <stdlib.h>
372 #include <sys/types.h>
373 #include <sys/time.h>
376 #include <sys/socket.h>
377 #include <netinet/in_systm.h>
378 #include <netinet/in.h>
379 #include <netinet/ip.h>
380 #include <netinet/ip_icmp.h>
381 #include <netinet/udp.h>
382 #include <arpa/inet.h>
386 struct sockaddr_in si;
392 i.un.echo.sequence = 0;
393 si.sin_family = AF_INET;
395 [ac_cv_have_icmphdr=yes],
396 [ac_cv_have_icmphdr=no])])
397 if test "$ac_cv_have_icmphdr" = yes ; then
398 AC_DEFINE(HAVE_ICMPHDR)
402 ###############################################################################
404 # Functions to check for various X11 crap.
406 ###############################################################################
408 # Try and find the app-defaults directory.
409 # It sucks that autoconf doesn't do this already...
411 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
413 if mkdir conftestdir; then
414 cd conftestdir 2>/dev/null
415 # Make sure to not put "make" in the Imakefile rules, since we grep it out.
416 cat > Imakefile <<'EOF'
418 @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
420 if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then
421 # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
422 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
428 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
429 # Look for the directory under a standard set of common directories.
430 # Check X11 before X11Rn because it's often a symlink to the current release.
432 /usr/X11/lib/app-defaults \
433 /usr/X11R6/lib/app-defaults \
434 /usr/X11R6/lib/X11/app-defaults \
435 /usr/X11R5/lib/app-defaults \
436 /usr/X11R5/lib/X11/app-defaults \
437 /usr/X11R4/lib/app-defaults \
438 /usr/X11R4/lib/X11/app-defaults \
440 /usr/lib/X11/app-defaults \
441 /usr/lib/X11R6/app-defaults \
442 /usr/lib/X11R5/app-defaults \
443 /usr/lib/X11R4/app-defaults \
445 /usr/local/X11/lib/app-defaults \
446 /usr/local/X11R6/lib/app-defaults \
447 /usr/local/X11R5/lib/app-defaults \
448 /usr/local/X11R4/lib/app-defaults \
450 /usr/local/lib/X11/app-defaults \
451 /usr/local/lib/X11R6/app-defaults \
452 /usr/local/lib/X11R6/X11/app-defaults \
453 /usr/local/lib/X11R5/app-defaults \
454 /usr/local/lib/X11R5/X11/app-defaults \
455 /usr/local/lib/X11R4/app-defaults \
456 /usr/local/lib/X11R4/X11/app-defaults \
458 /usr/X386/lib/X11/app-defaults \
459 /usr/x386/lib/X11/app-defaults \
460 /usr/XFree86/lib/X11/app-defaults \
462 /usr/lib/X11/app-defaults \
463 /usr/local/lib/X11/app-defaults \
464 /usr/unsupported/lib/X11/app-defaults \
465 /usr/athena/lib/X11/app-defaults \
466 /usr/local/x11r5/lib/X11/app-defaults \
467 /usr/lpp/Xamples/lib/X11/app-defaults \
468 /lib/usr/lib/X11/app-defaults \
470 /usr/openwin/lib/app-defaults \
471 /usr/openwin/lib/X11/app-defaults \
472 /usr/openwin/share/lib/app-defaults \
473 /usr/openwin/share/lib/X11/app-defaults \
475 /X11R6/lib/app-defaults \
476 /X11R5/lib/app-defaults \
477 /X11R4/lib/app-defaults \
480 if test -d "$ac_dir"; then
481 ac_x_app_defaults=$ac_dir
487 AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
489 AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
490 [AC_PATH_X_APP_DEFAULTS_XMKMF
491 if test x"$ac_x_app_defaults" = x; then
492 AC_PATH_X_APP_DEFAULTS_DIRECT
494 if test x"$ac_x_app_defaults" = x; then
495 ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
497 # Record where we found app-defaults for the cache.
498 ac_cv_x_app_defaults="$ac_x_app_defaults"
500 eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
503 AC_DEFUN(AC_XPOINTER,
504 [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
505 [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
506 [XPointer foo = (XPointer) 0;],
507 [ac_cv_xpointer=yes],
508 [ac_cv_xpointer=no])])
509 if test "$ac_cv_xpointer" != yes; then
510 AC_DEFINE(XPointer,[char*])
514 # Random special-cases for X on certain pathological OSes.
515 # You know who you are.
517 AC_DEFUN(AC_X_RANDOM_PATHS,
521 # The following arcana was gleaned from conversations with
522 # Eric Schwartz <erics@col.hp.com>:
524 # On HPUX 10.x, the parts of X that HP considers "standard" live in
525 # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider
526 # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
527 # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems.
528 # Also, there are symlinks from /usr/include/ and /usr/lib/ into
529 # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
530 # you don't need any -I or -L arguments.
532 # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
533 # are the same division as 10.x. However, there are no symlinks to
534 # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
535 # arguments are always necessary.
537 # However, X11R6 was available on HPUX 9.x as a patch: if that
538 # patch was installed, then all of X11R6 went in to
539 # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
541 # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
542 # whether R5 was available as a patch; R6 undoubtedly was not.)
544 # So. We try and use the highest numbered pair of
545 # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
546 # that are available. We do not mix and match different versions
549 # Question I still don't know the answer to: (do you?)
551 # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
552 # /usr/contrib/X11R6/ could be installed as a patch, what was in
553 # that contrib directory? Did it contain so-called "standard"
554 # X11R6, or did it include Xaw and Xmu as well? If the former,
555 # where did one find Xaw and Xmu on 9.x R6 systems? Would this
556 # be a situation where one had to reach into the R5 headers and
557 # libs to find Xmu? That is, must both R6 and R5 directories
558 # be on the -I and -L lists in that case?
560 for version in X11R6 X11R5 X11R4 ; do
561 # if either pair of directories exists...
562 if test -d /usr/include/$version || test -d /usr/contrib/$version/include
564 # if contrib exists, use it...
565 if test -d /usr/contrib/$version/include ; then
566 X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
567 X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
569 # if the "standard" one exists, use it.
570 if test -d /usr/include/$version ; then
571 X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
572 X_LIBS="$X_LIBS -L/usr/lib/$version"
574 # since at least one of the pair exists, go no farther.
579 # Now find Motif. Thanks for not making xmkmf find this by
580 # default, you losers.
582 if test -d /usr/include/Motif2.1 ; then
583 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif2.1"
584 X_LIBS="$X_LIBS -L/usr/lib/Motif2.1"
585 elif test -d /usr/include/Motif1.2 ; then
586 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
587 X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
588 elif test -d /usr/include/Motif1.1 ; then
589 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
590 X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
593 # Now let's check for the pseudo-standard locations for OpenGL and XPM.
595 if test -d /opt/graphics/OpenGL/include ; then
596 # HP-UX 10.20 puts it here
597 X_CFLAGS="-I/opt/graphics/OpenGL/include $X_CFLAGS"
598 X_LIBS="-L/opt/graphics/OpenGL/lib $X_LIBS"
599 elif test -d /opt/Mesa/lib ; then
600 X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
601 X_LIBS="-L/opt/Mesa/lib $X_LIBS"
605 if test -d /opt/xpm/lib/X11 ; then
606 X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
607 X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
610 # On HPUX, default to installing in /opt/xscreensaver/ instead of
611 # in /usr/local/, unless there is already an xscreensaver in
612 # /usr/local/bin/. This can be overridden with the --prefix arg
613 # to configure. I'm not sure this is the right thing to do, but
614 # Richard Lloyd says so...
616 if test \! -x /usr/local/bin/xscreensaver ; then
617 ac_default_prefix=/opt/xscreensaver
623 # Thanks for not making xmkmf find this by default, pinheads.
624 # And thanks for moving things around again, too. Is this
625 # really the standard location now? What happened to the
626 # joke that this kind of thing went in /opt?
627 # cthomp says "answer: CDE (Common Disorganized Environment)"
629 if test -f /usr/dt/include/Xm/Xm.h ; then
630 X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
631 MOTIF_LIBS="$MOTIF_LIBS -L/usr/dt/lib -R/usr/dt/lib"
633 # Some versions of Slowlaris Motif require -lgen. But not all. Why?
634 AC_CHECK_LIB(gen, regcmp, [MOTIF_LIBS="$MOTIF_LIBS -lgen"])
640 # On MacOS X (10.x with "fink"), many things are under /sw/.
642 if test -d /sw/include ; then
643 X_CFLAGS="-I/sw/include $X_CFLAGS"
644 X_LIBS="-L/sw/lib $X_LIBS"
651 ###############################################################################
653 # Some utility functions to make checking for X things easier.
655 ###############################################################################
657 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
659 AC_DEFUN(AC_CHECK_X_HEADER, [
660 ac_save_CPPFLAGS="$CPPFLAGS"
661 if test \! -z "$includedir" ; then
662 CPPFLAGS="$CPPFLAGS -I$includedir"
664 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
665 AC_CHECK_HEADER([$1],[$2],[$3],[$4])
666 CPPFLAGS="$ac_save_CPPFLAGS"])
668 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
670 AC_DEFUN(AC_EGREP_X_HEADER, [
671 ac_save_CPPFLAGS="$CPPFLAGS"
672 if test \! -z "$includedir" ; then
673 CPPFLAGS="$CPPFLAGS -I$includedir"
675 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
676 AC_EGREP_HEADER([$1], [$2], [$3], [$4])
677 CPPFLAGS="$ac_save_CPPFLAGS"])
679 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
681 AC_DEFUN(AC_TRY_X_COMPILE, [
682 ac_save_CPPFLAGS="$CPPFLAGS"
683 if test \! -z "$includedir" ; then
684 CPPFLAGS="$CPPFLAGS -I$includedir"
686 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
687 AC_TRY_COMPILE([$1], [$2], [$3], [$4])
688 CPPFLAGS="$ac_save_CPPFLAGS"])
691 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
692 # Use this sparingly; it probably doesn't work very well on X programs.
694 AC_DEFUN(AC_CHECK_X_LIB, [
695 ac_save_CPPFLAGS="$CPPFLAGS"
696 ac_save_LDFLAGS="$LDFLAGS"
697 # ac_save_LIBS="$LIBS"
699 if test \! -z "$includedir" ; then
700 CPPFLAGS="$CPPFLAGS -I$includedir"
702 # note: $X_CFLAGS includes $x_includes
703 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
705 if test \! -z "$libdir" ; then
706 LDFLAGS="$LDFLAGS -L$libdir"
708 # note: $X_LIBS includes $x_libraries
709 LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
711 AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
712 CPPFLAGS="$ac_save_CPPFLAGS"
713 LDFLAGS="$ac_save_LDFLAGS"
714 # LIBS="$ac_save_LIBS"
717 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
718 # (But not the -L directories!)
720 AC_DEFUN(AC_TRY_X_RUN, [
721 ac_save_CPPFLAGS="$CPPFLAGS"
722 if test \! -z "$includedir" ; then
723 CPPFLAGS="$CPPFLAGS -I$includedir"
725 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
726 AC_TRY_RUN([$1], [$2], [$3], [$4])
727 CPPFLAGS="$ac_save_CPPFLAGS"])
731 # Usage: HANDLE_X_PATH_ARG([variable_name],
732 # [--command-line-option],
733 # [descriptive string])
735 # All of the --with options take three forms:
737 # --with-foo (or --with-foo=yes)
738 # --without-foo (or --with-foo=no)
741 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees
742 # a directory (string beginning with a slash) it checks to see whether
743 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
746 AC_DEFUN(HANDLE_X_PATH_ARG, [
752 AC_MSG_CHECKING([for [$3] headers])
755 X_CFLAGS="-I$d $X_CFLAGS"
758 AC_MSG_RESULT(not found ($d: no such directory))
761 AC_MSG_CHECKING([for [$3] libs])
764 X_LIBS="-L$d $X_LIBS"
767 AC_MSG_RESULT(not found ($d: no such directory))
770 # replace the directory string with "yes".
777 echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
778 echo " If it is a directory, then \`DIR/include' will be added to"
779 echo " the -I list, and \`DIR/lib' will be added to the -L list."
787 ###############################################################################
788 ###############################################################################
790 # End of function definitions. Now start actually executing stuff.
792 ###############################################################################
793 ###############################################################################
795 # random compiler setup
798 AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
806 # stuff for Makefiles
811 # By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'.
812 # That's wrong: it should be set to '${INSTALL}', so that one can
813 # implement the "install-strip" target properly (strip executables,
814 # but do not try to strip scripts.)
816 INSTALL_SCRIPT='${INSTALL}'
820 AC_CHECK_HEADERS(unistd.h)
829 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk)
831 AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
834 AC_CHECK_HEADERS(crypt.h sys/select.h)
837 if test -z "$PERL" ; then
838 # don't let it be blank...
844 if test "$have_x" != yes; then
845 AC_MSG_ERROR(Couldn't find X11 headers/libs. Try \`$0 --help'.)
848 AC_PATH_X_APP_DEFAULTS
853 ###############################################################################
857 ###############################################################################
860 GETTEXT_PACKAGE=xscreensaver
861 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE")
862 AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE")
863 AC_SUBST(GETTEXT_PACKAGE)
865 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"
869 ###############################################################################
871 # Check for -lXmu (some fucked up vendors don't ship it...)
873 ###############################################################################
876 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes],,
879 #include <X11/Intrinsic.h>])
880 if test "$have_xmu" = no ; then
881 XMU_SRCS='$(UTILS_SRC)/xmu.c'
882 XMU_OBJS='$(UTILS_BIN)/xmu.o'
892 ###############################################################################
894 # Check for the SunOS 4.1.x _get_wmShellWidgetClass bug.
895 # See comp.windows.x FAQ question 124. The right fix is to
896 # get OpenWindows 3.0 patches 100512-02 and 100573-03.
898 ###############################################################################
900 if test "$have_xmu" = yes ; then
903 AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
905 [ac_save_LDFLAGS="$LDFLAGS"
906 if test \! -z "$x_libraries" ; then
907 LDFLAGS="$LDFLAGS -L$x_libraries"
909 # Note: this trick never works! (Generally.)
910 # We're only getting away with using AC_TRY_LINK
911 # with X libraries because we know it's SunOS.
912 LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
914 [ac_cv_sunos_xmu_bug=no],
915 [ac_cv_sunos_xmu_bug=yes])
916 LDFLAGS="$ac_save_LDFLAGS"])
917 if test "$ac_cv_sunos_xmu_bug" = yes ; then
918 AC_CACHE_CHECK([whether the compiler understands -static],
920 [ac_save_LDFLAGS="$LDFLAGS"
921 LDFLAGS="$LDFLAGS -static"
922 AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
923 LDFLAGS="$ac_save_LDFLAGS"])
924 if test "$ac_cv_ld_static" = yes ; then
925 LDFLAGS="$LDFLAGS -static"
927 LDFLAGS="$LDFLAGS -Bstatic"
935 ###############################################################################
937 # Handle the --with-hackdir option
939 ###############################################################################
942 with_hackdir_req=unspecified
943 AC_ARG_WITH(hackdir,[
944 Installation options:
946 --with-hackdir=DIR Where to install the hundreds of demo executables.
947 Default: \`PREFIX/lib/xscreensaver/'],
948 [with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes])
950 if test x"$with_hackdir" = xyes; then
951 HACKDIR='${exec_prefix}/lib/xscreensaver'
952 elif test x"$with_hackdir" = xno; then
955 # there must be a better way than this...
956 if test -z "`echo $with_hackdir | sed 's@^/.*@@'`" ; then
958 HACKDIR=$with_hackdir
961 HACKDIR="\${exec_prefix}$with_hackdir"
965 # canonicalize slashes.
966 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
968 # This option used to be called --enable-subdir; make sure that is no longer
969 # used, since configure brain-damagedly ignores unknown --enable options.
972 AC_ARG_ENABLE(subdir,,[obsolete_enable=yes])
973 if test -n "$obsolete_enable"; then
974 echo "error: the --enable-subdir option has been replaced with"
975 echo " the new --with-hackdir option; see \`configure --help'"
976 echo " for more information."
981 ###############################################################################
983 # Handle the --with-configdir option
985 ###############################################################################
988 with_configdir_req=unspecified
989 AC_ARG_WITH(configdir,
990 [ --with-configdir=DIR Where to install the data files that describe each
991 of the display modes to the GUI.
992 Default: \`GNOMEPREFIX/control-center/screensavers/'
993 or \`PREFIX/lib/xscreensaver/config/', depending on
994 whether GNOME is available.
996 [with_configdir="$withval"; with_configdir_req="$withval"],
997 [with_configdir=yes])
999 if test x"$with_configdir" = xyes; then
1000 # filled in later...
1002 elif test x"$with_configdir" = xno; then
1003 echo "error: must be yes, or a pathname: --with-configdir=$with_configdir"
1006 # there must be a better way than this...
1007 if test -z "`echo $with_configdir | sed 's@^/.*@@'`" ; then
1009 HACK_CONF_DIR=$with_configdir
1012 HACK_CONF_DIR="\${exec_prefix}$with_configdir"
1019 ###############################################################################
1021 # Check for the SGI SCREEN_SAVER server extension.
1023 ###############################################################################
1026 with_sgi_req=unspecified
1027 AC_ARG_WITH(sgi-ext,
1028 [Except where noted, all of the --with options below can also take a
1029 directory argument: for example, \`--with-motif=/opt/Motif'. That would
1030 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
1031 to be added to the -L list, assuming those directories exist.
1033 By default, support for each of these options will be built in, if the
1034 relevant library routines exist. At run time, they will then be used
1035 only if the X server being used supports them. Each --with option has
1036 a corresponding --without option, to override building support for them
1039 Screen blanking and idle-detection options:
1041 --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.],
1042 [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
1044 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
1046 if test "$with_sgi" = yes; then
1047 AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
1049 AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],,
1050 [#include <X11/Xlib.h>])
1052 elif test "$with_sgi" != no; then
1053 echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
1058 ###############################################################################
1060 # Check for the MIT-SCREEN-SAVER server extension.
1062 ###############################################################################
1065 with_mit_req=unspecified
1066 AC_ARG_WITH(mit-ext,
1067 [ --with-mit-ext Include support for the MIT-SCREEN-SAVER extension.],
1068 [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
1070 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
1072 if test "$with_mit" = yes; then
1073 AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes],,
1074 [#include <X11/Xlib.h>])
1076 # Now check to see if it's really in the library; XF86Free-3.3 ships
1077 # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
1079 if test "$have_mit" = yes; then
1080 AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [true], [have_mit=no], -lm)
1082 if test "$have_mit" = no; then
1083 # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead
1084 # of in Xext. Thank you master, may I have another.
1085 AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
1086 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
1087 [true], -lX11 -lXext -lm)
1090 if test "$have_mit" = no; then
1091 # Double fuck! Looks like some versions of XFree86 (whichever version
1092 # it is that comes with RedHat Linux 2.0 -- I can't find a version
1093 # number) put this garbage in Xss instead of Xext. Thank you master,
1094 # may I have another.
1095 AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
1096 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
1097 [true], -lX11 -lXext -lm)
1100 if test "$have_mit" = yes; then
1101 AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
1106 elif test "$with_mit" != no; then
1107 echo "error: must be yes or no: --with-mit-ext=$with_mit"
1112 ###############################################################################
1114 # Check for the XIDLE server extension.
1116 ###############################################################################
1119 with_xidle_req=unspecified
1120 AC_ARG_WITH(xidle-ext,
1121 [ --with-xidle-ext Include support for the XIDLE extension.],
1122 [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
1124 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
1126 if test "$with_xidle" = yes; then
1127 AC_CHECK_X_HEADER(X11/extensions/xidle.h,
1129 AC_DEFINE(HAVE_XIDLE_EXTENSION)],,
1130 [#include <X11/Xlib.h>])
1131 elif test "$with_xidle" != no; then
1132 echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
1137 ###############################################################################
1139 # Check for the SGI-VIDEO-CONTROL server extension.
1141 ###############################################################################
1144 with_sgivc_req=unspecified
1145 AC_ARG_WITH(sgivc-ext,
1146 [ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension.],
1147 [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
1149 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
1151 if test "$with_sgivc" = yes; then
1153 # first check for XSGIvc.h
1154 AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],,
1155 [#include <X11/Xlib.h>])
1157 # if that succeeded, then check for the -lXsgivc
1158 if test "$have_sgivc" = yes; then
1160 AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
1161 [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
1165 # if that succeeded, then we've really got it.
1166 if test "$have_sgivc" = yes; then
1167 AC_DEFINE(HAVE_SGI_VC_EXTENSION)
1170 elif test "$with_sgivc" != no; then
1171 echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
1176 ###############################################################################
1178 # Check for the DPMS server extension.
1180 ###############################################################################
1183 with_dpms_req=unspecified
1184 AC_ARG_WITH(dpms-ext,
1185 [ --with-dpms-ext Include support for the DPMS extension.],
1186 [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
1188 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
1190 if test "$with_dpms" = yes; then
1192 # first check for dpms.h
1193 AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes],,
1194 [#include <X11/Xlib.h>
1195 #include <X11/Xmd.h>])
1197 # if that succeeded, then check for the DPMS code in the libraries
1198 if test "$have_dpms" = yes; then
1200 # first look in -lXext (this is where it is with XFree86 4.0)
1202 AC_CHECK_X_LIB(Xext, DPMSInfo, [have_dpms=yes], [true], -lXext -lX11)
1204 # if that failed, look in -lXdpms (this is where it was in XFree86 3.x)
1205 if test "$have_dpms" = no; then
1206 AC_CHECK_X_LIB(Xdpms, DPMSInfo,
1207 [have_dpms=yes; XDPMS_LIBS="-lXdpms"], [true],
1213 # if that succeeded, then we've really got it.
1214 if test "$have_dpms" = yes; then
1215 AC_DEFINE(HAVE_DPMS_EXTENSION)
1218 elif test "$with_dpms" != no; then
1219 echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
1224 ###############################################################################
1226 # Check for the XINERAMA server extension.
1228 ###############################################################################
1231 with_xinerama_req=unspecified
1232 AC_ARG_WITH(xinerama-ext,
1233 [ --with-xinerama-ext Include support for the XINERAMA extension.],
1234 [with_xinerama="$withval"; with_xinerama_req="$withval"],[with_xinerama=yes])
1236 HANDLE_X_PATH_ARG(with_xinerama, --with-xinerama-ext, XINERAMA)
1238 if test "$with_xinerama" = yes; then
1240 # first check for Xinerama.h
1241 AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes],,
1242 [#include <X11/Xlib.h>])
1244 # if that succeeded, then check for the XINERAMA code in the libraries
1245 if test "$have_xinerama" = yes; then
1247 # first look in -lXext
1249 AC_CHECK_X_LIB(Xext, XineramaQueryExtension, [have_xinerama=yes], [true],
1252 # if that failed, look in -lXinerama (this is where it is in XFree86 4.1.)
1253 if test "$have_xinerama" = no; then
1254 AC_CHECK_X_LIB(Xinerama, XineramaQueryExtension,
1255 [have_xinerama=yes; SAVER_LIBS="$SAVER_LIBS -lXinerama"],
1256 [true], -lXext -lX11)
1260 # if that succeeded, then we've really got it.
1261 if test "$have_xinerama" = yes; then
1262 AC_DEFINE(HAVE_XINERAMA)
1265 elif test "$with_xinerama" != no; then
1266 echo "error: must be yes or no: --with-xinerama-ext=$with_xinerama"
1271 ###############################################################################
1273 # Check for the XF86VMODE server extension (for virtual screens.)
1275 ###############################################################################
1278 with_xf86vmode_req=unspecified
1279 AC_ARG_WITH(xf86vmode-ext,
1280 [ --with-xf86vmode-ext Include support for XFree86 virtual screens.],
1281 [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"],
1282 [with_xf86vmode=yes])
1284 HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
1286 if test "$with_xf86vmode" = yes; then
1288 # first check for xf86vmode.h
1289 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],,
1290 [#include <X11/Xlib.h>])
1292 # if that succeeded, then check for the -lXxf86vm
1293 if test "$have_xf86vmode" = yes; then
1295 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
1296 [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
1297 [true], -lXext -lX11)
1300 # if that succeeded, then we've really got it.
1301 if test "$have_xf86vmode" = yes; then
1302 AC_DEFINE(HAVE_XF86VMODE)
1305 elif test "$with_xf86vmode" != no; then
1306 echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
1311 ###############################################################################
1313 # Check for the XF86VMODE server extension (for gamma fading.)
1315 ###############################################################################
1318 have_xf86gamma_ramp=no
1319 with_xf86gamma_req=unspecified
1320 AC_ARG_WITH(xf86gamma-ext,
1321 [ --with-xf86gamma-ext Include support for XFree86 gamma fading.],
1322 [with_xf86gamma="$withval"; with_xf86gamma_req="$withval"],
1323 [with_xf86gamma=yes])
1325 HANDLE_X_PATH_ARG(with_xf86gamma, --with-xf86gamma-ext, xf86gamma)
1327 if test "$with_xf86gamma" = yes; then
1329 # first check for xf86vmode.h, if we haven't already
1330 if test "$have_xf86vmode" = yes; then
1333 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],,
1334 [#include <X11/Xlib.h>])
1337 # if that succeeded, then check for the -lXxf86vm
1338 if test "$have_xf86gamma" = yes; then
1340 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGamma,
1341 [have_xf86gamma=yes],
1342 [true], -lXext -lX11)
1345 # check for the Ramp versions of the functions too.
1346 if test "$have_xf86gamma" = yes; then
1347 have_xf86gamma_ramp=no
1348 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGammaRamp,
1349 [have_xf86gamma_ramp=yes],
1350 [true], -lXext -lX11)
1353 # if those tests succeeded, then we've really got the functions.
1354 if test "$have_xf86gamma" = yes; then
1355 AC_DEFINE(HAVE_XF86VMODE_GAMMA)
1358 if test "$have_xf86gamma_ramp" = yes; then
1359 AC_DEFINE(HAVE_XF86VMODE_GAMMA_RAMP)
1362 # pull in the lib, if we haven't already
1363 if test "$have_xf86gamma" = yes -a "$have_xf86vmode" = no; then
1364 SAVER_LIBS="$SAVER_LIBS -lXxf86vm"
1367 elif test "$with_xf86gamma" != no; then
1368 echo "error: must be yes or no: --with-xf86gamma-ext=$with_xf86vmode"
1373 ###############################################################################
1375 # Check for XF86MiscSetGrabKeysState (but only bother if we are already
1376 # using other XF86 stuff.)
1378 ###############################################################################
1380 have_xf86miscsetgrabkeysstate=no
1381 if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then
1382 AC_CHECK_X_LIB(Xxf86misc, XF86MiscSetGrabKeysState,
1383 [have_xf86miscsetgrabkeysstate=yes],
1384 [true], -lXext -lX11)
1385 if test "$have_xf86miscsetgrabkeysstate" = yes ; then
1386 SAVER_LIBS="$SAVER_LIBS -lXxf86misc"
1387 AC_DEFINE(HAVE_XF86MISCSETGRABKEYSSTATE)
1392 ###############################################################################
1394 # Check for HP XHPDisableReset and XHPEnableReset.
1396 ###############################################################################
1398 AC_MSG_CHECKING([for XHPDisableReset in X11/XHPlib.h])
1399 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
1400 [AC_DEFINE(HAVE_XHPDISABLERESET)
1401 SAVER_LIBS="-lXhp11 $SAVER_LIBS"
1402 AC_MSG_RESULT(yes)],
1403 [AC_MSG_RESULT(no)])
1406 ###############################################################################
1408 # Check for /proc/interrupts.
1410 ###############################################################################
1412 have_proc_interrupts=no
1413 with_proc_interrupts_req=unspecified
1414 AC_ARG_WITH(proc-interrupts,
1415 [ --with-proc-interrupts Include support for consulting the /proc/interrupts
1416 file to notice keyboard activity.],
1417 [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
1418 [with_proc_interrupts=yes])
1420 if test "$with_proc_interrupts" = yes; then
1422 AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
1423 ac_cv_have_proc_interrupts,
1424 [ac_cv_have_proc_interrupts=no
1425 if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
1426 ac_cv_have_proc_interrupts=yes
1429 have_proc_interrupts=$ac_cv_have_proc_interrupts
1431 if test "$have_proc_interrupts" = yes; then
1432 AC_DEFINE(HAVE_PROC_INTERRUPTS)
1435 elif test "$with_proc_interrupts" != no; then
1436 echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
1441 ###############################################################################
1443 # The --enable-locking option
1445 ###############################################################################
1447 AC_ARG_ENABLE(locking,[
1448 Screen locking options:
1450 --enable-locking Compile in support for locking the display.
1451 --disable-locking Do not allow locking at all.],
1452 [enable_locking="$enableval"],[enable_locking=yes])
1453 if test "$enable_locking" = yes; then
1455 elif test "$enable_locking" = no; then
1456 AC_DEFINE(NO_LOCKING)
1458 echo "error: must be yes or no: --enable-locking=$enable_locking"
1464 ###############################################################################
1466 # The --enable-vt-locking option
1468 ###############################################################################
1470 #ac_vt_lockswitch=no
1471 #AC_ARG_ENABLE(vt-locking,[
1472 # --enable-vt-locking Compile in support for locking Virtual Terminals.
1473 # This is the default if the system supports it, and
1474 # if locking support is included (--enable-locking.)
1475 # --disable-vt-locking Do not allow locking of VTs, even if locking is
1477 # [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1478 #if test "$enable_vt_locking" = yes; then
1480 # AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1481 # [AC_TRY_COMPILE([#include <fcntl.h>
1482 # #include <sys/ioctl.h>
1483 # #include <sys/vt.h>],
1484 # [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1485 # [ac_cv_vt_lockswitch=yes],
1486 # [ac_cv_vt_lockswitch=no])])
1487 # ac_vt_lockswitch=$ac_cv_vt_lockswitch
1489 #elif test "$enable_vt_locking" = no; then
1492 # echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1496 #if test "$ac_vt_lockswitch" = yes; then
1497 # AC_DEFINE(HAVE_VT_LOCKSWITCH)
1498 # # the VT_LOCKSWITCH ioctl can only be used when running as root.
1499 # # #### but it doesn't work yet, so don't worry about that for now.
1504 ###############################################################################
1508 ###############################################################################
1512 # Solaris systems tend to come with PAM misconfigured.
1513 # Don't build it by default, even if the headers exist.
1517 # Default to building PAM support on all other systems, if it exists.
1518 with_pam_default=yes
1523 with_pam_req=unspecified
1526 [ --with-pam Include support for PAM (Pluggable Auth Modules.)],
1527 [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1529 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1531 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1532 AC_CACHE_CHECK([for PAM], ac_cv_pam,
1533 [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1536 if test "$ac_cv_pam" = yes ; then
1539 PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1541 # libpam typically requires dlopen and dlsym. On FreeBSD,
1542 # those are in libc. On Linux and Solaris, they're in libdl.
1543 AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1545 AC_MSG_CHECKING(how to call pam_strerror)
1546 AC_CACHE_VAL(ac_cv_pam_strerror_args,
1547 [AC_TRY_COMPILE([#include <stdio.h>
1549 #include <security/pam_appl.h>],
1550 [pam_handle_t *pamh = 0;
1551 char *s = pam_strerror(pamh, PAM_SUCCESS);],
1552 [ac_pam_strerror_args=2],
1553 [AC_TRY_COMPILE([#include <stdio.h>
1555 #include <security/pam_appl.h>],
1557 pam_strerror(PAM_SUCCESS);],
1558 [ac_pam_strerror_args=1],
1559 [ac_pam_strerror_args=0])])
1560 ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1561 ac_pam_strerror_args=$ac_cv_pam_strerror_args
1562 if test "$ac_pam_strerror_args" = 1 ; then
1563 AC_MSG_RESULT(one argument)
1564 elif test "$ac_pam_strerror_args" = 2 ; then
1565 AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1566 AC_MSG_RESULT(two arguments)
1568 AC_MSG_RESULT(unknown)
1574 ###############################################################################
1576 # Check for Kerberos.
1578 ###############################################################################
1582 with_kerberos_req=unspecified
1584 AC_ARG_WITH(kerberos,
1585 [ --with-kerberos Include support for Kerberos authentication.],
1586 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1588 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1590 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1591 AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
1592 [AC_TRY_X_COMPILE([#include <krb.h>],,
1593 [ac_cv_kerberos=yes],
1594 [ac_cv_kerberos=no])])
1595 AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
1596 [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
1597 [ac_cv_kerberos5=yes],
1598 [ac_cv_kerberos5=no])])
1600 if test "$ac_cv_kerberos" = yes ; then
1602 AC_DEFINE(HAVE_KERBEROS)
1605 if test "$ac_cv_kerberos5" = yes ; then
1607 # Andrew Snare <ajs@pigpond.com> wrote:
1609 # You were assuming that if kerberosV (krb5) was found, then kerberosIV
1610 # (krb4) was also available. This turns out not to be the case with
1611 # mit-krb-1.2.7; apparently backwards-compatibility with KerberosIV
1614 # So, disable kerberosV support if libkrb4 can't be found.
1615 # This is not the best solution, but it makes the compile not fail.
1617 AC_CHECK_X_LIB(krb4, krb_get_tf_realm,
1618 [have_kerberos=yes],
1620 if test "$have_kerberos" = yes ; then
1622 AC_DEFINE(HAVE_KERBEROS)
1623 AC_DEFINE(HAVE_KERBEROS5)
1626 AC_MSG_WARN([Cannot find compat lib (libkrb4) needed to use Kerberos 5])
1631 if test "$have_kerberos5" = yes ; then
1632 # from Matt Knopp <mhat@infocalypse.netlag.com>
1633 # (who got it from amu@mit.edu)
1635 PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"
1637 # jwz: MacOS X uses -lkrb5, but not -lcrypt
1638 AC_CHECK_X_LIB(crypt, crypt, [PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1640 elif test "$have_kerberos" = yes ; then
1641 # from Tim Showalter <tjs@psaux.com> for FreeBSD 4.2
1642 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err"
1645 if test "$have_kerberos" = yes ; then
1646 AC_CHECK_FUNC(res_search,,
1647 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1648 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1654 ###############################################################################
1656 # Check for the nine billion variants of shadow passwords...
1658 ###############################################################################
1663 with_shadow_req=unspecified
1666 [ --with-shadow Include support for shadow password authentication.],
1667 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1669 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1671 if test "$enable_locking" = no ; then
1677 ###############################################################################
1679 # Check for Sun "adjunct" passwords.
1681 ###############################################################################
1683 if test "$with_shadow" = yes ; then
1684 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1685 [AC_TRY_X_COMPILE([#include <stdlib.h>
1687 #include <sys/types.h>
1688 #include <sys/label.h>
1689 #include <sys/audit.h>
1690 #include <pwdadj.h>],
1691 [struct passwd_adjunct *p = getpwanam("nobody");
1692 const char *pw = p->pwa_passwd;],
1693 [ac_cv_sun_adjunct=yes],
1694 [ac_cv_sun_adjunct=no])])
1695 if test "$ac_cv_sun_adjunct" = yes; then
1696 have_shadow_adjunct=yes
1703 ###############################################################################
1705 # Check for DEC and SCO so-called "enhanced" security.
1707 ###############################################################################
1709 if test "$with_shadow" = yes ; then
1710 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1711 [AC_TRY_X_COMPILE([#include <stdlib.h>
1713 #include <sys/types.h>
1715 #include <sys/security.h>
1717 [struct pr_passwd *p;
1719 set_auth_parameters(0, 0);
1720 check_auth_parameters();
1721 p = getprpwnam("nobody");
1722 pw = p->ufld.fd_encrypt;],
1723 [ac_cv_enhanced_passwd=yes],
1724 [ac_cv_enhanced_passwd=no])])
1725 if test $ac_cv_enhanced_passwd = yes; then
1726 have_shadow_enhanced=yes
1730 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1731 # (I'm told it needs -lcurses too, but I don't understand why.)
1732 # But on DEC, it's in -lsecurity.
1734 AC_CHECK_LIB(prot, getprpwnam,
1735 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1736 [AC_CHECK_LIB(security, getprpwnam,
1737 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1742 ###############################################################################
1744 # Check for HP's entry in the "Not Invented Here" Sweepstakes.
1746 ###############################################################################
1748 if test "$with_shadow" = yes ; then
1749 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1750 [AC_TRY_X_COMPILE([#include <stdlib.h>
1752 #include <sys/types.h>
1754 #include <hpsecurity.h>
1756 [struct s_passwd *p = getspwnam("nobody");
1757 const char *pw = p->pw_passwd;],
1758 [ac_cv_hpux_passwd=yes],
1759 [ac_cv_hpux_passwd=no])])
1760 if test "$ac_cv_hpux_passwd" = yes; then
1761 have_shadow_hpux=yes
1765 # on HPUX, bigcrypt is in -lsec
1766 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1771 ###############################################################################
1773 # Check for FreeBSD-style shadow passwords.
1775 # On FreeBSD, getpwnam() and friends work just like on non-shadow-
1776 # password systems -- except you only get stuff in the pw_passwd field
1777 # if the running program is setuid. So, guess that we've got this
1778 # lossage to contend with if /etc/master.passwd exists, and default to
1779 # a setuid installation.
1781 ###############################################################################
1783 if test "$with_shadow" = yes ; then
1784 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1785 [if test -f /etc/master.passwd ; then
1786 ac_cv_master_passwd=yes
1788 ac_cv_master_passwd=no
1790 if test "$ac_cv_master_passwd" = yes; then
1796 ###############################################################################
1798 # Check for traditional (ha!) shadow passwords.
1800 ###############################################################################
1802 if test "$with_shadow" = yes ; then
1803 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1804 [AC_TRY_X_COMPILE([#include <stdlib.h>
1806 #include <sys/types.h>
1808 #include <shadow.h>],
1809 [struct spwd *p = getspnam("nobody");
1810 const char *pw = p->sp_pwdp;],
1812 [ac_cv_shadow=no])])
1813 if test "$ac_cv_shadow" = yes; then
1817 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1819 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1820 if test "$have_getspnam" = no ; then
1821 AC_CHECK_LIB(gen, getspnam,
1822 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1828 ###############################################################################
1830 # Check for other libraries needed for non-shadow passwords.
1832 ###############################################################################
1834 if test "$enable_locking" = yes ; then
1836 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1838 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1839 if test "$have_crypt" = no ; then
1840 AC_CHECK_LIB(crypt, crypt,
1841 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1846 # Most of the above shadow mechanisms will have set need_setuid to yes,
1847 # if they were found. But, on some systems, we need setuid even when
1848 # using plain old vanilla passwords.
1850 if test "$enable_locking" = yes ; then
1852 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1859 if test "$have_shadow_adjunct" = yes ; then
1860 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1861 elif test "$have_shadow_enhanced" = yes ; then
1862 AC_DEFINE(HAVE_ENHANCED_PASSWD)
1863 elif test "$have_shadow_hpux" = yes ; then
1864 AC_DEFINE(HAVE_HPUX_PASSWD)
1865 elif test "$have_shadow" = yes ; then
1866 AC_DEFINE(HAVE_SHADOW_PASSWD)
1870 ###############################################################################
1874 ###############################################################################
1877 with_motif_req=unspecified
1879 User interface options:
1881 --with-motif Use the Motif toolkit for the user interface
1882 (not recommended.)],
1883 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=yes])
1885 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
1887 if test "$with_motif" != yes -a "$with_motif" != no ; then
1888 echo "error: must be yes or no: --with-motif=$with_motif"
1892 if test "$with_motif" = yes; then
1894 AC_CHECK_X_HEADER(Xm/Xm.h,
1896 AC_DEFINE(HAVE_MOTIF)
1897 MOTIF_LIBS="$MOTIF_LIBS -lXm"],,
1898 [#include <stdlib.h>
1900 #include <X11/Intrinsic.h>])
1904 if test "$have_motif" = yes; then
1905 AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],,
1906 [#include <stdlib.h>
1908 #include <X11/Intrinsic.h>])
1912 ###############################################################################
1914 # Check for -lgtk (and Gnome stuff)
1916 ###############################################################################
1920 with_gtk_req=unspecified
1922 [ --with-gtk Use the Gtk toolkit for the user interface.],
1923 [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
1925 # if --with-gtk=/directory/ was specified, remember that directory so that
1926 # we can also look for the `gtk-config' program in that directory.
1936 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
1938 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
1939 echo "error: must be yes or no: --with-gtk=$with_gtk"
1944 with_gnome_req=unspecified
1946 [ --with-gnome Include support for the Gnome 1.x Control Center.
1947 (This option is not needed with GTK 2.x / Gnome 2.x.)
1949 [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
1951 # if --with-gnome=/directory/ was specified, remember that directory so that
1952 # we can also look for the `gnome-config' program in that directory.
1953 case "$with_gnome" in
1955 gnome_dir="$with_gnome"
1962 HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome)
1964 if test "$with_gnome" != yes -a "$with_gnome" != no ; then
1965 echo "error: must be yes or no: --with-gnome=$with_gnome"
1969 parse_gtk_version_string() {
1972 maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
1973 min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
1975 ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
1976 if test -z "$ac_gtk_version"; then
1977 ac_gtk_version=unknown
1978 ac_gtk_version_string=unknown
1986 if test "$with_gtk" = yes; then
1989 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
1990 # look in /foo/bin/ for glib-config, gtk-config, and gnome-config.
1994 if test ! -z "$gtk_dir"; then
1995 # canonicalize slashes.
1996 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
1997 gtk_path="$foo:$gtk_path"
2000 if test ! -z "$gnome_dir"; then
2001 # canonicalize slashes.
2002 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2003 gtk_path="$foo:$gtk_path"
2006 AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path)
2008 if test -n "$pkg_config" ; then
2011 # run pkg-config based tests.
2014 pkg_check_version() {
2015 if test "$ok" = yes ; then
2018 AC_MSG_CHECKING(for $req)
2019 if $pkg_config --exists "$req" ; then
2020 vers=`$pkg_config --modversion "$req"`
2021 if $pkg_config --exists "$req >= $min" ; then
2022 AC_MSG_RESULT($vers)
2026 AC_MSG_RESULT($vers (wanted >= $min))
2038 AC_MSG_RESULT(checking for GTK 2.x with pkg-config based tests...)
2041 pkg_check_version gtk+-2.0 2.0.1 ; ac_gtk_version_string="$vers"
2042 pkg_check_version gmodule-2.0 2.0.0
2043 pkg_check_version libxml-2.0 2.4.6
2044 pkg_check_version libglade-2.0 1.99.0
2045 # pkg_check_version gdk_pixbuf 0.1
2048 if test "$have_gtk" = yes; then
2050 AC_DEFINE(HAVE_GTK2)
2052 if test -n "$ac_gtk_version_string" ; then
2053 gtk2_halfassed="$ac_gtk_version_string"
2054 gtk2_halfassed_lib="$req"
2058 if test "$have_gtk" = no; then
2060 # we don't have GTK 2. Let's look for GTK 1.
2062 AC_MSG_RESULT(checking for GTK 1.x with pkg-config based tests...)
2066 pkg_check_version gtk+ 1.2 ; ac_gtk_version_string="$vers"
2067 pkg_check_version glib 1.0
2068 pkg_check_version gdk_pixbuf 0.1
2071 # Now check for Gnome...
2073 if test "$have_gtk" = yes -a "$with_gnome" = yes; then
2076 pkg_check_version capplet 1.0
2077 pkg_check_version gnomeui 1.0
2078 pkg_check_version gdk_pixbuf 0.1
2081 if test "$have_gnome" = no; then
2084 AC_DEFINE(HAVE_CRAPPLET)
2089 if test "$have_gtk" = yes; then
2090 parse_gtk_version_string
2096 if test "$have_gtk" = yes; then
2097 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
2098 [ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`])
2099 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
2100 [ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs`])
2102 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
2103 ac_gtk_config_libs=$ac_cv_gtk_config_libs
2105 ac_gnome_config_cflags=$ac_gtk_config_cflags
2106 ac_gnome_config_libs=$ac_gtk_config_libs
2111 # run {gnome,gtk}-config based tests.
2113 AC_MSG_RESULT(checking for GTK 1.x with gtk-config based tests...)
2115 AC_PATH_PROGS(glib_config, glib12-config glib-config,, $gtk_path)
2116 AC_PATH_PROGS(gtk_config, gtk12-config gtk-config,, $gtk_path)
2118 if test "$with_gnome" = yes; then
2119 AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
2122 if test -n "$glib_config" -a -n "$gtk_config" ; then
2124 if test "$with_gnome" = yes -a -n "$gnome_config" ; then
2129 if test "$have_gtk" = yes; then
2130 AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
2131 [ac_cv_gtk_version_string=`$gtk_config --version`])
2132 ac_gtk_version_string=$ac_cv_gtk_version_string
2133 parse_gtk_version_string
2136 if test "$have_gtk" = yes; then
2137 if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
2145 if test "$have_gtk" = yes; then
2146 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
2147 [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
2148 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
2149 [ac_cv_gtk_config_libs=`$gtk_config --libs`])
2151 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
2152 ac_gtk_config_libs=$ac_cv_gtk_config_libs
2154 # Check for Gnome Capplet support.
2155 # Note that this is only needed with Gnome 1.x, not Gnome 2.x.
2156 # In a Gnome 2.x world, libcapplet will not exist.
2157 # (In fact, this likely won't even be checked, since in a Gnome 2.x
2158 # world, we will probably be up in the "$pkg_config" branch instead
2159 # of here in the "$gnome_config" branch.)
2161 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2162 gnome_config_libs="gtk capplet gnomeui gdk_pixbuf"
2163 AC_MSG_CHECKING(for Gnome capplet includes)
2164 AC_CACHE_VAL(ac_cv_gnome_config_cflags,
2165 [if ( $gnome_config --cflags $gnome_config_libs 2>&1 | \
2166 grep Unknown >/dev/null ) ; then
2167 ac_cv_gnome_config_cflags=''
2169 ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
2171 ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
2172 if test "$ac_gnome_config_cflags" = "" ; then
2176 AC_MSG_RESULT($ac_gnome_config_cflags)
2180 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2181 AC_MSG_CHECKING(for Gnome capplet libs)
2182 AC_CACHE_VAL(ac_cv_gnome_config_libs,
2183 [if ( $gnome_config --libs $gnome_config_libs 2>&1 |
2184 grep Unknown >/dev/null ) ; then
2185 ac_cv_gnome_config_libs=''
2187 ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
2189 ac_gnome_config_libs=$ac_cv_gnome_config_libs
2190 if test "$ac_gnome_config_libs" = "" ; then
2194 AC_MSG_RESULT($ac_gnome_config_libs)
2198 # If we have Gnome, then override the gtk-config values with
2199 # the gnome-config values.
2201 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2202 ac_gtk_config_cflags=$ac_gnome_config_cflags
2203 ac_gtk_config_libs=$ac_gnome_config_libs
2204 AC_DEFINE(HAVE_CRAPPLET)
2207 fi # end of {gnome,gtk}-config based tests
2209 if test "$have_gtk" = yes -a "$have_gtk2" = no; then
2210 # check for this function that was not in libcapplet 1.2.
2211 # (only needed in Gnome/Gtk 1.x, not Gnome/Gtk 2.x)
2212 AC_CHECK_X_LIB(capplet, capplet_widget_changes_are_immediate,
2213 [AC_DEFINE(HAVE_CRAPPLET_IMMEDIATE)], [true],
2214 $ac_gnome_config_libs)
2219 if test "$have_gtk" = yes; then
2220 if test -n "$pkg_config"; then
2221 if test "$have_gtk2" = yes; then
2222 GNOME_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
2224 GNOME_DATADIR=`$pkg_config --variable=prefix gtk+`
2227 GNOME_DATADIR=`$gtk_config --prefix`
2229 GNOME_DATADIR="$GNOME_DATADIR/share"
2232 # .desktop files go in different places in Gnome 1.x and Gnome 2.x...
2233 if test "$have_gtk2" = yes; then
2234 GNOME_PANELDIR='$(GNOME_PANELDIR2)'
2236 GNOME_PANELDIR='$(GNOME_PANELDIR1)'
2240 if test "$have_gtk" = yes; then
2241 INCLUDES="$INCLUDES $ac_gtk_config_cflags"
2242 GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
2245 if test "$have_gtk2" = yes; then
2248 GTK_EXTRA_OBJS="\$(GTK_EXTRA_OBJS)"
2255 # Check for the Gnome Help Browser.
2257 if test "$have_gtk" = yes; then
2258 AC_CHECK_PROGS(have_gnome_help, yelp gnome-help-browser, no)
2259 if test "$have_gnome_help" != no; then
2265 ###############################################################################
2269 ###############################################################################
2272 with_xml_req=unspecified
2275 [ --with-xml The XML toolkit is needed for some parts of
2276 the Gtk interface. Without it, the configuration
2277 interface will be much less featureful.],
2278 [with_xml="$withval"; with_xml_req="$withval"],[with_xml=yes])
2280 # if --with-xml=/directory/ was specified, remember that directory so that
2281 # we can also look for the `xml-config' program in that directory.
2291 HANDLE_X_PATH_ARG(with_xml, --with-xml, XML)
2293 if test "$with_xml" != yes -a "$with_xml" != no ; then
2294 echo "error: must be yes or no: --with-xml=$with_xml"
2298 if test "$with_xml" = yes; then
2302 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2303 # look in /foo/bin/ for for xml-config.
2307 if test ! -z "$gtk_dir"; then
2308 # canonicalize slashes.
2309 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2310 xml_path="$foo:$xml_path"
2313 if test ! -z "$gnome_dir"; then
2314 # canonicalize slashes.
2315 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2316 xml_path="$foo:$xml_path"
2319 if test -n "$pkg_config" ; then
2322 # run pkg-config based tests.
2327 # If we have Gtk 2.x, then *only* XML 2.x will work.
2328 # If we have Gtk 1.x, or don't have Gtk at all, then
2329 # either XML 1.x or 2.x will work.
2331 # First check for XML 2.x.
2333 pkg_check_version libxml-2.0 2.4.6
2335 # If that didn't work (we don't have XML 2.x) and we *don't* have
2336 # Gtk 2.x, then check to see if we have XML 1.x
2338 if test "$ok" = no -a "$have_gtk2" = no; then
2340 pkg_check_version libxml 1.0
2345 if test "$have_xml" = yes; then
2346 AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2347 [ac_cv_xml_config_cflags=`$pkg_config --cflags $pkgs`])
2348 AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2349 [ac_cv_xml_config_libs=`$pkg_config --libs $pkgs`])
2350 ac_xml_config_cflags=$ac_cv_xml_config_cflags
2351 ac_xml_config_libs=$ac_cv_xml_config_libs
2357 # run {xml2,xml}-config based tests.
2360 AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path)
2362 # If we found the xml-config program, run it to get flags.
2364 if test -n "$xml_config" ; then
2365 AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2366 [ac_cv_xml_config_cflags=`$xml_config --cflags`])
2367 AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2368 [ac_cv_xml_config_libs=`$xml_config --libs`])
2369 ac_xml_config_cflags=$ac_cv_xml_config_cflags
2370 ac_xml_config_libs=$ac_cv_xml_config_libs
2373 ac_save_xml_CPPFLAGS="$CPPFLAGS"
2374 CPPFLAGS="$CPPFLAGS $ac_xml_config_cflags"
2376 # first try <libxml/parser.h> which is the new way...
2378 AC_CHECK_X_HEADER(libxml/xmlIO.h, [have_xml=yes],,
2379 [#include <libxml/parser.h>])
2381 # if that didn't work, then try just <parser.h> which is the old way...
2383 if test "$have_xml" = no; then
2384 AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes; have_old_xml=yes],,
2385 [#include <parser.h>])
2388 CPPFLAGS="$ac_save_xml_CPPFLAGS"
2393 if test "$have_xml" = yes; then
2394 # we have the XML headers; now make sure zlib is around.
2395 # yes, it's stupid we have to do this too, but there is
2396 # dependency screwage in Gnome.
2397 AC_CHECK_X_LIB(z, zlibVersion, [have_zlib=yes])
2398 if test "$have_zlib" = no; then
2404 if test "$have_xml" = yes; then
2405 # we have the header, now check for the library
2408 AC_CHECK_X_LIB(c, xmlParseChunk,
2411 XML_LIBS="$ac_xml_config_libs"
2412 AC_DEFINE(HAVE_XML)],
2414 $ac_xml_config_libs)
2417 if test "$have_xml" = yes; then
2418 INCLUDES="$INCLUDES $ac_xml_config_cflags"
2419 GTK_LIBS="$GTK_LIBS $ac_xml_config_libs"
2421 if test "$have_old_xml" = yes; then
2422 AC_DEFINE(HAVE_OLD_XML_HEADERS)
2429 ###############################################################################
2431 # Checking whether Motif is really Lesstif.
2433 ###############################################################################
2436 if test "$have_motif" = yes ; then
2437 AC_CACHE_CHECK([whether Motif is really LessTif],
2439 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
2440 [long vers = LesstifVersion;],
2441 [ac_cv_have_lesstif=yes],
2442 [ac_cv_have_lesstif=no])])
2443 have_lesstif=$ac_cv_have_lesstif
2447 lesstif_version=unknown
2448 lesstif_version_string=unknown
2450 if test "$have_lesstif" = yes ; then
2452 echo unknown > conftest-lt
2453 AC_CACHE_CHECK([LessTif version number],
2454 ac_cv_lesstif_version_string,
2455 [AC_TRY_X_RUN([#include <stdio.h>
2458 FILE *f = fopen("conftest-lt", "w");
2460 fprintf(f, "%d %d.%d\n", LesstifVersion,
2461 LESSTIF_VERSION, LESSTIF_REVISION);
2465 [ltv=`cat conftest-lt`
2466 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
2467 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
2468 [ac_cv_lesstif_version=unknown
2469 ac_cv_lesstif_version_string=unknown],
2470 [ac_cv_lesstif_version=unknown
2471 ac_cv_lesstif_version_string=unknown])])
2473 lesstif_version=$ac_cv_lesstif_version
2474 lesstif_version_string=$ac_cv_lesstif_version_string
2479 if test "$have_motif" = yes ; then
2481 echo unknown > conftest-mt
2482 AC_CACHE_CHECK([Motif version number],
2483 ac_cv_motif_version_string,
2484 [AC_TRY_X_RUN([#include <stdio.h>
2487 FILE *f = fopen("conftest-mt", "w");
2489 fprintf(f, "%d %d.%d\n", XmVersion,
2490 XmVERSION, XmREVISION);
2494 [mtv=`cat conftest-mt`
2495 ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
2496 ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
2497 [ac_cv_motif_version=unknown
2498 ac_cv_motif_version_string=unknown],
2499 [ac_cv_motif_version=unknown
2500 ac_cv_motif_version_string=unknown])])
2502 motif_version=$ac_cv_motif_version
2503 motif_version_string=$ac_cv_motif_version_string
2508 ###############################################################################
2510 # Checking whether Motif requires -lXpm.
2512 # If this is Motif 2.x, and we have XPM, then link against XPM as well.
2513 # The deal is, Motif 2.x requires XPM -- but it's a compilation option
2514 # of the library whether to build the XPM code into libXm, or whether
2515 # to rely on an external libXm. So the only way to tell whether XPM is
2516 # a link-time requirement is to examine libXm.a, which is very
2517 # difficult to do in an autoconf script. So... if it's Motif 2.x, we
2518 # always link against XPM if the XPM lib exists (and this will be a
2519 # no-op if libXm happens to already have the XPM code in it.)
2521 ###############################################################################
2523 motif_requires_xpm=no
2524 if test "$have_motif" = yes ; then
2525 AC_MSG_CHECKING(whether Motif requires XPM)
2526 if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
2528 motif_requires_xpm=yes
2529 AC_MSG_RESULT(maybe)
2536 ###############################################################################
2538 # Checking whether Motif requires -lXp.
2540 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
2541 # Extension". Why this extension isn't in -lXext with all the others,
2544 ###############################################################################
2547 if test "$have_motif" = yes ; then
2549 AC_CHECK_X_LIB(Xp, XpQueryExtension,
2550 [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
2551 [true], -lX11 -lXext -lm)
2555 ###############################################################################
2557 # Checking whether Motif requires -lXintl (for _Xsetlocale.)
2559 ###############################################################################
2562 if test "$have_motif" = yes ; then
2563 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
2565 if test "$have_xintl" = yes; then
2566 MOTIF_LIBS="$MOTIF_LIBS -lXintl"
2571 ###############################################################################
2573 # Check for -lGL or -lMesaGL.
2575 ###############################################################################
2579 with_gl_req=unspecified
2584 --with-gl Build those demos which depend on OpenGL.],
2585 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
2587 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
2589 ac_mesagl_version=unknown
2590 ac_mesagl_version_string=unknown
2592 if test "$with_gl" = yes; then
2593 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
2594 if test "$have_gl" = yes ; then
2595 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no,
2596 [#include <GL/gl.h>])
2599 # If we have the headers, try and figure out which vendor it's from.
2601 if test "$have_gl" = yes ; then
2603 # We need to know whether it's MesaGL so that we know which libraries
2606 AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
2607 [ac_cv_have_mesa_gl=no
2608 AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
2610 ac_have_mesa_gl=$ac_cv_have_mesa_gl
2617 # Some versions of MesaGL are compiled to require -lpthread.
2618 # So if the Mesa headers exist, and -lpthread exists, then always
2619 # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
2621 if test "$ac_have_mesa_gl" = yes; then
2622 AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
2626 # If we have Mesa headers, check to see if we can link against -lMesaGL.
2627 # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
2628 # Else, warn that GL is busted. (We have the headers, but no libs.)
2631 if test "$ac_have_mesa_gl" = yes ; then
2632 AC_CHECK_X_LIB(MesaGL, glXCreateContext,
2634 GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
2635 [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
2638 if test "$gl_lib_1" = "" ; then
2639 AC_CHECK_X_LIB(GL, glXCreateContext,
2641 GL_LIBS="-lGL -lGLU $GL_LIBS"],
2642 [], -lGLU $GL_LIBS -lX11 -lXext -lm)
2645 if test "$gl_lib_1" = "" ; then
2646 # we have headers, but no libs -- bail.
2651 # linking works -- we can build the GL hacks.
2653 if test "$ac_have_mesa_gl" = yes ; then
2654 AC_DEFINE(HAVE_MESA_GL)
2660 # Now that we know we have GL headers and libs, do some more GL testing.
2663 if test "$have_gl" = yes ; then
2664 # If it's MesaGL, we'd like to issue a warning if the version number
2665 # is less than or equal to 2.6, because that version had a security bug.
2667 if test "$ac_have_mesa_gl" = yes; then
2669 AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
2670 [cat > conftest.$ac_ext <<EOF
2671 #line __oline__ "configure"
2672 #include "confdefs.h"
2674 #ifndef MESA_MAJOR_VERSION
2675 # include <GL/xmesa.h>
2676 # ifdef XMESA_MAJOR_VERSION
2677 /* Around Mesa 3.2, they took out the Mesa version number, so instead,
2678 we have to check the XMesa version number (the number of the X protocol
2679 support, which seems to be the same as the Mesa version number.)
2681 # define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
2682 # define MESA_MINOR_VERSION XMESA_MINOR_VERSION
2684 /* Oh great. Some time after 3.4, they took out the xmesa.h header file,
2685 so we have no way of telling what version of Mesa this is at all.
2686 So, we'll guess that the osmesa version (the "offscreen protocol")
2687 is less than or equal to the real mesa version number. Except that
2688 if OSmesa is 3.3, assume at least Mesa 3.4, since OSmesa was 3.3 in
2689 Mesa 3.4. And Mesa 3.3 had xmesa.h. What a complete load of shit!
2691 # include <GL/osmesa.h>
2692 # define MESA_MAJOR_VERSION OSMESA_MAJOR_VERSION
2693 # define MESA_MINOR_VERSION OSMESA_MINOR_VERSION or newer, probably?
2694 # if OSMESA_MAJOR_VERSION == 3 && OSMESA_MINOR_VERSION == 3
2695 # undef MESA_MINOR_VERSION
2696 # define MESA_MINOR_VERSION 4 or newer, probably?
2700 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
2703 ac_save_CPPFLAGS="$CPPFLAGS"
2704 if test \! -z "$includedir" ; then
2705 CPPFLAGS="$CPPFLAGS -I$includedir"
2707 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2709 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | grep configure:`
2713 mglv=`echo "$mglv" | sed -n \
2714 's/^configure: *\([0-9][0-9]*\) *\([0-9].*\)$/\1.\2/p'`
2717 rm -f conftest.$ac_ext
2719 CPPFLAGS="$ac_save_CPPFLAGS"
2721 if test "$mglv" = ""; then
2722 ac_mesagl_version=unknown
2723 ac_mesagl_version_string=unknown
2725 ac_mesagl_version_string="$mglv"
2728 maj=`echo "$mglv" | sed -n 's/^\([0-9][0-9]*\)\..*$/\1/p'`
2729 min=`echo "$mglv" | sed -n 's/^.*\.\([0-9][0-9]*\).*$/\1/p'`
2731 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
2732 if test -z "$ac_mesagl_version"; then
2733 ac_mesagl_version=unknown
2734 ac_mesagl_version_string=unknown
2737 ac_cv_mesagl_version=$ac_mesagl_version
2738 ac_cv_mesagl_version_string=$ac_mesagl_version_string
2740 ac_mesagl_version=$ac_cv_mesagl_version
2741 ac_mesagl_version_string=$ac_cv_mesagl_version_string
2745 # Check for OpenGL 1.1 features.
2747 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
2748 [true], $GL_LIBS -lX11 -lXext -lm)
2751 elif test "$with_gl" != no; then
2752 echo "error: must be yes or no: --with-gl=$with_gl"
2757 ###############################################################################
2761 ###############################################################################
2764 with_gle_req=unspecified
2767 [ --with-gle Build those demos which depend on GLE
2768 (the OpenGL "extrusion" library.)],
2769 [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
2771 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
2775 if test "$have_gl" = no ; then
2777 elif test "$with_gle" = yes; then
2779 AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no,
2780 [#include <GL/gl.h>])
2781 if test "$have_gle3" = yes ; then
2784 AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no,
2785 [#include <GL/gl.h>])
2786 if test "$have_gle" = yes ; then
2787 AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no,
2788 [#include <GL/gl.h>])
2792 if test "$have_gle" = yes ; then
2795 AC_CHECK_X_LIB(gle, gleCreateGC,
2796 [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
2797 [], $GL_LIBS -lX11 -lXext -lm)
2799 if test "$have_gle" = yes ; then
2803 # sometimes the libmatrix stuff is included in libgle. look there first.
2805 # I don't get it. For some reason, this test passes on SGI, as if
2806 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
2807 # Yet the link is succeeding. Why???
2809 # AC_CHECK_X_LIB(gle, uview_direction_d,
2810 # [have_gle=yes; gle_halfassed=no],
2811 # [], $GL_LIBS -lX11 -lXext -lm)
2813 # As of GLE 3 this is in libgle, and has changed name to uview_direction!
2815 if test "$have_gle3" = yes ; then
2816 AC_CHECK_X_LIB(gle, uview_direction,
2817 [have_gle=yes; gle_halfassed=no],
2818 [], $GL_LIBS -lX11 -lXext -lm)
2820 # if it wasn't in libgle, then look in libmatrix.
2821 if test "$have_gle" = no ; then
2822 AC_CHECK_X_LIB(matrix, uview_direction_d,
2823 [have_gle=yes; gle_halfassed=no;
2824 GLE_LIBS="$GLE_LIBS -lmatrix"],
2825 [], $GL_LIBS -lX11 -lXext -lm)
2829 if test "$have_gle" = yes ; then
2831 if test "$have_gle3" = yes ; then
2832 AC_DEFINE(HAVE_GLE3)
2836 elif test "$with_gle" != no; then
2837 echo "error: must be yes or no: --with-gle=$with_gle"
2844 ###############################################################################
2848 ###############################################################################
2851 with_xpm_req=unspecified
2853 [ --with-xpm Include support for XPM files in some demos.
2854 (Not needed if Pixbuf is used.)],
2855 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2857 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2859 if test "$with_xpm" = yes; then
2860 AC_CHECK_X_HEADER(X11/xpm.h,
2864 [#include <X11/Xlib.h>])
2865 elif test "$with_xpm" != no; then
2866 echo "error: must be yes or no: --with-xpm=$with_xpm"
2870 # See comment near $motif_requires_xpm, above.
2871 # Need to do this here, after both Motif and XPM have been checked for.
2873 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2874 if test "$motif_requires_xpm" = yes ; then
2875 MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
2879 ###############################################################################
2881 # Check for -lgdk_pixbuf.
2883 ###############################################################################
2886 with_gdk_pixbuf_req=unspecified
2888 [ --with-pixbuf Include support for the GDK-Pixbuf library in some
2889 demos, which will make it possible for them to read
2890 GIF, JPEG, and PNG files as well. (The path here is
2891 ignored if GTK 2.x is being used.)],
2892 [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
2893 [with_gdk_pixbuf=yes])
2895 # if --with-pixbuf=/directory/ was specified, remember that directory so that
2896 # we can also look for the `gdk-pixbuf-config' program in that directory.
2897 case "$with_gdk_pixbuf" in
2899 gdk_pixbuf_dir="$with_gdk_pixbuf"
2906 HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF)
2908 if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then
2909 echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
2913 if test "$with_gdk_pixbuf" = yes; then
2917 if test -n "$pkg_config" ; then
2920 # run pkg-config based tests.
2925 # If we have Gtk 2.x, then *only* gdk-pixbuf 2.x will work.
2926 # If we have Gtk 1.x, then *only* gdk-pixbuf 1.x will work.
2927 # If we don't have Gtk at all, then either will work.
2929 if test "$have_gtk" = no -o "$have_gtk2" = yes; then
2931 # we don't have Gtk; or we have Gtk 2.x. Check for pixbuf 2.x.
2933 AC_MSG_RESULT(checking for gdk_pixbuf 2.x with gtk-config based tests...)
2934 pkg_check_version gdk-pixbuf-2.0 2.0.0
2935 pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
2936 have_gdk_pixbuf="$ok"
2937 have_gdk_pixbuf2="$ok"
2940 if test "$have_gtk" = no -o "$have_gtk2" = no; then
2942 # we don't have Gtk; or we have Gtk 1.x.
2943 # If we don't have pixbuf 2.x, then check for pixbuf 1.x.
2945 if test "$have_gdk_pixbuf2" = no; then
2948 AC_MSG_RESULT(checking for gdk_pixbuf 1.x with gtk-config based tests...)
2949 pkg_check_version gdk_pixbuf 0.0
2950 pkg_check_version gdk_pixbuf_xlib 0.0
2951 have_gdk_pixbuf="$ok"
2955 if test "$have_gdk_pixbuf" = yes; then
2956 AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
2957 [ac_cv_gdk_pixbuf_config_cflags=`$pkg_config --cflags $pkgs`])
2958 AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
2959 [ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs`])
2961 ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
2962 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
2966 if test "$have_gdk_pixbuf" = no; then
2969 # run gdk-pixbuf-config based tests.
2970 # note that we can't assume that the existence of "pkg-config" means
2971 # that we don't have to look for gdk-pixbuf-config -- in Gnome 1.4,
2972 # pkg-config exists, but doesn't know about pixbuf.
2975 AC_MSG_RESULT(checking for gdk_pixbuf with gdk-pixbuf-config based tests...)
2977 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2978 # look in /foo/bin/ for for gdk-pixbuf-config.
2980 gdk_pixbuf_path="$PATH"
2982 if test ! -z "$gtk_dir"; then
2983 # canonicalize slashes.
2984 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2985 gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
2988 if test ! -z "$gnome_dir"; then
2989 # canonicalize slashes.
2990 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2991 gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
2994 AC_PATH_PROGS(gdk_pixbuf_config, gdk-pixbuf-config,, $gdk_pixbuf_path)
2996 # If we found the gdk-pixbuf-config program, run it to get flags.
2998 if test -n "$gdk_pixbuf_config" ; then
2999 AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
3000 [ac_cv_gdk_pixbuf_config_cflags=`$gdk_pixbuf_config --cflags`])
3001 AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
3002 [ac_cv_gdk_pixbuf_config_libs=`$gdk_pixbuf_config --libs`])
3004 # note that "gdk-pixbuf-config --libs" produces a link line including
3005 # -lgdk_pixbuf, but there's no way to get it to produce one that also
3006 # includes -lgdk_pixbuf_xlib. Since we don't know *exactly* what the
3007 # name of the library will be, construct it with sed...
3010 ac_cv_gdk_pixbuf_config_libs=`echo $ac_cv_gdk_pixbuf_config_libs | \
3011 sed 's@ \(-lgdk_pixbuf\([-_a-zA-Z0-9.]*\)\) @ \1 -lgdk_pixbuf_xlib\2 @'`
3014 ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
3015 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
3019 ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
3020 CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
3022 if test "$have_gdk_pixbuf" = no; then
3024 # we appear to have pixbuf; check for headers/libs to be sure.
3029 # check for header A...
3030 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
3032 # if that worked, check for header B...
3033 if test "$have_gdk_pixbuf" = yes; then
3035 gdk_pixbuf_halfassed=yes
3036 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h,
3037 [have_gdk_pixbuf=yes
3038 gdk_pixbuf_halfassed=no])
3040 # yay, it has a new name in Gtk 2.x...
3041 if test "$have_gdk_pixbuf" = no; then
3043 gdk_pixbuf_halfassed=yes
3044 AC_CHECK_X_HEADER(gdk-pixbuf-xlib/gdk-pixbuf-xlib.h,
3045 [have_gdk_pixbuf=yes
3046 gdk_pixbuf_halfassed=no])
3051 CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
3053 if test "$have_gdk_pixbuf" = yes; then
3054 # we have the headers, now check for the libraries
3056 gdk_pixbuf_halfassed=yes
3059 AC_CHECK_X_LIB(c, gdk_pixbuf_new_from_file, [have_gdk_pixbuf=yes],,
3060 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
3062 if test "$have_gdk_pixbuf" = yes; then
3064 AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init,
3065 [have_gdk_pixbuf=yes
3066 gdk_pixbuf_halfassed=no],,
3067 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
3071 if test "$have_gdk_pixbuf" = yes; then
3072 INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
3073 XPM_LIBS="$ac_gdk_pixbuf_config_libs"
3074 AC_DEFINE(HAVE_GDK_PIXBUF)
3081 ###############################################################################
3085 ###############################################################################
3088 with_jpeg_req=unspecified
3091 [ --with-jpeg Include support for the JPEG library.],
3092 [with_jpeg="$withval"; with_jpeg_req="$withval"],
3095 HANDLE_X_PATH_ARG(with_jpeg, --with-jpeg, JPEG)
3097 if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then
3098 echo "error: must be yes or no: --with-jpeg=$with_jpeg"
3102 if test "$with_jpeg" = yes; then
3105 AC_CHECK_X_HEADER(jpeglib.h, [have_jpeg=yes])
3107 if test "$have_jpeg" = yes; then
3108 # we have the header, now check for the library
3111 AC_CHECK_X_LIB(jpeg, jpeg_start_compress,
3115 AC_DEFINE(HAVE_JPEGLIB)])
3120 ###############################################################################
3122 # Check for the XSHM server extension.
3124 ###############################################################################
3127 with_xshm_req=unspecified
3128 AC_ARG_WITH(xshm-ext,
3129 [ --with-xshm-ext Include support for the Shared Memory extension.],
3130 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
3132 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
3134 if test "$with_xshm" = yes; then
3136 # first check for Xshm.h.
3137 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],,
3138 [#include <X11/Xlib.h>])
3140 # if that succeeded, then check for sys/ipc.h.
3141 if test "$have_xshm" = yes; then
3143 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
3146 # if that succeeded, then check for sys/shm.h.
3147 if test "$have_xshm" = yes; then
3149 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
3152 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
3153 # to exist, but the library code to not exist. And even better, the library
3154 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
3155 # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and
3156 # that's not quite right, but close enough.)
3160 if [ `uname -v` -eq 3 ]; then
3162 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
3163 [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
3164 [true], -lX11 -lXext -lm)
3169 # if that succeeded, then we've really got it.
3170 if test "$have_xshm" = yes; then
3171 AC_DEFINE(HAVE_XSHM_EXTENSION)
3174 elif test "$with_xshm" != no; then
3175 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
3180 ###############################################################################
3182 # Check for the DOUBLE-BUFFER server extension.
3184 ###############################################################################
3187 with_xdbe_req=unspecified
3188 AC_ARG_WITH(xdbe-ext,
3189 [ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.],
3190 [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
3192 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
3194 if test "$with_xdbe" = yes; then
3196 AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],,
3197 [#include <X11/Xlib.h>])
3198 if test "$have_xdbe" = yes; then
3199 AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
3202 elif test "$with_xdbe" != no; then
3203 echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
3208 ###############################################################################
3210 # Check for the SGI XReadDisplay server extension.
3212 # Note: this has to be down here, rather than up with the other server
3213 # extension tests, so that the output of `configure --help' is in the
3214 # right order. Arrgh!
3216 ###############################################################################
3219 with_readdisplay_req=unspecified
3220 AC_ARG_WITH(readdisplay,
3221 [ --with-readdisplay Include support for the XReadDisplay extension.],
3222 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
3223 [with_readdisplay=yes])
3225 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
3227 if test "$with_readdisplay" = yes; then
3228 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
3229 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),,
3230 [#include <X11/Xlib.h>])
3231 elif test "$with_readdisplay" != no; then
3232 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
3237 ###############################################################################
3239 # Check for a program to generate random text.
3241 # Zippy is funnier than the idiocy generally spat out by `fortune',
3242 # so first see if "fortune zippy" works. Else, use plain "fortune".
3244 # We used to dig around in Emacs to look for the "yow" program, but
3245 # most people who have Emacs also have "fortune zippy", so nevermind.
3247 ###############################################################################
3250 AC_ARG_WITH(fortune,[
3251 --with-fortune=PROGRAM Some demos are able to run an external program and
3252 display its text; this names the program to use by
3253 default (though it can be overridden with X
3254 resources.) Default is \"/usr/games/fortune\".],
3255 [with_fortune_req="$withval"; with_fortune="$withval"],[with_fortune=yes])
3257 if test "$with_fortune" = no || test "$with_fortune" = yes ; then
3262 if test -n "$with_fortune_req" ; then
3263 ac_cv_fortune_program=""
3264 case "$with_fortune_req" in
3267 set dummy $with_fortune_req ; fortune_tmp=$2
3268 AC_MSG_CHECKING([for $fortune_tmp])
3269 if test -x "$fortune_tmp" ; then
3277 set dummy $with_fortune_req ; fortune_tmp=$2
3279 unset ac_cv_path_fortune_tmp
3280 AC_PATH_PROG(fortune_tmp, $fortune_tmp, [])
3281 if test -z "$fortune_tmp" ; then
3286 ac_cv_fortune_program="$with_fortune"
3288 elif test -n "$ac_cv_fortune_program"; then
3289 AC_MSG_RESULT([checking for fortune... (cached) $ac_cv_fortune_program])
3292 unset ac_cv_path_fortune_tmp
3295 if test -z "$ac_cv_fortune_program" ; then
3297 # first look for fortune in /usr/games/ (and use absolute path)
3298 AC_PATH_PROGS(fortune_tmp, fortune,, "/usr/games")
3300 # if it's not there, look on $PATH (and don't use absolute path)
3301 if test -z "$fortune_tmp" ; then
3302 AC_CHECK_PROGS(fortune_tmp, fortune)
3305 # if we didn't find anything, then just assume /usr/games/
3306 if test -z "$fortune_tmp" ; then
3307 fortune_tmp="/usr/games/fortune"
3310 ac_cv_fortune_program="$fortune_tmp"
3312 # now check to see whether "fortune zippy" works.
3314 fortune_tmp="$fortune_tmp zippy"
3315 AC_MSG_CHECKING([for zippy quotes])
3316 if ( $fortune_tmp >/dev/null 2>&1 ); then
3317 ac_cv_fortune_program="$fortune_tmp"
3318 AC_MSG_RESULT($fortune_tmp)
3325 unset ac_cv_path_fortune_tmp
3328 AC_DEFINE_UNQUOTED(FORTUNE_PROGRAM, "$ac_cv_fortune_program")
3331 ###############################################################################
3333 # Check whether it's ok to install some hacks as setuid (e.g., "sonar")
3334 # This should be safe, but let's give people the option.
3336 ###############################################################################
3338 setuid_hacks_default=no
3339 setuid_hacks="$setuid_hacks_default"
3340 AC_ARG_WITH(setuid-hacks,
3341 [ --with-setuid-hacks Allow some demos to be installed \`setuid root'
3342 (which is needed in order to ping other hosts.)
3344 [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
3346 HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks)
3348 if test "$setuid_hacks" = yes; then
3350 elif test "$setuid_hacks" != no; then
3351 echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks"
3356 ###############################################################################
3358 # Done testing. Now, set up the various -I and -L variables,
3359 # and decide which GUI program to build by default.
3361 ###############################################################################
3368 if test \! -z "$includedir" ; then
3369 INCLUDES="$INCLUDES -I$includedir"
3372 if test \! -z "$libdir" ; then
3373 LDFLAGS="$LDFLAGS -L$libdir"
3377 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
3379 if test "$have_motif" = yes; then
3380 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
3381 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3383 if test "$have_gtk" = yes; then
3384 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
3385 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3389 if test "$have_kerberos" = yes; then
3390 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
3391 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
3393 if test "$have_pam" = yes; then
3394 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
3395 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
3396 INSTALL_PAM="install-pam"
3398 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
3399 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
3402 if test "$enable_locking" = yes; then
3403 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
3404 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
3406 LOCK_SRCS='$(NOLOCK_SRCS_1)'
3407 LOCK_OBJS='$(NOLOCK_OBJS_1)'
3410 INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)'
3412 if test "$need_setuid" = yes; then
3418 if test "$setuid_hacks" = yes; then
3425 if test "$have_gl" = yes; then
3426 GL_EXES='$(GL_EXES)'
3427 GL_UTIL_EXES='$(GL_UTIL_EXES)'
3431 GL_KLUDGE="-${tab} "
3434 if test "$have_gle" = yes; then
3435 GLE_EXES='$(GLE_EXES)'
3436 GLE_KLUDGE="${tab} "
3438 GLE_KLUDGE="-${tab} "
3441 if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then
3442 JPEG_EXES='$(JPEG_EXES)'
3446 # Another substitution in the XScreenSaver.ad.in file:
3448 if test "$have_gnome_help" = yes; then
3457 # Now that we know whether we have Gnome, we can decide where the XML
3458 # config files get installed.
3460 if test -z "$HACK_CONF_DIR" ; then
3461 if test -n "$GNOME_DATADIR" ; then
3462 HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers'
3464 HACK_CONF_DIR='${prefix}/lib/xscreensaver/config'
3470 # After computing $HACK_CONF_DIR, make sure $GLADE_DATADIR has a value
3471 # so that we know where to install the Gtk pixmaps.
3473 # It should usually be "/usr/share/pixmaps/", but we can't just use
3474 # "$(prefix)/share/pixmaps" because that would usually result in
3475 # "/usr/X11R6/share/pixmaps/", which is wrong. It needs to be the
3476 # Gnome/Gtk prefix, not the overall prefix.
3478 if test -n "$GNOME_DATADIR" ; then
3479 GLADE_DATADIR='$(GNOME_DATADIR)/xscreensaver'
3480 elif test "$have_gtk" = yes; then
3481 if test -n "$pkg_config"; then
3482 if test "$have_gtk2" = yes; then
3483 GLADE_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3485 GLADE_DATADIR=`$pkg_config --variable=prefix gtk+`
3488 GLADE_DATADIR=`$gtk_config --prefix`
3490 GLADE_DATADIR="$GLADE_DATADIR/share/xscreensaver"
3496 # Set PO_DATADIR to something sensible.
3498 AC_MSG_CHECKING([for locale directory])
3499 if test -n "$GNOME_DATADIR" ; then
3500 PO_DATADIR="$GNOME_DATADIR"
3501 elif test "$have_gtk" = yes; then
3502 if test -n "$pkg_config"; then
3503 if test "$have_gtk2" = yes; then
3504 PO_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3506 PO_DATADIR=`$pkg_config --variable=prefix gtk+`
3509 PO_DATADIR=`$gtk_config --prefix`
3511 PO_DATADIR="$PO_DATADIR/share"
3514 if test -z "$PO_DATADIR" ; then
3516 # #### Total fucking kludge --
3517 # Map /build/prefix/usr/X11R6/share/ to /build/prefix/usr/share/
3518 # but of course we need to expand all the nested variables to do that...
3526 PO_DATADIR=`echo $dd | sed 's@/X11R6/@/@'`
3529 AC_MSG_RESULT($PO_DATADIR/locale)
3532 # canonicalize slashes.
3533 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
3535 # gcc 3.0 likes to issue this warning for every file:
3537 # cc1: warning: changing search order for system directory "/usr/local/include"
3538 # cc1: warning: as it has already been specified as a non-system directory
3540 # Yay. We can only avoid that by deleting "-I${prefix}/include" from the list.
3541 # Which *should* be totally redundant, and thus an ok thing to delete?
3543 INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'`
3546 ###############################################################################
3548 # Perform substitutions and write Makefiles.
3550 ###############################################################################
3554 AC_SUBST(PREFERRED_DEMO_PROGRAM)
3555 AC_SUBST(ALL_DEMO_PROGRAMS)
3556 AC_SUBST(SAVER_LIBS)
3557 AC_SUBST(MOTIF_LIBS)
3565 AC_SUBST(XDPMS_LIBS)
3566 AC_SUBST(PASSWD_LIBS)
3567 AC_SUBST(INSTALL_SETUID)
3568 AC_SUBST(SETUID_HACKS)
3569 AC_SUBST(INSTALL_DIRS)
3570 AC_SUBST(NEED_SETUID)
3571 AC_SUBST(INSTALL_PAM)
3573 AC_SUBST(PASSWD_SRCS)
3574 AC_SUBST(PASSWD_OBJS)
3578 AC_SUBST(SAVER_GL_SRCS)
3579 AC_SUBST(SAVER_GL_OBJS)
3580 AC_SUBST(SAVER_GL_LIBS)
3585 AC_SUBST(GL_UTIL_EXES)
3589 AC_SUBST(GLE_KLUDGE)
3590 AC_SUBST(GNOMEHELP_Y)
3591 AC_SUBST(GNOMEHELP_N)
3593 AC_SUBST(GNOME_DATADIR)
3594 AC_SUBST(GLADE_DATADIR)
3595 AC_SUBST(PO_DATADIR)
3596 AC_SUBST(GNOME_PANELDIR)
3597 AC_SUBST(HACK_CONF_DIR)
3598 AC_SUBST(GTK_EXTRA_OBJS)
3600 APPDEFAULTS=$ac_x_app_defaults
3601 AC_SUBST(APPDEFAULTS)
3604 AC_SUBST(DEPEND_FLAGS)
3605 AC_SUBST(DEPEND_DEFINES)
3614 driver/XScreenSaver.ad
3615 driver/xscreensaver.kss)
3617 ###############################################################################
3619 # Print some warnings at the end.
3621 ###############################################################################
3623 warn_prefix_1=" Warning:"
3624 warn_prefix_2=" Note:"
3625 warn_prefix="$warn_prefix_1"
3628 warnsep=' #################################################################'
3631 if test "$warning" = no ; then
3632 echo '' ; echo "$warnsep" ; echo ''
3639 if test "$warning" = long ; then echo '' ; fi
3642 echo "$warn_prefix $rest"
3649 if test "$was" != no ; then echo '' ; fi
3651 echo "$warn_prefix $rest"
3661 warn_prefix="$warn_prefix_2"
3663 warn_prefix="$warn_prefix_1"
3667 warn_prefix="$warn_prefix_2"
3669 warn_prefix="$warn_prefix_1"
3673 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
3674 warn 'The SGI saver extension was requested, but was not found.'
3677 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
3678 warn 'The MIT saver extension was requested, but was not found.'
3681 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
3682 warn 'The XIdle extension was requested, but was not found.'
3685 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
3686 warn 'The XSHM extension was requested, but was not found.'
3689 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
3690 warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
3693 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
3694 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
3697 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
3698 warn 'The DPMS extension was requested, but was not found.'
3701 if test "$with_xinerama_req" = yes -a "$have_xinerama" = no ; then
3702 warn 'The Xinerama extension was requested, but was not found.'
3705 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
3706 warn 'The XF86VMODE extension was requested, but was not found.'
3709 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
3710 warn "Checking of /proc/interrupts was requested, but it's bogus."
3714 if test "$have_motif" = no -a "$have_gtk" = no; then
3715 warnL "Neither Motif nor Gtk seem to be available;"
3716 warn2 "the \`xscreensaver-demo' program requires one of these."
3718 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
3719 warnL "Use of Motif was requested, but it wasn't found;"
3720 warn2 "Gtk will be used instead."
3722 elif test "$jurassic_gtk" = yes ; then
3726 v="$ac_gtk_version_string"
3727 if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
3728 warnL "Use of Gtk was requested, but its version number is unknown;"
3729 elif test "$with_gtk_req" = yes ; then
3730 warnL "Use of Gtk was requested, but it is version $v;"
3732 warnL "Gtk was found on this system, but it is version $v;"
3735 warn2 "Gtk $pref_gtk or newer is required. Motif will be used instead."
3737 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
3738 warnL "Use of Gtk was requested, but it wasn't found."
3739 if test "$have_motif" = yes; then
3740 warn2 "Motif will be used instead."
3744 if test "$gtk2_halfassed" != no ; then
3745 warnL "GTK version $gtk2_halfassed was found, but at least one supporting"
3746 warn2 "library ($gtk2_halfassed_lib) was not, so GTK 2.x can't be used."
3747 v="$ac_gtk_version_string"
3748 warn2 "GTK $v is also installed, so it will be used instead."
3749 warn2 "Please read the above output and the \`config.log' file"
3750 warn2 "for more details."
3754 if test "$with_gnome_req" = yes -a "$have_gnome" = no \
3755 -a "$have_gtk2" = no; then
3756 # don't issue this warning if we have GTK2 -- in that case, the
3757 # Gnome-specific code isn't needed.
3758 warn 'Use of the Gnome Control Panel was requested, but the necessary'
3759 warn2 'headers and/or libraries were not found.'
3762 if test "$have_gtk" = yes ; then
3763 if test "$have_xml" = no ; then
3764 if test "$with_xml_req" = yes ; then
3765 warn 'Use of the XML library was requested, but the necessary'
3766 warn2 'headers and/or libraries were not found.'
3768 warn 'GTK is being used, but the XML library was not found.'
3771 if test "$xml_halfassed" = yes ; then
3773 if test "$have_zlib" = yes ; then
3774 which="XML libraries"
3776 which="\`zlib' library"
3780 warn2 'More specifically, we found the headers, but not the'
3781 warn2 "$which; so either XML is half-installed on this"
3782 warn2 "system, or something else went wrong. The \`config.log'"
3783 warn2 'file might contain some clues.'
3787 warn2 "Without XML, the per-display-mode \`Settings' dialogs"
3788 warn2 'will not be available. Specify the location of the XML'
3789 warn2 'library through the --with-xml option to configure.'
3793 if test "$have_gtk" = yes -a "$have_gdk_pixbuf" = no ; then
3794 warn "GTK is being used, but the GDK-Pixbuf library and/or"
3795 warn2 "headers were not found. That can't be good. Please"
3796 warn2 "install the GDK-Pixbuf development kit and re-configure."
3799 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
3801 preferred_lesstif=0.92
3803 if test "$lesstif_version" = unknown; then
3804 warnL "Unable to determine the LessTif version number!"
3805 warn2 "Make sure you are using version $preferred_lesstif or newer."
3806 warn2 "See <http://www.lesstif.org/>."
3808 elif test \! $lesstif_version -gt 82; then
3809 warnL "LessTif version $lesstif_version_string is being used."
3810 warn2 "LessTif versions 0.82 and earlier are too buggy to"
3811 warn2 "use with XScreenSaver; it is strongly recommended"
3812 warn2 "that you upgrade to at least version $preferred_lesstif!"
3813 warn2 "See <http://www.lesstif.org/>."
3818 if test "$have_motif" = yes -a "$have_gtk" = no ; then
3819 warn 'Motif is being used, and GTK is not.'
3821 warn2 'Though the Motif front-end to xscreensaver is still'
3822 warn2 'maintained, it is no longer being updated with new'
3823 warn2 'features: all new development on the xscreensaver-demo'
3824 warn2 'program is happening in the GTK version, and not in the'
3825 warn2 'Motif version. It is recommended that you build against'
3826 warn2 'GTK instead of Motif. See <http://www.gtk.org/>.'
3830 if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
3831 warnL 'Use of XPM was requested, but it was not found.'
3834 if test "$with_gdk_pixbuf_req" = yes -a "$have_gdk_pixbuf" = no; then
3835 warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
3838 if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no || \
3839 test "$gdk_pixbuf_halfassed" = yes; then
3841 if test "$with_xpm_req" = yes -o "$have_xpm" = yes ; then
3843 elif test "$with_xpm_req" = no ; then
3844 warnL 'The XPM library is not being used.'
3846 warnL 'The XPM library was not found.'
3849 if test "$with_gdk_pixbuf_req" = yes ; then
3851 elif test "$with_gdk_pixbuf_req" = no ; then
3852 warnL 'The GDK-Pixbuf library is not being used.'
3854 warnL 'The GDK-Pixbuf library was not found.'
3857 if test "$gdk_pixbuf_halfassed" = yes ; then
3859 warn2 'More specifically, we found the headers, but not the'
3860 warn2 'libraries; so either GDK-Pixbuf is half-installed on this'
3861 warn2 "system, or something else went wrong. The \`config.log'"
3862 warn2 'file might contain some clues.'
3866 warn2 'Some of the demos will not be as colorful as they'
3867 warn2 'could be. You should consider installing Pixbuf or'
3868 warn2 'XPM and re-running configure. The Pixbuf library is'
3869 warn2 'a part of GNOME. The XPM library comes with most'
3870 warn2 'X11 installations; you can also find it at the X11'
3871 warn2 'archive sites, such as <http://sunsite.unc.edu/>.'
3873 warn2 'GDK-Pixbuf is recommended over XPM, as it provides'
3874 warn2 'support for more image formats.'
3878 if test "$have_jpeg" = no ; then
3879 if test "$with_jpeg_req" = yes ; then
3880 warnL 'Use of libjpeg was requested, but it was not found.'
3881 elif test "$with_jpeg_req" = no ; then
3882 noteL 'The JPEG library is not being used.'
3884 noteL 'The JPEG library was not found.'
3887 if test "$jpeg_halfassed" = yes ; then
3889 warn2 'More specifically, we found the headers, but not the'
3890 warn2 'library; so either JPEG is half-installed on this'
3891 warn2 "system, or something else went wrong. The \`config.log'"
3892 warn2 'file might contain some clues.'
3896 if test "$have_gdk_pixbuf" = no ; then
3897 warn2 "This means that it won't be possible for the image-manipulating"
3898 warn2 "display modes to load files from disk; and it also means that"
3899 warn2 "the \`webcollage' program will be much slower."
3901 warn2 "This means the \`webcollage' program will be much slower."
3906 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
3907 preferred_mesagl=3.4
3908 mgv="$ac_mesagl_version_string"
3909 pgl="$preferred_mesagl"
3911 if test "$ac_mesagl_version" = unknown; then
3912 warnL "Unable to determine the MesaGL version number!"
3913 warn2 "Make sure you are using version $preferred_mesagl or newer."
3915 elif test \! "$ac_mesagl_version" -gt 2006; then
3916 warnL "MesaGL version number is $mgv --"
3917 warn2 "MesaGL 2.6 and earlier have a security bug. It is strongly"
3918 warn2 "recommended that you upgrade to at least version $preferred_mesagl."
3920 elif test \! "$ac_mesagl_version" -gt 3003; then
3921 warnL "MesaGL version number is $mgv --"
3922 warn2 "MesaGL 3.3 and earlier have some bugs; it is recommended"
3923 warn2 "that you upgrade to $pgl or newer."
3927 if test "$have_gl" = no ; then
3928 if test "$with_gl_req" = yes ; then
3929 warnL 'Use of GL was requested, but it was not found.'
3930 elif test "$with_gl_req" = no ; then
3931 noteL 'The OpenGL 3D library is not being used.'
3933 noteL 'The OpenGL 3D library was not found.'
3936 if test "$gl_halfassed" = yes ; then
3938 warn2 'More specifically, we found the headers, but not the'
3939 warn2 'libraries; so either GL is half-installed on this'
3940 warn2 "system, or something else went wrong. The \`config.log'"
3941 warn2 'file might contain some clues.'
3945 warn2 'Those demos which use 3D will not be built or installed.'
3946 warn2 'You might want to consider installing OpenGL and'
3947 warn2 "re-running configure. If your vendor doesn't ship"
3948 warn2 'their own implementation of OpenGL, you can get a free'
3949 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
3950 warn2 'info, see <http://www.opengl.org/>.'
3955 if test "$have_gl" = yes -a "$have_gle" = no ; then
3957 # nobody cares about this; don't print the warning unless it was
3958 # requested and not found, or halfway-found.
3959 if test "$with_gle_req" = yes -o "$gle_halfassed" = yes ; then
3961 if test "$with_gle_req" = yes ; then
3962 noteL 'Use of the GLE (GL Extrusion) library was requested, but'
3963 warn2 'it was not found (though the OpenGL library was found, and'
3964 warn2 'is being used.)'
3965 elif test "$with_gle_req" = no ; then
3966 noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
3967 warn2 'library is not.'
3969 noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
3973 if test "$gle_halfassed" = yes ; then
3975 warn2 'More specifically, we found the headers, but not the'
3976 warn2 'libraries; so either GLE is half-installed on this'
3977 warn2 "system, or something else went wrong. The \`config.log'"
3978 warn2 'file might contain some clues.'
3982 warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
3983 warn2 'will not be built or installed. You might want to consider'
3984 warn2 'installing GLE and re-running configure. You can find the'
3985 warn2 'GLE library at <http://www.linas.org/gle/>. For general'
3986 warn2 'OpenGL info, see <http://www.opengl.org/>.'
3992 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
3993 warn 'Use of XReadDisplay was requested, but it was not found.'
3996 if test -n "$with_fortune_req"; then
3997 if test "$with_fortune_req" != "$ac_cv_fortune_program" ; then
3998 warnL "$with_fortune_req was requested as the Fortune program,"
3999 warn2 "but was not found. The default will be used instead."
4003 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
4004 warn 'Use of Kerberos was requested, but it was not found.'
4007 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
4008 warn 'Use of PAM was requested, but it was not found.'
4011 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
4012 warn 'Use of shadow passwords was requested, but they were not found.'
4016 # You are in a twisty maze of namespaces and syntaxes, all alike.
4017 # Fuck the skull of Unix.
4019 eval bindir=${bindir}
4020 eval bindir=${bindir}
4021 eval bindir=${bindir}
4022 eval bindir=${bindir}
4023 eval bindir=${bindir}
4024 eval bindir=${bindir}
4025 eval HACKDIR=${HACKDIR}
4026 eval HACKDIR=${HACKDIR}
4027 eval HACKDIR=${HACKDIR}
4028 eval HACKDIR=${HACKDIR}
4029 eval HACKDIR=${HACKDIR}
4030 eval HACKDIR=${HACKDIR}
4031 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4032 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4033 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4034 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4035 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4036 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4038 # canonicalize slashes.
4039 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
4040 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
4041 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
4044 # Sanity check the hackdir
4045 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
4046 if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
4048 AC_MSG_ERROR([\"--with-hackdir=${bindir}/${bad_choice}\" won't work.
4049 There will be an executable installed with that name, so
4050 that can't be the name of a directory as well. Please
4051 re-configure with a different directory name.])
4058 # Now let's see if there's a previous RPM version already installed. Blargh!
4062 rpmv=`(rpm -qv xscreensaver) 2>/dev/null | \
4063 sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'`
4066 if test \! -z "$rpmv" ; then
4067 rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
4068 rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
4071 warnL "There is already an installed RPM of xscreensaver $rpmv"
4072 warn2 "on this system. You might want to remove it (with"
4073 warn2 '"rpm -ve xscreensaver") before running "make install"'
4074 warn2 "from this directory."
4076 warn2 "Alternately, you could build this version of xscreensaver"
4077 warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
4078 warn2 "file is included. See the RPM documentation for more info."
4081 if test "$rpmbdir" = "$rpmhdir" ; then
4082 warn2 "The RPM version was installed in $rpmbdir/."
4084 warn2 "The RPM version was installed in $rpmbdir/,"
4085 warn2 "with demos in $rpmhdir/."
4092 if test "${bindir}" = "${HACKDIR}" ; then
4096 if test "$do_dir_warning" = yes; then
4100 echo ' When you run "make install", the "xscreensaver",'
4101 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
4102 echo " will be installed in ${bindir}/."
4104 echo " The various graphics demos (160+ different executables) will"
4105 echo " be installed in ${HACKDIR}/."
4107 echo " If you would prefer the demos to be installed elsewhere,"
4108 echo " you should re-run configure with the --with-hackdir=DIR"
4109 echo " option. For more information, run \`./configure --help'."
4113 if test "$warning" != no; then
4114 echo '' ; echo "$warnsep" ; echo ''
4117 if test "$do_dir_warning" = no; then
4118 if test "$warning" = no; then
4121 echo "User programs will be installed in ${bindir}/"
4122 echo "Screen savers will be installed in ${HACKDIR}/"
4123 echo "Configuration will be installed in ${HACK_CONF_DIR}/"