1 # configure.in --- xscreensaver, Copyright (c) 1997-2003 Jamie Zawinski.
5 AC_INIT(driver/subprocs.c)
6 AC_CONFIG_HEADER(config.h)
8 echo "current directory: `pwd`"
9 echo "command line was: $0 $@"
12 # After checking to see that --srcdir is correct (which AC_INIT does)
13 # check for some random other files that come later in the tar file,
14 # to make sure everything is here.
16 for d in driver utils hacks hacks/glx ; do
17 f=$srcdir/$d/Makefile.in
18 if test \! -r $f ; then
20 echo "ERROR: The package is incomplete: $f does not exist."
21 echo " This probably means that your download was truncated."
27 ###############################################################################
29 # Function to figure out how to run the compiler.
31 ###############################################################################
33 AC_DEFUN(AC_PROG_CC_ANSI,
36 if test -z "$GCC"; then
37 AC_MSG_CHECKING(how to request ANSI compilation)
40 AC_MSG_RESULT(HPUX: adding -Ae)
44 AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e)
45 CC="$CC -qlanglvl=ansi -qhalt=e"
49 AC_MSG_RESULT(DEC: adding -std1 -ieee)
54 AC_MSG_RESULT(no idea)
61 AC_MSG_CHECKING([whether the compiler works on ANSI C])
62 AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
65 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
66 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
68 if test -n "$GCC"; then
69 AC_MSG_RESULT(Turning on gcc compiler warnings.)
70 CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs"
72 # supposedly gcc 3.4 will have "-Wdeclaration-after-statement"
73 # and then perhaps we can do without -pedantic?
76 *-irix5* |*-irix6.[0-3]* )
77 AC_MSG_RESULT(Turning on SGI compiler warnings.)
78 CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
81 # if test -z "$GCC"; then
82 # AC_MSG_RESULT(Turning on DEC C compiler warnings.)
83 # CC="$CC -migrate -w0 -verbose -warnprotos"
91 ###############################################################################
93 # Functions to figure out how to disable // comments in ANSI C code.
95 # (With recent gcc, this is done with "-std=c89". With older gcc, this
96 # is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to
97 # gcc. Old gcc doesn't support -std, and new gcc doesn't support -lang.
98 # so much for compatibility!)
100 # UPDATE: apparently there is NO WAY to tell gcc 3.2.2 to require that
101 # declarations preceed statements, without resorting to "-pedantic".
102 # This means that there is no way to get gcc3 to issue warnings that
103 # ensure that your code complies with the ANSI/ISO C89 standard, without
104 # also drowning in totally useless warnings. Thank you master may I
107 # So, I give up, let's just use -pedantic.
109 ###############################################################################
111 AC_DEFUN(AC_GCC_ACCEPTS_STD,
112 [if test -n "$GCC"; then
113 AC_CACHE_CHECK([whether gcc accepts -std],
114 ac_cv_gcc_accepts_std,
115 [if ( ( gcc -E -std=c89 - </dev/null >/dev/null ) 2>&1 | \
116 grep unrecognized >/dev/null ); then
117 ac_cv_gcc_accepts_std=no
119 ac_cv_gcc_accepts_std=yes
121 ac_gcc_accepts_std="$ac_cv_gcc_accepts_std"
125 AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE,
126 [if test -n "$GCC"; then
128 AC_MSG_RESULT(Disabling C++ comments in ANSI C code.)
130 # The reason that // comments are banned from xscreensaver is that gcc is
131 # basically the only compiler in the world that supports them in C code.
132 # All other vendors support them only in their C++ compilers, not in their
133 # ANSI C compilers. This means that it's a portability problem: every time
134 # these comments have snuck into the xscreensaver source code, I've gotten
135 # complaints about it the next day. So we turn off support for them in gcc
136 # as well to prevent them from accidentially slipping in.
138 if test "$ac_gcc_accepts_std" = yes ; then
140 # -std=c89 defines __STRICT_ANSI__, which we don't want.
141 # (That appears to be the only additional preprocessor symbol
142 # it defines, in addition to the syntax changes it makes.)
144 # -std=gnu89 is no good, because // comments were a GNU extension
145 # before they were in the ANSI C 99 spec... (gcc 2.96 permits //
146 # with -std=gnu89 but not with -std=c89.)
148 CC="$CC -std=c89 -U__STRICT_ANSI__"
151 CC="$CC -Wp,-lang-c89"
157 ###############################################################################
159 # Function to figure out how to turn off Objective C on MacOS X.
160 # (We have to do this to work around an Apple-specific gcc bug.)
162 ###############################################################################
164 AC_DEFUN(AC_GCC_ACCEPTS_NO_CPP_PRECOMP,
165 [if test -n "$GCC"; then
166 AC_CACHE_CHECK([whether gcc accepts -no-cpp-precomp],
167 ac_cv_gcc_accepts_no_cpp_precomp,
168 [if ( ( gcc -E -no-cpp-precomp - </dev/null >/dev/null ) 2>&1 | \
169 grep unrecognized >/dev/null ); then
170 ac_cv_gcc_accepts_no_cpp_precomp=no
172 ac_cv_gcc_accepts_no_cpp_precomp=yes
174 ac_gcc_accepts_no_cpp_precomp="$ac_cv_gcc_accepts_no_cpp_precomp"
178 AC_DEFUN(AC_NO_OBJECTIVE_C,
179 [if test -n "$GCC"; then
180 AC_GCC_ACCEPTS_NO_CPP_PRECOMP
181 if test "$ac_gcc_accepts_no_cpp_precomp" = yes ; then
182 AC_MSG_RESULT(Disabling Objective C extensions in ANSI C code.)
183 CC="$CC -no-cpp-precomp"
189 ###############################################################################
191 # Function to figure out how to create directory trees.
193 ###############################################################################
195 AC_DEFUN(AC_PROG_INSTALL_DIRS,
196 [AC_CACHE_CHECK([whether \"\${INSTALL} -d\" creates intermediate directories],
197 ac_cv_install_d_creates_dirs,
198 [ac_cv_install_d_creates_dirs=no
200 if mkdir conftestdir; then
201 cd conftestdir 2>/dev/null
202 ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1
203 if test -d dir1/dir2/. ; then
204 ac_cv_install_d_creates_dirs=yes
211 if test "$ac_cv_install_d_creates_dirs" = no ; then
212 AC_CACHE_CHECK([whether \"mkdir -p\" creates intermediate directories],
213 ac_cv_mkdir_p_creates_dirs,
214 [ac_cv_mkdir_p_creates_dirs=no
216 if mkdir conftestdir; then
217 cd conftestdir 2>/dev/null
218 mkdir -p dir1/dir2 >/dev/null 2>&1
219 if test -d dir1/dir2/. ; then
220 ac_cv_mkdir_p_creates_dirs=yes
228 if test "$ac_cv_install_d_creates_dirs" = yes ; then
229 INSTALL_DIRS='${INSTALL} -d'
230 elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then
231 INSTALL_DIRS='mkdir -p'
234 INSTALL_DIRS='${INSTALL} -d'
239 ###############################################################################
241 # Function to check whether gettimeofday() exists, and how to call it.
242 # This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS.
244 ###############################################################################
246 AC_DEFUN(AC_GETTIMEOFDAY_ARGS,
247 [AC_MSG_CHECKING(how to call gettimeofday)
248 AC_CACHE_VAL(ac_cv_gettimeofday_args,
249 [AC_TRY_COMPILE([#include <stdlib.h>
250 #include <sys/time.h>],
251 [struct timeval tv; struct timezone tzp;
252 gettimeofday(&tv, &tzp);],
253 [ac_gettimeofday_args=2],
254 [AC_TRY_COMPILE([#include <stdlib.h>
255 #include <sys/time.h>],
256 [struct timeval tv; gettimeofday(&tv);],
257 [ac_gettimeofday_args=1],
258 [ac_gettimeofday_args=0])])
259 ac_cv_gettimeofday_args=$ac_gettimeofday_args])
260 ac_gettimeofday_args=$ac_cv_gettimeofday_args
261 if test "$ac_gettimeofday_args" = 1 ; then
262 AC_DEFINE(HAVE_GETTIMEOFDAY)
263 AC_MSG_RESULT(one argument)
264 elif test "$ac_gettimeofday_args" = 2 ; then
265 AC_DEFINE(HAVE_GETTIMEOFDAY)
266 AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
267 AC_MSG_RESULT(two arguments)
269 AC_MSG_RESULT(unknown)
274 ###############################################################################
276 # Function to find perl5 (defines PERL and PERL_VERSION.)
278 ###############################################################################
280 # M4 sucks!! perl sucks too!!
282 perl_version_cmd='print $]'
285 AC_DEFUN(AC_PROG_PERL,
286 [AC_PATH_PROGS(PERL, [perl5 perl],,)
287 if test -z "$PERL" ; then
290 AC_CACHE_CHECK([perl version], ac_cv_perl_version,
291 [ac_cv_perl_version=`$PERL -e "$perl_version_cmd"`])
292 PERL_VERSION=$ac_cv_perl_version
297 ###############################################################################
299 # Function to demand "bc". Losers.
301 ###############################################################################
303 AC_DEFUN(AC_DEMAND_BC,
304 [ac_bc_result=`echo 6+9 | bc 2>/dev/null`
305 AC_MSG_CHECKING([for bc])
306 if test "$ac_bc_result" = "15" ; then
311 AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard
312 part of Unix since the 1970s. Come back when your vendor
317 ###############################################################################
319 # Functions to check how to do ICMP PING requests.
321 ###############################################################################
323 AC_DEFUN(AC_CHECK_ICMP,
324 [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp,
325 [AC_TRY_COMPILE([#include <stdlib.h>
332 #include <sys/types.h>
333 #include <sys/time.h>
336 #include <sys/socket.h>
337 #include <netinet/in_systm.h>
338 #include <netinet/in.h>
339 #include <netinet/ip.h>
340 #include <netinet/ip_icmp.h>
341 #include <netinet/udp.h>
342 #include <arpa/inet.h>
346 struct sockaddr_in si;
348 i.icmp_type = ICMP_ECHO;
353 si.sin_family = AF_INET;
354 #if defined(__DECC) || defined(_IP_VHL)
360 [ac_cv_have_icmp=yes],
361 [ac_cv_have_icmp=no])])
362 if test "$ac_cv_have_icmp" = yes ; then
366 AC_DEFUN(AC_CHECK_ICMPHDR,
367 [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr,
368 [AC_TRY_COMPILE([#include <stdlib.h>
375 #include <sys/types.h>
376 #include <sys/time.h>
379 #include <sys/socket.h>
380 #include <netinet/in_systm.h>
381 #include <netinet/in.h>
382 #include <netinet/ip.h>
383 #include <netinet/ip_icmp.h>
384 #include <netinet/udp.h>
385 #include <arpa/inet.h>
389 struct sockaddr_in si;
395 i.un.echo.sequence = 0;
396 si.sin_family = AF_INET;
398 [ac_cv_have_icmphdr=yes],
399 [ac_cv_have_icmphdr=no])])
400 if test "$ac_cv_have_icmphdr" = yes ; then
401 AC_DEFINE(HAVE_ICMPHDR)
405 ###############################################################################
407 # Functions to check for various X11 crap.
409 ###############################################################################
411 # Try and find the app-defaults directory.
412 # It sucks that autoconf doesn't do this already...
414 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
416 if mkdir conftestdir; then
417 cd conftestdir 2>/dev/null
418 # Make sure to not put "make" in the Imakefile rules, since we grep it out.
419 cat > Imakefile <<'EOF'
421 @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
423 if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then
424 # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
425 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
431 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
432 # Look for the directory under a standard set of common directories.
433 # Check X11 before X11Rn because it's often a symlink to the current release.
435 /usr/X11/lib/app-defaults \
436 /usr/X11R6/lib/app-defaults \
437 /usr/X11R6/lib/X11/app-defaults \
438 /usr/X11R5/lib/app-defaults \
439 /usr/X11R5/lib/X11/app-defaults \
440 /usr/X11R4/lib/app-defaults \
441 /usr/X11R4/lib/X11/app-defaults \
443 /usr/lib/X11/app-defaults \
444 /usr/lib/X11R6/app-defaults \
445 /usr/lib/X11R5/app-defaults \
446 /usr/lib/X11R4/app-defaults \
448 /usr/local/X11/lib/app-defaults \
449 /usr/local/X11R6/lib/app-defaults \
450 /usr/local/X11R5/lib/app-defaults \
451 /usr/local/X11R4/lib/app-defaults \
453 /usr/local/lib/X11/app-defaults \
454 /usr/local/lib/X11R6/app-defaults \
455 /usr/local/lib/X11R6/X11/app-defaults \
456 /usr/local/lib/X11R5/app-defaults \
457 /usr/local/lib/X11R5/X11/app-defaults \
458 /usr/local/lib/X11R4/app-defaults \
459 /usr/local/lib/X11R4/X11/app-defaults \
461 /usr/X386/lib/X11/app-defaults \
462 /usr/x386/lib/X11/app-defaults \
463 /usr/XFree86/lib/X11/app-defaults \
465 /usr/lib/X11/app-defaults \
466 /usr/local/lib/X11/app-defaults \
467 /usr/unsupported/lib/X11/app-defaults \
468 /usr/athena/lib/X11/app-defaults \
469 /usr/local/x11r5/lib/X11/app-defaults \
470 /usr/lpp/Xamples/lib/X11/app-defaults \
471 /lib/usr/lib/X11/app-defaults \
473 /usr/openwin/lib/app-defaults \
474 /usr/openwin/lib/X11/app-defaults \
475 /usr/openwin/share/lib/app-defaults \
476 /usr/openwin/share/lib/X11/app-defaults \
478 /X11R6/lib/app-defaults \
479 /X11R5/lib/app-defaults \
480 /X11R4/lib/app-defaults \
483 if test -d "$ac_dir"; then
484 ac_x_app_defaults=$ac_dir
490 AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
492 AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
493 [AC_PATH_X_APP_DEFAULTS_XMKMF
494 if test x"$ac_x_app_defaults" = x; then
495 AC_PATH_X_APP_DEFAULTS_DIRECT
497 if test x"$ac_x_app_defaults" = x; then
498 ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
500 # Record where we found app-defaults for the cache.
501 ac_cv_x_app_defaults="$ac_x_app_defaults"
503 eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
506 AC_DEFUN(AC_XPOINTER,
507 [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
508 [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
509 [XPointer foo = (XPointer) 0;],
510 [ac_cv_xpointer=yes],
511 [ac_cv_xpointer=no])])
512 if test "$ac_cv_xpointer" != yes; then
513 AC_DEFINE(XPointer,[char*])
517 # Random special-cases for X on certain pathological OSes.
518 # You know who you are.
520 AC_DEFUN(AC_X_RANDOM_PATHS,
524 # The following arcana was gleaned from conversations with
525 # Eric Schwartz <erics@col.hp.com>:
527 # On HPUX 10.x, the parts of X that HP considers "standard" live in
528 # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider
529 # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
530 # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems.
531 # Also, there are symlinks from /usr/include/ and /usr/lib/ into
532 # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
533 # you don't need any -I or -L arguments.
535 # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
536 # are the same division as 10.x. However, there are no symlinks to
537 # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
538 # arguments are always necessary.
540 # However, X11R6 was available on HPUX 9.x as a patch: if that
541 # patch was installed, then all of X11R6 went in to
542 # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
544 # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
545 # whether R5 was available as a patch; R6 undoubtedly was not.)
547 # So. We try and use the highest numbered pair of
548 # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
549 # that are available. We do not mix and match different versions
552 # Question I still don't know the answer to: (do you?)
554 # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
555 # /usr/contrib/X11R6/ could be installed as a patch, what was in
556 # that contrib directory? Did it contain so-called "standard"
557 # X11R6, or did it include Xaw and Xmu as well? If the former,
558 # where did one find Xaw and Xmu on 9.x R6 systems? Would this
559 # be a situation where one had to reach into the R5 headers and
560 # libs to find Xmu? That is, must both R6 and R5 directories
561 # be on the -I and -L lists in that case?
563 for version in X11R6 X11R5 X11R4 ; do
564 # if either pair of directories exists...
565 if test -d /usr/include/$version || test -d /usr/contrib/$version/include
567 # if contrib exists, use it...
568 if test -d /usr/contrib/$version/include ; then
569 X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
570 X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
572 # if the "standard" one exists, use it.
573 if test -d /usr/include/$version ; then
574 X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
575 X_LIBS="$X_LIBS -L/usr/lib/$version"
577 # since at least one of the pair exists, go no farther.
582 # Now find Motif. Thanks for not making xmkmf find this by
583 # default, you losers.
585 if test -d /usr/include/Motif2.1 ; then
586 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif2.1"
587 X_LIBS="$X_LIBS -L/usr/lib/Motif2.1"
588 elif test -d /usr/include/Motif1.2 ; then
589 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
590 X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
591 elif test -d /usr/include/Motif1.1 ; then
592 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
593 X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
596 # Now let's check for the pseudo-standard locations for OpenGL and XPM.
598 if test -d /opt/graphics/OpenGL/include ; then
599 # HP-UX 10.20 puts it here
600 X_CFLAGS="-I/opt/graphics/OpenGL/include $X_CFLAGS"
601 X_LIBS="-L/opt/graphics/OpenGL/lib $X_LIBS"
602 elif test -d /opt/Mesa/lib ; then
603 X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
604 X_LIBS="-L/opt/Mesa/lib $X_LIBS"
608 if test -d /opt/xpm/lib/X11 ; then
609 X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
610 X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
613 # On HPUX, default to installing in /opt/xscreensaver/ instead of
614 # in /usr/local/, unless there is already an xscreensaver in
615 # /usr/local/bin/. This can be overridden with the --prefix arg
616 # to configure. I'm not sure this is the right thing to do, but
617 # Richard Lloyd says so...
619 if test \! -x /usr/local/bin/xscreensaver ; then
620 ac_default_prefix=/opt/xscreensaver
626 # Thanks for not making xmkmf find this by default, pinheads.
627 # And thanks for moving things around again, too. Is this
628 # really the standard location now? What happened to the
629 # joke that this kind of thing went in /opt?
630 # cthomp says "answer: CDE (Common Disorganized Environment)"
632 if test -f /usr/dt/include/Xm/Xm.h ; then
633 X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
634 MOTIF_LIBS="$MOTIF_LIBS -L/usr/dt/lib -R/usr/dt/lib"
636 # Some versions of Slowlaris Motif require -lgen. But not all. Why?
637 AC_CHECK_LIB(gen, regcmp, [MOTIF_LIBS="$MOTIF_LIBS -lgen"])
643 # On MacOS X (10.x with "fink"), many things are under /sw/.
645 if test -d /sw/include ; then
646 X_CFLAGS="-I/sw/include $X_CFLAGS"
647 X_LIBS="-L/sw/lib $X_LIBS"
654 ###############################################################################
656 # Some utility functions to make checking for X things easier.
658 ###############################################################################
660 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
662 AC_DEFUN(AC_CHECK_X_HEADER, [
663 ac_save_CPPFLAGS="$CPPFLAGS"
664 if test \! -z "$includedir" ; then
665 CPPFLAGS="$CPPFLAGS -I$includedir"
667 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
668 AC_CHECK_HEADER([$1],[$2],[$3],[$4])
669 CPPFLAGS="$ac_save_CPPFLAGS"])
671 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
673 AC_DEFUN(AC_EGREP_X_HEADER, [
674 ac_save_CPPFLAGS="$CPPFLAGS"
675 if test \! -z "$includedir" ; then
676 CPPFLAGS="$CPPFLAGS -I$includedir"
678 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
679 AC_EGREP_HEADER([$1], [$2], [$3], [$4])
680 CPPFLAGS="$ac_save_CPPFLAGS"])
682 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
684 AC_DEFUN(AC_TRY_X_COMPILE, [
685 ac_save_CPPFLAGS="$CPPFLAGS"
686 if test \! -z "$includedir" ; then
687 CPPFLAGS="$CPPFLAGS -I$includedir"
689 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
690 AC_TRY_COMPILE([$1], [$2], [$3], [$4])
691 CPPFLAGS="$ac_save_CPPFLAGS"])
694 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
695 # Use this sparingly; it probably doesn't work very well on X programs.
697 AC_DEFUN(AC_CHECK_X_LIB, [
698 ac_save_CPPFLAGS="$CPPFLAGS"
699 ac_save_LDFLAGS="$LDFLAGS"
700 # ac_save_LIBS="$LIBS"
702 if test \! -z "$includedir" ; then
703 CPPFLAGS="$CPPFLAGS -I$includedir"
705 # note: $X_CFLAGS includes $x_includes
706 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
708 if test \! -z "$libdir" ; then
709 LDFLAGS="$LDFLAGS -L$libdir"
711 # note: $X_LIBS includes $x_libraries
712 LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
714 AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
715 CPPFLAGS="$ac_save_CPPFLAGS"
716 LDFLAGS="$ac_save_LDFLAGS"
717 # LIBS="$ac_save_LIBS"
720 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
721 # (But not the -L directories!)
723 AC_DEFUN(AC_TRY_X_RUN, [
724 ac_save_CPPFLAGS="$CPPFLAGS"
725 if test \! -z "$includedir" ; then
726 CPPFLAGS="$CPPFLAGS -I$includedir"
728 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
729 AC_TRY_RUN([$1], [$2], [$3], [$4])
730 CPPFLAGS="$ac_save_CPPFLAGS"])
734 # Usage: HANDLE_X_PATH_ARG([variable_name],
735 # [--command-line-option],
736 # [descriptive string])
738 # All of the --with options take three forms:
740 # --with-foo (or --with-foo=yes)
741 # --without-foo (or --with-foo=no)
744 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees
745 # a directory (string beginning with a slash) it checks to see whether
746 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
749 AC_DEFUN(HANDLE_X_PATH_ARG, [
755 AC_MSG_CHECKING([for [$3] headers])
758 X_CFLAGS="-I$d $X_CFLAGS"
761 AC_MSG_RESULT(not found ($d: no such directory))
764 AC_MSG_CHECKING([for [$3] libs])
767 X_LIBS="-L$d $X_LIBS"
770 AC_MSG_RESULT(not found ($d: no such directory))
773 # replace the directory string with "yes".
780 echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
781 echo " If it is a directory, then \`DIR/include' will be added to"
782 echo " the -I list, and \`DIR/lib' will be added to the -L list."
790 ###############################################################################
791 ###############################################################################
793 # End of function definitions. Now start actually executing stuff.
795 ###############################################################################
796 ###############################################################################
798 # random compiler setup
801 AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
809 # stuff for Makefiles
814 # By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'.
815 # That's wrong: it should be set to '${INSTALL}', so that one can
816 # implement the "install-strip" target properly (strip executables,
817 # but do not try to strip scripts.)
819 INSTALL_SCRIPT='${INSTALL}'
823 AC_CHECK_HEADERS(unistd.h)
832 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk)
834 AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
837 AC_CHECK_HEADERS(crypt.h sys/select.h)
840 if test -z "$PERL" ; then
841 # don't let it be blank...
847 if test "$have_x" != yes; then
848 AC_MSG_ERROR(Couldn't find X11 headers/libs. Try \`$0 --help'.)
851 AC_PATH_X_APP_DEFAULTS
855 AC_MSG_CHECKING(whether this is MacOS X)
862 AC_MSG_RESULT($ac_macosx)
866 ###############################################################################
870 ###############################################################################
873 GETTEXT_PACKAGE=xscreensaver
874 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE")
875 AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE")
876 AC_SUBST(GETTEXT_PACKAGE)
878 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"
882 ###############################################################################
884 # Check for -lXmu (some fucked up vendors don't ship it...)
886 ###############################################################################
889 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes],,
892 #include <X11/Intrinsic.h>])
893 if test "$have_xmu" = no ; then
894 XMU_SRCS='$(UTILS_SRC)/xmu.c'
895 XMU_OBJS='$(UTILS_BIN)/xmu.o'
905 ###############################################################################
907 # Check for the SunOS 4.1.x _get_wmShellWidgetClass bug.
908 # See comp.windows.x FAQ question 124. The right fix is to
909 # get OpenWindows 3.0 patches 100512-02 and 100573-03.
911 ###############################################################################
913 if test "$have_xmu" = yes ; then
916 AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
918 [ac_save_LDFLAGS="$LDFLAGS"
919 if test \! -z "$x_libraries" ; then
920 LDFLAGS="$LDFLAGS -L$x_libraries"
922 # Note: this trick never works! (Generally.)
923 # We're only getting away with using AC_TRY_LINK
924 # with X libraries because we know it's SunOS.
925 LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
927 [ac_cv_sunos_xmu_bug=no],
928 [ac_cv_sunos_xmu_bug=yes])
929 LDFLAGS="$ac_save_LDFLAGS"])
930 if test "$ac_cv_sunos_xmu_bug" = yes ; then
931 AC_CACHE_CHECK([whether the compiler understands -static],
933 [ac_save_LDFLAGS="$LDFLAGS"
934 LDFLAGS="$LDFLAGS -static"
935 AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
936 LDFLAGS="$ac_save_LDFLAGS"])
937 if test "$ac_cv_ld_static" = yes ; then
938 LDFLAGS="$LDFLAGS -static"
940 LDFLAGS="$LDFLAGS -Bstatic"
948 ###############################################################################
950 # Handle the --with-hackdir option
952 ###############################################################################
955 with_hackdir_req=unspecified
956 AC_ARG_WITH(hackdir,[
957 Installation options:
959 --with-hackdir=DIR Where to install the hundreds of demo executables.
960 Default: \`PREFIX/lib/xscreensaver/'],
961 [with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes])
963 if test x"$with_hackdir" = xyes; then
964 HACKDIR='${exec_prefix}/lib/xscreensaver'
965 elif test x"$with_hackdir" = xno; then
968 # there must be a better way than this...
969 if test -z "`echo $with_hackdir | sed 's@^/.*@@'`" ; then
971 HACKDIR=$with_hackdir
974 HACKDIR="\${exec_prefix}$with_hackdir"
978 # canonicalize slashes.
979 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
981 # This option used to be called --enable-subdir; make sure that is no longer
982 # used, since configure brain-damagedly ignores unknown --enable options.
985 AC_ARG_ENABLE(subdir,,[obsolete_enable=yes])
986 if test -n "$obsolete_enable"; then
987 echo "error: the --enable-subdir option has been replaced with"
988 echo " the new --with-hackdir option; see \`configure --help'"
989 echo " for more information."
994 ###############################################################################
996 # Handle the --with-configdir option
998 ###############################################################################
1001 with_configdir_req=unspecified
1002 AC_ARG_WITH(configdir,
1003 [ --with-configdir=DIR Where to install the data files that describe each
1004 of the display modes to the GUI.
1005 Default: \`GNOMEPREFIX/control-center/screensavers/'
1006 or \`PREFIX/lib/xscreensaver/config/', depending on
1007 whether GNOME is available.
1009 [with_configdir="$withval"; with_configdir_req="$withval"],
1010 [with_configdir=yes])
1012 if test x"$with_configdir" = xyes; then
1013 # filled in later...
1015 elif test x"$with_configdir" = xno; then
1016 echo "error: must be yes, or a pathname: --with-configdir=$with_configdir"
1019 # there must be a better way than this...
1020 if test -z "`echo $with_configdir | sed 's@^/.*@@'`" ; then
1022 HACK_CONF_DIR=$with_configdir
1025 HACK_CONF_DIR="\${exec_prefix}$with_configdir"
1032 ###############################################################################
1034 # Check for the SGI SCREEN_SAVER server extension.
1036 ###############################################################################
1039 with_sgi_req=unspecified
1040 AC_ARG_WITH(sgi-ext,
1041 [Except where noted, all of the --with options below can also take a
1042 directory argument: for example, \`--with-motif=/opt/Motif'. That would
1043 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
1044 to be added to the -L list, assuming those directories exist.
1046 By default, support for each of these options will be built in, if the
1047 relevant library routines exist. At run time, they will then be used
1048 only if the X server being used supports them. Each --with option has
1049 a corresponding --without option, to override building support for them
1052 Screen blanking and idle-detection options:
1054 --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.],
1055 [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
1057 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
1059 if test "$with_sgi" = yes; then
1060 AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
1062 AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],,
1063 [#include <X11/Xlib.h>])
1065 elif test "$with_sgi" != no; then
1066 echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
1071 ###############################################################################
1073 # Check for the MIT-SCREEN-SAVER server extension.
1075 ###############################################################################
1078 with_mit_req=unspecified
1079 AC_ARG_WITH(mit-ext,
1080 [ --with-mit-ext Include support for the MIT-SCREEN-SAVER extension.],
1081 [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
1083 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
1085 if test "$with_mit" = yes; then
1086 AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes],,
1087 [#include <X11/Xlib.h>])
1089 # Now check to see if it's really in the library; XF86Free-3.3 ships
1090 # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
1092 if test "$have_mit" = yes; then
1093 AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [true], [have_mit=no], -lm)
1095 if test "$have_mit" = no; then
1096 # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead
1097 # of in Xext. Thank you master, may I have another.
1098 AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
1099 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
1100 [true], -lX11 -lXext -lm)
1103 if test "$have_mit" = no; then
1104 # Double fuck! Looks like some versions of XFree86 (whichever version
1105 # it is that comes with RedHat Linux 2.0 -- I can't find a version
1106 # number) put this garbage in Xss instead of Xext. Thank you master,
1107 # may I have another.
1108 AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
1109 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
1110 [true], -lX11 -lXext -lm)
1113 if test "$have_mit" = yes; then
1114 AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
1119 elif test "$with_mit" != no; then
1120 echo "error: must be yes or no: --with-mit-ext=$with_mit"
1125 ###############################################################################
1127 # Check for the XIDLE server extension.
1129 ###############################################################################
1132 with_xidle_req=unspecified
1133 AC_ARG_WITH(xidle-ext,
1134 [ --with-xidle-ext Include support for the XIDLE extension.],
1135 [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
1137 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
1139 if test "$with_xidle" = yes; then
1140 AC_CHECK_X_HEADER(X11/extensions/xidle.h,
1142 AC_DEFINE(HAVE_XIDLE_EXTENSION)],,
1143 [#include <X11/Xlib.h>])
1144 elif test "$with_xidle" != no; then
1145 echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
1150 ###############################################################################
1152 # Check for the SGI-VIDEO-CONTROL server extension.
1154 ###############################################################################
1157 with_sgivc_req=unspecified
1158 AC_ARG_WITH(sgivc-ext,
1159 [ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension.],
1160 [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
1162 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
1164 if test "$with_sgivc" = yes; then
1166 # first check for XSGIvc.h
1167 AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],,
1168 [#include <X11/Xlib.h>])
1170 # if that succeeded, then check for the -lXsgivc
1171 if test "$have_sgivc" = yes; then
1173 AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
1174 [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
1178 # if that succeeded, then we've really got it.
1179 if test "$have_sgivc" = yes; then
1180 AC_DEFINE(HAVE_SGI_VC_EXTENSION)
1183 elif test "$with_sgivc" != no; then
1184 echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
1189 ###############################################################################
1191 # Check for the DPMS server extension.
1193 ###############################################################################
1196 with_dpms_req=unspecified
1197 AC_ARG_WITH(dpms-ext,
1198 [ --with-dpms-ext Include support for the DPMS extension.],
1199 [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
1201 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
1203 if test "$with_dpms" = yes; then
1205 # first check for dpms.h
1206 AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes],,
1207 [#include <X11/Xlib.h>
1208 #include <X11/Xmd.h>])
1210 # if that succeeded, then check for the DPMS code in the libraries
1211 if test "$have_dpms" = yes; then
1213 # first look in -lXext (this is where it is with XFree86 4.0)
1215 AC_CHECK_X_LIB(Xext, DPMSInfo, [have_dpms=yes], [true], -lXext -lX11)
1217 # if that failed, look in -lXdpms (this is where it was in XFree86 3.x)
1218 if test "$have_dpms" = no; then
1219 AC_CHECK_X_LIB(Xdpms, DPMSInfo,
1220 [have_dpms=yes; XDPMS_LIBS="-lXdpms"], [true],
1226 # if that succeeded, then we've really got it.
1227 if test "$have_dpms" = yes; then
1228 AC_DEFINE(HAVE_DPMS_EXTENSION)
1231 elif test "$with_dpms" != no; then
1232 echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
1237 ###############################################################################
1239 # Check for the XINERAMA server extension.
1241 ###############################################################################
1244 with_xinerama_req=unspecified
1245 AC_ARG_WITH(xinerama-ext,
1246 [ --with-xinerama-ext Include support for the XINERAMA extension.],
1247 [with_xinerama="$withval"; with_xinerama_req="$withval"],[with_xinerama=yes])
1249 HANDLE_X_PATH_ARG(with_xinerama, --with-xinerama-ext, XINERAMA)
1251 if test "$with_xinerama" = yes; then
1253 # first check for Xinerama.h
1254 AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes],,
1255 [#include <X11/Xlib.h>])
1257 # if that succeeded, then check for the XINERAMA code in the libraries
1258 if test "$have_xinerama" = yes; then
1260 # first look in -lXext
1262 AC_CHECK_X_LIB(Xext, XineramaQueryExtension, [have_xinerama=yes], [true],
1265 # if that failed, look in -lXinerama (this is where it is in XFree86 4.1.)
1266 if test "$have_xinerama" = no; then
1267 AC_CHECK_X_LIB(Xinerama, XineramaQueryExtension,
1268 [have_xinerama=yes; SAVER_LIBS="$SAVER_LIBS -lXinerama"],
1269 [true], -lXext -lX11)
1273 # if that succeeded, then we've really got it.
1274 if test "$have_xinerama" = yes; then
1275 AC_DEFINE(HAVE_XINERAMA)
1278 elif test "$with_xinerama" != no; then
1279 echo "error: must be yes or no: --with-xinerama-ext=$with_xinerama"
1284 ###############################################################################
1286 # Check for the XF86VMODE server extension (for virtual screens.)
1288 ###############################################################################
1291 with_xf86vmode_req=unspecified
1292 AC_ARG_WITH(xf86vmode-ext,
1293 [ --with-xf86vmode-ext Include support for XFree86 virtual screens.],
1294 [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"],
1295 [with_xf86vmode=yes])
1297 HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
1299 if test "$with_xf86vmode" = yes; then
1301 # first check for xf86vmode.h
1302 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],,
1303 [#include <X11/Xlib.h>])
1305 # if that succeeded, then check for the -lXxf86vm
1306 if test "$have_xf86vmode" = yes; then
1308 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
1309 [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
1310 [true], -lXext -lX11)
1313 # if that succeeded, then we've really got it.
1314 if test "$have_xf86vmode" = yes; then
1315 AC_DEFINE(HAVE_XF86VMODE)
1318 elif test "$with_xf86vmode" != no; then
1319 echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
1324 ###############################################################################
1326 # Check for the XF86VMODE server extension (for gamma fading.)
1328 ###############################################################################
1331 have_xf86gamma_ramp=no
1332 with_xf86gamma_req=unspecified
1333 AC_ARG_WITH(xf86gamma-ext,
1334 [ --with-xf86gamma-ext Include support for XFree86 gamma fading.],
1335 [with_xf86gamma="$withval"; with_xf86gamma_req="$withval"],
1336 [with_xf86gamma=yes])
1338 HANDLE_X_PATH_ARG(with_xf86gamma, --with-xf86gamma-ext, xf86gamma)
1340 if test "$with_xf86gamma" = yes; then
1342 # first check for xf86vmode.h, if we haven't already
1343 if test "$have_xf86vmode" = yes; then
1346 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],,
1347 [#include <X11/Xlib.h>])
1350 # if that succeeded, then check for the -lXxf86vm
1351 if test "$have_xf86gamma" = yes; then
1353 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGamma,
1354 [have_xf86gamma=yes],
1355 [true], -lXext -lX11)
1358 # check for the Ramp versions of the functions too.
1359 if test "$have_xf86gamma" = yes; then
1360 have_xf86gamma_ramp=no
1361 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGammaRamp,
1362 [have_xf86gamma_ramp=yes],
1363 [true], -lXext -lX11)
1366 # if those tests succeeded, then we've really got the functions.
1367 if test "$have_xf86gamma" = yes; then
1368 AC_DEFINE(HAVE_XF86VMODE_GAMMA)
1371 if test "$have_xf86gamma_ramp" = yes; then
1372 AC_DEFINE(HAVE_XF86VMODE_GAMMA_RAMP)
1375 # pull in the lib, if we haven't already
1376 if test "$have_xf86gamma" = yes -a "$have_xf86vmode" = no; then
1377 SAVER_LIBS="$SAVER_LIBS -lXxf86vm"
1380 elif test "$with_xf86gamma" != no; then
1381 echo "error: must be yes or no: --with-xf86gamma-ext=$with_xf86vmode"
1386 ###############################################################################
1388 # Check for XF86MiscSetGrabKeysState (but only bother if we are already
1389 # using other XF86 stuff.)
1391 ###############################################################################
1393 have_xf86miscsetgrabkeysstate=no
1394 if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then
1395 AC_CHECK_X_LIB(Xxf86misc, XF86MiscSetGrabKeysState,
1396 [have_xf86miscsetgrabkeysstate=yes],
1397 [true], -lXext -lX11)
1398 if test "$have_xf86miscsetgrabkeysstate" = yes ; then
1399 SAVER_LIBS="$SAVER_LIBS -lXxf86misc"
1400 AC_DEFINE(HAVE_XF86MISCSETGRABKEYSSTATE)
1405 ###############################################################################
1407 # Check for HP XHPDisableReset and XHPEnableReset.
1409 ###############################################################################
1411 AC_MSG_CHECKING([for XHPDisableReset in X11/XHPlib.h])
1412 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
1413 [AC_DEFINE(HAVE_XHPDISABLERESET)
1414 SAVER_LIBS="-lXhp11 $SAVER_LIBS"
1415 AC_MSG_RESULT(yes)],
1416 [AC_MSG_RESULT(no)])
1419 ###############################################################################
1421 # Check for /proc/interrupts.
1423 ###############################################################################
1425 have_proc_interrupts=no
1426 with_proc_interrupts_req=unspecified
1427 AC_ARG_WITH(proc-interrupts,
1428 [ --with-proc-interrupts Include support for consulting the /proc/interrupts
1429 file to notice keyboard activity.],
1430 [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
1431 [with_proc_interrupts=yes])
1433 if test "$with_proc_interrupts" = yes; then
1435 AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
1436 ac_cv_have_proc_interrupts,
1437 [ac_cv_have_proc_interrupts=no
1438 if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
1439 ac_cv_have_proc_interrupts=yes
1442 have_proc_interrupts=$ac_cv_have_proc_interrupts
1444 if test "$have_proc_interrupts" = yes; then
1445 AC_DEFINE(HAVE_PROC_INTERRUPTS)
1448 elif test "$with_proc_interrupts" != no; then
1449 echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
1454 ###############################################################################
1456 # The --enable-locking option
1458 ###############################################################################
1460 AC_ARG_ENABLE(locking,[
1461 Screen locking options:
1463 --enable-locking Compile in support for locking the display.
1464 --disable-locking Do not allow locking at all.],
1465 [enable_locking="$enableval"],[enable_locking=yes])
1466 if test "$enable_locking" = yes; then
1468 elif test "$enable_locking" = no; then
1469 AC_DEFINE(NO_LOCKING)
1471 echo "error: must be yes or no: --enable-locking=$enable_locking"
1475 # We can't lock on MacOS X, so don't even bother compiling in support for it.
1477 if test "$ac_macosx" = yes; then
1478 if test "$enable_locking" = yes; then
1479 AC_MSG_RESULT(locking disabled: it doesn't work on MacOS X)
1481 AC_DEFINE(NO_LOCKING)
1486 ###############################################################################
1488 # The --enable-vt-locking option
1490 ###############################################################################
1492 #ac_vt_lockswitch=no
1493 #AC_ARG_ENABLE(vt-locking,[
1494 # --enable-vt-locking Compile in support for locking Virtual Terminals.
1495 # This is the default if the system supports it, and
1496 # if locking support is included (--enable-locking.)
1497 # --disable-vt-locking Do not allow locking of VTs, even if locking is
1499 # [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1500 #if test "$enable_vt_locking" = yes; then
1502 # AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1503 # [AC_TRY_COMPILE([#include <fcntl.h>
1504 # #include <sys/ioctl.h>
1505 # #include <sys/vt.h>],
1506 # [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1507 # [ac_cv_vt_lockswitch=yes],
1508 # [ac_cv_vt_lockswitch=no])])
1509 # ac_vt_lockswitch=$ac_cv_vt_lockswitch
1511 #elif test "$enable_vt_locking" = no; then
1514 # echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1518 #if test "$ac_vt_lockswitch" = yes; then
1519 # AC_DEFINE(HAVE_VT_LOCKSWITCH)
1520 # # the VT_LOCKSWITCH ioctl can only be used when running as root.
1521 # # #### but it doesn't work yet, so don't worry about that for now.
1526 ###############################################################################
1530 ###############################################################################
1534 # Solaris systems tend to come with PAM misconfigured.
1535 # Don't build it by default, even if the headers exist.
1539 # Default to building PAM support on all other systems, if it exists.
1540 with_pam_default=yes
1545 with_pam_req=unspecified
1548 [ --with-pam Include support for PAM (Pluggable Auth Modules.)],
1549 [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1551 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1553 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1554 AC_CACHE_CHECK([for PAM], ac_cv_pam,
1555 [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1558 if test "$ac_cv_pam" = yes ; then
1561 PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1563 # libpam typically requires dlopen and dlsym. On FreeBSD,
1564 # those are in libc. On Linux and Solaris, they're in libdl.
1565 AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1567 AC_MSG_CHECKING(how to call pam_strerror)
1568 AC_CACHE_VAL(ac_cv_pam_strerror_args,
1569 [AC_TRY_COMPILE([#include <stdio.h>
1571 #include <security/pam_appl.h>],
1572 [pam_handle_t *pamh = 0;
1573 char *s = pam_strerror(pamh, PAM_SUCCESS);],
1574 [ac_pam_strerror_args=2],
1575 [AC_TRY_COMPILE([#include <stdio.h>
1577 #include <security/pam_appl.h>],
1579 pam_strerror(PAM_SUCCESS);],
1580 [ac_pam_strerror_args=1],
1581 [ac_pam_strerror_args=0])])
1582 ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1583 ac_pam_strerror_args=$ac_cv_pam_strerror_args
1584 if test "$ac_pam_strerror_args" = 1 ; then
1585 AC_MSG_RESULT(one argument)
1586 elif test "$ac_pam_strerror_args" = 2 ; then
1587 AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1588 AC_MSG_RESULT(two arguments)
1590 AC_MSG_RESULT(unknown)
1596 ###############################################################################
1598 # Check for Kerberos.
1600 ###############################################################################
1604 with_kerberos_req=unspecified
1606 AC_ARG_WITH(kerberos,
1607 [ --with-kerberos Include support for Kerberos authentication.],
1608 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1610 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1612 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1613 AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
1614 [AC_TRY_X_COMPILE([#include <krb.h>],,
1615 [ac_cv_kerberos=yes],
1616 [ac_cv_kerberos=no])])
1617 AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
1618 [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
1619 [ac_cv_kerberos5=yes],
1620 [ac_cv_kerberos5=no])])
1622 if test "$ac_cv_kerberos" = yes ; then
1624 AC_DEFINE(HAVE_KERBEROS)
1627 if test "$ac_cv_kerberos5" = yes ; then
1629 # Andrew Snare <ajs@pigpond.com> wrote:
1631 # You were assuming that if kerberosV (krb5) was found, then kerberosIV
1632 # (krb4) was also available. This turns out not to be the case with
1633 # mit-krb-1.2.7; apparently backwards-compatibility with KerberosIV
1636 # So, disable kerberosV support if libkrb4 can't be found.
1637 # This is not the best solution, but it makes the compile not fail.
1639 AC_CHECK_X_LIB(krb4, krb_get_tf_realm,
1640 [have_kerberos=yes],
1642 if test "$have_kerberos" = yes ; then
1644 AC_DEFINE(HAVE_KERBEROS)
1645 AC_DEFINE(HAVE_KERBEROS5)
1648 AC_MSG_WARN([Cannot find compat lib (libkrb4) needed to use Kerberos 5])
1653 if test "$have_kerberos5" = yes ; then
1654 # from Matt Knopp <mhat@infocalypse.netlag.com>
1655 # (who got it from amu@mit.edu)
1657 PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"
1659 # jwz: MacOS X uses -lkrb5, but not -lcrypt
1660 AC_CHECK_X_LIB(crypt, crypt, [PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1662 elif test "$have_kerberos" = yes ; then
1663 # from Tim Showalter <tjs@psaux.com> for FreeBSD 4.2
1664 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err"
1667 if test "$have_kerberos" = yes ; then
1668 AC_CHECK_FUNC(res_search,,
1669 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1670 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1676 ###############################################################################
1678 # Check for the nine billion variants of shadow passwords...
1680 ###############################################################################
1685 with_shadow_req=unspecified
1688 [ --with-shadow Include support for shadow password authentication.],
1689 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1691 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1693 if test "$enable_locking" = no ; then
1699 ###############################################################################
1701 # Check for Sun "adjunct" passwords.
1703 ###############################################################################
1705 if test "$with_shadow" = yes ; then
1706 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1707 [AC_TRY_X_COMPILE([#include <stdlib.h>
1709 #include <sys/types.h>
1710 #include <sys/label.h>
1711 #include <sys/audit.h>
1712 #include <pwdadj.h>],
1713 [struct passwd_adjunct *p = getpwanam("nobody");
1714 const char *pw = p->pwa_passwd;],
1715 [ac_cv_sun_adjunct=yes],
1716 [ac_cv_sun_adjunct=no])])
1717 if test "$ac_cv_sun_adjunct" = yes; then
1718 have_shadow_adjunct=yes
1725 ###############################################################################
1727 # Check for DEC and SCO so-called "enhanced" security.
1729 ###############################################################################
1731 if test "$with_shadow" = yes ; then
1732 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1733 [AC_TRY_X_COMPILE([#include <stdlib.h>
1735 #include <sys/types.h>
1737 #include <sys/security.h>
1739 [struct pr_passwd *p;
1741 set_auth_parameters(0, 0);
1742 check_auth_parameters();
1743 p = getprpwnam("nobody");
1744 pw = p->ufld.fd_encrypt;],
1745 [ac_cv_enhanced_passwd=yes],
1746 [ac_cv_enhanced_passwd=no])])
1747 if test $ac_cv_enhanced_passwd = yes; then
1748 have_shadow_enhanced=yes
1752 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1753 # (I'm told it needs -lcurses too, but I don't understand why.)
1754 # But on DEC, it's in -lsecurity.
1756 AC_CHECK_LIB(prot, getprpwnam,
1757 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1758 [AC_CHECK_LIB(security, getprpwnam,
1759 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1764 ###############################################################################
1766 # Check for HP's entry in the "Not Invented Here" Sweepstakes.
1768 ###############################################################################
1770 if test "$with_shadow" = yes ; then
1771 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1772 [AC_TRY_X_COMPILE([#include <stdlib.h>
1774 #include <sys/types.h>
1776 #include <hpsecurity.h>
1778 [struct s_passwd *p = getspwnam("nobody");
1779 const char *pw = p->pw_passwd;],
1780 [ac_cv_hpux_passwd=yes],
1781 [ac_cv_hpux_passwd=no])])
1782 if test "$ac_cv_hpux_passwd" = yes; then
1783 have_shadow_hpux=yes
1787 # on HPUX, bigcrypt is in -lsec
1788 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1793 ###############################################################################
1795 # Check for FreeBSD-style shadow passwords.
1797 # On FreeBSD, getpwnam() and friends work just like on non-shadow-
1798 # password systems -- except you only get stuff in the pw_passwd field
1799 # if the running program is setuid. So, guess that we've got this
1800 # lossage to contend with if /etc/master.passwd exists, and default to
1801 # a setuid installation.
1803 ###############################################################################
1805 if test "$with_shadow" = yes ; then
1806 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1807 [if test -f /etc/master.passwd ; then
1808 ac_cv_master_passwd=yes
1810 ac_cv_master_passwd=no
1812 if test "$ac_cv_master_passwd" = yes; then
1818 ###############################################################################
1820 # Check for traditional (ha!) shadow passwords.
1822 ###############################################################################
1824 if test "$with_shadow" = yes ; then
1825 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1826 [AC_TRY_X_COMPILE([#include <stdlib.h>
1828 #include <sys/types.h>
1830 #include <shadow.h>],
1831 [struct spwd *p = getspnam("nobody");
1832 const char *pw = p->sp_pwdp;],
1834 [ac_cv_shadow=no])])
1835 if test "$ac_cv_shadow" = yes; then
1839 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1841 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1842 if test "$have_getspnam" = no ; then
1843 AC_CHECK_LIB(gen, getspnam,
1844 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1850 ###############################################################################
1852 # Check for other libraries needed for non-shadow passwords.
1854 ###############################################################################
1856 if test "$enable_locking" = yes ; then
1858 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1860 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1861 if test "$have_crypt" = no ; then
1862 AC_CHECK_LIB(crypt, crypt,
1863 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1868 # Most of the above shadow mechanisms will have set need_setuid to yes,
1869 # if they were found. But, on some systems, we need setuid even when
1870 # using plain old vanilla passwords.
1872 if test "$enable_locking" = yes ; then
1874 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1881 if test "$have_shadow_adjunct" = yes ; then
1882 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1883 elif test "$have_shadow_enhanced" = yes ; then
1884 AC_DEFINE(HAVE_ENHANCED_PASSWD)
1885 elif test "$have_shadow_hpux" = yes ; then
1886 AC_DEFINE(HAVE_HPUX_PASSWD)
1887 elif test "$have_shadow" = yes ; then
1888 AC_DEFINE(HAVE_SHADOW_PASSWD)
1892 ###############################################################################
1896 ###############################################################################
1899 with_motif_req=unspecified
1901 User interface options:
1903 --with-motif Use the Motif toolkit for the user interface
1904 (not recommended.)],
1905 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no])
1907 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
1909 if test "$with_motif" != yes -a "$with_motif" != no ; then
1910 echo "error: must be yes or no: --with-motif=$with_motif"
1914 if test "$with_motif" = yes; then
1916 AC_CHECK_X_HEADER(Xm/Xm.h,
1918 AC_DEFINE(HAVE_MOTIF)
1919 MOTIF_LIBS="$MOTIF_LIBS -lXm"],,
1920 [#include <stdlib.h>
1922 #include <X11/Intrinsic.h>])
1926 if test "$have_motif" = yes; then
1927 AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],,
1928 [#include <stdlib.h>
1930 #include <X11/Intrinsic.h>])
1934 ###############################################################################
1936 # Check for -lgtk (and Gnome stuff)
1938 ###############################################################################
1942 with_gtk_req=unspecified
1944 [ --with-gtk Use the Gtk toolkit for the user interface.],
1945 [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
1947 # if --with-gtk=/directory/ was specified, remember that directory so that
1948 # we can also look for the `gtk-config' program in that directory.
1958 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
1960 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
1961 echo "error: must be yes or no: --with-gtk=$with_gtk"
1966 with_gnome_req=unspecified
1968 [ --with-gnome Include support for the Gnome 1.x Control Center.
1969 (This option is not needed with GTK 2.x / Gnome 2.x.)
1971 [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
1973 # if --with-gnome=/directory/ was specified, remember that directory so that
1974 # we can also look for the `gnome-config' program in that directory.
1975 case "$with_gnome" in
1977 gnome_dir="$with_gnome"
1984 HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome)
1986 if test "$with_gnome" != yes -a "$with_gnome" != no ; then
1987 echo "error: must be yes or no: --with-gnome=$with_gnome"
1991 parse_gtk_version_string() {
1994 maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
1995 min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
1997 ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
1998 if test -z "$ac_gtk_version"; then
1999 ac_gtk_version=unknown
2000 ac_gtk_version_string=unknown
2008 if test "$with_gtk" = yes; then
2011 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2012 # look in /foo/bin/ for glib-config, gtk-config, and gnome-config.
2016 if test ! -z "$gtk_dir"; then
2017 # canonicalize slashes.
2018 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2019 gtk_path="$foo:$gtk_path"
2022 if test ! -z "$gnome_dir"; then
2023 # canonicalize slashes.
2024 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2025 gtk_path="$foo:$gtk_path"
2028 AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path)
2030 if test -n "$pkg_config" ; then
2033 # run pkg-config based tests.
2036 pkg_check_version() {
2037 if test "$ok" = yes ; then
2040 AC_MSG_CHECKING(for $req)
2041 if $pkg_config --exists "$req" ; then
2042 vers=`$pkg_config --modversion "$req"`
2043 if $pkg_config --exists "$req >= $min" ; then
2044 AC_MSG_RESULT($vers)
2048 AC_MSG_RESULT($vers (wanted >= $min))
2060 AC_MSG_RESULT(checking for GTK 2.x with pkg-config based tests...)
2063 pkg_check_version gtk+-2.0 2.0.1 ; ac_gtk_version_string="$vers"
2064 pkg_check_version gmodule-2.0 2.0.0
2065 pkg_check_version libxml-2.0 2.4.6
2066 pkg_check_version libglade-2.0 1.99.0
2067 # pkg_check_version gdk_pixbuf 0.1
2070 if test "$have_gtk" = yes; then
2072 AC_DEFINE(HAVE_GTK2)
2074 if test -n "$ac_gtk_version_string" ; then
2075 gtk2_halfassed="$ac_gtk_version_string"
2076 gtk2_halfassed_lib="$req"
2080 if test "$have_gtk" = no; then
2082 # we don't have GTK 2. Let's look for GTK 1.
2084 AC_MSG_RESULT(checking for GTK 1.x with pkg-config based tests...)
2088 pkg_check_version gtk+ 1.2 ; ac_gtk_version_string="$vers"
2089 pkg_check_version glib 1.0
2090 pkg_check_version gdk_pixbuf 0.1
2093 # Now check for Gnome...
2095 if test "$have_gtk" = yes -a "$with_gnome" = yes; then
2098 pkg_check_version capplet 1.0
2099 pkg_check_version gnomeui 1.0
2100 pkg_check_version gdk_pixbuf 0.1
2103 if test "$have_gnome" = no; then
2106 AC_DEFINE(HAVE_CRAPPLET)
2111 if test "$have_gtk" = yes; then
2112 parse_gtk_version_string
2118 if test "$have_gtk" = yes; then
2119 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
2120 [ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`])
2121 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
2122 [ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs`])
2124 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
2125 ac_gtk_config_libs=$ac_cv_gtk_config_libs
2127 ac_gnome_config_cflags=$ac_gtk_config_cflags
2128 ac_gnome_config_libs=$ac_gtk_config_libs
2133 # run {gnome,gtk}-config based tests.
2135 AC_MSG_RESULT(checking for GTK 1.x with gtk-config based tests...)
2137 AC_PATH_PROGS(glib_config, glib12-config glib-config,, $gtk_path)
2138 AC_PATH_PROGS(gtk_config, gtk12-config gtk-config,, $gtk_path)
2140 if test "$with_gnome" = yes; then
2141 AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
2144 if test -n "$glib_config" -a -n "$gtk_config" ; then
2146 if test "$with_gnome" = yes -a -n "$gnome_config" ; then
2151 if test "$have_gtk" = yes; then
2152 AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
2153 [ac_cv_gtk_version_string=`$gtk_config --version`])
2154 ac_gtk_version_string=$ac_cv_gtk_version_string
2155 parse_gtk_version_string
2158 if test "$have_gtk" = yes; then
2159 if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
2167 if test "$have_gtk" = yes; then
2168 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
2169 [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
2170 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
2171 [ac_cv_gtk_config_libs=`$gtk_config --libs`])
2173 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
2174 ac_gtk_config_libs=$ac_cv_gtk_config_libs
2176 # Check for Gnome Capplet support.
2177 # Note that this is only needed with Gnome 1.x, not Gnome 2.x.
2178 # In a Gnome 2.x world, libcapplet will not exist.
2179 # (In fact, this likely won't even be checked, since in a Gnome 2.x
2180 # world, we will probably be up in the "$pkg_config" branch instead
2181 # of here in the "$gnome_config" branch.)
2183 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2184 gnome_config_libs="gtk capplet gnomeui gdk_pixbuf"
2185 AC_MSG_CHECKING(for Gnome capplet includes)
2186 AC_CACHE_VAL(ac_cv_gnome_config_cflags,
2187 [if ( $gnome_config --cflags $gnome_config_libs 2>&1 | \
2188 grep Unknown >/dev/null ) ; then
2189 ac_cv_gnome_config_cflags=''
2191 ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
2193 ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
2194 if test "$ac_gnome_config_cflags" = "" ; then
2198 AC_MSG_RESULT($ac_gnome_config_cflags)
2202 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2203 AC_MSG_CHECKING(for Gnome capplet libs)
2204 AC_CACHE_VAL(ac_cv_gnome_config_libs,
2205 [if ( $gnome_config --libs $gnome_config_libs 2>&1 |
2206 grep Unknown >/dev/null ) ; then
2207 ac_cv_gnome_config_libs=''
2209 ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
2211 ac_gnome_config_libs=$ac_cv_gnome_config_libs
2212 if test "$ac_gnome_config_libs" = "" ; then
2216 AC_MSG_RESULT($ac_gnome_config_libs)
2220 # If we have Gnome, then override the gtk-config values with
2221 # the gnome-config values.
2223 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2224 ac_gtk_config_cflags=$ac_gnome_config_cflags
2225 ac_gtk_config_libs=$ac_gnome_config_libs
2226 AC_DEFINE(HAVE_CRAPPLET)
2229 fi # end of {gnome,gtk}-config based tests
2231 if test "$have_gtk" = yes -a "$have_gtk2" = no; then
2232 # check for this function that was not in libcapplet 1.2.
2233 # (only needed in Gnome/Gtk 1.x, not Gnome/Gtk 2.x)
2234 AC_CHECK_X_LIB(capplet, capplet_widget_changes_are_immediate,
2235 [AC_DEFINE(HAVE_CRAPPLET_IMMEDIATE)], [true],
2236 $ac_gnome_config_libs)
2241 if test "$have_gtk" = yes; then
2242 if test -n "$pkg_config"; then
2243 if test "$have_gtk2" = yes; then
2244 GNOME_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
2246 GNOME_DATADIR=`$pkg_config --variable=prefix gtk+`
2249 GNOME_DATADIR=`$gtk_config --prefix`
2251 GNOME_DATADIR="$GNOME_DATADIR/share"
2254 # .desktop files go in different places in Gnome 1.x and Gnome 2.x...
2255 if test "$have_gtk2" = yes; then
2256 GNOME_PANELDIR='$(GNOME_PANELDIR2)'
2258 GNOME_PANELDIR='$(GNOME_PANELDIR1)'
2262 if test "$have_gtk" = yes; then
2263 INCLUDES="$INCLUDES $ac_gtk_config_cflags"
2264 GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
2267 if test "$have_gtk2" = yes; then
2270 GTK_EXTRA_OBJS="\$(GTK_EXTRA_OBJS)"
2277 # Check for the Gnome Help Browser.
2279 if test "$have_gtk" = yes; then
2280 AC_CHECK_PROGS(have_gnome_help, yelp gnome-help-browser, no)
2281 if test "$have_gnome_help" != no; then
2287 ###############################################################################
2291 ###############################################################################
2294 with_xml_req=unspecified
2297 [ --with-xml The XML toolkit is needed for some parts of
2298 the Gtk interface. Without it, the configuration
2299 interface will be much less featureful.],
2300 [with_xml="$withval"; with_xml_req="$withval"],[with_xml=yes])
2302 # if --with-xml=/directory/ was specified, remember that directory so that
2303 # we can also look for the `xml-config' program in that directory.
2313 HANDLE_X_PATH_ARG(with_xml, --with-xml, XML)
2315 if test "$with_xml" != yes -a "$with_xml" != no ; then
2316 echo "error: must be yes or no: --with-xml=$with_xml"
2320 if test "$with_xml" = yes; then
2324 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2325 # look in /foo/bin/ for for xml-config.
2329 if test ! -z "$gtk_dir"; then
2330 # canonicalize slashes.
2331 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2332 xml_path="$foo:$xml_path"
2335 if test ! -z "$gnome_dir"; then
2336 # canonicalize slashes.
2337 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2338 xml_path="$foo:$xml_path"
2341 if test -n "$pkg_config" ; then
2344 # run pkg-config based tests.
2349 # If we have Gtk 2.x, then *only* XML 2.x will work.
2350 # If we have Gtk 1.x, or don't have Gtk at all, then
2351 # either XML 1.x or 2.x will work.
2353 # First check for XML 2.x.
2355 pkg_check_version libxml-2.0 2.4.6
2357 # If that didn't work (we don't have XML 2.x) and we *don't* have
2358 # Gtk 2.x, then check to see if we have XML 1.x
2360 if test "$ok" = no -a "$have_gtk2" = no; then
2362 pkg_check_version libxml 1.0
2367 if test "$have_xml" = yes; then
2368 AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2369 [ac_cv_xml_config_cflags=`$pkg_config --cflags $pkgs`])
2370 AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2371 [ac_cv_xml_config_libs=`$pkg_config --libs $pkgs`])
2372 ac_xml_config_cflags=$ac_cv_xml_config_cflags
2373 ac_xml_config_libs=$ac_cv_xml_config_libs
2379 # run {xml2,xml}-config based tests.
2382 AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path)
2384 # If we found the xml-config program, run it to get flags.
2386 if test -n "$xml_config" ; then
2387 AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2388 [ac_cv_xml_config_cflags=`$xml_config --cflags`])
2389 AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2390 [ac_cv_xml_config_libs=`$xml_config --libs`])
2391 ac_xml_config_cflags=$ac_cv_xml_config_cflags
2392 ac_xml_config_libs=$ac_cv_xml_config_libs
2395 ac_save_xml_CPPFLAGS="$CPPFLAGS"
2396 CPPFLAGS="$CPPFLAGS $ac_xml_config_cflags"
2398 # first try <libxml/parser.h> which is the new way...
2400 AC_CHECK_X_HEADER(libxml/xmlIO.h, [have_xml=yes],,
2401 [#include <libxml/parser.h>])
2403 # if that didn't work, then try just <parser.h> which is the old way...
2405 if test "$have_xml" = no; then
2406 AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes; have_old_xml=yes],,
2407 [#include <parser.h>])
2410 CPPFLAGS="$ac_save_xml_CPPFLAGS"
2415 if test "$have_xml" = yes; then
2416 # we have the XML headers; now make sure zlib is around.
2417 # yes, it's stupid we have to do this too, but there is
2418 # dependency screwage in Gnome.
2419 AC_CHECK_X_LIB(z, zlibVersion, [have_zlib=yes])
2420 if test "$have_zlib" = no; then
2426 if test "$have_xml" = yes; then
2427 # we have the header, now check for the library
2430 AC_CHECK_X_LIB(c, xmlParseChunk,
2433 XML_LIBS="$ac_xml_config_libs"
2434 AC_DEFINE(HAVE_XML)],
2436 $ac_xml_config_libs)
2439 if test "$have_xml" = yes; then
2440 INCLUDES="$INCLUDES $ac_xml_config_cflags"
2441 GTK_LIBS="$GTK_LIBS $ac_xml_config_libs"
2443 if test "$have_old_xml" = yes; then
2444 AC_DEFINE(HAVE_OLD_XML_HEADERS)
2451 ###############################################################################
2453 # Checking whether Motif is really Lesstif.
2455 ###############################################################################
2458 if test "$have_motif" = yes ; then
2459 AC_CACHE_CHECK([whether Motif is really LessTif],
2461 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
2462 [long vers = LesstifVersion;],
2463 [ac_cv_have_lesstif=yes],
2464 [ac_cv_have_lesstif=no])])
2465 have_lesstif=$ac_cv_have_lesstif
2469 lesstif_version=unknown
2470 lesstif_version_string=unknown
2472 if test "$have_lesstif" = yes ; then
2474 echo unknown > conftest-lt
2475 AC_CACHE_CHECK([LessTif version number],
2476 ac_cv_lesstif_version_string,
2477 [AC_TRY_X_RUN([#include <stdio.h>
2480 FILE *f = fopen("conftest-lt", "w");
2482 fprintf(f, "%d %d.%d\n", LesstifVersion,
2483 LESSTIF_VERSION, LESSTIF_REVISION);
2487 [ltv=`cat conftest-lt`
2488 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
2489 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
2490 [ac_cv_lesstif_version=unknown
2491 ac_cv_lesstif_version_string=unknown],
2492 [ac_cv_lesstif_version=unknown
2493 ac_cv_lesstif_version_string=unknown])])
2495 lesstif_version=$ac_cv_lesstif_version
2496 lesstif_version_string=$ac_cv_lesstif_version_string
2501 if test "$have_motif" = yes ; then
2503 echo unknown > conftest-mt
2504 AC_CACHE_CHECK([Motif version number],
2505 ac_cv_motif_version_string,
2506 [AC_TRY_X_RUN([#include <stdio.h>
2509 FILE *f = fopen("conftest-mt", "w");
2511 fprintf(f, "%d %d.%d\n", XmVersion,
2512 XmVERSION, XmREVISION);
2516 [mtv=`cat conftest-mt`
2517 ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
2518 ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
2519 [ac_cv_motif_version=unknown
2520 ac_cv_motif_version_string=unknown],
2521 [ac_cv_motif_version=unknown
2522 ac_cv_motif_version_string=unknown])])
2524 motif_version=$ac_cv_motif_version
2525 motif_version_string=$ac_cv_motif_version_string
2530 ###############################################################################
2532 # Checking whether Motif requires -lXpm.
2534 # If this is Motif 2.x, and we have XPM, then link against XPM as well.
2535 # The deal is, Motif 2.x requires XPM -- but it's a compilation option
2536 # of the library whether to build the XPM code into libXm, or whether
2537 # to rely on an external libXm. So the only way to tell whether XPM is
2538 # a link-time requirement is to examine libXm.a, which is very
2539 # difficult to do in an autoconf script. So... if it's Motif 2.x, we
2540 # always link against XPM if the XPM lib exists (and this will be a
2541 # no-op if libXm happens to already have the XPM code in it.)
2543 ###############################################################################
2545 motif_requires_xpm=no
2546 if test "$have_motif" = yes ; then
2547 AC_MSG_CHECKING(whether Motif requires XPM)
2548 if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
2550 motif_requires_xpm=yes
2551 AC_MSG_RESULT(maybe)
2558 ###############################################################################
2560 # Checking whether Motif requires -lXp.
2562 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
2563 # Extension". Why this extension isn't in -lXext with all the others,
2566 ###############################################################################
2569 if test "$have_motif" = yes ; then
2571 AC_CHECK_X_LIB(Xp, XpQueryExtension,
2572 [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
2573 [true], -lX11 -lXext -lm)
2577 ###############################################################################
2579 # Checking whether Motif requires -lXintl (for _Xsetlocale.)
2581 ###############################################################################
2584 if test "$have_motif" = yes ; then
2585 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
2587 if test "$have_xintl" = yes; then
2588 MOTIF_LIBS="$MOTIF_LIBS -lXintl"
2593 ###############################################################################
2595 # Check for -lGL or -lMesaGL.
2597 ###############################################################################
2601 with_gl_req=unspecified
2606 --with-gl Build those demos which depend on OpenGL.],
2607 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
2609 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
2611 ac_mesagl_version=unknown
2612 ac_mesagl_version_string=unknown
2614 if test "$with_gl" = yes; then
2615 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
2616 if test "$have_gl" = yes ; then
2617 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no,
2618 [#include <GL/gl.h>])
2621 # If we have the headers, try and figure out which vendor it's from.
2623 if test "$have_gl" = yes ; then
2625 # We need to know whether it's MesaGL so that we know which libraries
2628 AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
2629 [ac_cv_have_mesa_gl=no
2630 AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
2632 ac_have_mesa_gl=$ac_cv_have_mesa_gl
2639 # Some versions of MesaGL are compiled to require -lpthread.
2640 # So if the Mesa headers exist, and -lpthread exists, then always
2641 # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
2643 if test "$ac_have_mesa_gl" = yes; then
2644 AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
2648 # If we have Mesa headers, check to see if we can link against -lMesaGL.
2649 # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
2650 # Else, warn that GL is busted. (We have the headers, but no libs.)
2653 if test "$ac_have_mesa_gl" = yes ; then
2654 AC_CHECK_X_LIB(MesaGL, glXCreateContext,
2656 GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
2657 [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
2660 if test "$gl_lib_1" = "" ; then
2661 AC_CHECK_X_LIB(GL, glXCreateContext,
2663 GL_LIBS="-lGL -lGLU $GL_LIBS"],
2664 [], -lGLU $GL_LIBS -lX11 -lXext -lm)
2667 if test "$gl_lib_1" = "" ; then
2668 # we have headers, but no libs -- bail.
2673 # linking works -- we can build the GL hacks.
2675 if test "$ac_have_mesa_gl" = yes ; then
2676 AC_DEFINE(HAVE_MESA_GL)
2682 # Now that we know we have GL headers and libs, do some more GL testing.
2685 if test "$have_gl" = yes ; then
2686 # If it's MesaGL, we'd like to issue a warning if the version number
2687 # is less than or equal to 2.6, because that version had a security bug.
2689 if test "$ac_have_mesa_gl" = yes; then
2691 AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
2692 [cat > conftest.$ac_ext <<EOF
2693 #line __oline__ "configure"
2694 #include "confdefs.h"
2696 #ifndef MESA_MAJOR_VERSION
2697 # include <GL/xmesa.h>
2698 # ifdef XMESA_MAJOR_VERSION
2699 /* Around Mesa 3.2, they took out the Mesa version number, so instead,
2700 we have to check the XMesa version number (the number of the X protocol
2701 support, which seems to be the same as the Mesa version number.)
2703 # define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
2704 # define MESA_MINOR_VERSION XMESA_MINOR_VERSION
2706 /* Oh great. Some time after 3.4, they took out the xmesa.h header file,
2707 so we have no way of telling what version of Mesa this is at all.
2708 So, we'll guess that the osmesa version (the "offscreen protocol")
2709 is less than or equal to the real mesa version number. Except that
2710 if OSmesa is 3.3, assume at least Mesa 3.4, since OSmesa was 3.3 in
2711 Mesa 3.4. And Mesa 3.3 had xmesa.h. What a complete load of shit!
2713 # include <GL/osmesa.h>
2714 # define MESA_MAJOR_VERSION OSMESA_MAJOR_VERSION
2715 # define MESA_MINOR_VERSION OSMESA_MINOR_VERSION or newer, probably?
2716 # if OSMESA_MAJOR_VERSION == 3 && OSMESA_MINOR_VERSION == 3
2717 # undef MESA_MINOR_VERSION
2718 # define MESA_MINOR_VERSION 4 or newer, probably?
2722 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
2725 ac_save_CPPFLAGS="$CPPFLAGS"
2726 if test \! -z "$includedir" ; then
2727 CPPFLAGS="$CPPFLAGS -I$includedir"
2729 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2731 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | grep configure:`
2735 mglv=`echo "$mglv" | sed -n \
2736 's/^configure: *\([0-9][0-9]*\) *\([0-9].*\)$/\1.\2/p'`
2739 rm -f conftest.$ac_ext
2741 CPPFLAGS="$ac_save_CPPFLAGS"
2743 if test "$mglv" = ""; then
2744 ac_mesagl_version=unknown
2745 ac_mesagl_version_string=unknown
2747 ac_mesagl_version_string="$mglv"
2750 maj=`echo "$mglv" | sed -n 's/^\([0-9][0-9]*\)\..*$/\1/p'`
2751 min=`echo "$mglv" | sed -n 's/^.*\.\([0-9][0-9]*\).*$/\1/p'`
2753 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
2754 if test -z "$ac_mesagl_version"; then
2755 ac_mesagl_version=unknown
2756 ac_mesagl_version_string=unknown
2759 ac_cv_mesagl_version=$ac_mesagl_version
2760 ac_cv_mesagl_version_string=$ac_mesagl_version_string
2762 ac_mesagl_version=$ac_cv_mesagl_version
2763 ac_mesagl_version_string=$ac_cv_mesagl_version_string
2767 # Check for OpenGL 1.1 features.
2769 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
2770 [true], $GL_LIBS -lX11 -lXext -lm)
2773 elif test "$with_gl" != no; then
2774 echo "error: must be yes or no: --with-gl=$with_gl"
2779 ###############################################################################
2783 ###############################################################################
2786 with_gle_req=unspecified
2789 [ --with-gle Build those demos which depend on GLE
2790 (the OpenGL "extrusion" library.)],
2791 [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
2793 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
2797 if test "$have_gl" = no ; then
2799 elif test "$with_gle" = yes; then
2801 AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no,
2802 [#include <GL/gl.h>])
2803 if test "$have_gle3" = yes ; then
2806 AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no,
2807 [#include <GL/gl.h>])
2808 if test "$have_gle" = yes ; then
2809 AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no,
2810 [#include <GL/gl.h>])
2814 if test "$have_gle" = yes ; then
2817 AC_CHECK_X_LIB(gle, gleCreateGC,
2818 [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
2819 [], $GL_LIBS -lX11 -lXext -lm)
2821 if test "$have_gle" = yes ; then
2825 # sometimes the libmatrix stuff is included in libgle. look there first.
2827 # I don't get it. For some reason, this test passes on SGI, as if
2828 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
2829 # Yet the link is succeeding. Why???
2831 # AC_CHECK_X_LIB(gle, uview_direction_d,
2832 # [have_gle=yes; gle_halfassed=no],
2833 # [], $GL_LIBS -lX11 -lXext -lm)
2835 # As of GLE 3 this is in libgle, and has changed name to uview_direction!
2837 if test "$have_gle3" = yes ; then
2838 AC_CHECK_X_LIB(gle, uview_direction,
2839 [have_gle=yes; gle_halfassed=no],
2840 [], $GL_LIBS -lX11 -lXext -lm)
2842 # if it wasn't in libgle, then look in libmatrix.
2843 if test "$have_gle" = no ; then
2844 AC_CHECK_X_LIB(matrix, uview_direction_d,
2845 [have_gle=yes; gle_halfassed=no;
2846 GLE_LIBS="$GLE_LIBS -lmatrix"],
2847 [], $GL_LIBS -lX11 -lXext -lm)
2851 if test "$have_gle" = yes ; then
2853 if test "$have_gle3" = yes ; then
2854 AC_DEFINE(HAVE_GLE3)
2858 elif test "$with_gle" != no; then
2859 echo "error: must be yes or no: --with-gle=$with_gle"
2866 ###############################################################################
2870 ###############################################################################
2873 with_xpm_req=unspecified
2875 [ --with-xpm Include support for XPM files in some demos.
2876 (Not needed if Pixbuf is used.)],
2877 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2879 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2881 if test "$with_xpm" = yes; then
2882 AC_CHECK_X_HEADER(X11/xpm.h,
2886 [#include <X11/Xlib.h>])
2887 elif test "$with_xpm" != no; then
2888 echo "error: must be yes or no: --with-xpm=$with_xpm"
2892 # See comment near $motif_requires_xpm, above.
2893 # Need to do this here, after both Motif and XPM have been checked for.
2895 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2896 if test "$motif_requires_xpm" = yes ; then
2897 MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
2901 ###############################################################################
2903 # Check for -lgdk_pixbuf.
2905 ###############################################################################
2908 with_gdk_pixbuf_req=unspecified
2910 [ --with-pixbuf Include support for the GDK-Pixbuf library in some
2911 demos, which will make it possible for them to read
2912 GIF, JPEG, and PNG files as well. (The path here is
2913 ignored if GTK 2.x is being used.)],
2914 [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
2915 [with_gdk_pixbuf=yes])
2917 # if --with-pixbuf=/directory/ was specified, remember that directory so that
2918 # we can also look for the `gdk-pixbuf-config' program in that directory.
2919 case "$with_gdk_pixbuf" in
2921 gdk_pixbuf_dir="$with_gdk_pixbuf"
2928 HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF)
2930 if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then
2931 echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
2935 if test "$with_gdk_pixbuf" = yes; then
2939 if test -n "$pkg_config" ; then
2942 # run pkg-config based tests.
2947 # If we have Gtk 2.x, then *only* gdk-pixbuf 2.x will work.
2948 # If we have Gtk 1.x, then *only* gdk-pixbuf 1.x will work.
2949 # If we don't have Gtk at all, then either will work.
2951 if test "$have_gtk" = no -o "$have_gtk2" = yes; then
2953 # we don't have Gtk; or we have Gtk 2.x. Check for pixbuf 2.x.
2955 AC_MSG_RESULT(checking for gdk_pixbuf 2.x with gtk-config based tests...)
2956 pkg_check_version gdk-pixbuf-2.0 2.0.0
2957 pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
2958 have_gdk_pixbuf="$ok"
2959 have_gdk_pixbuf2="$ok"
2962 if test "$have_gtk" = no -o "$have_gtk2" = no; then
2964 # we don't have Gtk; or we have Gtk 1.x.
2965 # If we don't have pixbuf 2.x, then check for pixbuf 1.x.
2967 if test "$have_gdk_pixbuf2" = no; then
2970 AC_MSG_RESULT(checking for gdk_pixbuf 1.x with gtk-config based tests...)
2971 pkg_check_version gdk_pixbuf 0.0
2972 pkg_check_version gdk_pixbuf_xlib 0.0
2973 have_gdk_pixbuf="$ok"
2977 if test "$have_gdk_pixbuf" = yes; then
2978 AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
2979 [ac_cv_gdk_pixbuf_config_cflags=`$pkg_config --cflags $pkgs`])
2980 AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
2981 [ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs`])
2983 ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
2984 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
2988 if test "$have_gdk_pixbuf" = no; then
2991 # run gdk-pixbuf-config based tests.
2992 # note that we can't assume that the existence of "pkg-config" means
2993 # that we don't have to look for gdk-pixbuf-config -- in Gnome 1.4,
2994 # pkg-config exists, but doesn't know about pixbuf.
2997 AC_MSG_RESULT(checking for gdk_pixbuf with gdk-pixbuf-config based tests...)
2999 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
3000 # look in /foo/bin/ for for gdk-pixbuf-config.
3002 gdk_pixbuf_path="$PATH"
3004 if test ! -z "$gtk_dir"; then
3005 # canonicalize slashes.
3006 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
3007 gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
3010 if test ! -z "$gnome_dir"; then
3011 # canonicalize slashes.
3012 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
3013 gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
3016 AC_PATH_PROGS(gdk_pixbuf_config, gdk-pixbuf-config,, $gdk_pixbuf_path)
3018 # If we found the gdk-pixbuf-config program, run it to get flags.
3020 if test -n "$gdk_pixbuf_config" ; then
3021 AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
3022 [ac_cv_gdk_pixbuf_config_cflags=`$gdk_pixbuf_config --cflags`])
3023 AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
3024 [ac_cv_gdk_pixbuf_config_libs=`$gdk_pixbuf_config --libs`])
3026 # note that "gdk-pixbuf-config --libs" produces a link line including
3027 # -lgdk_pixbuf, but there's no way to get it to produce one that also
3028 # includes -lgdk_pixbuf_xlib. Since we don't know *exactly* what the
3029 # name of the library will be, construct it with sed...
3032 ac_cv_gdk_pixbuf_config_libs=`echo $ac_cv_gdk_pixbuf_config_libs | \
3033 sed 's@ \(-lgdk_pixbuf\([-_a-zA-Z0-9.]*\)\) @ \1 -lgdk_pixbuf_xlib\2 @'`
3036 ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
3037 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
3041 ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
3042 CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
3044 if test "$have_gdk_pixbuf" = no; then
3046 # we appear to have pixbuf; check for headers/libs to be sure.
3051 # check for header A...
3052 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
3054 # if that worked, check for header B...
3055 if test "$have_gdk_pixbuf" = yes; then
3057 gdk_pixbuf_halfassed=yes
3058 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h,
3059 [have_gdk_pixbuf=yes
3060 gdk_pixbuf_halfassed=no])
3062 # yay, it has a new name in Gtk 2.x...
3063 if test "$have_gdk_pixbuf" = no; then
3065 gdk_pixbuf_halfassed=yes
3066 AC_CHECK_X_HEADER(gdk-pixbuf-xlib/gdk-pixbuf-xlib.h,
3067 [have_gdk_pixbuf=yes
3068 gdk_pixbuf_halfassed=no])
3073 CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
3075 if test "$have_gdk_pixbuf" = yes; then
3076 # we have the headers, now check for the libraries
3078 gdk_pixbuf_halfassed=yes
3081 AC_CHECK_X_LIB(c, gdk_pixbuf_new_from_file, [have_gdk_pixbuf=yes],,
3082 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
3084 if test "$have_gdk_pixbuf" = yes; then
3086 AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init,
3087 [have_gdk_pixbuf=yes
3088 gdk_pixbuf_halfassed=no],,
3089 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
3093 if test "$have_gdk_pixbuf" = yes; then
3094 INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
3095 XPM_LIBS="$ac_gdk_pixbuf_config_libs"
3096 AC_DEFINE(HAVE_GDK_PIXBUF)
3103 ###############################################################################
3107 ###############################################################################
3110 with_jpeg_req=unspecified
3113 [ --with-jpeg Include support for the JPEG library.],
3114 [with_jpeg="$withval"; with_jpeg_req="$withval"],
3117 HANDLE_X_PATH_ARG(with_jpeg, --with-jpeg, JPEG)
3119 if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then
3120 echo "error: must be yes or no: --with-jpeg=$with_jpeg"
3124 if test "$with_jpeg" = yes; then
3127 AC_CHECK_X_HEADER(jpeglib.h, [have_jpeg=yes])
3129 if test "$have_jpeg" = yes; then
3130 # we have the header, now check for the library
3133 AC_CHECK_X_LIB(jpeg, jpeg_start_compress,
3137 AC_DEFINE(HAVE_JPEGLIB)])
3142 ###############################################################################
3144 # Check for the XSHM server extension.
3146 ###############################################################################
3149 with_xshm_req=unspecified
3150 AC_ARG_WITH(xshm-ext,
3151 [ --with-xshm-ext Include support for the Shared Memory extension.],
3152 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
3154 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
3156 if test "$with_xshm" = yes; then
3158 # first check for Xshm.h.
3159 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],,
3160 [#include <X11/Xlib.h>])
3162 # if that succeeded, then check for sys/ipc.h.
3163 if test "$have_xshm" = yes; then
3165 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
3168 # if that succeeded, then check for sys/shm.h.
3169 if test "$have_xshm" = yes; then
3171 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
3174 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
3175 # to exist, but the library code to not exist. And even better, the library
3176 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
3177 # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and
3178 # that's not quite right, but close enough.)
3182 if [ `uname -v` -eq 3 ]; then
3184 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
3185 [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
3186 [true], -lX11 -lXext -lm)
3191 # if that succeeded, then we've really got it.
3192 if test "$have_xshm" = yes; then
3193 AC_DEFINE(HAVE_XSHM_EXTENSION)
3196 elif test "$with_xshm" != no; then
3197 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
3202 ###############################################################################
3204 # Check for the DOUBLE-BUFFER server extension.
3206 ###############################################################################
3209 with_xdbe_req=unspecified
3210 AC_ARG_WITH(xdbe-ext,
3211 [ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.],
3212 [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
3214 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
3216 if test "$with_xdbe" = yes; then
3218 AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],,
3219 [#include <X11/Xlib.h>])
3220 if test "$have_xdbe" = yes; then
3221 AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
3224 elif test "$with_xdbe" != no; then
3225 echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
3230 ###############################################################################
3232 # Check for the SGI XReadDisplay server extension.
3234 # Note: this has to be down here, rather than up with the other server
3235 # extension tests, so that the output of `configure --help' is in the
3236 # right order. Arrgh!
3238 ###############################################################################
3241 with_readdisplay_req=unspecified
3242 AC_ARG_WITH(readdisplay,
3243 [ --with-readdisplay Include support for the XReadDisplay extension.],
3244 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
3245 [with_readdisplay=yes])
3247 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
3249 if test "$with_readdisplay" = yes; then
3250 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
3251 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),,
3252 [#include <X11/Xlib.h>])
3253 elif test "$with_readdisplay" != no; then
3254 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
3259 ###############################################################################
3261 # Check for a program to generate random text.
3263 # Zippy is funnier than the idiocy generally spat out by `fortune',
3264 # so first see if "fortune zippy" works. Else, use plain "fortune".
3266 # We used to dig around in Emacs to look for the "yow" program, but
3267 # most people who have Emacs also have "fortune zippy", so nevermind.
3269 ###############################################################################
3272 AC_ARG_WITH(fortune,[
3273 --with-fortune=PROGRAM Some demos are able to run an external program and
3274 display its text; this names the program to use by
3275 default (though it can be overridden with X
3276 resources.) Default is \"/usr/games/fortune\".],
3277 [with_fortune_req="$withval"; with_fortune="$withval"],[with_fortune=yes])
3279 if test "$with_fortune" = no || test "$with_fortune" = yes ; then
3284 if test -n "$with_fortune_req" ; then
3285 ac_cv_fortune_program=""
3286 case "$with_fortune_req" in
3289 set dummy $with_fortune_req ; fortune_tmp=$2
3290 AC_MSG_CHECKING([for $fortune_tmp])
3291 if test -x "$fortune_tmp" ; then
3299 set dummy $with_fortune_req ; fortune_tmp=$2
3301 unset ac_cv_path_fortune_tmp
3302 AC_PATH_PROG(fortune_tmp, $fortune_tmp, [])
3303 if test -z "$fortune_tmp" ; then
3308 ac_cv_fortune_program="$with_fortune"
3310 elif test -n "$ac_cv_fortune_program"; then
3311 AC_MSG_RESULT([checking for fortune... (cached) $ac_cv_fortune_program])
3314 unset ac_cv_path_fortune_tmp
3317 if test -z "$ac_cv_fortune_program" ; then
3319 # first look for fortune in /usr/games/ (and use absolute path)
3320 AC_PATH_PROGS(fortune_tmp, fortune,, "/usr/games")
3322 # if it's not there, look on $PATH (and don't use absolute path)
3323 if test -z "$fortune_tmp" ; then
3324 AC_CHECK_PROGS(fortune_tmp, fortune)
3327 # if we didn't find anything, then just assume /usr/games/
3328 if test -z "$fortune_tmp" ; then
3329 fortune_tmp="/usr/games/fortune"
3332 ac_cv_fortune_program="$fortune_tmp"
3334 # now check to see whether "fortune zippy" works.
3336 fortune_tmp="$fortune_tmp zippy"
3337 AC_MSG_CHECKING([for zippy quotes])
3338 if ( $fortune_tmp >/dev/null 2>&1 ); then
3339 ac_cv_fortune_program="$fortune_tmp"
3340 AC_MSG_RESULT($fortune_tmp)
3347 unset ac_cv_path_fortune_tmp
3350 AC_DEFINE_UNQUOTED(FORTUNE_PROGRAM, "$ac_cv_fortune_program")
3353 ###############################################################################
3355 # Check whether it's ok to install some hacks as setuid (e.g., "sonar")
3356 # This should be safe, but let's give people the option.
3358 ###############################################################################
3360 setuid_hacks_default=no
3361 setuid_hacks="$setuid_hacks_default"
3362 AC_ARG_WITH(setuid-hacks,
3363 [ --with-setuid-hacks Allow some demos to be installed \`setuid root'
3364 (which is needed in order to ping other hosts.)
3366 [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
3368 HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks)
3370 if test "$setuid_hacks" = yes; then
3372 elif test "$setuid_hacks" != no; then
3373 echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks"
3378 ###############################################################################
3380 # Done testing. Now, set up the various -I and -L variables,
3381 # and decide which GUI program to build by default.
3383 ###############################################################################
3390 if test \! -z "$includedir" ; then
3391 INCLUDES="$INCLUDES -I$includedir"
3394 if test \! -z "$libdir" ; then
3395 LDFLAGS="$LDFLAGS -L$libdir"
3399 PREFERRED_DEMO_PROGRAM=''
3401 if test "$have_motif" = yes; then
3402 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
3403 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3405 if test "$have_gtk" = yes; then
3406 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
3407 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3411 if test "$have_kerberos" = yes; then
3412 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
3413 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
3415 if test "$have_pam" = yes; then
3416 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
3417 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
3418 INSTALL_PAM="install-pam"
3420 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
3421 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
3424 if test "$enable_locking" = yes; then
3425 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
3426 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
3428 LOCK_SRCS='$(NOLOCK_SRCS_1)'
3429 LOCK_OBJS='$(NOLOCK_OBJS_1)'
3432 if test "$ac_macosx" = yes; then
3433 EXES_OSX='$(EXES_OSX)'
3434 SCRIPTS_OSX='$(SCRIPTS_OSX)'
3435 MEN_OSX='$(MEN_OSX)'
3443 INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)'
3445 if test "$need_setuid" = yes; then
3451 if test "$setuid_hacks" = yes; then
3458 if test "$have_gl" = yes; then
3459 GL_EXES='$(GL_EXES)'
3460 GL_UTIL_EXES='$(GL_UTIL_EXES)'
3464 GL_KLUDGE="-${tab} "
3467 if test "$have_gle" = yes; then
3468 GLE_EXES='$(GLE_EXES)'
3469 GLE_KLUDGE="${tab} "
3471 GLE_KLUDGE="-${tab} "
3474 if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then
3475 JPEG_EXES='$(JPEG_EXES)'
3479 # Another substitution in the XScreenSaver.ad.in file:
3481 if test "$have_gnome_help" = yes; then
3490 # Now that we know whether we have Gnome, we can decide where the XML
3491 # config files get installed.
3493 if test -z "$HACK_CONF_DIR" ; then
3494 if test -n "$GNOME_DATADIR" ; then
3495 HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers'
3497 HACK_CONF_DIR='${prefix}/lib/xscreensaver/config'
3503 # After computing $HACK_CONF_DIR, make sure $GLADE_DATADIR has a value
3504 # so that we know where to install the Gtk pixmaps.
3506 # It should usually be "/usr/share/pixmaps/", but we can't just use
3507 # "$(prefix)/share/pixmaps" because that would usually result in
3508 # "/usr/X11R6/share/pixmaps/", which is wrong. It needs to be the
3509 # Gnome/Gtk prefix, not the overall prefix.
3511 if test -n "$GNOME_DATADIR" ; then
3512 GLADE_DATADIR='$(GNOME_DATADIR)/xscreensaver'
3513 elif test "$have_gtk" = yes; then
3514 if test -n "$pkg_config"; then
3515 if test "$have_gtk2" = yes; then
3516 GLADE_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3518 GLADE_DATADIR=`$pkg_config --variable=prefix gtk+`
3521 GLADE_DATADIR=`$gtk_config --prefix`
3523 GLADE_DATADIR="$GLADE_DATADIR/share/xscreensaver"
3529 # Set PO_DATADIR to something sensible.
3531 AC_MSG_CHECKING([for locale directory])
3532 if test -n "$GNOME_DATADIR" ; then
3533 PO_DATADIR="$GNOME_DATADIR"
3534 elif test "$have_gtk" = yes; then
3535 if test -n "$pkg_config"; then
3536 if test "$have_gtk2" = yes; then
3537 PO_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3539 PO_DATADIR=`$pkg_config --variable=prefix gtk+`
3542 PO_DATADIR=`$gtk_config --prefix`
3544 PO_DATADIR="$PO_DATADIR/share"
3547 if test -z "$PO_DATADIR" ; then
3549 # #### Total fucking kludge --
3550 # Map /build/prefix/usr/X11R6/share/ to /build/prefix/usr/share/
3551 # but of course we need to expand all the nested variables to do that...
3559 PO_DATADIR=`echo $dd | sed 's@/X11R6/@/@'`
3562 AC_MSG_RESULT($PO_DATADIR/locale)
3565 # canonicalize slashes.
3566 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
3568 # gcc 3.0 likes to issue this warning for every file:
3570 # cc1: warning: changing search order for system directory "/usr/local/include"
3571 # cc1: warning: as it has already been specified as a non-system directory
3573 # Yay. We can only avoid that by deleting "-I${prefix}/include" from the list.
3574 # Which *should* be totally redundant, and thus an ok thing to delete?
3576 INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'`
3579 ###############################################################################
3581 # Perform substitutions and write Makefiles.
3583 ###############################################################################
3587 AC_SUBST(PREFERRED_DEMO_PROGRAM)
3588 AC_SUBST(ALL_DEMO_PROGRAMS)
3589 AC_SUBST(SAVER_LIBS)
3590 AC_SUBST(MOTIF_LIBS)
3598 AC_SUBST(XDPMS_LIBS)
3599 AC_SUBST(PASSWD_LIBS)
3600 AC_SUBST(INSTALL_SETUID)
3601 AC_SUBST(SETUID_HACKS)
3602 AC_SUBST(INSTALL_DIRS)
3603 AC_SUBST(NEED_SETUID)
3604 AC_SUBST(INSTALL_PAM)
3608 AC_SUBST(SCRIPTS_OSX)
3611 AC_SUBST(PASSWD_SRCS)
3612 AC_SUBST(PASSWD_OBJS)
3616 AC_SUBST(SAVER_GL_SRCS)
3617 AC_SUBST(SAVER_GL_OBJS)
3618 AC_SUBST(SAVER_GL_LIBS)
3623 AC_SUBST(GL_UTIL_EXES)
3627 AC_SUBST(GLE_KLUDGE)
3628 AC_SUBST(GNOMEHELP_Y)
3629 AC_SUBST(GNOMEHELP_N)
3631 AC_SUBST(GNOME_DATADIR)
3632 AC_SUBST(GLADE_DATADIR)
3633 AC_SUBST(PO_DATADIR)
3634 AC_SUBST(GNOME_PANELDIR)
3635 AC_SUBST(HACK_CONF_DIR)
3636 AC_SUBST(GTK_EXTRA_OBJS)
3638 APPDEFAULTS=$ac_x_app_defaults
3639 AC_SUBST(APPDEFAULTS)
3642 AC_SUBST(DEPEND_FLAGS)
3643 AC_SUBST(DEPEND_DEFINES)
3652 driver/XScreenSaver.ad
3653 driver/xscreensaver.kss)
3655 ###############################################################################
3657 # Print some warnings at the end.
3659 ###############################################################################
3661 warn_prefix_1=" Warning:"
3662 warn_prefix_2=" Note:"
3663 warn_prefix="$warn_prefix_1"
3666 warnsep=' #################################################################'
3669 if test "$warning" = no ; then
3670 echo '' ; echo "$warnsep" ; echo ''
3677 if test "$warning" = long ; then echo '' ; fi
3680 echo "$warn_prefix $rest"
3687 if test "$was" != no ; then echo '' ; fi
3689 echo "$warn_prefix $rest"
3699 warn_prefix="$warn_prefix_2"
3701 warn_prefix="$warn_prefix_1"
3705 warn_prefix="$warn_prefix_2"
3707 warn_prefix="$warn_prefix_1"
3711 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
3712 warn 'The SGI saver extension was requested, but was not found.'
3715 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
3716 warn 'The MIT saver extension was requested, but was not found.'
3719 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
3720 warn 'The XIdle extension was requested, but was not found.'
3723 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
3724 warn 'The XSHM extension was requested, but was not found.'
3727 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
3728 warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
3731 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
3732 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
3735 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
3736 warn 'The DPMS extension was requested, but was not found.'
3739 if test "$with_xinerama_req" = yes -a "$have_xinerama" = no ; then
3740 warn 'The Xinerama extension was requested, but was not found.'
3743 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
3744 warn 'The XF86VMODE extension was requested, but was not found.'
3747 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
3748 warn "Checking of /proc/interrupts was requested, but it's bogus."
3752 warn2 'Though the Motif front-end to xscreensaver is still'
3753 warn2 'maintained, it is no longer being updated with new'
3754 warn2 'features: all new development on the xscreensaver-demo'
3755 warn2 'program is happening in the GTK version, and not in the'
3756 warn2 'Motif version. It is recommended that you build against'
3757 warn2 'GTK instead of Motif. See <http://www.gtk.org/>.'
3760 if test "$have_motif" = no -a "$have_gtk" = no; then
3762 if test "$with_motif" = yes; then
3763 warnL "Neither the GTK nor Motif libraries were found; the"
3764 warn2 "\`xscreensaver-demo' program requires one of these."
3768 warnL "The GTK libraries do not seem to be available; the"
3769 warn2 "\`xscreensaver-demo' program requires them."
3771 warn2 'You can use Motif or Lesstif instead of GTK (use the'
3772 warn2 "\`--with-motif' option) but that is NOT recommended."
3776 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
3777 warnL "Use of Motif was requested, but it wasn't found;"
3778 warn2 "Gtk will be used instead."
3780 elif test "$jurassic_gtk" = yes ; then
3784 v="$ac_gtk_version_string"
3785 if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
3786 warnL "Use of Gtk was requested, but its version number is unknown;"
3787 elif test "$with_gtk_req" = yes ; then
3788 warnL "Use of Gtk was requested, but it is version $v;"
3790 warnL "Gtk was found on this system, but it is version $v;"
3793 warn2 "Gtk $pref_gtk or newer is required."
3795 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
3796 warnL "Use of Gtk was requested, but it wasn't found."
3799 if test "$gtk2_halfassed" != no ; then
3800 warnL "GTK version $gtk2_halfassed was found, but at least one supporting"
3801 warn2 "library ($gtk2_halfassed_lib) was not, so GTK 2.x can't be used."
3802 if test "$have_gtk" = yes ; then
3803 v="$ac_gtk_version_string"
3804 warn2 "GTK $v is also installed, so it will be used instead."
3805 warn2 "Please read the above output and the \`config.log' file"
3806 warn2 "for more details."
3811 if test "$with_gnome_req" = yes -a "$have_gnome" = no \
3812 -a "$have_gtk2" = no; then
3813 # don't issue this warning if we have GTK2 -- in that case, the
3814 # Gnome-specific code isn't needed.
3815 warn 'Use of the Gnome Control Panel was requested, but the necessary'
3816 warn2 'headers and/or libraries were not found.'
3819 if test "$have_gtk" = yes ; then
3820 if test "$have_xml" = no ; then
3821 if test "$with_xml_req" = yes ; then
3822 warn 'Use of the XML library was requested, but the necessary'
3823 warn2 'headers and/or libraries were not found.'
3825 warn 'GTK is being used, but the XML library was not found.'
3828 if test "$xml_halfassed" = yes ; then
3830 if test "$have_zlib" = yes ; then
3831 which="XML libraries"
3833 which="\`zlib' library"
3837 warn2 'More specifically, we found the headers, but not the'
3838 warn2 "$which; so either XML is half-installed on this"
3839 warn2 "system, or something else went wrong. The \`config.log'"
3840 warn2 'file might contain some clues.'
3844 warn2 "Without XML, the per-display-mode \`Settings' dialogs"
3845 warn2 'will not be available. Specify the location of the XML'
3846 warn2 'library through the --with-xml option to configure.'
3850 if test "$have_gtk" = yes -a "$have_gdk_pixbuf" = no ; then
3851 warn "GTK is being used, but the GDK-Pixbuf library and/or"
3852 warn2 "headers were not found. That can't be good. Please"
3853 warn2 "install the GDK-Pixbuf development kit and re-configure."
3856 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
3858 preferred_lesstif=0.92
3860 if test "$lesstif_version" = unknown; then
3861 warnL "Unable to determine the LessTif version number!"
3862 warn2 "Make sure you are using version $preferred_lesstif or newer."
3863 warn2 "See <http://www.lesstif.org/>."
3865 elif test \! $lesstif_version -gt 82; then
3866 warnL "LessTif version $lesstif_version_string is being used."
3867 warn2 "LessTif versions 0.82 and earlier are too buggy to"
3868 warn2 "use with XScreenSaver; it is strongly recommended"
3869 warn2 "that you upgrade to at least version $preferred_lesstif!"
3870 warn2 "See <http://www.lesstif.org/>."
3875 if test "$have_motif" = yes -a "$have_gtk" = no ; then
3876 warn 'Motif is being used, and GTK is not.'
3882 if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
3883 warnL 'Use of XPM was requested, but it was not found.'
3886 if test "$with_gdk_pixbuf_req" = yes -a "$have_gdk_pixbuf" = no; then
3887 warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
3890 if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no || \
3891 test "$gdk_pixbuf_halfassed" = yes; then
3893 if test "$with_xpm_req" = yes -o "$have_xpm" = yes ; then
3895 elif test "$with_xpm_req" = no ; then
3896 warnL 'The XPM library is not being used.'
3898 warnL 'The XPM library was not found.'
3901 if test "$with_gdk_pixbuf_req" = yes ; then
3903 elif test "$with_gdk_pixbuf_req" = no ; then
3904 warnL 'The GDK-Pixbuf library is not being used.'
3906 warnL 'The GDK-Pixbuf library was not found.'
3909 if test "$gdk_pixbuf_halfassed" = yes ; then
3911 warn2 'More specifically, we found the headers, but not the'
3912 warn2 'libraries; so either GDK-Pixbuf is half-installed on this'
3913 warn2 "system, or something else went wrong. The \`config.log'"
3914 warn2 'file might contain some clues.'
3918 warn2 'Some of the demos will not be as colorful as they'
3919 warn2 'could be. You should consider installing Pixbuf or'
3920 warn2 'XPM and re-running configure. The Pixbuf library is'
3921 warn2 'a part of GNOME. The XPM library comes with most'
3922 warn2 'X11 installations; you can also find it at the X11'
3923 warn2 'archive sites, such as <http://sunsite.unc.edu/>.'
3925 warn2 'GDK-Pixbuf is recommended over XPM, as it provides'
3926 warn2 'support for more image formats.'
3930 if test "$have_jpeg" = no ; then
3931 if test "$with_jpeg_req" = yes ; then
3932 warnL 'Use of libjpeg was requested, but it was not found.'
3933 elif test "$with_jpeg_req" = no ; then
3934 noteL 'The JPEG library is not being used.'
3936 noteL 'The JPEG library was not found.'
3939 if test "$jpeg_halfassed" = yes ; then
3941 warn2 'More specifically, we found the headers, but not the'
3942 warn2 'library; so either JPEG is half-installed on this'
3943 warn2 "system, or something else went wrong. The \`config.log'"
3944 warn2 'file might contain some clues.'
3948 if test "$have_gdk_pixbuf" = no ; then
3949 warn2 "This means that it won't be possible for the image-manipulating"
3950 warn2 "display modes to load files from disk; and it also means that"
3951 warn2 "the \`webcollage' program will be much slower."
3953 warn2 "This means the \`webcollage' program will be much slower."
3958 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
3959 preferred_mesagl=3.4
3960 mgv="$ac_mesagl_version_string"
3961 pgl="$preferred_mesagl"
3963 if test "$ac_mesagl_version" = unknown; then
3964 warnL "Unable to determine the MesaGL version number!"
3965 warn2 "Make sure you are using version $preferred_mesagl or newer."
3967 elif test \! "$ac_mesagl_version" -gt 2006; then
3968 warnL "MesaGL version number is $mgv --"
3969 warn2 "MesaGL 2.6 and earlier have a security bug. It is strongly"
3970 warn2 "recommended that you upgrade to at least version $preferred_mesagl."
3972 elif test \! "$ac_mesagl_version" -gt 3003; then
3973 warnL "MesaGL version number is $mgv --"
3974 warn2 "MesaGL 3.3 and earlier have some bugs; it is recommended"
3975 warn2 "that you upgrade to $pgl or newer."
3979 if test "$have_gl" = no ; then
3980 if test "$with_gl_req" = yes ; then
3981 warnL 'Use of GL was requested, but it was not found.'
3982 elif test "$with_gl_req" = no ; then
3983 noteL 'The OpenGL 3D library is not being used.'
3985 noteL 'The OpenGL 3D library was not found.'
3988 if test "$gl_halfassed" = yes ; then
3990 warn2 'More specifically, we found the headers, but not the'
3991 warn2 'libraries; so either GL is half-installed on this'
3992 warn2 "system, or something else went wrong. The \`config.log'"
3993 warn2 'file might contain some clues.'
3997 warn2 'Those demos which use 3D will not be built or installed.'
3998 warn2 'You might want to consider installing OpenGL and'
3999 warn2 "re-running configure. If your vendor doesn't ship"
4000 warn2 'their own implementation of OpenGL, you can get a free'
4001 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
4002 warn2 'info, see <http://www.opengl.org/>.'
4007 if test "$have_gl" = yes -a "$have_gle" = no ; then
4009 # nobody cares about this; don't print the warning unless it was
4010 # requested and not found, or halfway-found.
4011 if test "$with_gle_req" = yes -o "$gle_halfassed" = yes ; then
4013 if test "$with_gle_req" = yes ; then
4014 noteL 'Use of the GLE (GL Extrusion) library was requested, but'
4015 warn2 'it was not found (though the OpenGL library was found, and'
4016 warn2 'is being used.)'
4017 elif test "$with_gle_req" = no ; then
4018 noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
4019 warn2 'library is not.'
4021 noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
4025 if test "$gle_halfassed" = yes ; then
4027 warn2 'More specifically, we found the headers, but not the'
4028 warn2 'libraries; so either GLE is half-installed on this'
4029 warn2 "system, or something else went wrong. The \`config.log'"
4030 warn2 'file might contain some clues.'
4034 warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
4035 warn2 'will not be built or installed. You might want to consider'
4036 warn2 'installing GLE and re-running configure. You can find the'
4037 warn2 'GLE library at <http://www.linas.org/gle/>. For general'
4038 warn2 'OpenGL info, see <http://www.opengl.org/>.'
4044 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
4045 warn 'Use of XReadDisplay was requested, but it was not found.'
4048 if test -n "$with_fortune_req"; then
4049 if test "$with_fortune_req" != "$ac_cv_fortune_program" ; then
4050 warnL "$with_fortune_req was requested as the Fortune program,"
4051 warn2 "but was not found. The default will be used instead."
4055 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
4056 warn 'Use of Kerberos was requested, but it was not found.'
4059 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
4060 warn 'Use of PAM was requested, but it was not found.'
4063 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
4064 warn 'Use of shadow passwords was requested, but they were not found.'
4068 # You are in a twisty maze of namespaces and syntaxes, all alike.
4069 # Fuck the skull of Unix.
4071 eval bindir=${bindir}
4072 eval bindir=${bindir}
4073 eval bindir=${bindir}
4074 eval bindir=${bindir}
4075 eval bindir=${bindir}
4076 eval bindir=${bindir}
4077 eval HACKDIR=${HACKDIR}
4078 eval HACKDIR=${HACKDIR}
4079 eval HACKDIR=${HACKDIR}
4080 eval HACKDIR=${HACKDIR}
4081 eval HACKDIR=${HACKDIR}
4082 eval HACKDIR=${HACKDIR}
4083 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4084 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4085 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4086 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4087 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4088 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4090 # canonicalize slashes.
4091 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
4092 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
4093 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
4096 # Sanity check the hackdir
4097 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
4098 if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
4100 AC_MSG_ERROR([\"--with-hackdir=${bindir}/${bad_choice}\" won't work.
4101 There will be an executable installed with that name, so
4102 that can't be the name of a directory as well. Please
4103 re-configure with a different directory name.])
4110 # Now let's see if there's a previous RPM version already installed. Blargh!
4114 rpmv=`(rpm -qv xscreensaver) 2>/dev/null | \
4115 sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'`
4118 if test \! -z "$rpmv" ; then
4119 rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
4120 rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
4123 warnL "There is already an installed RPM of xscreensaver $rpmv"
4124 warn2 "on this system. You might want to remove it (with"
4125 warn2 '"rpm -ve xscreensaver") before running "make install"'
4126 warn2 "from this directory."
4128 warn2 "Alternately, you could build this version of xscreensaver"
4129 warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
4130 warn2 "file is included. See the RPM documentation for more info."
4133 if test "$rpmbdir" = "$rpmhdir" ; then
4134 warn2 "The RPM version was installed in $rpmbdir/."
4136 warn2 "The RPM version was installed in $rpmbdir/,"
4137 warn2 "with demos in $rpmhdir/."
4144 if test "${bindir}" = "${HACKDIR}" ; then
4148 if test "$do_dir_warning" = yes; then
4152 echo ' When you run "make install", the "xscreensaver",'
4153 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
4154 echo " will be installed in ${bindir}/."
4156 echo " The various graphics demos (175+ different executables) will"
4157 echo " be installed in ${HACKDIR}/."
4159 echo " If you would prefer the demos to be installed elsewhere,"
4160 echo " you should re-run configure with the --with-hackdir=DIR"
4161 echo " option. For more information, run \`./configure --help'."
4165 if test "$warning" != no; then
4166 echo '' ; echo "$warnsep" ; echo ''
4169 if test "$do_dir_warning" = no; then
4170 if test "$warning" = no; then
4173 echo "User programs will be installed in ${bindir}/"
4174 echo "Screen savers will be installed in ${HACKDIR}/"
4175 echo "Configuration will be installed in ${HACK_CONF_DIR}/"