1 # configure.in --- xscreensaver, Copyright (c) 1997-2002 Jamie Zawinski.
5 AC_INIT(driver/subprocs.c)
6 AC_CONFIG_HEADER(config.h)
8 echo "current directory: `pwd`"
9 echo "command line was: $0 $@"
12 # After checking to see that --srcdir is correct (which AC_INIT does)
13 # check for some random other files that come later in the tar file,
14 # to make sure everything is here.
16 for d in driver utils hacks hacks/glx ; do
17 f=$srcdir/$d/Makefile.in
18 if test \! -r $f ; then
20 echo "ERROR: The package is incomplete: $f does not exist."
21 echo " This probably means that your download was truncated."
27 ###############################################################################
29 # Function to figure out how to run the compiler.
31 ###############################################################################
33 AC_DEFUN(AC_PROG_CC_ANSI,
36 if test -z "$GCC"; then
37 AC_MSG_CHECKING(how to request ANSI compilation)
40 AC_MSG_RESULT(HPUX: adding -Ae)
44 AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e)
45 CC="$CC -qlanglvl=ansi -qhalt=e"
49 AC_MSG_RESULT(DEC: adding -std1 -ieee)
54 AC_MSG_RESULT(no idea)
59 AC_MSG_CHECKING([whether the compiler works on ANSI C])
60 AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
63 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
64 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
66 if test -n "$GCC"; then
67 AC_MSG_RESULT(Turning on gcc compiler warnings.)
68 CC="$CC -Wall -Wstrict-prototypes -Wnested-externs"
71 *-irix5* |*-irix6.[0-3]* )
72 AC_MSG_RESULT(Turning on SGI compiler warnings.)
73 CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
76 # if test -z "$GCC"; then
77 # AC_MSG_RESULT(Turning on DEC C compiler warnings.)
78 # CC="$CC -migrate -w0 -verbose -warnprotos"
86 ###############################################################################
88 # Functions to figure out how to disable // comments in ANSI C code.
90 # (With recent gcc, this is done with "-std=c89". With older gcc, this
91 # is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to
92 # gcc. Old gcc doesn't support -std, and new gcc doesn't support -lang.
93 # so much for compatibility!)
95 ###############################################################################
97 AC_DEFUN(AC_GCC_ACCEPTS_STD,
98 [if test -n "$GCC"; then
99 AC_CACHE_CHECK([whether gcc accepts -std],
100 ac_cv_gcc_accepts_std,
101 [if ( ( gcc -E -std=c89 - </dev/null >/dev/null ) 2>&1 | \
102 grep unrecognized >/dev/null ); then
103 ac_cv_gcc_accepts_std=no
105 ac_cv_gcc_accepts_std=yes
107 ac_gcc_accepts_std="$ac_cv_gcc_accepts_std"
111 AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE,
112 [if test -n "$GCC"; then
114 AC_MSG_RESULT(Disabling C++ comments in ANSI C code.)
116 # The reason that // comments are banned from xscreensaver is that gcc is
117 # basically the only compiler in the world that supports them in C code.
118 # All other vendors support them only in their C++ compilers, not in their
119 # ANSI C compilers. This means that it's a portability problem: every time
120 # these comments have snuck into the xscreensaver source code, I've gotten
121 # complaints about it the next day. So we turn off support for them in gcc
122 # as well to prevent them from accidentially slipping in.
124 if test "$ac_gcc_accepts_std" = yes ; then
126 # -std=c89 defines __STRICT_ANSI__, which we don't want.
127 # (That appears to be the only additional preprocessor symbol
128 # it defines, in addition to the syntax changes it makes.)
130 # -std=gnu89 is no good, because // comments were a GNU extension
131 # before they were in the ANSI C 99 spec... (gcc 2.96 permits //
132 # with -std=gnu89 but not with -std=c89.)
134 CC="$CC -std=c89 -U__STRICT_ANSI__"
137 CC="$CC -Wp,-lang-c89"
143 ###############################################################################
145 # Function to figure out how to create directory trees.
147 ###############################################################################
149 AC_DEFUN(AC_PROG_INSTALL_DIRS,
150 [AC_CACHE_CHECK([whether \"\${INSTALL} -d\" creates intermediate directories],
151 ac_cv_install_d_creates_dirs,
152 [ac_cv_install_d_creates_dirs=no
154 if mkdir conftestdir; then
155 cd conftestdir 2>/dev/null
156 ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1
157 if test -d dir1/dir2/. ; then
158 ac_cv_install_d_creates_dirs=yes
165 if test "$ac_cv_install_d_creates_dirs" = no ; then
166 AC_CACHE_CHECK([whether \"mkdir -p\" creates intermediate directories],
167 ac_cv_mkdir_p_creates_dirs,
168 [ac_cv_mkdir_p_creates_dirs=no
170 if mkdir conftestdir; then
171 cd conftestdir 2>/dev/null
172 mkdir -p dir1/dir2 >/dev/null 2>&1
173 if test -d dir1/dir2/. ; then
174 ac_cv_mkdir_p_creates_dirs=yes
182 if test "$ac_cv_install_d_creates_dirs" = yes ; then
183 INSTALL_DIRS='${INSTALL} -d'
184 elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then
185 INSTALL_DIRS='mkdir -p'
188 INSTALL_DIRS='${INSTALL} -d'
193 ###############################################################################
195 # Function to check whether gettimeofday() exists, and how to call it.
196 # This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS.
198 ###############################################################################
200 AC_DEFUN(AC_GETTIMEOFDAY_ARGS,
201 [AC_MSG_CHECKING(how to call gettimeofday)
202 AC_CACHE_VAL(ac_cv_gettimeofday_args,
203 [AC_TRY_COMPILE([#include <stdlib.h>
204 #include <sys/time.h>],
205 [struct timeval tv; struct timezone tzp;
206 gettimeofday(&tv, &tzp);],
207 [ac_gettimeofday_args=2],
208 [AC_TRY_COMPILE([#include <stdlib.h>
209 #include <sys/time.h>],
210 [struct timeval tv; gettimeofday(&tv);],
211 [ac_gettimeofday_args=1],
212 [ac_gettimeofday_args=0])])
213 ac_cv_gettimeofday_args=$ac_gettimeofday_args])
214 ac_gettimeofday_args=$ac_cv_gettimeofday_args
215 if test "$ac_gettimeofday_args" = 1 ; then
216 AC_DEFINE(HAVE_GETTIMEOFDAY)
217 AC_MSG_RESULT(one argument)
218 elif test "$ac_gettimeofday_args" = 2 ; then
219 AC_DEFINE(HAVE_GETTIMEOFDAY)
220 AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
221 AC_MSG_RESULT(two arguments)
223 AC_MSG_RESULT(unknown)
228 ###############################################################################
230 # Function to find perl5 (defines PERL and PERL_VERSION.)
232 ###############################################################################
234 # M4 sucks!! perl sucks too!!
236 perl_version_cmd='print $]'
239 AC_DEFUN(AC_PROG_PERL,
240 [AC_PATH_PROGS(PERL, [perl5 perl],,)
241 if test -z "$PERL" ; then
244 AC_CACHE_CHECK([perl version], ac_cv_perl_version,
245 [ac_cv_perl_version=`$PERL -e "$perl_version_cmd"`])
246 PERL_VERSION=$ac_cv_perl_version
251 ###############################################################################
253 # Function to demand "bc". Losers.
255 ###############################################################################
257 AC_DEFUN(AC_DEMAND_BC,
258 [ac_bc_result=`echo 6+9 | bc 2>/dev/null`
259 AC_MSG_CHECKING([for bc])
260 if test "$ac_bc_result" = "15" ; then
265 AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard
266 part of Unix since the 1970s. Come back when your vendor
271 ###############################################################################
273 # Functions to check how to do ICMP PING requests.
275 ###############################################################################
277 AC_DEFUN(AC_CHECK_ICMP,
278 [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp,
279 [AC_TRY_COMPILE([#include <stdlib.h>
286 #include <sys/types.h>
287 #include <sys/time.h>
290 #include <sys/socket.h>
291 #include <netinet/in_systm.h>
292 #include <netinet/in.h>
293 #include <netinet/ip.h>
294 #include <netinet/ip_icmp.h>
295 #include <netinet/udp.h>
296 #include <arpa/inet.h>
300 struct sockaddr_in si;
302 i.icmp_type = ICMP_ECHO;
307 si.sin_family = AF_INET;
308 #if defined(__DECC) || defined(_IP_VHL)
314 [ac_cv_have_icmp=yes],
315 [ac_cv_have_icmp=no])])
316 if test "$ac_cv_have_icmp" = yes ; then
320 AC_DEFUN(AC_CHECK_ICMPHDR,
321 [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr,
322 [AC_TRY_COMPILE([#include <stdlib.h>
329 #include <sys/types.h>
330 #include <sys/time.h>
333 #include <sys/socket.h>
334 #include <netinet/in_systm.h>
335 #include <netinet/in.h>
336 #include <netinet/ip.h>
337 #include <netinet/ip_icmp.h>
338 #include <netinet/udp.h>
339 #include <arpa/inet.h>
343 struct sockaddr_in si;
349 i.un.echo.sequence = 0;
350 si.sin_family = AF_INET;
352 [ac_cv_have_icmphdr=yes],
353 [ac_cv_have_icmphdr=no])])
354 if test "$ac_cv_have_icmphdr" = yes ; then
355 AC_DEFINE(HAVE_ICMPHDR)
359 ###############################################################################
361 # Functions to check for various X11 crap.
363 ###############################################################################
365 # Try and find the app-defaults directory.
366 # It sucks that autoconf doesn't do this already...
368 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
370 if mkdir conftestdir; then
371 cd conftestdir 2>/dev/null
372 # Make sure to not put "make" in the Imakefile rules, since we grep it out.
373 cat > Imakefile <<'EOF'
375 @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
377 if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then
378 # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
379 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
385 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
386 # Look for the directory under a standard set of common directories.
387 # Check X11 before X11Rn because it's often a symlink to the current release.
389 /usr/X11/lib/app-defaults \
390 /usr/X11R6/lib/app-defaults \
391 /usr/X11R6/lib/X11/app-defaults \
392 /usr/X11R5/lib/app-defaults \
393 /usr/X11R5/lib/X11/app-defaults \
394 /usr/X11R4/lib/app-defaults \
395 /usr/X11R4/lib/X11/app-defaults \
397 /usr/lib/X11/app-defaults \
398 /usr/lib/X11R6/app-defaults \
399 /usr/lib/X11R5/app-defaults \
400 /usr/lib/X11R4/app-defaults \
402 /usr/local/X11/lib/app-defaults \
403 /usr/local/X11R6/lib/app-defaults \
404 /usr/local/X11R5/lib/app-defaults \
405 /usr/local/X11R4/lib/app-defaults \
407 /usr/local/lib/X11/app-defaults \
408 /usr/local/lib/X11R6/app-defaults \
409 /usr/local/lib/X11R6/X11/app-defaults \
410 /usr/local/lib/X11R5/app-defaults \
411 /usr/local/lib/X11R5/X11/app-defaults \
412 /usr/local/lib/X11R4/app-defaults \
413 /usr/local/lib/X11R4/X11/app-defaults \
415 /usr/X386/lib/X11/app-defaults \
416 /usr/x386/lib/X11/app-defaults \
417 /usr/XFree86/lib/X11/app-defaults \
419 /usr/lib/X11/app-defaults \
420 /usr/local/lib/X11/app-defaults \
421 /usr/unsupported/lib/X11/app-defaults \
422 /usr/athena/lib/X11/app-defaults \
423 /usr/local/x11r5/lib/X11/app-defaults \
424 /usr/lpp/Xamples/lib/X11/app-defaults \
425 /lib/usr/lib/X11/app-defaults \
427 /usr/openwin/lib/app-defaults \
428 /usr/openwin/lib/X11/app-defaults \
429 /usr/openwin/share/lib/app-defaults \
430 /usr/openwin/share/lib/X11/app-defaults \
432 /X11R6/lib/app-defaults \
433 /X11R5/lib/app-defaults \
434 /X11R4/lib/app-defaults \
437 if test -d "$ac_dir"; then
438 ac_x_app_defaults=$ac_dir
444 AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
446 AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
447 [AC_PATH_X_APP_DEFAULTS_XMKMF
448 if test x"$ac_x_app_defaults" = x; then
449 AC_PATH_X_APP_DEFAULTS_DIRECT
451 if test x"$ac_x_app_defaults" = x; then
452 ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
454 # Record where we found app-defaults for the cache.
455 ac_cv_x_app_defaults="$ac_x_app_defaults"
457 eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
460 AC_DEFUN(AC_XPOINTER,
461 [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
462 [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
463 [XPointer foo = (XPointer) 0;],
464 [ac_cv_xpointer=yes],
465 [ac_cv_xpointer=no])])
466 if test "$ac_cv_xpointer" != yes; then
467 AC_DEFINE(XPointer,[char*])
471 # Random special-cases for X on certain pathological OSes.
472 # You know who you are.
474 AC_DEFUN(AC_X_RANDOM_PATHS,
478 # The following arcana was gleaned from conversations with
479 # Eric Schwartz <erics@col.hp.com>:
481 # On HPUX 10.x, the parts of X that HP considers "standard" live in
482 # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider
483 # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
484 # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems.
485 # Also, there are symlinks from /usr/include/ and /usr/lib/ into
486 # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
487 # you don't need any -I or -L arguments.
489 # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
490 # are the same division as 10.x. However, there are no symlinks to
491 # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
492 # arguments are always necessary.
494 # However, X11R6 was available on HPUX 9.x as a patch: if that
495 # patch was installed, then all of X11R6 went in to
496 # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
498 # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
499 # whether R5 was available as a patch; R6 undoubtedly was not.)
501 # So. We try and use the highest numbered pair of
502 # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
503 # that are available. We do not mix and match different versions
506 # Question I still don't know the answer to: (do you?)
508 # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
509 # /usr/contrib/X11R6/ could be installed as a patch, what was in
510 # that contrib directory? Did it contain so-called "standard"
511 # X11R6, or did it include Xaw and Xmu as well? If the former,
512 # where did one find Xaw and Xmu on 9.x R6 systems? Would this
513 # be a situation where one had to reach into the R5 headers and
514 # libs to find Xmu? That is, must both R6 and R5 directories
515 # be on the -I and -L lists in that case?
517 for version in X11R6 X11R5 X11R4 ; do
518 # if either pair of directories exists...
519 if test -d /usr/include/$version || test -d /usr/contrib/$version/include
521 # if contrib exists, use it...
522 if test -d /usr/contrib/$version/include ; then
523 X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
524 X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
526 # if the "standard" one exists, use it.
527 if test -d /usr/include/$version ; then
528 X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
529 X_LIBS="$X_LIBS -L/usr/lib/$version"
531 # since at least one of the pair exists, go no farther.
536 # Now find Motif. Thanks for not making xmkmf find this by
537 # default, you losers.
539 if test -d /usr/include/Motif2.1 ; then
540 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif2.1"
541 X_LIBS="$X_LIBS -L/usr/lib/Motif2.1"
542 elif test -d /usr/include/Motif1.2 ; then
543 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
544 X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
545 elif test -d /usr/include/Motif1.1 ; then
546 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
547 X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
550 # Now let's check for the pseudo-standard locations for OpenGL and XPM.
552 if test -d /opt/graphics/OpenGL/include ; then
553 # HP-UX 10.20 puts it here
554 X_CFLAGS="-I/opt/graphics/OpenGL/include $X_CFLAGS"
555 X_LIBS="-L/opt/graphics/OpenGL/lib $X_LIBS"
556 elif test -d /opt/Mesa/lib ; then
557 X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
558 X_LIBS="-L/opt/Mesa/lib $X_LIBS"
562 if test -d /opt/xpm/lib/X11 ; then
563 X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
564 X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
567 # On HPUX, default to installing in /opt/xscreensaver/ instead of
568 # in /usr/local/, unless there is already an xscreensaver in
569 # /usr/local/bin/. This can be overridden with the --prefix arg
570 # to configure. I'm not sure this is the right thing to do, but
571 # Richard Lloyd says so...
573 if test \! -x /usr/local/bin/xscreensaver ; then
574 ac_default_prefix=/opt/xscreensaver
580 # Thanks for not making xmkmf find this by default, pinheads.
581 # And thanks for moving things around again, too. Is this
582 # really the standard location now? What happened to the
583 # joke that this kind of thing went in /opt?
584 # cthomp says "answer: CDE (Common Disorganized Environment)"
586 if test -f /usr/dt/include/Xm/Xm.h ; then
587 X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
588 X_LIBS="$X_LIBS -L/usr/dt/lib -R:/usr/dt/lib"
590 # Some versions of Slowlaris Motif require -lgen. But not all. Why?
591 AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"])
598 ###############################################################################
600 # Some utility functions to make checking for X things easier.
602 ###############################################################################
604 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
606 AC_DEFUN(AC_CHECK_X_HEADER, [
607 ac_save_CPPFLAGS="$CPPFLAGS"
608 if test \! -z "$includedir" ; then
609 CPPFLAGS="$CPPFLAGS -I$includedir"
611 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
612 AC_CHECK_HEADER([$1],[$2],[$3],[$4])
613 CPPFLAGS="$ac_save_CPPFLAGS"])
615 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
617 AC_DEFUN(AC_EGREP_X_HEADER, [
618 ac_save_CPPFLAGS="$CPPFLAGS"
619 if test \! -z "$includedir" ; then
620 CPPFLAGS="$CPPFLAGS -I$includedir"
622 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
623 AC_EGREP_HEADER([$1], [$2], [$3], [$4])
624 CPPFLAGS="$ac_save_CPPFLAGS"])
626 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
628 AC_DEFUN(AC_TRY_X_COMPILE, [
629 ac_save_CPPFLAGS="$CPPFLAGS"
630 if test \! -z "$includedir" ; then
631 CPPFLAGS="$CPPFLAGS -I$includedir"
633 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
634 AC_TRY_COMPILE([$1], [$2], [$3], [$4])
635 CPPFLAGS="$ac_save_CPPFLAGS"])
638 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
639 # Use this sparingly; it probably doesn't work very well on X programs.
641 AC_DEFUN(AC_CHECK_X_LIB, [
642 ac_save_CPPFLAGS="$CPPFLAGS"
643 ac_save_LDFLAGS="$LDFLAGS"
644 # ac_save_LIBS="$LIBS"
646 if test \! -z "$includedir" ; then
647 CPPFLAGS="$CPPFLAGS -I$includedir"
649 # note: $X_CFLAGS includes $x_includes
650 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
652 if test \! -z "$libdir" ; then
653 LDFLAGS="$LDFLAGS -L$libdir"
655 # note: $X_LIBS includes $x_libraries
656 LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
658 AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
659 CPPFLAGS="$ac_save_CPPFLAGS"
660 LDFLAGS="$ac_save_LDFLAGS"
661 # LIBS="$ac_save_LIBS"
664 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
665 # (But not the -L directories!)
667 AC_DEFUN(AC_TRY_X_RUN, [
668 ac_save_CPPFLAGS="$CPPFLAGS"
669 if test \! -z "$includedir" ; then
670 CPPFLAGS="$CPPFLAGS -I$includedir"
672 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
673 AC_TRY_RUN([$1], [$2], [$3], [$4])
674 CPPFLAGS="$ac_save_CPPFLAGS"])
678 # Usage: HANDLE_X_PATH_ARG([variable_name],
679 # [--command-line-option],
680 # [descriptive string])
682 # All of the --with options take three forms:
684 # --with-foo (or --with-foo=yes)
685 # --without-foo (or --with-foo=no)
688 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees
689 # a directory (string beginning with a slash) it checks to see whether
690 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
693 AC_DEFUN(HANDLE_X_PATH_ARG, [
699 AC_MSG_CHECKING([for [$3] headers])
702 X_CFLAGS="-I$d $X_CFLAGS"
705 AC_MSG_RESULT(not found ($d: no such directory))
708 AC_MSG_CHECKING([for [$3] libs])
711 X_LIBS="-L$d $X_LIBS"
714 AC_MSG_RESULT(not found ($d: no such directory))
717 # replace the directory string with "yes".
724 echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
725 echo " If it is a directory, then \`DIR/include' will be added to"
726 echo " the -I list, and \`DIR/lib' will be added to the -L list."
734 ###############################################################################
735 ###############################################################################
737 # End of function definitions. Now start actually executing stuff.
739 ###############################################################################
740 ###############################################################################
742 # random compiler setup
745 AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
752 # stuff for Makefiles
757 # By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'.
758 # That's wrong: it should be set to '${INSTALL}', so that one can
759 # implement the "install-strip" target properly (strip executables,
760 # but do not try to strip scripts.)
762 INSTALL_SCRIPT='${INSTALL}'
766 AC_CHECK_HEADERS(unistd.h)
775 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk)
777 AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
780 AC_CHECK_HEADERS(crypt.h sys/select.h)
783 if test -z "$PERL" ; then
784 # don't let it be blank...
790 if test "$have_x" != yes; then
791 AC_MSG_ERROR(Couldn't find X11 headers/libs. Try \`$0 --help'.)
794 AC_PATH_X_APP_DEFAULTS
799 ###############################################################################
803 ###############################################################################
806 GETTEXT_PACKAGE=xscreensaver
807 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE")
808 AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE")
809 AC_SUBST(GETTEXT_PACKAGE)
811 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"
815 ###############################################################################
817 # Check for -lXmu (some fucked up vendors don't ship it...)
819 ###############################################################################
822 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes],,
825 #include <X11/Intrinsic.h>])
826 if test "$have_xmu" = no ; then
827 XMU_SRCS='$(UTILS_SRC)/xmu.c'
828 XMU_OBJS='$(UTILS_BIN)/xmu.o'
838 ###############################################################################
840 # Check for the SunOS 4.1.x _get_wmShellWidgetClass bug.
841 # See comp.windows.x FAQ question 124. The right fix is to
842 # get OpenWindows 3.0 patches 100512-02 and 100573-03.
844 ###############################################################################
846 if test "$have_xmu" = yes ; then
849 AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
851 [ac_save_LDFLAGS="$LDFLAGS"
852 if test \! -z "$x_libraries" ; then
853 LDFLAGS="$LDFLAGS -L$x_libraries"
855 # Note: this trick never works! (Generally.)
856 # We're only getting away with using AC_TRY_LINK
857 # with X libraries because we know it's SunOS.
858 LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
860 [ac_cv_sunos_xmu_bug=no],
861 [ac_cv_sunos_xmu_bug=yes])
862 LDFLAGS="$ac_save_LDFLAGS"])
863 if test "$ac_cv_sunos_xmu_bug" = yes ; then
864 AC_CACHE_CHECK([whether the compiler understands -static],
866 [ac_save_LDFLAGS="$LDFLAGS"
867 LDFLAGS="$LDFLAGS -static"
868 AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
869 LDFLAGS="$ac_save_LDFLAGS"])
870 if test "$ac_cv_ld_static" = yes ; then
871 LDFLAGS="$LDFLAGS -static"
873 LDFLAGS="$LDFLAGS -Bstatic"
881 ###############################################################################
883 # Handle the --with-hackdir option
885 ###############################################################################
888 with_hackdir_req=unspecified
889 AC_ARG_WITH(hackdir,[
890 Installation options:
892 --with-hackdir=DIR Where to install the hundreds of demo executables.
893 Default: \`PREFIX/lib/xscreensaver/'],
894 [with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes])
896 if test x"$with_hackdir" = xyes; then
897 HACKDIR='${exec_prefix}/lib/xscreensaver'
898 elif test x"$with_hackdir" = xno; then
901 # there must be a better way than this...
902 if test -z "`echo $with_hackdir | sed 's@^/.*@@'`" ; then
904 HACKDIR=$with_hackdir
907 HACKDIR="\${exec_prefix}$with_hackdir"
911 # canonicalize slashes.
912 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
914 # This option used to be called --enable-subdir; make sure that is no longer
915 # used, since configure brain-damagedly ignores unknown --enable options.
918 AC_ARG_ENABLE(subdir,,[obsolete_enable=yes])
919 if test -n "$obsolete_enable"; then
920 echo "error: the --enable-subdir option has been replaced with"
921 echo " the new --with-hackdir option; see \`configure --help'"
922 echo " for more information."
927 ###############################################################################
929 # Handle the --with-configdir option
931 ###############################################################################
934 with_configdir_req=unspecified
935 AC_ARG_WITH(configdir,
936 [ --with-configdir=DIR Where to install the data files that describe each
937 of the display modes to the GUI.
938 Default: \`GNOMEPREFIX/control-center/screensavers/'
939 or \`PREFIX/lib/xscreensaver/config/', depending on
940 whether GNOME is available.
942 [with_configdir="$withval"; with_configdir_req="$withval"],
943 [with_configdir=yes])
945 if test x"$with_configdir" = xyes; then
948 elif test x"$with_configdir" = xno; then
949 echo "error: must be yes, or a pathname: --with-configdir=$with_configdir"
952 # there must be a better way than this...
953 if test -z "`echo $with_configdir | sed 's@^/.*@@'`" ; then
955 HACK_CONF_DIR=$with_configdir
958 HACK_CONF_DIR="\${exec_prefix}$with_configdir"
965 ###############################################################################
967 # Check for the SGI SCREEN_SAVER server extension.
969 ###############################################################################
972 with_sgi_req=unspecified
974 [Except where noted, all of the --with options below can also take a
975 directory argument: for example, \`--with-motif=/opt/Motif'. That would
976 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
977 to be added to the -L list, assuming those directories exist.
979 By default, support for each of these options will be built in, if the
980 relevant library routines exist. At run time, they will then be used
981 only if the X server being used supports them. Each --with option has
982 a corresponding --without option, to override building support for them
985 Screen blanking and idle-detection options:
987 --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.],
988 [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
990 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
992 if test "$with_sgi" = yes; then
993 AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
995 AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],,
996 [#include <X11/Xlib.h>])
998 elif test "$with_sgi" != no; then
999 echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
1004 ###############################################################################
1006 # Check for the MIT-SCREEN-SAVER server extension.
1008 ###############################################################################
1011 with_mit_req=unspecified
1012 AC_ARG_WITH(mit-ext,
1013 [ --with-mit-ext Include support for the MIT-SCREEN-SAVER extension.],
1014 [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
1016 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
1018 if test "$with_mit" = yes; then
1019 AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes],,
1020 [#include <X11/Xlib.h>])
1022 # Now check to see if it's really in the library; XF86Free-3.3 ships
1023 # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
1025 if test "$have_mit" = yes; then
1026 AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [true], [have_mit=no], -lm)
1028 if test "$have_mit" = no; then
1029 # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead
1030 # of in Xext. Thank you master, may I have another.
1031 AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
1032 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
1033 [true], -lX11 -lXext -lm)
1036 if test "$have_mit" = no; then
1037 # Double fuck! Looks like some versions of XFree86 (whichever version
1038 # it is that comes with RedHat Linux 2.0 -- I can't find a version
1039 # number) put this garbage in Xss instead of Xext. Thank you master,
1040 # may I have another.
1041 AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
1042 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
1043 [true], -lX11 -lXext -lm)
1046 if test "$have_mit" = yes; then
1047 AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
1052 elif test "$with_mit" != no; then
1053 echo "error: must be yes or no: --with-mit-ext=$with_mit"
1058 ###############################################################################
1060 # Check for the XIDLE server extension.
1062 ###############################################################################
1065 with_xidle_req=unspecified
1066 AC_ARG_WITH(xidle-ext,
1067 [ --with-xidle-ext Include support for the XIDLE extension.],
1068 [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
1070 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
1072 if test "$with_xidle" = yes; then
1073 AC_CHECK_X_HEADER(X11/extensions/xidle.h,
1075 AC_DEFINE(HAVE_XIDLE_EXTENSION)],,
1076 [#include <X11/Xlib.h>])
1077 elif test "$with_xidle" != no; then
1078 echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
1083 ###############################################################################
1085 # Check for the SGI-VIDEO-CONTROL server extension.
1087 ###############################################################################
1090 with_sgivc_req=unspecified
1091 AC_ARG_WITH(sgivc-ext,
1092 [ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension.],
1093 [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
1095 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
1097 if test "$with_sgivc" = yes; then
1099 # first check for XSGIvc.h
1100 AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],,
1101 [#include <X11/Xlib.h>])
1103 # if that succeeded, then check for the -lXsgivc
1104 if test "$have_sgivc" = yes; then
1106 AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
1107 [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
1111 # if that succeeded, then we've really got it.
1112 if test "$have_sgivc" = yes; then
1113 AC_DEFINE(HAVE_SGI_VC_EXTENSION)
1116 elif test "$with_sgivc" != no; then
1117 echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
1122 ###############################################################################
1124 # Check for the DPMS server extension.
1126 ###############################################################################
1129 with_dpms_req=unspecified
1130 AC_ARG_WITH(dpms-ext,
1131 [ --with-dpms-ext Include support for the DPMS extension.],
1132 [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
1134 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
1136 if test "$with_dpms" = yes; then
1138 # first check for dpms.h
1139 AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes],,
1140 [#include <X11/Xlib.h>])
1142 # if that succeeded, then check for the DPMS code in the libraries
1143 if test "$have_dpms" = yes; then
1145 # first look in -lXext (this is where it is with XFree86 4.0)
1147 AC_CHECK_X_LIB(Xext, DPMSInfo, [have_dpms=yes], [true], -lXext -lX11)
1149 # if that failed, look in -lXdpms (this is where it was in XFree86 3.x)
1150 if test "$have_dpms" = no; then
1151 AC_CHECK_X_LIB(Xdpms, DPMSInfo,
1152 [have_dpms=yes; XDPMS_LIBS="-lXdpms"], [true],
1158 # if that succeeded, then we've really got it.
1159 if test "$have_dpms" = yes; then
1160 AC_DEFINE(HAVE_DPMS_EXTENSION)
1163 elif test "$with_dpms" != no; then
1164 echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
1169 ###############################################################################
1171 # Check for the XINERAMA server extension.
1173 ###############################################################################
1176 with_xinerama_req=unspecified
1177 AC_ARG_WITH(xinerama-ext,
1178 [ --with-xinerama-ext Include support for the XINERAMA extension.],
1179 [with_xinerama="$withval"; with_xinerama_req="$withval"],[with_xinerama=yes])
1181 HANDLE_X_PATH_ARG(with_xinerama, --with-xinerama-ext, XINERAMA)
1183 if test "$with_xinerama" = yes; then
1185 # first check for Xinerama.h
1186 AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes],,
1187 [#include <X11/Xlib.h>])
1189 # if that succeeded, then check for the XINERAMA code in the libraries
1190 if test "$have_xinerama" = yes; then
1192 # first look in -lXext
1194 AC_CHECK_X_LIB(Xext, XineramaQueryExtension, [have_xinerama=yes], [true],
1197 # if that failed, look in -lXinerama (this is where it is in XFree86 4.1.)
1198 if test "$have_xinerama" = no; then
1199 AC_CHECK_X_LIB(Xinerama, XineramaQueryExtension,
1200 [have_xinerama=yes; SAVER_LIBS="$SAVER_LIBS -lXinerama"],
1201 [true], -lXext -lX11)
1205 # if that succeeded, then we've really got it.
1206 if test "$have_xinerama" = yes; then
1207 AC_DEFINE(HAVE_XINERAMA)
1210 elif test "$with_xinerama" != no; then
1211 echo "error: must be yes or no: --with-xinerama-ext=$with_xinerama"
1216 ###############################################################################
1218 # Check for the XF86VMODE server extension (for virtual screens.)
1220 ###############################################################################
1223 with_xf86vmode_req=unspecified
1224 AC_ARG_WITH(xf86vmode-ext,
1225 [ --with-xf86vmode-ext Include support for XFree86 virtual screens.],
1226 [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"],
1227 [with_xf86vmode=yes])
1229 HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
1231 if test "$with_xf86vmode" = yes; then
1233 # first check for xf86vmode.h
1234 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],,
1235 [#include <X11/Xlib.h>])
1237 # if that succeeded, then check for the -lXxf86vm
1238 if test "$have_xf86vmode" = yes; then
1240 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
1241 [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
1242 [true], -lXext -lX11)
1245 # if that succeeded, then we've really got it.
1246 if test "$have_xf86vmode" = yes; then
1247 AC_DEFINE(HAVE_XF86VMODE)
1250 elif test "$with_xf86vmode" != no; then
1251 echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
1256 ###############################################################################
1258 # Check for the XF86VMODE server extension (for gamma fading.)
1260 ###############################################################################
1263 have_xf86gamma_ramp=no
1264 with_xf86gamma_req=unspecified
1265 AC_ARG_WITH(xf86gamma-ext,
1266 [ --with-xf86gamma-ext Include support for XFree86 gamma fading.],
1267 [with_xf86gamma="$withval"; with_xf86gamma_req="$withval"],
1268 [with_xf86gamma=yes])
1270 HANDLE_X_PATH_ARG(with_xf86gamma, --with-xf86gamma-ext, xf86gamma)
1272 if test "$with_xf86gamma" = yes; then
1274 # first check for xf86vmode.h, if we haven't already
1275 if test "$have_xf86vmode" = yes; then
1278 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],,
1279 [#include <X11/Xlib.h>])
1282 # if that succeeded, then check for the -lXxf86vm
1283 if test "$have_xf86gamma" = yes; then
1285 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGamma,
1286 [have_xf86gamma=yes],
1287 [true], -lXext -lX11)
1290 # check for the Ramp versions of the functions too.
1291 if test "$have_xf86gamma" = yes; then
1292 have_xf86gamma_ramp=no
1293 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGammaRamp,
1294 [have_xf86gamma_ramp=yes],
1295 [true], -lXext -lX11)
1298 # if those tests succeeded, then we've really got the functions.
1299 if test "$have_xf86gamma" = yes; then
1300 AC_DEFINE(HAVE_XF86VMODE_GAMMA)
1303 if test "$have_xf86gamma_ramp" = yes; then
1304 AC_DEFINE(HAVE_XF86VMODE_GAMMA_RAMP)
1307 # pull in the lib, if we haven't already
1308 if test "$have_xf86gamma" = yes -a "$have_xf86vmode" = no; then
1309 SAVER_LIBS="$SAVER_LIBS -lXxf86vm"
1312 elif test "$with_xf86gamma" != no; then
1313 echo "error: must be yes or no: --with-xf86gamma-ext=$with_xf86vmode"
1318 ###############################################################################
1320 # Check for HP XHPDisableReset and XHPEnableReset.
1322 ###############################################################################
1324 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
1325 [AC_DEFINE(HAVE_XHPDISABLERESET)
1326 SAVER_LIBS="-lXhp11 $SAVER_LIBS"])
1329 ###############################################################################
1331 # Check for /proc/interrupts.
1333 ###############################################################################
1335 have_proc_interrupts=no
1336 with_proc_interrupts_req=unspecified
1337 AC_ARG_WITH(proc-interrupts,
1338 [ --with-proc-interrupts Include support for consulting the /proc/interrupts
1339 file to notice keyboard activity.],
1340 [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
1341 [with_proc_interrupts=yes])
1343 if test "$with_proc_interrupts" = yes; then
1345 AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
1346 ac_cv_have_proc_interrupts,
1347 [ac_cv_have_proc_interrupts=no
1348 if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
1349 ac_cv_have_proc_interrupts=yes
1352 have_proc_interrupts=$ac_cv_have_proc_interrupts
1354 if test "$have_proc_interrupts" = yes; then
1355 AC_DEFINE(HAVE_PROC_INTERRUPTS)
1358 elif test "$with_proc_interrupts" != no; then
1359 echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
1364 ###############################################################################
1366 # The --enable-locking option
1368 ###############################################################################
1370 AC_ARG_ENABLE(locking,[
1371 Screen locking options:
1373 --enable-locking Compile in support for locking the display.
1374 --disable-locking Do not allow locking at all.],
1375 [enable_locking="$enableval"],[enable_locking=yes])
1376 if test "$enable_locking" = yes; then
1378 elif test "$enable_locking" = no; then
1379 AC_DEFINE(NO_LOCKING)
1381 echo "error: must be yes or no: --enable-locking=$enable_locking"
1387 ###############################################################################
1389 # The --enable-vt-locking option
1391 ###############################################################################
1393 #ac_vt_lockswitch=no
1394 #AC_ARG_ENABLE(vt-locking,[
1395 # --enable-vt-locking Compile in support for locking Virtual Terminals.
1396 # This is the default if the system supports it, and
1397 # if locking support is included (--enable-locking.)
1398 # --disable-vt-locking Do not allow locking of VTs, even if locking is
1400 # [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1401 #if test "$enable_vt_locking" = yes; then
1403 # AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1404 # [AC_TRY_COMPILE([#include <fcntl.h>
1405 # #include <sys/ioctl.h>
1406 # #include <sys/vt.h>],
1407 # [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1408 # [ac_cv_vt_lockswitch=yes],
1409 # [ac_cv_vt_lockswitch=no])])
1410 # ac_vt_lockswitch=$ac_cv_vt_lockswitch
1412 #elif test "$enable_vt_locking" = no; then
1415 # echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1419 #if test "$ac_vt_lockswitch" = yes; then
1420 # AC_DEFINE(HAVE_VT_LOCKSWITCH)
1421 # # the VT_LOCKSWITCH ioctl can only be used when running as root.
1422 # # #### but it doesn't work yet, so don't worry about that for now.
1427 ###############################################################################
1431 ###############################################################################
1435 # Solaris systems tend to come with PAM misconfigured.
1436 # Don't build it by default, even if the headers exist.
1440 # Default to building PAM support on all other systems, if it exists.
1441 with_pam_default=yes
1446 with_pam_req=unspecified
1449 [ --with-pam Include support for PAM (Pluggable Auth Modules.)],
1450 [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1452 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1454 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1455 AC_CACHE_CHECK([for PAM], ac_cv_pam,
1456 [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1459 if test "$ac_cv_pam" = yes ; then
1462 PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1464 # libpam typically requires dlopen and dlsym. On FreeBSD,
1465 # those are in libc. On Linux and Solaris, they're in libdl.
1466 AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1468 AC_MSG_CHECKING(how to call pam_strerror)
1469 AC_CACHE_VAL(ac_cv_pam_strerror_args,
1470 [AC_TRY_COMPILE([#include <stdio.h>
1472 #include <security/pam_appl.h>],
1473 [pam_handle_t *pamh = 0;
1474 char *s = pam_strerror(pamh, PAM_SUCCESS);],
1475 [ac_pam_strerror_args=2],
1476 [AC_TRY_COMPILE([#include <stdio.h>
1478 #include <security/pam_appl.h>],
1480 pam_strerror(PAM_SUCCESS);],
1481 [ac_pam_strerror_args=1],
1482 [ac_pam_strerror_args=0])])
1483 ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1484 ac_pam_strerror_args=$ac_cv_pam_strerror_args
1485 if test "$ac_pam_strerror_args" = 1 ; then
1486 AC_MSG_RESULT(one argument)
1487 elif test "$ac_pam_strerror_args" = 2 ; then
1488 AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1489 AC_MSG_RESULT(two arguments)
1491 AC_MSG_RESULT(unknown)
1497 ###############################################################################
1499 # Check for Kerberos.
1501 ###############################################################################
1505 with_kerberos_req=unspecified
1507 AC_ARG_WITH(kerberos,
1508 [ --with-kerberos Include support for Kerberos authentication.],
1509 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1511 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1513 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1514 AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
1515 [AC_TRY_X_COMPILE([#include <krb.h>],,
1516 [ac_cv_kerberos=yes],
1517 [ac_cv_kerberos=no])])
1518 AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
1519 [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
1520 [ac_cv_kerberos5=yes],
1521 [ac_cv_kerberos5=no])])
1523 if test "$ac_cv_kerberos" = yes ; then
1525 AC_DEFINE(HAVE_KERBEROS)
1528 if test "$ac_cv_kerberos5" = yes ; then
1531 AC_DEFINE(HAVE_KERBEROS)
1532 AC_DEFINE(HAVE_KERBEROS5)
1535 if test "$have_kerberos5" = yes ; then
1536 # from Matt Knopp <mhat@infocalypse.netlag.com>
1537 # (who got it from amu@mit.edu)
1538 PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcrypt -lcom_err"
1539 elif test "$have_kerberos" = yes ; then
1540 # from Tim Showalter <tjs@psaux.com> for FreeBSD 4.2
1541 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err"
1544 if test "$have_kerberos" = yes ; then
1545 AC_CHECK_FUNC(res_search,,
1546 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1547 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1553 ###############################################################################
1555 # Check for the nine billion variants of shadow passwords...
1557 ###############################################################################
1562 with_shadow_req=unspecified
1565 [ --with-shadow Include support for shadow password authentication.],
1566 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1568 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1570 if test "$enable_locking" = no ; then
1576 ###############################################################################
1578 # Check for Sun "adjunct" passwords.
1580 ###############################################################################
1582 if test "$with_shadow" = yes ; then
1583 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1584 [AC_TRY_X_COMPILE([#include <stdlib.h>
1586 #include <sys/types.h>
1587 #include <sys/label.h>
1588 #include <sys/audit.h>
1589 #include <pwdadj.h>],
1590 [struct passwd_adjunct *p = getpwanam("nobody");
1591 const char *pw = p->pwa_passwd;],
1592 [ac_cv_sun_adjunct=yes],
1593 [ac_cv_sun_adjunct=no])])
1594 if test "$ac_cv_sun_adjunct" = yes; then
1595 have_shadow_adjunct=yes
1602 ###############################################################################
1604 # Check for DEC and SCO so-called "enhanced" security.
1606 ###############################################################################
1608 if test "$with_shadow" = yes ; then
1609 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1610 [AC_TRY_X_COMPILE([#include <stdlib.h>
1612 #include <sys/types.h>
1614 #include <sys/security.h>
1616 [struct pr_passwd *p;
1618 set_auth_parameters(0, 0);
1619 check_auth_parameters();
1620 p = getprpwnam("nobody");
1621 pw = p->ufld.fd_encrypt;],
1622 [ac_cv_enhanced_passwd=yes],
1623 [ac_cv_enhanced_passwd=no])])
1624 if test $ac_cv_enhanced_passwd = yes; then
1625 have_shadow_enhanced=yes
1629 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1630 # (I'm told it needs -lcurses too, but I don't understand why.)
1631 # But on DEC, it's in -lsecurity.
1633 AC_CHECK_LIB(prot, getprpwnam,
1634 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1635 [AC_CHECK_LIB(security, getprpwnam,
1636 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1641 ###############################################################################
1643 # Check for HP's entry in the "Not Invented Here" Sweepstakes.
1645 ###############################################################################
1647 if test "$with_shadow" = yes ; then
1648 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1649 [AC_TRY_X_COMPILE([#include <stdlib.h>
1651 #include <sys/types.h>
1653 #include <hpsecurity.h>
1655 [struct s_passwd *p = getspwnam("nobody");
1656 const char *pw = p->pw_passwd;],
1657 [ac_cv_hpux_passwd=yes],
1658 [ac_cv_hpux_passwd=no])])
1659 if test "$ac_cv_hpux_passwd" = yes; then
1660 have_shadow_hpux=yes
1664 # on HPUX, bigcrypt is in -lsec
1665 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1670 ###############################################################################
1672 # Check for FreeBSD-style shadow passwords.
1674 # On FreeBSD, getpwnam() and friends work just like on non-shadow-
1675 # password systems -- except you only get stuff in the pw_passwd field
1676 # if the running program is setuid. So, guess that we've got this
1677 # lossage to contend with if /etc/master.passwd exists, and default to
1678 # a setuid installation.
1680 ###############################################################################
1682 if test "$with_shadow" = yes ; then
1683 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1684 [if test -f /etc/master.passwd ; then
1685 ac_cv_master_passwd=yes
1687 ac_cv_master_passwd=no
1689 if test "$ac_cv_master_passwd" = yes; then
1695 ###############################################################################
1697 # Check for traditional (ha!) shadow passwords.
1699 ###############################################################################
1701 if test "$with_shadow" = yes ; then
1702 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1703 [AC_TRY_X_COMPILE([#include <stdlib.h>
1705 #include <sys/types.h>
1707 #include <shadow.h>],
1708 [struct spwd *p = getspnam("nobody");
1709 const char *pw = p->sp_pwdp;],
1711 [ac_cv_shadow=no])])
1712 if test "$ac_cv_shadow" = yes; then
1716 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1718 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1719 if test "$have_getspnam" = no ; then
1720 AC_CHECK_LIB(gen, getspnam,
1721 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1727 ###############################################################################
1729 # Check for other libraries needed for non-shadow passwords.
1731 ###############################################################################
1733 if test "$enable_locking" = yes ; then
1735 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1737 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1738 if test "$have_crypt" = no ; then
1739 AC_CHECK_LIB(crypt, crypt,
1740 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1745 # Most of the above shadow mechanisms will have set need_setuid to yes,
1746 # if they were found. But, on some systems, we need setuid even when
1747 # using plain old vanilla passwords.
1749 if test "$enable_locking" = yes ; then
1751 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1758 if test "$have_shadow_adjunct" = yes ; then
1759 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1760 elif test "$have_shadow_enhanced" = yes ; then
1761 AC_DEFINE(HAVE_ENHANCED_PASSWD)
1762 elif test "$have_shadow_hpux" = yes ; then
1763 AC_DEFINE(HAVE_HPUX_PASSWD)
1764 elif test "$have_shadow" = yes ; then
1765 AC_DEFINE(HAVE_SHADOW_PASSWD)
1769 ###############################################################################
1773 ###############################################################################
1776 with_motif_req=unspecified
1778 User interface options:
1780 --with-motif Use the Motif toolkit for the user interface
1781 (not recommended.)],
1782 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=yes])
1784 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
1786 if test "$with_motif" != yes -a "$with_motif" != no ; then
1787 echo "error: must be yes or no: --with-motif=$with_motif"
1791 if test "$with_motif" = yes; then
1793 AC_CHECK_X_HEADER(Xm/Xm.h,
1795 AC_DEFINE(HAVE_MOTIF)
1796 MOTIF_LIBS="$MOTIF_LIBS -lXm"],,
1797 [#include <stdlib.h>
1799 #include <X11/Intrinsic.h>])
1803 if test "$have_motif" = yes; then
1804 AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],,
1805 [#include <stdlib.h>
1807 #include <X11/Intrinsic.h>])
1811 ###############################################################################
1813 # Check for -lgtk (and Gnome stuff)
1815 ###############################################################################
1819 with_gtk_req=unspecified
1821 [ --with-gtk Use the Gtk toolkit for the user interface.],
1822 [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
1824 # if --with-gtk=/directory/ was specified, remember that directory so that
1825 # we can also look for the `gtk-config' program in that directory.
1835 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
1837 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
1838 echo "error: must be yes or no: --with-gtk=$with_gtk"
1843 with_gnome_req=unspecified
1845 [ --with-gnome Include support for the Gnome 1.x Control Center.
1846 (This option is not needed with GTK 2.x / Gnome 2.x.)
1848 [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
1850 # if --with-gnome=/directory/ was specified, remember that directory so that
1851 # we can also look for the `gnome-config' program in that directory.
1852 case "$with_gnome" in
1854 gnome_dir="$with_gnome"
1861 HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome)
1863 if test "$with_gnome" != yes -a "$with_gnome" != no ; then
1864 echo "error: must be yes or no: --with-gnome=$with_gnome"
1868 parse_gtk_version_string() {
1871 maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
1872 min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
1874 ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
1875 if test -z "$ac_gtk_version"; then
1876 ac_gtk_version=unknown
1877 ac_gtk_version_string=unknown
1885 if test "$with_gtk" = yes; then
1888 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
1889 # look in /foo/bin/ for glib-config, gtk-config, and gnome-config.
1893 if test ! -z "$gtk_dir"; then
1894 # canonicalize slashes.
1895 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
1896 gtk_path="$foo:$gtk_path"
1899 if test ! -z "$gnome_dir"; then
1900 # canonicalize slashes.
1901 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
1902 gtk_path="$foo:$gtk_path"
1905 AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path)
1907 if test -n "$pkg_config" ; then
1910 # run pkg-config based tests.
1914 pkg_check_version() {
1915 if test "$ok" = yes ; then
1918 AC_MSG_CHECKING(for $req)
1919 if $pkg_config --exists "$req" ; then
1920 vers=`$pkg_config --modversion "$req"`
1921 if $pkg_config --exists "$req >= $min" ; then
1922 AC_MSG_RESULT($vers)
1926 AC_MSG_RESULT($vers (wanted >= $min))
1939 pkg_check_version gtk+-2.0 2.0.1 ; ac_gtk_version_string="$vers"
1940 pkg_check_version gmodule-2.0 2.0.0
1941 pkg_check_version libxml-2.0 2.4.6
1942 pkg_check_version libglade-2.0 1.99.0
1945 if test "$have_gtk" = yes; then
1947 AC_DEFINE(HAVE_GTK2)
1949 if test -n "$ac_gtk_version_string" ; then
1950 gtk2_halfassed="$ac_gtk_version_string"
1951 gtk2_halfassed_lib="$req"
1955 if test "$have_gtk" = no; then
1957 # we don't have GTK 2. Let's look for GTK 1.
1961 pkg_check_version gtk+ 1.2 ; ac_gtk_version_string="$vers"
1962 pkg_check_version glib 1.0
1965 # Now check for Gnome...
1967 if test "$have_gtk" = yes -a "$with_gnome" = yes; then
1970 pkg_check_version capplet 1.0
1971 pkg_check_version gnomeui 1.0
1972 pkg_check_version gdk_pixbuf 0.1
1975 if test "$have_gnome" = no; then
1978 AC_DEFINE(HAVE_CRAPPLET)
1983 if test "$have_gtk" = yes; then
1984 parse_gtk_version_string
1990 if test "$have_gtk" = yes; then
1991 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
1992 [ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`])
1993 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
1994 [ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs`])
1996 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
1997 ac_gtk_config_libs=$ac_cv_gtk_config_libs
1999 ac_gnome_config_cflags=$ac_gtk_config_cflags
2000 ac_gnome_config_libs=$ac_gtk_config_libs
2005 # run {gnome,gtk}-config based tests.
2008 AC_PATH_PROGS(glib_config, glib12-config glib-config,, $gtk_path)
2009 AC_PATH_PROGS(gtk_config, gtk12-config gtk-config,, $gtk_path)
2011 if test "$with_gnome" = yes; then
2012 AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
2015 if test -n "$glib_config" -a -n "$gtk_config" ; then
2017 if test "$with_gnome" = yes -a -n "$gnome_config" ; then
2022 if test "$have_gtk" = yes; then
2023 AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
2024 [ac_cv_gtk_version_string=`$gtk_config --version`])
2025 ac_gtk_version_string=$ac_cv_gtk_version_string
2028 parse_gtk_version_string
2030 if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
2037 if test "$have_gtk" = yes; then
2038 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
2039 [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
2040 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
2041 [ac_cv_gtk_config_libs=`$gtk_config --libs`])
2043 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
2044 ac_gtk_config_libs=$ac_cv_gtk_config_libs
2046 # Check for Gnome Capplet support.
2047 # Note that this is only needed with Gnome 1.x, not Gnome 2.x.
2048 # In a Gnome 2.x world, libcapplet will not exist.
2049 # (In fact, this likely won't even be checked, since in a Gnome 2.x
2050 # world, we will probably be up in the "$pkg_config" branch instead
2051 # of here in the "$gnome_config" branch.)
2053 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2054 gnome_config_libs="gtk capplet gnomeui gdk_pixbuf"
2055 AC_MSG_CHECKING(for Gnome capplet includes)
2056 AC_CACHE_VAL(ac_cv_gnome_config_cflags,
2057 [if ( $gnome_config --cflags $gnome_config_libs >/dev/null 2>&1 | \
2058 grep Unknown >/dev/null ) ; then
2059 ac_cv_gnome_config_cflags=''
2061 ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
2063 ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
2064 if test "$ac_gnome_config_cflags" = "" ; then
2068 AC_MSG_RESULT($ac_gnome_config_cflags)
2072 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2073 AC_MSG_CHECKING(for Gnome capplet libs)
2074 AC_CACHE_VAL(ac_cv_gnome_config_libs,
2075 [if ( $gnome_config --libs $gnome_config_libs >/dev/null 2>&1 |
2076 grep Unknown >/dev/null ) ; then
2077 ac_cv_gnome_config_libs=''
2079 ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
2081 ac_gnome_config_libs=$ac_cv_gnome_config_libs
2082 if test "$ac_gnome_config_libs" = "" ; then
2086 AC_MSG_RESULT($ac_gnome_config_libs)
2090 # If we have Gnome, then override the gtk-config values with
2091 # the gnome-config values.
2093 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2094 ac_gtk_config_cflags=$ac_gnome_config_cflags
2095 ac_gtk_config_libs=$ac_gnome_config_libs
2096 AC_DEFINE(HAVE_CRAPPLET)
2099 fi # end of {gnome,gtk}-config based tests
2101 if test "$have_gtk" = yes -a "$have_gtk2" = no; then
2102 # check for this function that was not in libcapplet 1.2.
2103 # (only needed in Gnome/Gtk 1.x, not Gnome/Gtk 2.x)
2104 AC_CHECK_X_LIB(capplet, capplet_widget_changes_are_immediate,
2105 [AC_DEFINE(HAVE_CRAPPLET_IMMEDIATE)], [true],
2106 $ac_gnome_config_libs)
2111 if test "$have_gtk" = yes; then
2112 if test -n "$pkg_config"; then
2113 if test "$have_gtk2" = yes; then
2114 GNOME_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
2116 GNOME_DATADIR=`$pkg_config --variable=prefix gtk+`
2119 GNOME_DATADIR=`$gtk_config --prefix`
2121 GNOME_DATADIR="$GNOME_DATADIR/share"
2124 # .desktop files go in different places in Gnome 1.x and Gnome 2.x...
2125 if test "$have_gtk2" = yes; then
2126 GNOME_PANELDIR='$(GNOME_PANELDIR2)'
2128 GNOME_PANELDIR='$(GNOME_PANELDIR1)'
2132 if test "$have_gtk" = yes; then
2133 INCLUDES="$INCLUDES $ac_gtk_config_cflags"
2134 GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
2137 if test "$have_gtk2" = yes; then
2140 GTK_EXTRA_OBJS="\$(GTK_EXTRA_OBJS)"
2147 # Check for the Gnome Help Browser.
2149 if test "$have_gtk" = yes; then
2150 AC_CHECK_PROGS(have_gnome_help, yelp gnome-help-browser, no)
2151 if test "$have_gnome_help" != no; then
2157 ###############################################################################
2161 ###############################################################################
2164 with_xml_req=unspecified
2167 [ --with-xml The XML toolkit is needed for some parts of
2168 the Gtk interface. Without it, the configuration
2169 interface will be much less featureful.],
2170 [with_xml="$withval"; with_xml_req="$withval"],[with_xml=yes])
2172 # if --with-xml=/directory/ was specified, remember that directory so that
2173 # we can also look for the `xml-config' program in that directory.
2183 HANDLE_X_PATH_ARG(with_xml, --with-xml, XML)
2185 if test "$with_xml" != yes -a "$with_xml" != no ; then
2186 echo "error: must be yes or no: --with-xml=$with_xml"
2190 if test "$with_xml" = yes; then
2194 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2195 # look in /foo/bin/ for for xml-config.
2199 if test ! -z "$gtk_dir"; then
2200 # canonicalize slashes.
2201 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2202 xml_path="$foo:$xml_path"
2205 if test ! -z "$gnome_dir"; then
2206 # canonicalize slashes.
2207 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2208 xml_path="$foo:$xml_path"
2211 if test -n "$pkg_config" ; then
2214 # run pkg-config based tests.
2219 # If we have Gtk 2.x, then *only* XML 2.x will work.
2220 # If we have Gtk 1.x, or don't have Gtk at all, then
2221 # either XML 1.x or 2.x will work.
2223 # First check for XML 2.x.
2225 pkg_check_version libxml-2.0 2.4.6
2227 # If that didn't work (we don't have XML 2.x) and we *don't* have
2228 # Gtk 2.x, then check to see if we have XML 1.x
2230 if test "$ok" = no -a "$have_gtk2" = no; then
2232 pkg_check_version libxml 1.0
2237 if test "$have_xml" = yes; then
2238 AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2239 [ac_cv_xml_config_cflags=`$pkg_config --cflags $pkgs`])
2240 AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2241 [ac_cv_xml_config_libs=`$pkg_config --libs $pkgs`])
2242 ac_xml_config_cflags=$ac_cv_xml_config_cflags
2243 ac_xml_config_libs=$ac_cv_xml_config_libs
2249 # run {xml2,xml}-config based tests.
2252 AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path)
2254 # If we found the xml-config program, run it to get flags.
2256 if test -n "$xml_config" ; then
2257 AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2258 [ac_cv_xml_config_cflags=`$xml_config --cflags`])
2259 AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2260 [ac_cv_xml_config_libs=`$xml_config --libs`])
2261 ac_xml_config_cflags=$ac_cv_xml_config_cflags
2262 ac_xml_config_libs=$ac_cv_xml_config_libs
2265 ac_save_xml_CPPFLAGS="$CPPFLAGS"
2266 CPPFLAGS="$CPPFLAGS $ac_xml_config_cflags"
2268 # first try <libxml/parser.h> which is the new way...
2270 AC_CHECK_X_HEADER(libxml/xmlIO.h, [have_xml=yes],,
2271 [#include <libxml/parser.h>])
2273 # if that didn't work, then try just <parser.h> which is the old way...
2275 if test "$have_xml" = no; then
2276 AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes; have_old_xml=yes],,
2277 [#include <parser.h>])
2280 CPPFLAGS="$ac_save_xml_CPPFLAGS"
2285 if test "$have_xml" = yes; then
2286 # we have the XML headers; now make sure zlib is around.
2287 # yes, it's stupid we have to do this too, but there is
2288 # dependency screwage in Gnome.
2289 AC_CHECK_X_LIB(z, zlibVersion, [have_zlib=yes])
2290 if test "$have_zlib" = no; then
2296 if test "$have_xml" = yes; then
2297 # we have the header, now check for the library
2300 AC_CHECK_X_LIB(c, xmlParseChunk,
2303 XML_LIBS="$ac_xml_config_libs"
2304 AC_DEFINE(HAVE_XML)],
2306 $ac_xml_config_libs)
2309 if test "$have_xml" = yes; then
2310 INCLUDES="$INCLUDES $ac_xml_config_cflags"
2311 GTK_LIBS="$GTK_LIBS $ac_xml_config_libs"
2313 if test "$have_old_xml" = yes; then
2314 AC_DEFINE(HAVE_OLD_XML_HEADERS)
2321 ###############################################################################
2323 # Checking whether Motif is really Lesstif.
2325 ###############################################################################
2328 if test "$have_motif" = yes ; then
2329 AC_CACHE_CHECK([whether Motif is really LessTif],
2331 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
2332 [long vers = LesstifVersion;],
2333 [ac_cv_have_lesstif=yes],
2334 [ac_cv_have_lesstif=no])])
2335 have_lesstif=$ac_cv_have_lesstif
2339 lesstif_version=unknown
2340 lesstif_version_string=unknown
2342 if test "$have_lesstif" = yes ; then
2344 echo unknown > conftest-lt
2345 AC_CACHE_CHECK([LessTif version number],
2346 ac_cv_lesstif_version_string,
2347 [AC_TRY_X_RUN([#include <stdio.h>
2350 FILE *f = fopen("conftest-lt", "w");
2352 fprintf(f, "%d %d.%d\n", LesstifVersion,
2353 LESSTIF_VERSION, LESSTIF_REVISION);
2357 [ltv=`cat conftest-lt`
2358 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
2359 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
2360 [ac_cv_lesstif_version=unknown
2361 ac_cv_lesstif_version_string=unknown],
2362 [ac_cv_lesstif_version=unknown
2363 ac_cv_lesstif_version_string=unknown])])
2365 lesstif_version=$ac_cv_lesstif_version
2366 lesstif_version_string=$ac_cv_lesstif_version_string
2371 if test "$have_motif" = yes ; then
2373 echo unknown > conftest-mt
2374 AC_CACHE_CHECK([Motif version number],
2375 ac_cv_motif_version_string,
2376 [AC_TRY_X_RUN([#include <stdio.h>
2379 FILE *f = fopen("conftest-mt", "w");
2381 fprintf(f, "%d %d.%d\n", XmVersion,
2382 XmVERSION, XmREVISION);
2386 [mtv=`cat conftest-mt`
2387 ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
2388 ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
2389 [ac_cv_motif_version=unknown
2390 ac_cv_motif_version_string=unknown],
2391 [ac_cv_motif_version=unknown
2392 ac_cv_motif_version_string=unknown])])
2394 motif_version=$ac_cv_motif_version
2395 motif_version_string=$ac_cv_motif_version_string
2400 ###############################################################################
2402 # Checking whether Motif requires -lXpm.
2404 # If this is Motif 2.x, and we have XPM, then link against XPM as well.
2405 # The deal is, Motif 2.x requires XPM -- but it's a compilation option
2406 # of the library whether to build the XPM code into libXm, or whether
2407 # to rely on an external libXm. So the only way to tell whether XPM is
2408 # a link-time requirement is to examine libXm.a, which is very
2409 # difficult to do in an autoconf script. So... if it's Motif 2.x, we
2410 # always link against XPM if the XPM lib exists (and this will be a
2411 # no-op if libXm happens to already have the XPM code in it.)
2413 ###############################################################################
2415 motif_requires_xpm=no
2416 if test "$have_motif" = yes ; then
2417 AC_MSG_CHECKING(whether Motif requires XPM)
2418 if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
2420 motif_requires_xpm=yes
2421 AC_MSG_RESULT(maybe)
2428 ###############################################################################
2430 # Checking whether Motif requires -lXp.
2432 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
2433 # Extension". Why this extension isn't in -lXext with all the others,
2436 ###############################################################################
2439 if test "$have_motif" = yes ; then
2441 AC_CHECK_X_LIB(Xp, XpQueryExtension,
2442 [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
2443 [true], -lX11 -lXext -lm)
2447 ###############################################################################
2449 # Checking whether Motif requires -lXintl (for _Xsetlocale.)
2451 ###############################################################################
2454 if test "$have_motif" = yes ; then
2455 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
2457 if test "$have_xintl" = yes; then
2458 MOTIF_LIBS="$MOTIF_LIBS -lXintl"
2463 ###############################################################################
2465 # Check for -lGL or -lMesaGL.
2467 ###############################################################################
2471 with_gl_req=unspecified
2476 --with-gl Build those demos which depend on OpenGL.],
2477 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
2479 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
2481 ac_mesagl_version=unknown
2482 ac_mesagl_version_string=unknown
2484 if test "$with_gl" = yes; then
2485 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
2486 if test "$have_gl" = yes ; then
2487 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no,
2488 [#include <GL/gl.h>])
2491 # If we have the headers, try and figure out which vendor it's from.
2493 if test "$have_gl" = yes ; then
2495 # We need to know whether it's MesaGL so that we know which libraries
2498 AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
2499 [ac_cv_have_mesa_gl=no
2500 AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
2502 ac_have_mesa_gl=$ac_cv_have_mesa_gl
2509 # Some versions of MesaGL are compiled to require -lpthread.
2510 # So if the Mesa headers exist, and -lpthread exists, then always
2511 # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
2513 if test "$ac_have_mesa_gl" = yes; then
2514 AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
2518 # If we have Mesa headers, check to see if we can link against -lMesaGL.
2519 # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
2520 # Else, warn that GL is busted. (We have the headers, but no libs.)
2523 if test "$ac_have_mesa_gl" = yes ; then
2524 AC_CHECK_X_LIB(MesaGL, glXCreateContext,
2526 GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
2527 [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
2530 if test "$gl_lib_1" = "" ; then
2531 AC_CHECK_X_LIB(GL, glXCreateContext,
2533 GL_LIBS="-lGL -lGLU $GL_LIBS"],
2534 [], -lGLU $GL_LIBS -lX11 -lXext -lm)
2537 if test "$gl_lib_1" = "" ; then
2538 # we have headers, but no libs -- bail.
2543 # linking works -- we can build the GL hacks.
2545 if test "$ac_have_mesa_gl" = yes ; then
2546 AC_DEFINE(HAVE_MESA_GL)
2552 # Now that we know we have GL headers and libs, do some more GL testing.
2555 if test "$have_gl" = yes ; then
2556 # If it's MesaGL, we'd like to issue a warning if the version number
2557 # is less than or equal to 2.6, because that version had a security bug.
2559 if test "$ac_have_mesa_gl" = yes; then
2561 AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
2562 [cat > conftest.$ac_ext <<EOF
2563 #line __oline__ "configure"
2564 #include "confdefs.h"
2566 #ifndef MESA_MAJOR_VERSION
2567 # include <GL/xmesa.h>
2568 # ifdef XMESA_MAJOR_VERSION
2569 /* Around Mesa 3.2, they took out the Mesa version number, so instead,
2570 we have to check the XMesa version number (the number of the X protocol
2571 support, which seems to be the same as the Mesa version number.)
2573 # define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
2574 # define MESA_MINOR_VERSION XMESA_MINOR_VERSION
2576 /* Oh great. Some time after 3.4, they took out the xmesa.h header file,
2577 so we have no way of telling what version of Mesa this is at all.
2578 So, we'll guess that the osmesa version (the "offscreen protocol")
2579 is less than or equal to the real mesa version number. Except that
2580 if OSmesa is 3.3, assume at least Mesa 3.4, since OSmesa was 3.3 in
2581 Mesa 3.4. And Mesa 3.3 had xmesa.h. What a complete load of shit!
2583 # include <GL/osmesa.h>
2584 # define MESA_MAJOR_VERSION OSMESA_MAJOR_VERSION
2585 # define MESA_MINOR_VERSION OSMESA_MINOR_VERSION or newer, probably?
2586 # if OSMESA_MAJOR_VERSION == 3 && OSMESA_MINOR_VERSION == 3
2587 # undef MESA_MINOR_VERSION
2588 # define MESA_MINOR_VERSION 4 or newer, probably?
2592 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
2595 ac_save_CPPFLAGS="$CPPFLAGS"
2596 if test \! -z "$includedir" ; then
2597 CPPFLAGS="$CPPFLAGS -I$includedir"
2599 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2601 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | grep configure:`
2605 mglv=`echo "$mglv" | sed -n \
2606 's/^configure: *\([0-9][0-9]*\) \([0-9].*\)$/\1.\2/p'`
2609 rm -f conftest.$ac_ext
2611 CPPFLAGS="$ac_save_CPPFLAGS"
2613 if test "$mglv" = ""; then
2614 ac_mesagl_version=unknown
2615 ac_mesagl_version_string=unknown
2617 ac_mesagl_version_string="$mglv"
2620 maj=`echo "$mglv" | sed -n 's/^\([0-9][0-9]*\)\..*$/\1/p'`
2621 min=`echo "$mglv" | sed -n 's/^.*\.\([0-9][0-9]*\).*$/\1/p'`
2623 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
2624 if test -z "$ac_mesagl_version"; then
2625 ac_mesagl_version=unknown
2626 ac_mesagl_version_string=unknown
2629 ac_cv_mesagl_version=$ac_mesagl_version
2630 ac_cv_mesagl_version_string=$ac_mesagl_version_string
2632 ac_mesagl_version=$ac_cv_mesagl_version
2633 ac_mesagl_version_string=$ac_cv_mesagl_version_string
2637 # Check for OpenGL 1.1 features.
2639 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
2640 [true], $GL_LIBS -lX11 -lXext -lm)
2643 elif test "$with_gl" != no; then
2644 echo "error: must be yes or no: --with-gl=$with_gl"
2649 ###############################################################################
2653 ###############################################################################
2656 with_gle_req=unspecified
2659 [ --with-gle Build those demos which depend on GLE
2660 (the OpenGL "extrusion" library.)],
2661 [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
2663 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
2667 if test "$have_gl" = no ; then
2669 elif test "$with_gle" = yes; then
2671 AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no,
2672 [#include <GL/gl.h>])
2673 if test "$have_gle3" = yes ; then
2676 AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no,
2677 [#include <GL/gl.h>])
2678 if test "$have_gle" = yes ; then
2679 AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no,
2680 [#include <GL/gl.h>])
2684 if test "$have_gle" = yes ; then
2687 AC_CHECK_X_LIB(gle, gleCreateGC,
2688 [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
2689 [], $GL_LIBS -lX11 -lXext -lm)
2691 if test "$have_gle" = yes ; then
2695 # sometimes the libmatrix stuff is included in libgle. look there first.
2697 # I don't get it. For some reason, this test passes on SGI, as if
2698 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
2699 # Yet the link is succeeding. Why???
2701 # AC_CHECK_X_LIB(gle, uview_direction_d,
2702 # [have_gle=yes; gle_halfassed=no],
2703 # [], $GL_LIBS -lX11 -lXext -lm)
2705 # As of GLE 3 this is in libgle, and has changed name to uview_direction!
2707 if test "$have_gle3" = yes ; then
2708 AC_CHECK_X_LIB(gle, uview_direction,
2709 [have_gle=yes; gle_halfassed=no],
2710 [], $GL_LIBS -lX11 -lXext -lm)
2712 # if it wasn't in libgle, then look in libmatrix.
2713 if test "$have_gle" = no ; then
2714 AC_CHECK_X_LIB(matrix, uview_direction_d,
2715 [have_gle=yes; gle_halfassed=no;
2716 GLE_LIBS="$GLE_LIBS -lmatrix"],
2717 [], $GL_LIBS -lX11 -lXext -lm)
2721 if test "$have_gle" = yes ; then
2723 if test "$have_gle3" = yes ; then
2724 AC_DEFINE(HAVE_GLE3)
2728 elif test "$with_gle" != no; then
2729 echo "error: must be yes or no: --with-gle=$with_gle"
2736 ###############################################################################
2740 ###############################################################################
2743 with_xpm_req=unspecified
2745 [ --with-xpm Include support for XPM files in some demos.
2746 (Not needed if Pixbuf is used.)],
2747 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2749 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2751 if test "$with_xpm" = yes; then
2752 AC_CHECK_X_HEADER(X11/xpm.h,
2756 [#include <X11/Xlib.h>])
2757 elif test "$with_xpm" != no; then
2758 echo "error: must be yes or no: --with-xpm=$with_xpm"
2762 # See comment near $motif_requires_xpm, above.
2763 # Need to do this here, after both Motif and XPM have been checked for.
2765 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2766 if test "$motif_requires_xpm" = yes ; then
2767 MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
2771 ###############################################################################
2773 # Check for -lgdk_pixbuf.
2775 ###############################################################################
2778 with_gdk_pixbuf_req=unspecified
2780 [ --with-pixbuf Include support for the GDK-Pixbuf library in some
2781 demos, which will make it possible for them to read
2782 GIF, JPEG, and PNG files as well. (The path here is
2783 ignored if GTK 2.x is being used.)],
2784 [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
2785 [with_gdk_pixbuf=yes])
2787 # if --with-pixbuf=/directory/ was specified, remember that directory so that
2788 # we can also look for the `gdk-pixbuf-config' program in that directory.
2789 case "$with_gdk_pixbuf" in
2791 gdk_pixbuf_dir="$with_gdk_pixbuf"
2798 HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF)
2800 if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then
2801 echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
2805 if test "$with_gdk_pixbuf" = yes; then
2809 if test -n "$pkg_config" ; then
2812 # run pkg-config based tests.
2817 # If we have Gtk 2.x, then *only* gdk-pixbuf 2.x will work.
2818 # If we have Gtk 1.x, then *only* gdk-pixbuf 1.x will work.
2819 # If we don't have Gtk at all, then either will work.
2821 if test "$have_gtk" = no -o "$have_gtk2" = yes; then
2823 # we don't have Gtk; or we have Gtk 2.x. Check for pixbuf 2.x.
2825 pkg_check_version gdk-pixbuf-2.0 2.0.0
2826 pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
2827 have_gdk_pixbuf="$ok"
2828 have_gdk_pixbuf2="$ok"
2831 if test "$have_gtk" = no -o "$have_gtk2" = no; then
2833 # we don't have Gtk; or we have Gtk 1.x.
2834 # If we don't have pixbuf 2.x, then check for pixbuf 1.x.
2836 if test "$have_gdk_pixbuf2" = no; then
2839 pkg_check_version gdk-pixbuf 0.0
2840 pkg_check_version gdk-pixbuf-xlib 0.0
2841 have_gdk_pixbuf="$ok"
2845 if test "$have_gdk_pixbuf" = yes; then
2846 AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
2847 [ac_cv_gdk_pixbuf_config_cflags=`$pkg_config --cflags $pkgs`])
2848 AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
2849 [ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs`])
2851 ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
2852 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
2856 if test "$have_gdk_pixbuf" = no; then
2859 # run gdk-pixbuf-config based tests.
2860 # note that we can't assume that the existence of "pkg-config" means
2861 # that we don't have to look for gdk-pixbuf-config -- in Gnome 1.4,
2862 # pkg-config exists, but doesn't know about pixbuf.
2865 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2866 # look in /foo/bin/ for for gdk-pixbuf-config.
2868 gdk_pixbuf_path="$PATH"
2870 if test ! -z "$gtk_dir"; then
2871 # canonicalize slashes.
2872 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2873 gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
2876 if test ! -z "$gnome_dir"; then
2877 # canonicalize slashes.
2878 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2879 gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
2882 AC_PATH_PROGS(gdk_pixbuf_config, gdk-pixbuf-config,, $gdk_pixbuf_path)
2884 # If we found the gdk-pixbuf-config program, run it to get flags.
2886 if test -n "$gdk_pixbuf_config" ; then
2887 AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
2888 [ac_cv_gdk_pixbuf_config_cflags=`$gdk_pixbuf_config --cflags`])
2889 AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
2890 [ac_cv_gdk_pixbuf_config_libs=`$gdk_pixbuf_config --libs`])
2892 # note that "gdk-pixbuf-config --libs" produces a link line including
2893 # -lgdk_pixbuf, but there's no way to get it to produce one that also
2894 # includes -lgdk_pixbuf_xlib. Since we don't know *exactly* what the
2895 # name of the library will be, construct it with sed...
2898 ac_cv_gdk_pixbuf_config_libs=`echo $ac_cv_gdk_pixbuf_config_libs | \
2899 sed 's@ \(-lgdk_pixbuf\([-_a-zA-Z0-9.]*\)\) @ \1 -lgdk_pixbuf_xlib\2 @'`
2902 ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
2903 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
2907 ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
2908 CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
2910 if test "$have_gdk_pixbuf" = no; then
2912 # we appear to have pixbuf; check for headers/libs to be sure.
2917 # check for header A...
2918 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
2920 # if that worked, check for header B...
2921 if test "$have_gdk_pixbuf" = yes; then
2923 gdk_pixbuf_halfassed=yes
2924 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h,
2925 [have_gdk_pixbuf=yes
2926 gdk_pixbuf_halfassed=no])
2928 # yay, it has a new name in Gtk 2.x...
2929 if test "$have_gdk_pixbuf" = no; then
2931 gdk_pixbuf_halfassed=yes
2932 AC_CHECK_X_HEADER(gdk-pixbuf-xlib/gdk-pixbuf-xlib.h,
2933 [have_gdk_pixbuf=yes
2934 gdk_pixbuf_halfassed=no])
2939 CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
2941 if test "$have_gdk_pixbuf" = yes; then
2942 # we have the headers, now check for the libraries
2944 gdk_pixbuf_halfassed=yes
2947 AC_CHECK_X_LIB(c, gdk_pixbuf_new_from_file, [have_gdk_pixbuf=yes],,
2948 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
2950 if test "$have_gdk_pixbuf" = yes; then
2952 AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init,
2953 [have_gdk_pixbuf=yes
2954 gdk_pixbuf_halfassed=no],,
2955 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
2959 if test "$have_gdk_pixbuf" = yes; then
2960 INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
2961 XPM_LIBS="$ac_gdk_pixbuf_config_libs"
2962 AC_DEFINE(HAVE_GDK_PIXBUF)
2969 ###############################################################################
2973 ###############################################################################
2976 with_jpeg_req=unspecified
2979 [ --with-jpeg Include support for the JPEG library in some demos.
2980 (If this library is available, webcollage will be a
2982 [with_jpeg="$withval"; with_jpeg_req="$withval"],
2985 HANDLE_X_PATH_ARG(with_jpeg, --with-jpeg, JPEG)
2987 if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then
2988 echo "error: must be yes or no: --with-jpeg=$with_jpeg"
2992 if test "$with_jpeg" = yes; then
2995 AC_CHECK_X_HEADER(jpeglib.h, [have_jpeg=yes])
2997 if test "$have_jpeg" = yes; then
2998 # we have the header, now check for the library
3001 AC_CHECK_X_LIB(jpeg, jpeg_start_compress,
3005 AC_DEFINE(HAVE_JPEGLIB)])
3010 ###############################################################################
3012 # Check for the XSHM server extension.
3014 ###############################################################################
3017 with_xshm_req=unspecified
3018 AC_ARG_WITH(xshm-ext,
3019 [ --with-xshm-ext Include support for the Shared Memory extension.],
3020 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
3022 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
3024 if test "$with_xshm" = yes; then
3026 # first check for Xshm.h.
3027 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],,
3028 [#include <X11/Xlib.h>])
3030 # if that succeeded, then check for sys/ipc.h.
3031 if test "$have_xshm" = yes; then
3033 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
3036 # if that succeeded, then check for sys/shm.h.
3037 if test "$have_xshm" = yes; then
3039 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
3042 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
3043 # to exist, but the library code to not exist. And even better, the library
3044 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
3045 # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and
3046 # that's not quite right, but close enough.)
3050 if [ `uname -v` -eq 3 ]; then
3052 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
3053 [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
3054 [true], -lX11 -lXext -lm)
3059 # if that succeeded, then we've really got it.
3060 if test "$have_xshm" = yes; then
3061 AC_DEFINE(HAVE_XSHM_EXTENSION)
3064 elif test "$with_xshm" != no; then
3065 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
3070 ###############################################################################
3072 # Check for the DOUBLE-BUFFER server extension.
3074 ###############################################################################
3077 with_xdbe_req=unspecified
3078 AC_ARG_WITH(xdbe-ext,
3079 [ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.],
3080 [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
3082 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
3084 if test "$with_xdbe" = yes; then
3086 AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],,
3087 [#include <X11/Xlib.h>])
3088 if test "$have_xdbe" = yes; then
3089 AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
3092 elif test "$with_xdbe" != no; then
3093 echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
3098 ###############################################################################
3100 # Check for the SGI XReadDisplay server extension.
3102 # Note: this has to be down here, rather than up with the other server
3103 # extension tests, so that the output of `configure --help' is in the
3104 # right order. Arrgh!
3106 ###############################################################################
3109 with_readdisplay_req=unspecified
3110 AC_ARG_WITH(readdisplay,
3111 [ --with-readdisplay Include support for the XReadDisplay extension.],
3112 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
3113 [with_readdisplay=yes])
3115 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
3117 if test "$with_readdisplay" = yes; then
3118 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
3119 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),,
3120 [#include <X11/Xlib.h>])
3121 elif test "$with_readdisplay" != no; then
3122 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
3127 ###############################################################################
3129 # Check for a program to generate random text.
3131 # Zippy is funnier than the idiocy generally spat out by `fortune',
3132 # so first see if "fortune zippy" works. Else, use plain "fortune".
3134 # We used to dig around in Emacs to look for the "yow" program, but
3135 # most people who have Emacs also have "fortune zippy", so nevermind.
3137 ###############################################################################
3140 AC_ARG_WITH(fortune,[
3141 --with-fortune=PROGRAM Some demos are able to run an external program and
3142 display its text; this names the program to use by
3143 default (though it can be overridden with X
3144 resources.) Default is \"/usr/games/fortune\".],
3145 [with_fortune_req="$withval"; with_fortune="$withval"],[with_fortune=yes])
3147 if test "$with_fortune" = no || test "$with_fortune" = yes ; then
3152 if test -n "$with_fortune_req" ; then
3153 ac_cv_fortune_program=""
3154 case "$with_fortune_req" in
3157 set dummy $with_fortune_req ; fortune_tmp=$2
3158 AC_MSG_CHECKING([for $fortune_tmp])
3159 if test -x "$fortune_tmp" ; then
3167 set dummy $with_fortune_req ; fortune_tmp=$2
3169 unset ac_cv_path_fortune_tmp
3170 AC_PATH_PROG(fortune_tmp, $fortune_tmp, [])
3171 if test -z "$fortune_tmp" ; then
3176 ac_cv_fortune_program="$with_fortune"
3178 elif test -n "$ac_cv_fortune_program"; then
3179 AC_MSG_RESULT([checking for fortune... (cached) $ac_cv_fortune_program])
3182 unset ac_cv_path_fortune_tmp
3185 if test -z "$ac_cv_fortune_program" ; then
3187 # first look for fortune in /usr/games/ (and use absolute path)
3188 AC_PATH_PROGS(fortune_tmp, fortune,, "/usr/games")
3190 # if it's not there, look on $PATH (and don't use absolute path)
3191 if test -z "$fortune_tmp" ; then
3192 AC_CHECK_PROGS(fortune_tmp, fortune)
3195 # if we didn't find anything, then just assume /usr/games/
3196 if test -z "$fortune_tmp" ; then
3197 fortune_tmp="/usr/games/fortune"
3200 ac_cv_fortune_program="$fortune_tmp"
3202 # now check to see whether "fortune zippy" works.
3204 fortune_tmp="$fortune_tmp zippy"
3205 AC_MSG_CHECKING([for zippy quotes])
3206 if ( $fortune_tmp >/dev/null 2>&1 ); then
3207 ac_cv_fortune_program="$fortune_tmp"
3208 AC_MSG_RESULT($fortune_tmp)
3215 unset ac_cv_path_fortune_tmp
3218 AC_DEFINE_UNQUOTED(FORTUNE_PROGRAM, "$ac_cv_fortune_program")
3221 ###############################################################################
3223 # Check whether it's ok to install some hacks as setuid (e.g., "sonar")
3224 # This should be safe, but let's give people the option.
3226 ###############################################################################
3228 setuid_hacks_default=no
3229 setuid_hacks="$setuid_hacks_default"
3230 AC_ARG_WITH(setuid-hacks,
3231 [ --with-setuid-hacks Allow some demos to be installed \`setuid root'
3232 (which is needed in order to ping other hosts.)
3234 [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
3236 HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks)
3238 if test "$setuid_hacks" = yes; then
3240 elif test "$setuid_hacks" != no; then
3241 echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks"
3246 ###############################################################################
3248 # Done testing. Now, set up the various -I and -L variables,
3249 # and decide which GUI program to build by default.
3251 ###############################################################################
3258 if test \! -z "$includedir" ; then
3259 INCLUDES="$INCLUDES -I$includedir"
3262 if test \! -z "$libdir" ; then
3263 LDFLAGS="$LDFLAGS -L$libdir"
3267 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
3269 if test "$have_motif" = yes; then
3270 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
3271 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3273 if test "$have_gtk" = yes; then
3274 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
3275 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3279 if test "$have_kerberos" = yes; then
3280 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
3281 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
3283 if test "$have_pam" = yes; then
3284 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
3285 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
3286 INSTALL_PAM="install-pam"
3288 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
3289 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
3292 if test "$enable_locking" = yes; then
3293 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
3294 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
3296 LOCK_SRCS='$(NOLOCK_SRCS_1)'
3297 LOCK_OBJS='$(NOLOCK_OBJS_1)'
3300 INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)'
3302 if test "$need_setuid" = yes; then
3308 if test "$setuid_hacks" = yes; then
3315 if test "$have_gl" = yes; then
3316 GL_EXES='$(GL_EXES)'
3317 GL_UTIL_EXES='$(GL_UTIL_EXES)'
3321 GL_KLUDGE="-${tab} "
3324 if test "$have_gle" = yes; then
3325 GLE_EXES='$(GLE_EXES)'
3326 GLE_KLUDGE="${tab} "
3328 GLE_KLUDGE="-${tab} "
3331 if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then
3332 JPEG_EXES='$(JPEG_EXES)'
3336 # Another substitution in the XScreenSaver.ad.in file:
3338 if test "$have_gnome_help" = yes; then
3347 # Now that we know whether we have Gnome, we can decide where the XML
3348 # config files get installed.
3350 if test -z "$HACK_CONF_DIR" ; then
3351 if test -n "$GNOME_DATADIR" ; then
3352 HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers'
3354 HACK_CONF_DIR='${prefix}/lib/xscreensaver/config'
3360 # After computing $HACK_CONF_DIR, make sure $GLADE_DATADIR has a value
3361 # so that we know where to install the Gtk pixmaps.
3363 # It should usually be "/usr/share/pixmaps/", but we can't just use
3364 # "$(prefix)/share/pixmaps" because that would usually result in
3365 # "/usr/X11R6/share/pixmaps/", which is wrong. It needs to be the
3366 # Gnome/Gtk prefix, not the overall prefix.
3368 if test -n "$GNOME_DATADIR" ; then
3369 GLADE_DATADIR='$(GNOME_DATADIR)/xscreensaver'
3370 elif test "$have_gtk" = yes; then
3371 if test -n "$pkg_config"; then
3372 if test "$have_gtk2" = yes; then
3373 GLADE_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3375 GLADE_DATADIR=`$pkg_config --variable=prefix gtk+`
3378 GLADE_DATADIR=`$gtk_config --prefix`
3380 GLADE_DATADIR="$GLADE_DATADIR/share/xscreensaver"
3386 # Set PO_DATADIR to something sensible.
3388 AC_MSG_CHECKING([for locale directory])
3389 if test -n "$GNOME_DATADIR" ; then
3390 PO_DATADIR="$GNOME_DATADIR"
3391 elif test "$have_gtk" = yes; then
3392 if test -n "$pkg_config"; then
3393 if test "$have_gtk2" = yes; then
3394 PO_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3396 PO_DATADIR=`$pkg_config --variable=prefix gtk+`
3399 PO_DATADIR=`$gtk_config --prefix`
3401 PO_DATADIR="$PO_DATADIR/share"
3404 if test -z "$PO_DATADIR" ; then
3406 # #### Total fucking kludge --
3407 # Map /build/prefix/usr/X11R6/share/ to /build/prefix/usr/share/
3408 # but of course we need to expand all the nested variables to do that...
3416 PO_DATADIR=`echo $dd | sed 's@/X11R6/@/@'`
3419 AC_MSG_RESULT($PO_DATADIR/locale)
3422 # canonicalize slashes.
3423 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
3425 # gcc 3.0 likes to issue this warning for every file:
3427 # cc1: warning: changing search order for system directory "/usr/local/include"
3428 # cc1: warning: as it has already been specified as a non-system directory
3430 # Yay. We can only avoid that by deleting "-I${prefix}/include" from the list.
3431 # Which *should* be totally redundant, and thus an ok thing to delete?
3433 INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'`
3436 ###############################################################################
3438 # Perform substitutions and write Makefiles.
3440 ###############################################################################
3444 AC_SUBST(PREFERRED_DEMO_PROGRAM)
3445 AC_SUBST(ALL_DEMO_PROGRAMS)
3446 AC_SUBST(SAVER_LIBS)
3447 AC_SUBST(MOTIF_LIBS)
3455 AC_SUBST(XDPMS_LIBS)
3456 AC_SUBST(PASSWD_LIBS)
3457 AC_SUBST(INSTALL_SETUID)
3458 AC_SUBST(SETUID_HACKS)
3459 AC_SUBST(INSTALL_DIRS)
3460 AC_SUBST(NEED_SETUID)
3461 AC_SUBST(INSTALL_PAM)
3463 AC_SUBST(PASSWD_SRCS)
3464 AC_SUBST(PASSWD_OBJS)
3468 AC_SUBST(SAVER_GL_SRCS)
3469 AC_SUBST(SAVER_GL_OBJS)
3470 AC_SUBST(SAVER_GL_LIBS)
3475 AC_SUBST(GL_UTIL_EXES)
3479 AC_SUBST(GLE_KLUDGE)
3480 AC_SUBST(GNOMEHELP_Y)
3481 AC_SUBST(GNOMEHELP_N)
3483 AC_SUBST(GNOME_DATADIR)
3484 AC_SUBST(GLADE_DATADIR)
3485 AC_SUBST(PO_DATADIR)
3486 AC_SUBST(GNOME_PANELDIR)
3487 AC_SUBST(HACK_CONF_DIR)
3488 AC_SUBST(GTK_EXTRA_OBJS)
3490 APPDEFAULTS=$ac_x_app_defaults
3491 AC_SUBST(APPDEFAULTS)
3494 AC_SUBST(DEPEND_FLAGS)
3495 AC_SUBST(DEPEND_DEFINES)
3504 driver/XScreenSaver.ad
3505 driver/xscreensaver.kss)
3507 ###############################################################################
3509 # Print some warnings at the end.
3511 ###############################################################################
3513 warn_prefix_1=" Warning:"
3514 warn_prefix_2=" Note:"
3515 warn_prefix="$warn_prefix_1"
3518 warnsep=' #################################################################'
3521 if test "$warning" = no ; then
3522 echo '' ; echo "$warnsep" ; echo ''
3529 if test "$warning" = long ; then echo '' ; fi
3532 echo "$warn_prefix $rest"
3539 if test "$was" != no ; then echo '' ; fi
3541 echo "$warn_prefix $rest"
3551 warn_prefix="$warn_prefix_2"
3553 warn_prefix="$warn_prefix_1"
3557 warn_prefix="$warn_prefix_2"
3559 warn_prefix="$warn_prefix_1"
3563 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
3564 warn 'The SGI saver extension was requested, but was not found.'
3567 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
3568 warn 'The MIT saver extension was requested, but was not found.'
3571 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
3572 warn 'The XIdle extension was requested, but was not found.'
3575 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
3576 warn 'The XSHM extension was requested, but was not found.'
3579 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
3580 warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
3583 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
3584 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
3587 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
3588 warn 'The DPMS extension was requested, but was not found.'
3591 if test "$with_xinerama_req" = yes -a "$have_xinerama" = no ; then
3592 warn 'The Xinerama extension was requested, but was not found.'
3595 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
3596 warn 'The XF86VMODE extension was requested, but was not found.'
3599 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
3600 warn "Checking of /proc/interrupts was requested, but it's bogus."
3604 if test "$have_motif" = no -a "$have_gtk" = no; then
3605 warnL "Neither Motif nor Gtk seem to be available;"
3606 warn2 "the \`xscreensaver-demo' program requires one of these."
3608 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
3609 warnL "Use of Motif was requested, but it wasn't found;"
3610 warn2 "Gtk will be used instead."
3612 elif test "$jurassic_gtk" = yes ; then
3616 v="$ac_gtk_version_string"
3617 if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
3618 warnL "Use of Gtk was requested, but its version number is unknown;"
3619 elif test "$with_gtk_req" = yes ; then
3620 warnL "Use of Gtk was requested, but it is version $v;"
3622 warnL "Gtk was found on this system, but it is version $v;"
3625 warn2 "Gtk $pref_gtk or newer is required. Motif will be used instead."
3627 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
3628 warnL "Use of Gtk was requested, but it wasn't found."
3629 if test "$have_motif" = yes; then
3630 warn2 "Motif will be used instead."
3634 if test "$gtk2_halfassed" != no ; then
3635 warnL "GTK version $gtk2_halfassed was found, but at least one supporting"
3636 warn2 "library ($gtk2_halfassed_lib) was not, so GTK 2.x can't be used."
3637 v="$ac_gtk_version_string"
3638 warn2 "GTK $v is also installed, so it will be used instead."
3639 warn2 "Please read the above output and the \`config.log' file"
3640 warn2 "for more details."
3644 if test "$with_gnome_req" = yes -a "$have_gnome" = no ; then
3645 warn 'Use of the Gnome Control Panel was requested, but the necessary'
3646 warn2 'headers and/or libraries were not found.'
3649 if test "$have_gtk" = yes ; then
3650 if test "$have_xml" = no ; then
3651 if test "$with_xml_req" = yes ; then
3652 warn 'Use of the XML library was requested, but the necessary'
3653 warn2 'headers and/or libraries were not found.'
3655 warn 'GTK is being used, but the XML library was not found.'
3658 if test "$xml_halfassed" = yes ; then
3660 if test "$have_zlib" = yes ; then
3661 which="XML libraries"
3663 which="\`zlib' library"
3667 warn2 'More specifically, we found the headers, but not the'
3668 warn2 "$which; so either XML is half-installed on this"
3669 warn2 "system, or something else went wrong. The \`config.log'"
3670 warn2 'file might contain some clues.'
3674 warn2 "Without XML, the per-display-mode \`Settings' dialogs"
3675 warn2 'will not be available. Specify the location of the XML'
3676 warn2 'library through the --with-xml option to configure.'
3680 if test "$have_gtk" = yes -a "$have_gdk_pixbuf" = no ; then
3681 warn "GTK is being used, but the GDK-Pixbuf library and/or"
3682 warn2 "headers were not found. That can't be good. Please"
3683 warn2 "install the GDK-Pixbuf development kit and re-configure."
3686 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
3688 preferred_lesstif=0.92
3690 if test "$lesstif_version" = unknown; then
3691 warnL "Unable to determine the LessTif version number!"
3692 warn2 "Make sure you are using version $preferred_lesstif or newer."
3693 warn2 "See <http://www.lesstif.org/>."
3695 elif test \! $lesstif_version -gt 82; then
3696 warnL "LessTif version $lesstif_version_string is being used."
3697 warn2 "LessTif versions 0.82 and earlier are too buggy to"
3698 warn2 "use with XScreenSaver; it is strongly recommended"
3699 warn2 "that you upgrade to at least version $preferred_lesstif!"
3700 warn2 "See <http://www.lesstif.org/>."
3705 if test "$have_motif" = yes -a "$have_gtk" = no ; then
3706 warn 'Motif is being used, and GTK is not.'
3708 warn2 'Though the Motif front-end to xscreensaver is still'
3709 warn2 'maintained, it is no longer being updated with new'
3710 warn2 'features: all new development on the xscreensaver-demo'
3711 warn2 'program is happening in the GTK version, and not in the'
3712 warn2 'Motif version. It is recommended that you build against'
3713 warn2 'GTK instead of Motif. See <http://www.gtk.org/>.'
3717 if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
3718 warnL 'Use of XPM was requested, but it was not found.'
3721 if test "$with_gdk_pixbuf_req" = yes -a "$have_gdk_pixbuf" = no; then
3722 warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
3725 if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no || \
3726 test "$gdk_pixbuf_halfassed" = yes; then
3728 if test "$with_xpm_req" = yes -o "$have_xpm" = yes ; then
3730 elif test "$with_xpm_req" = no ; then
3731 warnL 'The XPM library is not being used.'
3733 warnL 'The XPM library was not found.'
3736 if test "$with_gdk_pixbuf_req" = yes ; then
3738 elif test "$with_gdk_pixbuf_req" = no ; then
3739 warnL 'The GDK-Pixbuf library is not being used.'
3741 warnL 'The GDK-Pixbuf library was not found.'
3744 if test "$gdk_pixbuf_halfassed" = yes ; then
3746 warn2 'More specifically, we found the headers, but not the'
3747 warn2 'libraries; so either GDK-Pixbuf is half-installed on this'
3748 warn2 "system, or something else went wrong. The \`config.log'"
3749 warn2 'file might contain some clues.'
3753 warn2 'Some of the demos will not be as colorful as they'
3754 warn2 'could be. You should consider installing Pixbuf or'
3755 warn2 'XPM and re-running configure. The Pixbuf library is'
3756 warn2 'a part of GNOME. The XPM library comes with most'
3757 warn2 'X11 installations; you can also find it at the X11'
3758 warn2 'archive sites, such as <http://sunsite.unc.edu/>.'
3760 warn2 'GDK-Pixbuf is recommended over XPM, as it provides'
3761 warn2 'support for more image formats.'
3765 if test "$have_jpeg" = no ; then
3766 if test "$with_jpeg_req" = yes ; then
3767 warnL 'Use of libjpeg was requested, but it was not found.'
3768 elif test "$with_jpeg_req" = no ; then
3769 noteL 'The JPEG library is not being used.'
3771 noteL 'The JPEG library was not found.'
3774 if test "$jpeg_halfassed" = yes ; then
3776 warn2 'More specifically, we found the headers, but not the'
3777 warn2 'library; so either JPEG is half-installed on this'
3778 warn2 "system, or something else went wrong. The \`config.log'"
3779 warn2 'file might contain some clues.'
3783 warn2 "This means the \`webcollage' program will be much slower."
3787 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
3788 preferred_mesagl=3.4
3789 mgv="$ac_mesagl_version_string"
3790 pgl="$preferred_mesagl"
3792 if test "$ac_mesagl_version" = unknown; then
3793 warnL "Unable to determine the MesaGL version number!"
3794 warn2 "Make sure you are using version $preferred_mesagl or newer."
3796 elif test \! "$ac_mesagl_version" -gt 2006; then
3797 warnL "MesaGL version number is $mgv --"
3798 warn2 "MesaGL 2.6 and earlier have a security bug. It is strongly"
3799 warn2 "recommended that you upgrade to at least version $preferred_mesagl."
3801 elif test \! "$ac_mesagl_version" -gt 3003; then
3802 warnL "MesaGL version number is $mgv --"
3803 warn2 "MesaGL 3.3 and earlier have some bugs; it is recommended"
3804 warn2 "that you upgrade to $pgl or newer."
3808 if test "$have_gl" = no ; then
3809 if test "$with_gl_req" = yes ; then
3810 warnL 'Use of GL was requested, but it was not found.'
3811 elif test "$with_gl_req" = no ; then
3812 noteL 'The OpenGL 3D library is not being used.'
3814 noteL 'The OpenGL 3D library was not found.'
3817 if test "$gl_halfassed" = yes ; then
3819 warn2 'More specifically, we found the headers, but not the'
3820 warn2 'libraries; so either GL is half-installed on this'
3821 warn2 "system, or something else went wrong. The \`config.log'"
3822 warn2 'file might contain some clues.'
3826 warn2 'Those demos which use 3D will not be built or installed.'
3827 warn2 'You might want to consider installing OpenGL and'
3828 warn2 "re-running configure. If your vendor doesn't ship"
3829 warn2 'their own implementation of OpenGL, you can get a free'
3830 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
3831 warn2 'info, see <http://www.opengl.org/>.'
3836 if test "$have_gl" = yes -a "$have_gle" = no ; then
3837 if test "$with_gle_req" = yes ; then
3838 noteL 'Use of the GLE (GL Extrusion) library was requested, but'
3839 warn2 'it was not found (though the OpenGL library was found, and'
3840 warn2 'is being used.)'
3841 elif test "$with_gle_req" = no ; then
3842 noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
3843 warn2 'library is not.'
3845 noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
3849 if test "$gle_halfassed" = yes ; then
3851 warn2 'More specifically, we found the headers, but not the'
3852 warn2 'libraries; so either GLE is half-installed on this'
3853 warn2 "system, or something else went wrong. The \`config.log'"
3854 warn2 'file might contain some clues.'
3858 warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
3859 warn2 'will not be built or installed. You might want to consider'
3860 warn2 'installing GLE and re-running configure. You can find the'
3861 warn2 'GLE library at <http://www.linas.org/gle/>. For general'
3862 warn2 'OpenGL info, see <http://www.opengl.org/>.'
3867 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
3868 warn 'Use of XReadDisplay was requested, but it was not found.'
3871 if test -n "$with_fortune_req"; then
3872 if test "$with_fortune_req" != "$ac_cv_fortune_program" ; then
3873 warnL "$with_fortune_req was requested as the Fortune program,"
3874 warn2 "but was not found. The default will be used instead."
3878 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
3879 warn 'Use of Kerberos was requested, but it was not found.'
3882 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
3883 warn 'Use of PAM was requested, but it was not found.'
3886 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
3887 warn 'Use of shadow passwords was requested, but they were not found.'
3891 # You are in a twisty maze of namespaces and syntaxes, all alike.
3892 # Fuck the skull of Unix.
3894 eval bindir=${bindir}
3895 eval bindir=${bindir}
3896 eval bindir=${bindir}
3897 eval bindir=${bindir}
3898 eval bindir=${bindir}
3899 eval bindir=${bindir}
3900 eval HACKDIR=${HACKDIR}
3901 eval HACKDIR=${HACKDIR}
3902 eval HACKDIR=${HACKDIR}
3903 eval HACKDIR=${HACKDIR}
3904 eval HACKDIR=${HACKDIR}
3905 eval HACKDIR=${HACKDIR}
3906 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3907 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3908 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3909 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3910 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3911 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3913 # canonicalize slashes.
3914 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
3915 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
3916 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
3919 # Sanity check the hackdir
3920 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
3921 if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
3923 AC_MSG_ERROR([\"--with-hackdir=${bindir}/${bad_choice}\" won't work.
3924 There will be an executable installed with that name, so
3925 that can't be the name of a directory as well. Please
3926 re-configure with a different directory name.])
3933 # Now let's see if there's a previous RPM version already installed. Blargh!
3937 rpmv=`(rpm -qv xscreensaver) 2>/dev/null | \
3938 sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'`
3941 if test \! -z "$rpmv" ; then
3942 rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
3943 rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
3946 warnL "There is already an installed RPM of xscreensaver $rpmv"
3947 warn2 "on this system. You might want to remove it (with"
3948 warn2 '"rpm -ve xscreensaver") before running "make install"'
3949 warn2 "from this directory."
3951 warn2 "Alternately, you could build this version of xscreensaver"
3952 warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
3953 warn2 "file is included. See the RPM documentation for more info."
3956 if test "$rpmbdir" = "$rpmhdir" ; then
3957 warn2 "The RPM version was installed in $rpmbdir/."
3959 warn2 "The RPM version was installed in $rpmbdir/,"
3960 warn2 "with demos in $rpmhdir/."
3967 if test "${bindir}" = "${HACKDIR}" ; then
3971 if test "$do_dir_warning" = yes; then
3975 echo ' When you run "make install", the "xscreensaver",'
3976 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
3977 echo " will be installed in ${bindir}/."
3979 echo " The various graphics demos (150+ different executables) will"
3980 echo " be installed in ${HACKDIR}/."
3982 echo " If you would prefer the demos to be installed elsewhere,"
3983 echo " you should re-run configure with the --with-hackdir=DIR"
3984 echo " option. For more information, run \`./configure --help'."
3988 if test "$warning" != no; then
3989 echo '' ; echo "$warnsep" ; echo ''
3992 if test "$do_dir_warning" = no; then
3993 if test "$warning" = no; then
3996 echo "User programs will be installed in ${bindir}/"
3997 echo "Screen savers will be installed in ${HACKDIR}/"
3998 echo "Configuration will be installed in ${HACK_CONF_DIR}/"