1 # configure.in --- xscreensaver, Copyright (c) 1997-2000 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 -Wno-format"
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 de et fr it ko pl pt sv da es fi hu ja no pt pt_BR ru wa"
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.
1376 [enable_locking="$enableval"],[enable_locking=yes])
1377 if test "$enable_locking" = yes; then
1379 elif test "$enable_locking" = no; then
1380 AC_DEFINE(NO_LOCKING)
1382 echo "error: must be yes or no: --enable-locking=$enable_locking"
1388 ###############################################################################
1390 # The --enable-vt-locking option
1392 ###############################################################################
1394 #ac_vt_lockswitch=no
1395 #AC_ARG_ENABLE(vt-locking,[
1396 # --enable-vt-locking Compile in support for locking Virtual Terminals.
1397 # This is the default if the system supports it, and
1398 # if locking support is included (--enable-locking.)
1399 # --disable-vt-locking Do not allow locking of VTs, even if locking is
1401 # [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1402 #if test "$enable_vt_locking" = yes; then
1404 # AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1405 # [AC_TRY_COMPILE([#include <fcntl.h>
1406 # #include <sys/ioctl.h>
1407 # #include <sys/vt.h>],
1408 # [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1409 # [ac_cv_vt_lockswitch=yes],
1410 # [ac_cv_vt_lockswitch=no])])
1411 # ac_vt_lockswitch=$ac_cv_vt_lockswitch
1413 #elif test "$enable_vt_locking" = no; then
1416 # echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1420 #if test "$ac_vt_lockswitch" = yes; then
1421 # AC_DEFINE(HAVE_VT_LOCKSWITCH)
1422 # # the VT_LOCKSWITCH ioctl can only be used when running as root.
1423 # # #### but it doesn't work yet, so don't worry about that for now.
1429 ###############################################################################
1433 ###############################################################################
1437 # Solaris systems tend to come with PAM misconfigured.
1438 # Don't build it by default, even if the headers exist.
1442 # Default to building PAM support on all other systems, if it exists.
1443 with_pam_default=yes
1448 with_pam_req=unspecified
1451 [ --with-pam Include support for PAM (Pluggable Auth Modules.)],
1452 [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1454 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1456 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1457 AC_CACHE_CHECK([for PAM], ac_cv_pam,
1458 [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1461 if test "$ac_cv_pam" = yes ; then
1464 PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1466 # libpam typically requires dlopen and dlsym. On FreeBSD,
1467 # those are in libc. On Linux and Solaris, they're in libdl.
1468 AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1470 AC_MSG_CHECKING(how to call pam_strerror)
1471 AC_CACHE_VAL(ac_cv_pam_strerror_args,
1472 [AC_TRY_COMPILE([#include <stdio.h>
1474 #include <security/pam_appl.h>],
1475 [pam_handle_t *pamh = 0;
1476 char *s = pam_strerror(pamh, PAM_SUCCESS);],
1477 [ac_pam_strerror_args=2],
1478 [AC_TRY_COMPILE([#include <stdio.h>
1480 #include <security/pam_appl.h>],
1482 pam_strerror(PAM_SUCCESS);],
1483 [ac_pam_strerror_args=1],
1484 [ac_pam_strerror_args=0])])
1485 ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1486 ac_pam_strerror_args=$ac_cv_pam_strerror_args
1487 if test "$ac_pam_strerror_args" = 1 ; then
1488 AC_MSG_RESULT(one argument)
1489 elif test "$ac_pam_strerror_args" = 2 ; then
1490 AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1491 AC_MSG_RESULT(two arguments)
1493 AC_MSG_RESULT(unknown)
1499 ###############################################################################
1501 # Check for Kerberos.
1503 ###############################################################################
1507 with_kerberos_req=unspecified
1509 AC_ARG_WITH(kerberos,
1510 [ --with-kerberos Include support for Kerberos authentication.],
1511 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1513 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1515 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1516 AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
1517 [AC_TRY_X_COMPILE([#include <krb.h>],,
1518 [ac_cv_kerberos=yes],
1519 [ac_cv_kerberos=no])])
1520 AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
1521 [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
1522 [ac_cv_kerberos5=yes],
1523 [ac_cv_kerberos5=no])])
1525 if test "$ac_cv_kerberos" = yes ; then
1527 AC_DEFINE(HAVE_KERBEROS)
1530 if test "$ac_cv_kerberos5" = yes ; then
1533 AC_DEFINE(HAVE_KERBEROS)
1534 AC_DEFINE(HAVE_KERBEROS5)
1537 if test "$have_kerberos5" = yes ; then
1538 # from Matt Knopp <mhat@infocalypse.netlag.com>
1539 # (who got it from amu@mit.edu)
1540 PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcrypt -lcom_err"
1541 elif test "$have_kerberos" = yes ; then
1542 # from Tim Showalter <tjs@psaux.com> for FreeBSD 4.2
1543 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err"
1546 if test "$have_kerberos" = yes ; then
1547 AC_CHECK_FUNC(res_search,,
1548 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1549 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1555 ###############################################################################
1557 # Check for the nine billion variants of shadow passwords...
1559 ###############################################################################
1564 with_shadow_req=unspecified
1567 [ --with-shadow Include support for shadow password authentication.],
1568 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1570 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1572 if test "$enable_locking" = no ; then
1578 ###############################################################################
1580 # Check for Sun "adjunct" passwords.
1582 ###############################################################################
1584 if test "$with_shadow" = yes ; then
1585 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1586 [AC_TRY_X_COMPILE([#include <stdlib.h>
1588 #include <sys/types.h>
1589 #include <sys/label.h>
1590 #include <sys/audit.h>
1591 #include <pwdadj.h>],
1592 [struct passwd_adjunct *p = getpwanam("nobody");
1593 const char *pw = p->pwa_passwd;],
1594 [ac_cv_sun_adjunct=yes],
1595 [ac_cv_sun_adjunct=no])])
1596 if test "$ac_cv_sun_adjunct" = yes; then
1597 have_shadow_adjunct=yes
1604 ###############################################################################
1606 # Check for DEC and SCO so-called "enhanced" security.
1608 ###############################################################################
1610 if test "$with_shadow" = yes ; then
1611 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1612 [AC_TRY_X_COMPILE([#include <stdlib.h>
1614 #include <sys/types.h>
1616 #include <sys/security.h>
1618 [struct pr_passwd *p;
1620 set_auth_parameters(0, 0);
1621 check_auth_parameters();
1622 p = getprpwnam("nobody");
1623 pw = p->ufld.fd_encrypt;],
1624 [ac_cv_enhanced_passwd=yes],
1625 [ac_cv_enhanced_passwd=no])])
1626 if test $ac_cv_enhanced_passwd = yes; then
1627 have_shadow_enhanced=yes
1631 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1632 # (I'm told it needs -lcurses too, but I don't understand why.)
1633 # But on DEC, it's in -lsecurity.
1635 AC_CHECK_LIB(prot, getprpwnam,
1636 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1637 [AC_CHECK_LIB(security, getprpwnam,
1638 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1643 ###############################################################################
1645 # Check for HP's entry in the "Not Invented Here" Sweepstakes.
1647 ###############################################################################
1649 if test "$with_shadow" = yes ; then
1650 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1651 [AC_TRY_X_COMPILE([#include <stdlib.h>
1653 #include <sys/types.h>
1655 #include <hpsecurity.h>
1657 [struct s_passwd *p = getspwnam("nobody");
1658 const char *pw = p->pw_passwd;],
1659 [ac_cv_hpux_passwd=yes],
1660 [ac_cv_hpux_passwd=no])])
1661 if test "$ac_cv_hpux_passwd" = yes; then
1662 have_shadow_hpux=yes
1666 # on HPUX, bigcrypt is in -lsec
1667 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1672 ###############################################################################
1674 # Check for FreeBSD-style shadow passwords.
1676 # On FreeBSD, getpwnam() and friends work just like on non-shadow-
1677 # password systems -- except you only get stuff in the pw_passwd field
1678 # if the running program is setuid. So, guess that we've got this
1679 # lossage to contend with if /etc/master.passwd exists, and default to
1680 # a setuid installation.
1682 ###############################################################################
1684 if test "$with_shadow" = yes ; then
1685 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1686 [if test -f /etc/master.passwd ; then
1687 ac_cv_master_passwd=yes
1689 ac_cv_master_passwd=no
1691 if test "$ac_cv_master_passwd" = yes; then
1697 ###############################################################################
1699 # Check for traditional (ha!) shadow passwords.
1701 ###############################################################################
1703 if test "$with_shadow" = yes ; then
1704 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1705 [AC_TRY_X_COMPILE([#include <stdlib.h>
1707 #include <sys/types.h>
1709 #include <shadow.h>],
1710 [struct spwd *p = getspnam("nobody");
1711 const char *pw = p->sp_pwdp;],
1713 [ac_cv_shadow=no])])
1714 if test "$ac_cv_shadow" = yes; then
1718 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1720 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1721 if test "$have_getspnam" = no ; then
1722 AC_CHECK_LIB(gen, getspnam,
1723 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1729 ###############################################################################
1731 # Check for other libraries needed for non-shadow passwords.
1733 ###############################################################################
1735 if test "$enable_locking" = yes ; then
1737 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1739 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1740 if test "$have_crypt" = no ; then
1741 AC_CHECK_LIB(crypt, crypt,
1742 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1747 # Most of the above shadow mechanisms will have set need_setuid to yes,
1748 # if they were found. But, on some systems, we need setuid even when
1749 # using plain old vanilla passwords.
1751 if test "$enable_locking" = yes ; then
1753 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1760 if test "$have_shadow_adjunct" = yes ; then
1761 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1762 elif test "$have_shadow_enhanced" = yes ; then
1763 AC_DEFINE(HAVE_ENHANCED_PASSWD)
1764 elif test "$have_shadow_hpux" = yes ; then
1765 AC_DEFINE(HAVE_HPUX_PASSWD)
1766 elif test "$have_shadow" = yes ; then
1767 AC_DEFINE(HAVE_SHADOW_PASSWD)
1771 ###############################################################################
1775 ###############################################################################
1778 with_motif_req=unspecified
1780 User interface options:
1782 --with-motif Use the Motif toolkit for the user interface.],
1783 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=yes])
1785 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
1787 if test "$with_motif" != yes -a "$with_motif" != no ; then
1788 echo "error: must be yes or no: --with-motif=$with_motif"
1792 if test "$with_motif" = yes; then
1794 AC_CHECK_X_HEADER(Xm/Xm.h,
1796 AC_DEFINE(HAVE_MOTIF)
1797 MOTIF_LIBS="$MOTIF_LIBS -lXm"],,
1798 [#include <stdlib.h>
1800 #include <X11/Intrinsic.h>])
1804 if test "$have_motif" = yes; then
1805 AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],,
1806 [#include <stdlib.h>
1808 #include <X11/Intrinsic.h>])
1812 ###############################################################################
1814 # Check for -lgtk (and Gnome stuff)
1816 ###############################################################################
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 Control Center.],
1846 [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
1848 # if --with-gnome=/directory/ was specified, remember that directory so that
1849 # we can also look for the `gnome-config' program in that directory.
1850 case "$with_gnome" in
1852 gnome_dir="$with_gnome"
1859 HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome)
1861 if test "$with_gnome" != yes -a "$with_gnome" != no ; then
1862 echo "error: must be yes or no: --with-gnome=$with_gnome"
1868 if test "$with_gtk" = yes; then
1871 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
1872 # look in /foo/bin/ for glib-config, gtk-config, and gnome-config.
1876 if test ! -z "$gtk_dir"; then
1877 # canonicalize slashes.
1878 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
1879 gtk_path="$foo:$gtk_path"
1882 if test ! -z "$gnome_dir"; then
1883 # canonicalize slashes.
1884 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
1885 gtk_path="$foo:$gtk_path"
1888 AC_PATH_PROGS(glib_config, glib12-config glib-config,, $gtk_path)
1889 AC_PATH_PROGS(gtk_config, gtk12-config gtk-config,, $gtk_path)
1891 if test "$with_gnome" = yes; then
1892 AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
1895 if test -n "$glib_config" -a -n "$gtk_config" ; then
1897 if test "$with_gnome" = yes -a -n "$gnome_config" ; then
1902 if test "$have_gtk" = yes; then
1903 AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
1904 [ac_cv_gtk_version_string=`$gtk_config --version`])
1905 ac_gtk_version_string=$ac_cv_gtk_version_string
1908 maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
1909 min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
1911 ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
1912 if test -z "$ac_gtk_version"; then
1913 ac_gtk_version=unknown
1914 ac_gtk_version_string=unknown
1916 if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
1924 if test "$have_gtk" = yes; then
1925 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
1926 [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
1927 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
1928 [ac_cv_gtk_config_libs=`$gtk_config --libs`])
1930 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
1931 ac_gtk_config_libs=$ac_cv_gtk_config_libs
1933 # Check for Gnome Capplet support.
1935 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1936 gnome_config_libs="gtk capplet gnomeui gdk_pixbuf"
1937 AC_MSG_CHECKING(for Gnome capplet includes)
1938 AC_CACHE_VAL(ac_cv_gnome_config_cflags,
1939 [if ( $gnome_config --cflags $gnome_config_libs >/dev/null 2>&1 | \
1940 grep Unknown >/dev/null ) ; then
1941 ac_cv_gnome_config_cflags=''
1943 ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
1945 ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
1946 if test "$ac_gnome_config_cflags" = "" ; then
1950 AC_MSG_RESULT($ac_gnome_config_cflags)
1954 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1955 AC_MSG_CHECKING(for Gnome capplet libs)
1956 AC_CACHE_VAL(ac_cv_gnome_config_libs,
1957 [if ( $gnome_config --libs $gnome_config_libs >/dev/null 2>&1 |
1958 grep Unknown >/dev/null ) ; then
1959 ac_cv_gnome_config_libs=''
1961 ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
1963 ac_gnome_config_libs=$ac_cv_gnome_config_libs
1964 if test "$ac_gnome_config_libs" = "" ; then
1968 AC_MSG_RESULT($ac_gnome_config_libs)
1973 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1974 GNOME_DATADIR=`$gnome_config --datadir`
1978 # If we have Gnome, then override the gtk-config values with
1979 # the gnome-config values.
1981 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1982 ac_gtk_config_cflags=$ac_gnome_config_cflags
1983 ac_gtk_config_libs=$ac_gnome_config_libs
1984 AC_DEFINE(HAVE_CRAPPLET)
1986 # check for this function that was not in libcapplet 1.2.
1987 AC_CHECK_X_LIB(capplet, capplet_widget_changes_are_immediate,
1988 [AC_DEFINE(HAVE_CRAPPLET_IMMEDIATE)], [true],
1989 $ac_gnome_config_libs)
1993 if test "$have_gtk" = yes; then
1994 INCLUDES="$INCLUDES $ac_gtk_config_cflags"
1995 GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
2002 # Check for the Gnome Help Browser.
2004 if test "$have_gnome" = yes; then
2005 AC_CHECK_PROG(have_gnome_help, gnome-help-browser, yes, no)
2011 ###############################################################################
2015 ###############################################################################
2018 with_xml_req=unspecified
2021 [ --with-xml The XML toolkit is needed for some parts of
2022 the Gtk interface.],
2023 [with_xml="$withval"; with_xml_req="$withval"],[with_xml=yes])
2025 # if --with-xml=/directory/ was specified, remember that directory so that
2026 # we can also look for the `xml-config' program in that directory.
2036 HANDLE_X_PATH_ARG(with_xml, --with-xml, XML)
2038 if test "$with_xml" != yes -a "$with_xml" != no ; then
2039 echo "error: must be yes or no: --with-xml=$with_xml"
2043 if test "$with_xml" = yes; then
2047 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2048 # look in /foo/bin/ for for xml-config.
2052 if test ! -z "$gtk_dir"; then
2053 # canonicalize slashes.
2054 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2055 xml_path="$foo:$xml_path"
2058 if test ! -z "$gnome_dir"; then
2059 # canonicalize slashes.
2060 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2061 xml_path="$foo:$xml_path"
2064 AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path)
2066 # If we found the xml-config program, run it to get flags.
2068 if test -n "$xml_config" ; then
2069 AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2070 [ac_cv_xml_config_cflags=`$xml_config --cflags`])
2071 AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2072 [ac_cv_xml_config_libs=`$xml_config --libs`])
2073 ac_xml_config_cflags=$ac_cv_xml_config_cflags
2074 ac_xml_config_libs=$ac_cv_xml_config_libs
2077 ac_save_xml_CPPFLAGS="$CPPFLAGS"
2078 CPPFLAGS="$CPPFLAGS $ac_xml_config_cflags"
2080 # first try <libxml/parser.h> which is the new way...
2082 AC_CHECK_X_HEADER(libxml/xmlIO.h, [have_xml=yes],,
2083 [#include <libxml/parser.h>])
2085 # if that didn't work, then try just <parser.h> which is the old way...
2087 if test "$have_xml" = no; then
2088 AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes; have_old_xml=yes],,
2089 [#include <parser.h>])
2092 CPPFLAGS="$ac_save_xml_CPPFLAGS"
2095 if test "$have_xml" = yes; then
2096 # we have the XML headers; now make sure zlib is around.
2097 # yes, it's stupid we have to do this too, but there is
2098 # dependency screwage in Gnome.
2099 AC_CHECK_X_LIB(z, zlibVersion, [have_zlib=yes])
2100 if test "$have_zlib" = no; then
2106 if test "$have_xml" = yes; then
2107 # we have the header, now check for the library
2110 AC_CHECK_X_LIB(xml, xmlParseChunk,
2113 XML_LIBS="$ac_xml_config_libs"
2114 AC_DEFINE(HAVE_XML)],
2116 $ac_xml_config_libs)
2119 if test "$have_xml" = yes; then
2120 INCLUDES="$INCLUDES $ac_xml_config_cflags"
2121 GTK_LIBS="$GTK_LIBS $ac_xml_config_libs"
2123 if test "$have_old_xml" = yes; then
2124 AC_DEFINE(HAVE_OLD_XML_HEADERS)
2131 ###############################################################################
2133 # Checking whether Motif is really Lesstif.
2135 ###############################################################################
2138 if test "$have_motif" = yes ; then
2139 AC_CACHE_CHECK([whether Motif is really LessTif],
2141 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
2142 [long vers = LesstifVersion;],
2143 [ac_cv_have_lesstif=yes],
2144 [ac_cv_have_lesstif=no])])
2145 have_lesstif=$ac_cv_have_lesstif
2149 lesstif_version=unknown
2150 lesstif_version_string=unknown
2152 if test "$have_lesstif" = yes ; then
2154 echo unknown > conftest-lt
2155 AC_CACHE_CHECK([LessTif version number],
2156 ac_cv_lesstif_version_string,
2157 [AC_TRY_X_RUN([#include <stdio.h>
2160 FILE *f = fopen("conftest-lt", "w");
2162 fprintf(f, "%d %d.%d\n", LesstifVersion,
2163 LESSTIF_VERSION, LESSTIF_REVISION);
2167 [ltv=`cat conftest-lt`
2168 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
2169 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
2170 [ac_cv_lesstif_version=unknown
2171 ac_cv_lesstif_version_string=unknown],
2172 [ac_cv_lesstif_version=unknown
2173 ac_cv_lesstif_version_string=unknown])])
2175 lesstif_version=$ac_cv_lesstif_version
2176 lesstif_version_string=$ac_cv_lesstif_version_string
2181 if test "$have_motif" = yes ; then
2183 echo unknown > conftest-mt
2184 AC_CACHE_CHECK([Motif version number],
2185 ac_cv_motif_version_string,
2186 [AC_TRY_X_RUN([#include <stdio.h>
2189 FILE *f = fopen("conftest-mt", "w");
2191 fprintf(f, "%d %d.%d\n", XmVersion,
2192 XmVERSION, XmREVISION);
2196 [mtv=`cat conftest-mt`
2197 ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
2198 ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
2199 [ac_cv_motif_version=unknown
2200 ac_cv_motif_version_string=unknown],
2201 [ac_cv_motif_version=unknown
2202 ac_cv_motif_version_string=unknown])])
2204 motif_version=$ac_cv_motif_version
2205 motif_version_string=$ac_cv_motif_version_string
2210 ###############################################################################
2212 # Checking whether Motif requires -lXpm.
2214 # If this is Motif 2.x, and we have XPM, then link against XPM as well.
2215 # The deal is, Motif 2.x requires XPM -- but it's a compilation option
2216 # of the library whether to build the XPM code into libXm, or whether
2217 # to rely on an external libXm. So the only way to tell whether XPM is
2218 # a link-time requirement is to examine libXm.a, which is very
2219 # difficult to do in an autoconf script. So... if it's Motif 2.x, we
2220 # always link against XPM if the XPM lib exists (and this will be a
2221 # no-op if libXm happens to already have the XPM code in it.)
2223 ###############################################################################
2225 motif_requires_xpm=no
2226 if test "$have_motif" = yes ; then
2227 AC_MSG_CHECKING(whether Motif requires XPM)
2228 if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
2230 motif_requires_xpm=yes
2231 AC_MSG_RESULT(maybe)
2238 ###############################################################################
2240 # Checking whether Motif requires -lXp.
2242 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
2243 # Extension". Why this extension isn't in -lXext with all the others,
2246 ###############################################################################
2249 if test "$have_motif" = yes ; then
2251 AC_CHECK_X_LIB(Xp, XpQueryExtension,
2252 [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
2253 [true], -lX11 -lXext -lm)
2257 ###############################################################################
2259 # Checking whether Motif requires -lXintl (for _Xsetlocale.)
2261 ###############################################################################
2264 if test "$have_motif" = yes ; then
2265 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
2267 if test "$have_xintl" = yes; then
2268 MOTIF_LIBS="$MOTIF_LIBS -lXintl"
2273 ###############################################################################
2275 # Check for -lGL or -lMesaGL.
2277 ###############################################################################
2281 with_gl_req=unspecified
2286 --with-gl Build those demos which depend on OpenGL.],
2287 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
2289 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
2291 ac_mesagl_version=unknown
2292 ac_mesagl_version_string=unknown
2294 if test "$with_gl" = yes; then
2295 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
2296 if test "$have_gl" = yes ; then
2297 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no,
2298 [#include <GL/gl.h>])
2301 # If we have the headers, try and figure out which vendor it's from.
2303 if test "$have_gl" = yes ; then
2305 # We need to know whether it's MesaGL so that we know which libraries
2308 AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
2309 [ac_cv_have_mesa_gl=no
2310 AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
2312 ac_have_mesa_gl=$ac_cv_have_mesa_gl
2319 # Some versions of MesaGL are compiled to require -lpthread.
2320 # So if the Mesa headers exist, and -lpthread exists, then always
2321 # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
2323 if test "$ac_have_mesa_gl" = yes; then
2324 AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
2328 # If we have Mesa headers, check to see if we can link against -lMesaGL.
2329 # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
2330 # Else, warn that GL is busted. (We have the headers, but no libs.)
2333 if test "$ac_have_mesa_gl" = yes ; then
2334 AC_CHECK_X_LIB(MesaGL, glXCreateContext,
2336 GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
2337 [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
2340 if test "$gl_lib_1" = "" ; then
2341 AC_CHECK_X_LIB(GL, glXCreateContext,
2343 GL_LIBS="-lGL -lGLU $GL_LIBS"],
2344 [], -lGLU $GL_LIBS -lX11 -lXext -lm)
2347 if test "$gl_lib_1" = "" ; then
2348 # we have headers, but no libs -- bail.
2353 # linking works -- we can build the GL hacks.
2355 if test "$ac_have_mesa_gl" = yes ; then
2356 AC_DEFINE(HAVE_MESA_GL)
2362 # Now that we know we have GL headers and libs, do some more GL testing.
2365 if test "$have_gl" = yes ; then
2366 # If it's MesaGL, we'd like to issue a warning if the version number
2367 # is less than or equal to 2.6, because that version had a security bug.
2369 if test "$ac_have_mesa_gl" = yes; then
2371 AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
2372 [cat > conftest.$ac_ext <<EOF
2373 #line __oline__ "configure"
2374 #include "confdefs.h"
2376 #ifndef MESA_MAJOR_VERSION
2377 # include <GL/xmesa.h>
2378 # define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
2379 # define MESA_MINOR_VERSION XMESA_MINOR_VERSION
2381 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
2384 ac_save_CPPFLAGS="$CPPFLAGS"
2385 if test \! -z "$includedir" ; then
2386 CPPFLAGS="$CPPFLAGS -I$includedir"
2388 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2390 # With autoconf 2.13 we could do this:
2393 # mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \
2394 # 's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
2397 # but with autoconf 2.52+ (m4 1.4) that causes an error:
2398 # m4: ERROR: Recursion limit of 1024 exceeded, use -L<N> to change it
2400 # So, we need to use the autoconf line-noise macros @<:@ for [ and @:>@ for ]
2402 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \
2403 's/^configure:.*\(@<:@0-9@:>@@<:@0-9@:>@*\).*\(@<:@0-9@:>@@<:@0-9@:>@*\).*$/\1.\2/p'`
2406 rm -f conftest.$ac_ext
2408 CPPFLAGS="$ac_save_CPPFLAGS"
2410 if test "$mglv" = ""; then
2411 ac_mesagl_version=unknown
2412 ac_mesagl_version_string=unknown
2414 ac_mesagl_version_string=$mglv
2415 maj=`echo $mglv | sed -n 's/\..*//p'`
2416 min=`echo $mglv | sed -n 's/.*\.//p'`
2417 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
2418 if test -z "$ac_mesagl_version"; then
2419 ac_mesagl_version=unknown
2420 ac_mesagl_version_string=unknown
2423 ac_cv_mesagl_version=$ac_mesagl_version
2424 ac_cv_mesagl_version_string=$ac_mesagl_version_string
2426 ac_mesagl_version=$ac_cv_mesagl_version
2427 ac_mesagl_version_string=$ac_cv_mesagl_version_string
2431 # Check for OpenGL 1.1 features.
2433 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
2434 [true], $GL_LIBS -lX11 -lXext -lm)
2437 elif test "$with_gl" != no; then
2438 echo "error: must be yes or no: --with-gl=$with_gl"
2443 ###############################################################################
2447 ###############################################################################
2450 with_gle_req=unspecified
2453 [ --with-gle Build those demos which depend on GLE
2454 (the OpenGL "extrusion" library.)],
2455 [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
2457 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
2461 if test "$with_gle" = yes; then
2463 AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no,
2464 [#include <GL/gl.h>])
2465 if test "$have_gle3" = yes ; then
2468 AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no,
2469 [#include <GL/gl.h>])
2470 if test "$have_gle" = yes ; then
2471 AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no,
2472 [#include <GL/gl.h>])
2476 if test "$have_gle" = yes ; then
2479 AC_CHECK_X_LIB(gle, gleCreateGC,
2480 [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
2481 [], $GL_LIBS -lX11 -lXext -lm)
2483 if test "$have_gle" = yes ; then
2487 # sometimes the libmatrix stuff is included in libgle. look there first.
2489 # I don't get it. For some reason, this test passes on SGI, as if
2490 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
2491 # Yet the link is succeeding. Why???
2493 # AC_CHECK_X_LIB(gle, uview_direction_d,
2494 # [have_gle=yes; gle_halfassed=no],
2495 # [], $GL_LIBS -lX11 -lXext -lm)
2497 # As of GLE 3 this is in libgle, and has changed name to uview_direction!
2499 if test "$have_gle3" = yes ; then
2500 AC_CHECK_X_LIB(gle, uview_direction,
2501 [have_gle=yes; gle_halfassed=no],
2502 [], $GL_LIBS -lX11 -lXext -lm)
2504 # if it wasn't in libgle, then look in libmatrix.
2505 if test "$have_gle" = no ; then
2506 AC_CHECK_X_LIB(matrix, uview_direction_d,
2507 [have_gle=yes; gle_halfassed=no;
2508 GLE_LIBS="$GLE_LIBS -lmatrix"],
2509 [], $GL_LIBS -lX11 -lXext -lm)
2513 if test "$have_gle" = yes ; then
2515 if test "$have_gle3" = yes ; then
2516 AC_DEFINE(HAVE_GLE3)
2520 elif test "$with_gle" != no; then
2521 echo "error: must be yes or no: --with-gle=$with_gle"
2528 ###############################################################################
2532 ###############################################################################
2535 with_xpm_req=unspecified
2537 [ --with-xpm Include support for XPM files in some demos.],
2538 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2540 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2542 if test "$with_xpm" = yes; then
2543 AC_CHECK_X_HEADER(X11/xpm.h,
2547 [#include <X11/Xlib.h>])
2548 elif test "$with_xpm" != no; then
2549 echo "error: must be yes or no: --with-xpm=$with_xpm"
2553 # See comment near $motif_requires_xpm, above.
2554 # Need to do this here, after both Motif and XPM have been checked for.
2556 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2557 if test "$motif_requires_xpm" = yes ; then
2558 MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
2563 ###############################################################################
2565 # Check for -lgdk_pixbuf.
2567 ###############################################################################
2570 with_gdk_pixbuf_req=unspecified
2572 [ --with-pixbuf Include support for the GDK-Pixbuf library in some
2573 demos, which will make it possible for them to read
2574 GIF, JPEG, and PNG files as well.],
2575 [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
2576 [with_gdk_pixbuf=yes])
2578 # if --with-pixbuf=/directory/ was specified, remember that directory so that
2579 # we can also look for the `gdk-pixbuf-config' program in that directory.
2580 case "$with_gdk_pixbuf" in
2582 gdk_pixbuf_dir="$with_gdk_pixbuf"
2589 HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF)
2591 if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then
2592 echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
2596 if test "$with_gdk_pixbuf" = yes; then
2599 # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2600 # look in /foo/bin/ for for gdk-pixbuf-config.
2602 gdk_pixbuf_path="$PATH"
2604 if test ! -z "$gtk_dir"; then
2605 # canonicalize slashes.
2606 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2607 gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
2610 if test ! -z "$gnome_dir"; then
2611 # canonicalize slashes.
2612 foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2613 gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
2616 AC_PATH_PROGS(gdk_pixbuf_config, gdk-pixbuf-config,, $gdk_pixbuf_path)
2618 # If we found the gdk-pixbuf-config program, run it to get flags.
2620 if test -n "$gdk_pixbuf_config" ; then
2621 AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
2622 [ac_cv_gdk_pixbuf_config_cflags=`$gdk_pixbuf_config --cflags`])
2623 AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
2624 [ac_cv_gdk_pixbuf_config_libs=`$gdk_pixbuf_config --libs`])
2625 ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
2626 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
2629 ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
2630 CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
2632 # check for header 1...
2633 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
2635 # if that worked, check for header 2...
2636 if test "$have_gdk_pixbuf" = yes; then
2638 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h, [have_gdk_pixbuf=yes])
2641 CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
2643 if test "$have_gdk_pixbuf" = yes; then
2644 # we have the headers, now check for the libraries
2646 gdk_pixbuf_halfassed=yes
2648 AC_CHECK_X_LIB(gdk_pixbuf, gdk_pixbuf_new_from_file,
2649 [have_gdk_pixbuf=yes], [true],
2650 $ac_gdk_pixbuf_config_libs)
2652 if test "$have_gdk_pixbuf" = yes; then
2653 AC_CHECK_X_LIB(gdk_pixbuf_xlib, gdk_pixbuf_xlib_init,
2654 [have_gdk_pixbuf=yes
2655 gdk_pixbuf_halfassed=no],
2657 $ac_gdk_pixbuf_config_libs)
2661 if test "$have_gdk_pixbuf" = yes; then
2662 INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
2663 XPM_LIBS="$ac_gdk_pixbuf_config_libs -lgdk_pixbuf -lgdk_pixbuf_xlib"
2664 AC_DEFINE(HAVE_GDK_PIXBUF)
2669 ###############################################################################
2673 ###############################################################################
2676 with_jpeg_req=unspecified
2679 [ --with-jpeg Include support for the JPEG library in some demos,
2680 which will make it possible for them to read JPEG
2682 [with_jpeg="$withval"; with_jpeg_req="$withval"],
2685 HANDLE_X_PATH_ARG(with_jpeg, --with-jpeg, JPEG)
2687 if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then
2688 echo "error: must be yes or no: --with-jpeg=$with_jpeg"
2692 if test "$with_jpeg" = yes; then
2695 AC_CHECK_X_HEADER(jpeglib.h, [have_jpeg=yes])
2697 if test "$have_jpeg" = yes; then
2698 # we have the header, now check for the library
2701 AC_CHECK_X_LIB(jpeg, jpeg_start_compress,
2705 AC_DEFINE(HAVE_JPEGLIB)])
2710 ###############################################################################
2712 # Check for the XSHM server extension.
2714 ###############################################################################
2717 with_xshm_req=unspecified
2718 AC_ARG_WITH(xshm-ext,
2719 [ --with-xshm-ext Include support for the Shared Memory extension.],
2720 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
2722 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
2724 if test "$with_xshm" = yes; then
2726 # first check for Xshm.h.
2727 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],,
2728 [#include <X11/Xlib.h>])
2730 # if that succeeded, then check for sys/ipc.h.
2731 if test "$have_xshm" = yes; then
2733 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
2736 # if that succeeded, then check for sys/shm.h.
2737 if test "$have_xshm" = yes; then
2739 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
2742 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
2743 # to exist, but the library code to not exist. And even better, the library
2744 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
2745 # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and
2746 # that's not quite right, but close enough.)
2750 if [ `uname -v` -eq 3 ]; then
2752 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
2753 [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
2754 [true], -lX11 -lXext -lm)
2759 # if that succeeded, then we've really got it.
2760 if test "$have_xshm" = yes; then
2761 AC_DEFINE(HAVE_XSHM_EXTENSION)
2764 elif test "$with_xshm" != no; then
2765 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
2770 ###############################################################################
2772 # Check for the DOUBLE-BUFFER server extension.
2774 ###############################################################################
2777 with_xdbe_req=unspecified
2778 AC_ARG_WITH(xdbe-ext,
2779 [ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.],
2780 [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
2782 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
2784 if test "$with_xdbe" = yes; then
2786 AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],,
2787 [#include <X11/Xlib.h>])
2788 if test "$have_xdbe" = yes; then
2789 AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
2792 elif test "$with_xdbe" != no; then
2793 echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
2798 ###############################################################################
2800 # Check for the SGI XReadDisplay server extension.
2802 # Note: this has to be down here, rather than up with the other server
2803 # extension tests, so that the output of `configure --help' is in the
2804 # right order. Arrgh!
2806 ###############################################################################
2809 with_readdisplay_req=unspecified
2810 AC_ARG_WITH(readdisplay,
2811 [ --with-readdisplay Include support for the XReadDisplay extension.],
2812 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
2813 [with_readdisplay=yes])
2815 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
2817 if test "$with_readdisplay" = yes; then
2818 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
2819 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),,
2820 [#include <X11/Xlib.h>])
2821 elif test "$with_readdisplay" != no; then
2822 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
2827 ###############################################################################
2829 # Check for a program to generate random text.
2831 # Zippy is funnier than the idiocy generally spat out by `fortune',
2832 # so first see if "fortune zippy" works. Else, use plain "fortune".
2834 # We used to dig around in Emacs to look for the "yow" program, but
2835 # most people who have Emacs also have "fortune zippy", so nevermind.
2837 ###############################################################################
2840 AC_ARG_WITH(fortune,[
2841 --with-fortune=PROGRAM Some demos are able to run an external program and
2842 display its text; this names the program to use by
2843 default (though it can be overridden with X
2844 resources.) Default is \"/usr/games/fortune\".],
2845 [with_fortune_req="$withval"; with_fortune="$withval"],[with_fortune=yes])
2847 if test "$with_fortune" = no || test "$with_fortune" = yes ; then
2852 if test -n "$with_fortune_req" ; then
2853 ac_cv_fortune_program=""
2854 case "$with_fortune_req" in
2857 set dummy $with_fortune_req ; fortune_tmp=$2
2858 AC_MSG_CHECKING([for $fortune_tmp])
2859 if test -x "$fortune_tmp" ; then
2867 set dummy $with_fortune_req ; fortune_tmp=$2
2869 unset ac_cv_path_fortune_tmp
2870 AC_PATH_PROG(fortune_tmp, $fortune_tmp, [])
2871 if test -z "$fortune_tmp" ; then
2876 ac_cv_fortune_program="$with_fortune"
2878 elif test -n "$ac_cv_fortune_program"; then
2879 AC_MSG_RESULT([checking for fortune... (cached) $ac_cv_fortune_program])
2882 unset ac_cv_path_fortune_tmp
2885 if test -z "$ac_cv_fortune_program" ; then
2887 # first look for fortune in /usr/games/ (and use absolute path)
2888 AC_PATH_PROGS(fortune_tmp, fortune,, "/usr/games")
2890 # if it's not there, look on $PATH (and don't use absolute path)
2891 if test -z "$fortune_tmp" ; then
2892 AC_CHECK_PROGS(fortune_tmp, fortune)
2895 # if we didn't find anything, then just assume /usr/games/
2896 if test -z "$fortune_tmp" ; then
2897 fortune_tmp="/usr/games/fortune"
2900 ac_cv_fortune_program="$fortune_tmp"
2902 # now check to see whether "fortune zippy" works.
2904 fortune_tmp="$fortune_tmp zippy"
2905 AC_MSG_CHECKING([for zippy quotes])
2906 if ( $fortune_tmp >/dev/null 2>&1 ); then
2907 ac_cv_fortune_program="$fortune_tmp"
2908 AC_MSG_RESULT($fortune_tmp)
2915 unset ac_cv_path_fortune_tmp
2918 AC_DEFINE_UNQUOTED(FORTUNE_PROGRAM, "$ac_cv_fortune_program")
2921 ###############################################################################
2923 # Check whether it's ok to install some hacks as setuid (e.g., "sonar")
2924 # This should be safe, but let's give people the option.
2926 ###############################################################################
2928 setuid_hacks_default=no
2929 setuid_hacks="$setuid_hacks_default"
2930 AC_ARG_WITH(setuid-hacks,
2931 [ --with-setuid-hacks Allow some demos to be installed \`setuid root'
2932 (which is needed in order to ping other hosts.)
2934 [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
2936 HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks)
2938 if test "$setuid_hacks" = yes; then
2940 elif test "$setuid_hacks" != no; then
2941 echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks"
2946 ###############################################################################
2948 # Done testing. Now, set up the various -I and -L variables,
2949 # and decide which GUI program to build by default.
2951 ###############################################################################
2958 if test \! -z "$includedir" ; then
2959 INCLUDES="$INCLUDES -I$includedir"
2962 if test \! -z "$libdir" ; then
2963 LDFLAGS="$LDFLAGS -L$libdir"
2967 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2969 if test "$have_motif" = yes; then
2970 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2971 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2973 if test "$have_gtk" = yes; then
2974 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
2975 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2979 if test "$have_kerberos" = yes; then
2980 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
2981 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
2983 if test "$have_pam" = yes; then
2984 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
2985 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
2986 INSTALL_PAM="install-pam"
2988 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
2989 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
2992 if test "$enable_locking" = yes; then
2993 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
2994 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
2996 LOCK_SRCS='$(NOLOCK_SRCS_1)'
2997 LOCK_OBJS='$(NOLOCK_OBJS_1)'
3000 INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)'
3002 if test "$need_setuid" = yes; then
3008 if test "$setuid_hacks" = yes; then
3015 if test "$have_gl" = yes; then
3016 GL_EXES='$(GL_EXES)'
3017 GL_UTIL_EXES='$(GL_UTIL_EXES)'
3021 GL_KLUDGE="-${tab} "
3024 if test "$have_gle" = yes; then
3025 GLE_EXES='$(GLE_EXES)'
3026 GLE_MEN='$(GLE_MEN)'
3027 GLE_KLUDGE="${tab} "
3029 GLE_KLUDGE="-${tab} "
3032 if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then
3033 JPEG_EXES='$(JPEG_EXES)'
3037 # Another substitution in the XScreenSaver.ad.in file:
3039 if test "$have_gnome_help" = yes; then
3048 # Now that we know whether we have Gnome, we can decide where the XML
3049 # config files get installed.
3051 if test -z "$HACK_CONF_DIR" ; then
3052 if test -n "$GNOME_DATADIR" ; then
3053 HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers'
3055 HACK_CONF_DIR='${prefix}/lib/xscreensaver/config'
3061 # After computing $HACK_CONF_DIR, make sure $GTK_ICONDIR has a value
3062 # so that we know where to install the Gtk pixmaps.
3064 if test -n "$GNOME_DATADIR" ; then
3065 GTK_ICONDIR='$(GNOME_DATADIR)/pixmaps'
3066 elif test "$have_gtk" = yes; then
3067 # should this be "$(prefix)/share/pixmaps"? But /usr/X11R6/share/ is wrong...
3068 GTK_ICONDIR='/usr/share/pixmaps'
3074 # canonicalize slashes.
3075 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
3079 ###############################################################################
3081 # Perform substitutions and write Makefiles.
3083 ###############################################################################
3087 AC_SUBST(PREFERRED_DEMO_PROGRAM)
3088 AC_SUBST(ALL_DEMO_PROGRAMS)
3089 AC_SUBST(SAVER_LIBS)
3090 AC_SUBST(MOTIF_LIBS)
3098 AC_SUBST(XDPMS_LIBS)
3099 AC_SUBST(PASSWD_LIBS)
3100 AC_SUBST(INSTALL_SETUID)
3101 AC_SUBST(SETUID_HACKS)
3102 AC_SUBST(INSTALL_DIRS)
3103 AC_SUBST(NEED_SETUID)
3104 AC_SUBST(INSTALL_PAM)
3106 AC_SUBST(PASSWD_SRCS)
3107 AC_SUBST(PASSWD_OBJS)
3111 AC_SUBST(SAVER_GL_SRCS)
3112 AC_SUBST(SAVER_GL_OBJS)
3113 AC_SUBST(SAVER_GL_LIBS)
3118 AC_SUBST(GL_UTIL_EXES)
3123 AC_SUBST(GLE_KLUDGE)
3124 AC_SUBST(GNOMEHELP_Y)
3125 AC_SUBST(GNOMEHELP_N)
3127 AC_SUBST(GNOME_DATADIR)
3128 AC_SUBST(GTK_ICONDIR)
3129 AC_SUBST(HACK_CONF_DIR)
3131 APPDEFAULTS=$ac_x_app_defaults
3132 AC_SUBST(APPDEFAULTS)
3135 AC_SUBST(DEPEND_FLAGS)
3136 AC_SUBST(DEPEND_DEFINES)
3145 driver/XScreenSaver.ad)
3147 ###############################################################################
3149 # Print some warnings at the end.
3151 ###############################################################################
3153 warn_prefix_1=" Warning:"
3154 warn_prefix_2=" Note:"
3155 warn_prefix="$warn_prefix_1"
3158 warnsep=' #################################################################'
3161 if test "$warning" = no ; then
3162 echo '' ; echo "$warnsep" ; echo ''
3169 if test "$warning" = long ; then echo '' ; fi
3172 echo "$warn_prefix $rest"
3179 if test "$was" != no ; then echo '' ; fi
3181 echo "$warn_prefix $rest"
3191 warn_prefix="$warn_prefix_2"
3193 warn_prefix="$warn_prefix_1"
3197 warn_prefix="$warn_prefix_2"
3199 warn_prefix="$warn_prefix_1"
3203 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
3204 warn 'The SGI saver extension was requested, but was not found.'
3207 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
3208 warn 'The MIT saver extension was requested, but was not found.'
3211 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
3212 warn 'The XIdle extension was requested, but was not found.'
3215 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
3216 warn 'The XSHM extension was requested, but was not found.'
3219 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
3220 warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
3223 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
3224 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
3227 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
3228 warn 'The DPMS extension was requested, but was not found.'
3231 if test "$with_xinerama_req" = yes -a "$have_xinerama" = no ; then
3232 warn 'The Xinerama extension was requested, but was not found.'
3235 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
3236 warn 'The XF86VMODE extension was requested, but was not found.'
3239 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
3240 warn "Checking of /proc/interrupts was requested, but it's bogus."
3244 if test "$have_motif" = no -a "$have_gtk" = no; then
3245 warnL "Neither Motif nor Gtk seem to be available;"
3246 warn2 "the \`xscreensaver-demo' program requires one of these."
3248 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
3249 warnL "Use of Motif was requested, but it wasn't found;"
3250 warn2 "Gtk will be used instead."
3252 elif test "$jurassic_gtk" = yes ; then
3256 v="$ac_gtk_version_string"
3257 if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
3258 warnL "Use of Gtk was requested, but its version number is unknown;"
3259 elif test "$with_gtk_req" = yes ; then
3260 warnL "Use of Gtk was requested, but it is version $v;"
3262 warnL "Gtk was found on this system, but it is version $v;"
3265 warn2 "Gtk $pref_gtk or newer is required. Motif will be used instead."
3267 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
3268 warnL "Use of Gtk was requested, but it wasn't found;"
3269 warn2 "Motif will be used instead."
3274 if test "$with_gnome_req" = yes -a "$have_gnome" = no ; then
3275 warn 'Use of the Gnome Control Panel was requested, but the necessary'
3276 warn2 'headers and/or libraries were not found.'
3279 if test "$have_gtk" = yes ; then
3280 if test "$have_xml" = no ; then
3281 if test "$with_xml_req" = yes ; then
3282 warn 'Use of the XML library was requested, but the necessary'
3283 warn2 'headers and/or libraries were not found.'
3285 warn 'GTK is being used, but the XML library was not found.'
3288 if test "$xml_halfassed" = yes ; then
3290 if test "$have_zlib" = yes ; then
3291 which="XML libraries"
3293 which="\`zlib' library"
3297 warn2 'More specifically, we found the headers, but not the'
3298 warn2 "$which; so either XML is half-installed on this"
3299 warn2 "system, or something else went wrong. The \`config.log'"
3300 warn2 'file might contain some clues.'
3304 warn2 "Without XML, the per-display-mode \`Settings' dialogs"
3305 warn2 'will not be available. Specify the location of the XML'
3306 warn2 'library through the --with-xml option to configure.'
3310 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
3312 preferred_lesstif=0.92
3314 if test "$lesstif_version" = unknown; then
3315 warnL "Unable to determine the LessTif version number!"
3316 warn2 "Make sure you are using version $preferred_lesstif or newer."
3317 warn2 "See <http://www.lesstif.org/>."
3319 elif test \! $lesstif_version -gt 82; then
3320 warnL "LessTif version $lesstif_version_string is being used."
3321 warn2 "LessTif versions 0.82 and earlier are too buggy to"
3322 warn2 "use with XScreenSaver; it is strongly recommended"
3323 warn2 "that you upgrade to at least version $preferred_lesstif!"
3324 warn2 "See <http://www.lesstif.org/>."
3329 if test "$have_motif" = yes -a "$have_gtk" = no ; then
3330 warn 'Motif is being used, and GTK is not.'
3332 warn2 'Though the Motif front-end to xscreensaver is still'
3333 warn2 'maintained, it is no longer being updated with new'
3334 warn2 'features: all new development on the xscreensaver-demo'
3335 warn2 'program is happening in the GTK version, and not in the'
3336 warn2 'Motif version. It is recommended that you build against'
3337 warn2 'GTK instead of Motif. See <http://www.gtk.org/>.'
3341 if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
3342 warnL 'Use of XPM was requested, but it was not found.'
3345 if test "$with_gdk_pixbuf_req" = yes -a "$have_gdk_pixbuf" = no; then
3346 warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
3349 if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no; then
3351 if test "$with_xpm_req" = yes ; then
3353 elif test "$with_xpm_req" = no ; then
3354 warnL 'The XPM library is not being used.'
3356 warnL 'The XPM library was not found.'
3359 if test "$with_gdk_pixbuf_req" = yes ; then
3361 elif test "$with_gdk_pixbuf_req" = no ; then
3362 warnL 'The GDK-Pixbuf library is not being used.'
3364 warnL 'The GDK-Pixbuf library was not found.'
3367 if test "$gdk_pixbuf_halfassed" = yes ; then
3369 warn2 'More specifically, we found the headers, but not the'
3370 warn2 'libraries; so either GDK-Pixbuf is half-installed on this'
3371 warn2 "system, or something else went wrong. The \`config.log'"
3372 warn2 'file might contain some clues.'
3376 warn2 'Some of the demos will not be as colorful as they'
3377 warn2 'could be. You should consider installing Pixbuf or'
3378 warn2 'XPM and re-running configure. (Remember to delete'
3379 warn2 'the config.cache file first.) The Pixbuf library is'
3380 warn2 'a part of GNOME. The XPM library comes with most'
3381 warn2 'X11 installations; you can also find it at the X11'
3382 warn2 'archive sites, such as <http://sunsite.unc.edu/>.'
3384 warn2 'GDK-Pixbuf is recommended over XPM, as it provides'
3385 warn2 'support for more image formats.'
3389 if test "$have_jpeg" = no ; then
3390 if test "$with_jpeg_req" = yes ; then
3391 warnL 'Use of libjpeg was requested, but it was not found.'
3392 elif test "$with_jpeg_req" = no ; then
3393 noteL 'The JPEG library is not being used.'
3395 noteL 'The JPEG library was not found.'
3398 if test "$jpeg_halfassed" = yes ; then
3400 warn2 'More specifically, we found the headers, but not the'
3401 warn2 'library; so either JPEG is half-installed on this'
3402 warn2 "system, or something else went wrong. The \`config.log'"
3403 warn2 'file might contain some clues.'
3407 warn2 "This means the \`webcollage' program will be much slower."
3411 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
3412 preferred_mesagl=3.4
3413 mgv="$ac_mesagl_version_string"
3414 pgl="$preferred_mesagl"
3416 if test "$ac_mesagl_version" = unknown; then
3417 warnL "Unable to determine the MesaGL version number!"
3418 warn2 "Make sure you are using version $preferred_mesagl or newer."
3420 elif test \! "$ac_mesagl_version" -gt 2006; then
3421 warnL "MesaGL version $mgv is being used. MesaGL 2.6 and earlier"
3422 warn2 "have a security bug. It is strongly recommended that you"
3423 warn2 "upgrade to at least version $preferred_mesagl."
3425 elif test \! "$ac_mesagl_version" -gt 3003; then
3426 warnL "MesaGL version $mgv is being used. That version has some"
3427 warn2 "bugs; it is recommended that you upgrade to $pgl or newer."
3431 if test "$have_gl" = no ; then
3432 if test "$with_gl_req" = yes ; then
3433 warnL 'Use of GL was requested, but it was not found.'
3434 elif test "$with_gl_req" = no ; then
3435 noteL 'The OpenGL 3D library is not being used.'
3437 noteL 'The OpenGL 3D library was not found.'
3440 if test "$gl_halfassed" = yes ; then
3442 warn2 'More specifically, we found the headers, but not the'
3443 warn2 'libraries; so either GL is half-installed on this'
3444 warn2 "system, or something else went wrong. The \`config.log'"
3445 warn2 'file might contain some clues.'
3449 warn2 'Those demos which use 3D will not be built or installed.'
3450 warn2 'You might want to consider installing OpenGL and'
3451 warn2 're-running configure. (Remember to delete the'
3452 warn2 "config.cache file first.) If your vendor doesn't ship"
3453 warn2 'their own implementation of OpenGL, you can get a free'
3454 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
3455 warn2 'info, see <http://www.opengl.org/>.'
3460 if test "$have_gl" = yes -a "$have_gle" = no ; then
3461 if test "$with_gle_req" = yes ; then
3462 noteL 'Use of the GLE (GL Extrusion) library was requested, but'
3463 warn2 'it was not found (though the OpenGL library was found, and'
3464 warn2 'is being used.)'
3465 elif test "$with_gle_req" = no ; then
3466 noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
3467 warn2 'library is not.'
3469 noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
3473 if test "$gle_halfassed" = yes ; then
3475 warn2 'More specifically, we found the headers, but not the'
3476 warn2 'libraries; so either GLE is half-installed on this'
3477 warn2 "system, or something else went wrong. The \`config.log'"
3478 warn2 'file might contain some clues.'
3482 warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
3483 warn2 'will not be built or installed. You might want to consider'
3484 warn2 'installing GLE and re-running configure. (Remember to delete'
3485 warn2 'the config.cache file first.) You can find the GLE library'
3486 warn2 'at <http://www.linas.org/gle/>. For general OpenGL info,'
3487 warn2 'see <http://www.opengl.org/>.'
3492 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
3493 warn 'Use of XReadDisplay was requested, but it was not found.'
3496 if test -n "$with_fortune_req"; then
3497 if test "$with_fortune_req" != "$ac_cv_fortune_program" ; then
3498 warnL "$with_fortune_req was requested as the Fortune program,"
3499 warn2 "but was not found. The default will be used instead."
3503 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
3504 warn 'Use of Kerberos was requested, but it was not found.'
3507 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
3508 warn 'Use of PAM was requested, but it was not found.'
3511 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
3512 warn 'Use of shadow passwords was requested, but they were not found.'
3516 # You are in a twisty maze of namespaces and syntaxes, all alike.
3517 # Fuck the skull of Unix.
3519 eval bindir=${bindir}
3520 eval bindir=${bindir}
3521 eval bindir=${bindir}
3522 eval bindir=${bindir}
3523 eval bindir=${bindir}
3524 eval bindir=${bindir}
3525 eval HACKDIR=${HACKDIR}
3526 eval HACKDIR=${HACKDIR}
3527 eval HACKDIR=${HACKDIR}
3528 eval HACKDIR=${HACKDIR}
3529 eval HACKDIR=${HACKDIR}
3530 eval HACKDIR=${HACKDIR}
3531 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3532 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3533 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3534 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3535 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3536 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3538 # canonicalize slashes.
3539 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
3540 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
3541 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
3544 # Sanity check the hackdir
3545 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
3546 if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
3548 AC_MSG_ERROR([\"--with-hackdir=${bindir}/${bad_choice}\" won't work.
3549 There will be an executable installed with that name, so
3550 that can't be the name of a directory as well. Please
3551 re-configure with a different directory name.])
3558 # Now let's see if there's a previous RPM version already installed. Blargh!
3562 rpmv=`(rpm -qv xscreensaver) 2>/dev/null | \
3563 sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'`
3566 if test \! -z "$rpmv" ; then
3567 rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
3568 rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
3571 warnL "There is already an installed RPM of xscreensaver $rpmv"
3572 warn2 "on this system. You might want to remove it (with"
3573 warn2 '"rpm -ve xscreensaver") before running "make install"'
3574 warn2 "from this directory."
3576 warn2 "Alternately, you could build this version of xscreensaver"
3577 warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
3578 warn2 "file is included. See the RPM documentation for more info."
3581 if test "$rpmbdir" = "$rpmhdir" ; then
3582 warn2 "The RPM version was installed in $rpmbdir/."
3584 warn2 "The RPM version was installed in $rpmbdir/,"
3585 warn2 "with demos in $rpmhdir/."
3592 if test "${bindir}" = "${HACKDIR}" ; then
3596 if test "$do_dir_warning" = yes; then
3600 echo ' When you run "make install", the "xscreensaver",'
3601 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
3602 echo " will be installed in ${bindir}/."
3604 echo " The various graphics demos (140+ different executables) will"
3605 echo " be installed in ${HACKDIR}/."
3607 echo " If you would prefer the demos to be installed elsewhere,"
3608 echo " you should re-run configure with the --with-hackdir=DIR"
3609 echo " option. For more information, run \`./configure --help'."
3613 if test "$warning" != no; then
3614 echo '' ; echo "$warnsep" ; echo ''
3617 if test "$do_dir_warning" = no; then
3618 if test "$warning" = no; then
3621 echo "User programs will be installed in ${bindir}/"
3622 echo "Screen savers will be installed in ${HACKDIR}/"
3623 echo "Configuration will be installed in ${HACK_CONF_DIR}/"