1 # configure.in --- xscreensaver, Copyright (c) 1997-2004 Jamie Zawinski.
5 AC_INIT(driver/subprocs.c)
6 AC_CONFIG_HEADER(config.h)
8 echo "current directory: `pwd`"
9 echo "command line was: $0 $@"
12 # After checking to see that --srcdir is correct (which AC_INIT does)
13 # check for some random other files that come later in the tar file,
14 # to make sure everything is here.
16 for d in driver utils hacks hacks/glx ; do
17 f=$srcdir/$d/Makefile.in
18 if test \! -r $f ; then
20 echo "ERROR: The package is incomplete: $f does not exist."
21 echo " This probably means that your download was truncated."
27 ###############################################################################
29 # Function to figure out how to run the compiler.
31 ###############################################################################
33 AC_DEFUN(AC_PROG_CC_ANSI,
36 if test -z "$GCC"; then
38 AC_MSG_CHECKING(how to request ANSI compilation)
41 AC_MSG_RESULT(HPUX: adding -Ae)
45 AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e)
46 CC="$CC -qlanglvl=ansi -qhalt=e"
49 AC_MSG_RESULT(DEC: adding -std1 -ieee)
53 AC_MSG_RESULT(no idea)
60 AC_MSG_RESULT(Solaris: adding -D__EXTENSIONS__)
61 CC="$CC -D__EXTENSIONS__"
68 AC_MSG_CHECKING([whether the compiler works on ANSI C])
69 AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
72 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
73 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
75 if test -n "$GCC"; then
76 AC_MSG_RESULT(Turning on gcc compiler warnings.)
77 CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs"
79 # supposedly gcc 3.4 will have "-Wdeclaration-after-statement"
80 # and then perhaps we can do without -pedantic?
83 *-irix5* |*-irix6.[0-3]* )
84 AC_MSG_RESULT(Turning on SGI compiler warnings.)
85 CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
88 # if test -z "$GCC"; then
89 # AC_MSG_RESULT(Turning on DEC C compiler warnings.)
90 # CC="$CC -migrate -w0 -verbose -warnprotos"
98 ###############################################################################
100 # Functions to figure out how to disable // comments in ANSI C code.
102 # (With recent gcc, this is done with "-std=c89". With older gcc, this
103 # is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to
104 # gcc. Old gcc doesn't support -std, and new gcc doesn't support -lang.
105 # so much for compatibility!)
107 # UPDATE: apparently there is NO WAY to tell gcc 3.2.2 to require that
108 # declarations preceed statements, without resorting to "-pedantic".
109 # This means that there is no way to get gcc3 to issue warnings that
110 # ensure that your code complies with the ANSI/ISO C89 standard, without
111 # also drowning in totally useless warnings. Thank you master may I
114 # So, I give up, let's just use -pedantic.
116 ###############################################################################
118 AC_DEFUN(AC_GCC_ACCEPTS_STD,
119 [if test -n "$GCC"; then
120 AC_CACHE_CHECK([whether gcc accepts -std],
121 ac_cv_gcc_accepts_std,
122 [if ( ( gcc -E -std=c89 - </dev/null >/dev/null ) 2>&1 | \
123 grep unrecognized >/dev/null ); then
124 ac_cv_gcc_accepts_std=no
126 ac_cv_gcc_accepts_std=yes
128 ac_gcc_accepts_std="$ac_cv_gcc_accepts_std"
132 AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE,
133 [if test -n "$GCC"; then
135 AC_MSG_RESULT(Disabling C++ comments in ANSI C code.)
137 # The reason that // comments are banned from xscreensaver is that gcc is
138 # basically the only compiler in the world that supports them in C code.
139 # All other vendors support them only in their C++ compilers, not in their
140 # ANSI C compilers. This means that it's a portability problem: every time
141 # these comments have snuck into the xscreensaver source code, I've gotten
142 # complaints about it the next day. So we turn off support for them in gcc
143 # as well to prevent them from accidentially slipping in.
145 if test "$ac_gcc_accepts_std" = yes ; then
147 # -std=c89 defines __STRICT_ANSI__, which we don't want.
148 # (That appears to be the only additional preprocessor symbol
149 # it defines, in addition to the syntax changes it makes.)
151 # -std=gnu89 is no good, because // comments were a GNU extension
152 # before they were in the ANSI C 99 spec... (gcc 2.96 permits //
153 # with -std=gnu89 but not with -std=c89.)
155 CC="$CC -std=c89 -U__STRICT_ANSI__"
158 CC="$CC -Wp,-lang-c89"
164 ###############################################################################
166 # Function to figure out how to turn off Objective C on MacOS X.
167 # (We have to do this to work around an Apple-specific gcc bug.)
169 ###############################################################################
171 AC_DEFUN(AC_GCC_ACCEPTS_NO_CPP_PRECOMP,
172 [if test -n "$GCC"; then
173 AC_CACHE_CHECK([whether gcc accepts -no-cpp-precomp],
174 ac_cv_gcc_accepts_no_cpp_precomp,
175 [if ( ( gcc -E -no-cpp-precomp - </dev/null >/dev/null ) 2>&1 | \
176 grep unrecognized >/dev/null ); then
177 ac_cv_gcc_accepts_no_cpp_precomp=no
179 ac_cv_gcc_accepts_no_cpp_precomp=yes
181 ac_gcc_accepts_no_cpp_precomp="$ac_cv_gcc_accepts_no_cpp_precomp"
185 AC_DEFUN(AC_NO_OBJECTIVE_C,
186 [if test -n "$GCC"; then
187 AC_GCC_ACCEPTS_NO_CPP_PRECOMP
188 if test "$ac_gcc_accepts_no_cpp_precomp" = yes ; then
189 AC_MSG_RESULT(Disabling Objective C extensions in ANSI C code.)
190 CC="$CC -no-cpp-precomp"
196 ###############################################################################
198 # Function to figure out how to create directory trees.
200 ###############################################################################
202 AC_DEFUN(AC_PROG_INSTALL_DIRS,
203 [AC_CACHE_CHECK([whether "\${INSTALL} -d" creates intermediate directories],
204 ac_cv_install_d_creates_dirs,
205 [ac_cv_install_d_creates_dirs=no
207 if mkdir conftestdir; then
208 cd conftestdir 2>/dev/null
209 ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1
210 if test -d dir1/dir2/. ; then
211 ac_cv_install_d_creates_dirs=yes
218 if test "$ac_cv_install_d_creates_dirs" = no ; then
219 AC_CACHE_CHECK([whether "mkdir -p" creates intermediate directories],
220 ac_cv_mkdir_p_creates_dirs,
221 [ac_cv_mkdir_p_creates_dirs=no
223 if mkdir conftestdir; then
224 cd conftestdir 2>/dev/null
225 mkdir -p dir1/dir2 >/dev/null 2>&1
226 if test -d dir1/dir2/. ; then
227 ac_cv_mkdir_p_creates_dirs=yes
235 if test "$ac_cv_install_d_creates_dirs" = yes ; then
236 INSTALL_DIRS='${INSTALL} -d'
237 elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then
238 INSTALL_DIRS='mkdir -p'
241 INSTALL_DIRS='${INSTALL} -d'
246 ###############################################################################
248 # Function to check whether gettimeofday() exists, and how to call it.
249 # This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS.
251 ###############################################################################
253 AC_DEFUN(AC_GETTIMEOFDAY_ARGS,
254 [AC_MSG_CHECKING(how to call gettimeofday)
255 AC_CACHE_VAL(ac_cv_gettimeofday_args,
256 [AC_TRY_COMPILE([#include <stdlib.h>
257 #include <sys/time.h>],
258 [struct timeval tv; struct timezone tzp;
259 gettimeofday(&tv, &tzp);],
260 [ac_gettimeofday_args=2],
261 [AC_TRY_COMPILE([#include <stdlib.h>
262 #include <sys/time.h>],
263 [struct timeval tv; gettimeofday(&tv);],
264 [ac_gettimeofday_args=1],
265 [ac_gettimeofday_args=0])])
266 ac_cv_gettimeofday_args=$ac_gettimeofday_args])
267 ac_gettimeofday_args=$ac_cv_gettimeofday_args
268 if test "$ac_gettimeofday_args" = 1 ; then
269 AC_DEFINE(HAVE_GETTIMEOFDAY)
270 AC_MSG_RESULT(one argument)
271 elif test "$ac_gettimeofday_args" = 2 ; then
272 AC_DEFINE(HAVE_GETTIMEOFDAY)
273 AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
274 AC_MSG_RESULT(two arguments)
276 AC_MSG_RESULT(unknown)
281 ###############################################################################
283 # Function to find perl5 (defines PERL and PERL_VERSION.)
285 ###############################################################################
287 # M4 sucks!! perl sucks too!!
289 perl_version_cmd='print $]'
292 AC_DEFUN(AC_PROG_PERL,
293 [AC_PATH_PROGS(PERL, [perl5 perl],,)
294 if test -z "$PERL" ; then
297 AC_CACHE_CHECK([perl version], ac_cv_perl_version,
298 [ac_cv_perl_version=`$PERL -e "$perl_version_cmd"`])
299 PERL_VERSION=$ac_cv_perl_version
304 ###############################################################################
306 # Function to demand "bc". Losers.
308 ###############################################################################
310 AC_DEFUN(AC_DEMAND_BC,
311 [ac_bc_result=`echo 6+9 | bc 2>/dev/null`
312 AC_MSG_CHECKING([for bc])
313 if test "$ac_bc_result" = "15" ; then
318 AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard
319 part of Unix since the 1970s. Come back when your vendor
324 ###############################################################################
326 # Functions to check how to do ICMP PING requests.
328 ###############################################################################
330 AC_DEFUN(AC_CHECK_ICMP,
331 [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp,
332 [AC_TRY_COMPILE([#include <stdlib.h>
339 #include <sys/types.h>
340 #include <sys/time.h>
343 #include <sys/socket.h>
344 #include <netinet/in_systm.h>
345 #include <netinet/in.h>
346 #include <netinet/ip.h>
347 #include <netinet/ip_icmp.h>
348 #include <netinet/udp.h>
349 #include <arpa/inet.h>
353 struct sockaddr_in si;
355 i.icmp_type = ICMP_ECHO;
360 si.sin_family = AF_INET;
361 #if defined(__DECC) || defined(_IP_VHL)
367 [ac_cv_have_icmp=yes],
368 [ac_cv_have_icmp=no])])
369 if test "$ac_cv_have_icmp" = yes ; then
373 AC_DEFUN(AC_CHECK_ICMPHDR,
374 [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr,
375 [AC_TRY_COMPILE([#include <stdlib.h>
382 #include <sys/types.h>
383 #include <sys/time.h>
386 #include <sys/socket.h>
387 #include <netinet/in_systm.h>
388 #include <netinet/in.h>
389 #include <netinet/ip.h>
390 #include <netinet/ip_icmp.h>
391 #include <netinet/udp.h>
392 #include <arpa/inet.h>
396 struct sockaddr_in si;
402 i.un.echo.sequence = 0;
403 si.sin_family = AF_INET;
405 [ac_cv_have_icmphdr=yes],
406 [ac_cv_have_icmphdr=no])])
407 if test "$ac_cv_have_icmphdr" = yes ; then
408 AC_DEFINE(HAVE_ICMPHDR)
412 ###############################################################################
414 # Functions to check for various X11 crap.
416 ###############################################################################
418 # Try and find the app-defaults directory.
419 # It sucks that autoconf doesn't do this already...
421 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
423 if mkdir conftestdir; then
424 cd conftestdir 2>/dev/null
425 # Make sure to not put "make" in the Imakefile rules, since we grep it out.
426 cat > Imakefile <<'EOF'
428 @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
430 if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then
431 # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
432 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
438 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
439 # Look for the directory under a standard set of common directories.
440 # Check X11 before X11Rn because it's often a symlink to the current release.
442 /usr/X11/lib/app-defaults \
443 /usr/X11R6/lib/app-defaults \
444 /usr/X11R6/lib/X11/app-defaults \
445 /usr/X11R5/lib/app-defaults \
446 /usr/X11R5/lib/X11/app-defaults \
447 /usr/X11R4/lib/app-defaults \
448 /usr/X11R4/lib/X11/app-defaults \
450 /usr/lib/X11/app-defaults \
451 /usr/lib/X11R6/app-defaults \
452 /usr/lib/X11R5/app-defaults \
453 /usr/lib/X11R4/app-defaults \
455 /usr/local/X11/lib/app-defaults \
456 /usr/local/X11R6/lib/app-defaults \
457 /usr/local/X11R5/lib/app-defaults \
458 /usr/local/X11R4/lib/app-defaults \
460 /usr/local/lib/X11/app-defaults \
461 /usr/local/lib/X11R6/app-defaults \
462 /usr/local/lib/X11R6/X11/app-defaults \
463 /usr/local/lib/X11R5/app-defaults \
464 /usr/local/lib/X11R5/X11/app-defaults \
465 /usr/local/lib/X11R4/app-defaults \
466 /usr/local/lib/X11R4/X11/app-defaults \
468 /usr/X386/lib/X11/app-defaults \
469 /usr/x386/lib/X11/app-defaults \
470 /usr/XFree86/lib/X11/app-defaults \
472 /usr/lib/X11/app-defaults \
473 /usr/local/lib/X11/app-defaults \
474 /usr/unsupported/lib/X11/app-defaults \
475 /usr/athena/lib/X11/app-defaults \
476 /usr/local/x11r5/lib/X11/app-defaults \
477 /usr/lpp/Xamples/lib/X11/app-defaults \
478 /lib/usr/lib/X11/app-defaults \
480 /usr/openwin/lib/app-defaults \
481 /usr/openwin/lib/X11/app-defaults \
482 /usr/openwin/share/lib/app-defaults \
483 /usr/openwin/share/lib/X11/app-defaults \
485 /X11R6/lib/app-defaults \
486 /X11R5/lib/app-defaults \
487 /X11R4/lib/app-defaults \
490 if test -d "$ac_dir"; then
491 ac_x_app_defaults=$ac_dir
497 AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
499 AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
500 [AC_PATH_X_APP_DEFAULTS_XMKMF
501 if test x"$ac_x_app_defaults" = x; then
502 AC_PATH_X_APP_DEFAULTS_DIRECT
504 if test x"$ac_x_app_defaults" = x; then
505 ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
507 # Record where we found app-defaults for the cache.
508 ac_cv_x_app_defaults="$ac_x_app_defaults"
510 eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
513 AC_DEFUN(AC_XPOINTER,
514 [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
515 [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
516 [XPointer foo = (XPointer) 0;],
517 [ac_cv_xpointer=yes],
518 [ac_cv_xpointer=no])])
519 if test "$ac_cv_xpointer" != yes; then
520 AC_DEFINE(XPointer,[char*])
524 # Random special-cases for X on certain pathological OSes.
525 # You know who you are.
527 AC_DEFUN(AC_X_RANDOM_PATHS,
531 # The following arcana was gleaned from conversations with
532 # Eric Schwartz <erics@col.hp.com>:
534 # On HPUX 10.x, the parts of X that HP considers "standard" live in
535 # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider
536 # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
537 # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems.
538 # Also, there are symlinks from /usr/include/ and /usr/lib/ into
539 # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
540 # you don't need any -I or -L arguments.
542 # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
543 # are the same division as 10.x. However, there are no symlinks to
544 # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
545 # arguments are always necessary.
547 # However, X11R6 was available on HPUX 9.x as a patch: if that
548 # patch was installed, then all of X11R6 went in to
549 # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
551 # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
552 # whether R5 was available as a patch; R6 undoubtedly was not.)
554 # So. We try and use the highest numbered pair of
555 # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
556 # that are available. We do not mix and match different versions
559 # Question I still don't know the answer to: (do you?)
561 # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
562 # /usr/contrib/X11R6/ could be installed as a patch, what was in
563 # that contrib directory? Did it contain so-called "standard"
564 # X11R6, or did it include Xaw and Xmu as well? If the former,
565 # where did one find Xaw and Xmu on 9.x R6 systems? Would this
566 # be a situation where one had to reach into the R5 headers and
567 # libs to find Xmu? That is, must both R6 and R5 directories
568 # be on the -I and -L lists in that case?
570 for version in X11R6 X11R5 X11R4 ; do
571 # if either pair of directories exists...
572 if test -d /usr/include/$version || test -d /usr/contrib/$version/include
574 # if contrib exists, use it...
575 if test -d /usr/contrib/$version/include ; then
576 X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
577 X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
579 # if the "standard" one exists, use it.
580 if test -d /usr/include/$version ; then
581 X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
582 X_LIBS="$X_LIBS -L/usr/lib/$version"
584 # since at least one of the pair exists, go no farther.
589 # Now find Motif. Thanks for not making xmkmf find this by
590 # default, you losers.
592 if test -d /usr/include/Motif2.1 ; then
593 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif2.1"
594 X_LIBS="$X_LIBS -L/usr/lib/Motif2.1"
595 elif test -d /usr/include/Motif1.2 ; then
596 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
597 X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
598 elif test -d /usr/include/Motif1.1 ; then
599 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
600 X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
603 # Now let's check for the pseudo-standard locations for OpenGL and XPM.
605 if test -d /opt/graphics/OpenGL/include ; then
606 # HP-UX 10.20 puts it here
607 X_CFLAGS="-I/opt/graphics/OpenGL/include $X_CFLAGS"
608 X_LIBS="-L/opt/graphics/OpenGL/lib $X_LIBS"
609 elif test -d /opt/Mesa/lib ; then
610 X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
611 X_LIBS="-L/opt/Mesa/lib $X_LIBS"
615 if test -d /opt/xpm/lib/X11 ; then
616 X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
617 X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
620 # On HPUX, default to installing in /opt/xscreensaver/ instead of
621 # in /usr/local/, unless there is already an xscreensaver in
622 # /usr/local/bin/. This can be overridden with the --prefix arg
623 # to configure. I'm not sure this is the right thing to do, but
624 # Richard Lloyd says so...
626 if test \! -x /usr/local/bin/xscreensaver ; then
627 ac_default_prefix=/opt/xscreensaver
633 # Thanks for not making xmkmf find this by default, pinheads.
634 # And thanks for moving things around again, too. Is this
635 # really the standard location now? What happened to the
636 # joke that this kind of thing went in /opt?
637 # cthomp says "answer: CDE (Common Disorganized Environment)"
639 if test -f /usr/dt/include/Xm/Xm.h ; then
640 X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
641 MOTIF_LIBS="$MOTIF_LIBS -L/usr/dt/lib -R/usr/dt/lib"
643 # Some versions of Slowlaris Motif require -lgen. But not all. Why?
644 AC_CHECK_LIB(gen, regcmp, [MOTIF_LIBS="$MOTIF_LIBS -lgen"])
650 # On MacOS X (10.x with "fink"), many things are under /sw/.
652 if test -d /sw/include ; then
653 X_CFLAGS="-I/sw/include $X_CFLAGS"
654 X_LIBS="-L/sw/lib $X_LIBS"
661 ###############################################################################
663 # Some utility functions to make checking for X things easier.
665 ###############################################################################
667 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
669 AC_DEFUN(AC_CHECK_X_HEADER, [
670 ac_save_CPPFLAGS="$CPPFLAGS"
671 if test \! -z "$includedir" ; then
672 CPPFLAGS="$CPPFLAGS -I$includedir"
674 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
675 AC_CHECK_HEADER([$1],[$2],[$3],[$4])
676 CPPFLAGS="$ac_save_CPPFLAGS"])
678 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
680 AC_DEFUN(AC_EGREP_X_HEADER, [
681 ac_save_CPPFLAGS="$CPPFLAGS"
682 if test \! -z "$includedir" ; then
683 CPPFLAGS="$CPPFLAGS -I$includedir"
685 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
686 AC_EGREP_HEADER([$1], [$2], [$3], [$4])
687 CPPFLAGS="$ac_save_CPPFLAGS"])
689 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
691 AC_DEFUN(AC_TRY_X_COMPILE, [
692 ac_save_CPPFLAGS="$CPPFLAGS"
693 if test \! -z "$includedir" ; then
694 CPPFLAGS="$CPPFLAGS -I$includedir"
696 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
697 AC_TRY_COMPILE([$1], [$2], [$3], [$4])
698 CPPFLAGS="$ac_save_CPPFLAGS"])
701 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
702 # Use this sparingly; it probably doesn't work very well on X programs.
704 AC_DEFUN(AC_CHECK_X_LIB, [
705 ac_save_CPPFLAGS="$CPPFLAGS"
706 ac_save_LDFLAGS="$LDFLAGS"
707 # ac_save_LIBS="$LIBS"
709 if test \! -z "$includedir" ; then
710 CPPFLAGS="$CPPFLAGS -I$includedir"
712 # note: $X_CFLAGS includes $x_includes
713 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
715 if test \! -z "$libdir" ; then
716 LDFLAGS="$LDFLAGS -L$libdir"
718 # note: $X_LIBS includes $x_libraries
719 LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
721 AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
722 CPPFLAGS="$ac_save_CPPFLAGS"
723 LDFLAGS="$ac_save_LDFLAGS"
724 # LIBS="$ac_save_LIBS"
727 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
728 # (But not the -L directories!)
730 AC_DEFUN(AC_TRY_X_RUN, [
731 ac_save_CPPFLAGS="$CPPFLAGS"
732 if test \! -z "$includedir" ; then
733 CPPFLAGS="$CPPFLAGS -I$includedir"
735 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
736 AC_TRY_RUN([$1], [$2], [$3], [$4])
737 CPPFLAGS="$ac_save_CPPFLAGS"])
741 # Usage: HANDLE_X_PATH_ARG([variable_name],
742 # [--command-line-option],
743 # [descriptive string])
745 # All of the --with options take three forms:
747 # --with-foo (or --with-foo=yes)
748 # --without-foo (or --with-foo=no)
751 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees
752 # a directory (string beginning with a slash) it checks to see whether
753 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
756 AC_DEFUN(HANDLE_X_PATH_ARG, [
762 AC_MSG_CHECKING([for [$3] headers])
765 X_CFLAGS="-I$d $X_CFLAGS"
768 AC_MSG_RESULT(not found ($d: no such directory))
771 AC_MSG_CHECKING([for [$3] libs])
774 X_LIBS="-L$d $X_LIBS"
777 AC_MSG_RESULT(not found ($d: no such directory))
780 # replace the directory string with "yes".
787 echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
788 echo " If it is a directory, then \`DIR/include' will be added to"
789 echo " the -I list, and \`DIR/lib' will be added to the -L list."
797 ###############################################################################
798 ###############################################################################
800 # End of function definitions. Now start actually executing stuff.
802 ###############################################################################
803 ###############################################################################
805 # random compiler setup
808 AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
816 # stuff for Makefiles
821 # By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'.
822 # That's wrong: it should be set to '${INSTALL}', so that one can
823 # implement the "install-strip" target properly (strip executables,
824 # but do not try to strip scripts.)
826 INSTALL_SCRIPT='${INSTALL}'
830 AC_CHECK_HEADERS(unistd.h)
839 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk)
840 AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
843 AC_CHECK_HEADERS(crypt.h sys/select.h)
846 if test -z "$PERL" ; then
847 # don't let it be blank...
853 if test "$have_x" != yes; then
854 AC_MSG_ERROR(Couldn't find X11 headers/libs. Try `$0 --help'.)
857 AC_PATH_X_APP_DEFAULTS
861 AC_MSG_CHECKING(whether this is MacOS X)
868 AC_MSG_RESULT($ac_macosx)
872 ###############################################################################
876 ###############################################################################
879 GETTEXT_PACKAGE=xscreensaver
880 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE")
881 AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE")
882 AC_SUBST(GETTEXT_PACKAGE)
884 ALL_LINGUAS="ca da de es et fi fr hu it ja ko nl no pl pt pt_BR ru sk sv vi wa zh_CN zh_TW"
886 MKINSTALLDIRS="$INSTALL_DIRS"
889 ###############################################################################
891 # Check for -lXmu (some fucked up vendors don't ship it...)
893 ###############################################################################
896 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes],,
899 #include <X11/Intrinsic.h>])
900 if test "$have_xmu" = no ; then
901 XMU_SRCS='$(UTILS_SRC)/xmu.c'
902 XMU_OBJS='$(UTILS_BIN)/xmu.o'
912 ###############################################################################
914 # Check for the SunOS 4.1.x _get_wmShellWidgetClass bug.
915 # See comp.windows.x FAQ question 124. The right fix is to
916 # get OpenWindows 3.0 patches 100512-02 and 100573-03.
918 ###############################################################################
920 if test "$have_xmu" = yes ; then
923 AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
925 [ac_save_LDFLAGS="$LDFLAGS"
926 if test \! -z "$x_libraries" ; then
927 LDFLAGS="$LDFLAGS -L$x_libraries"
929 # Note: this trick never works! (Generally.)
930 # We're only getting away with using AC_TRY_LINK
931 # with X libraries because we know it's SunOS.
932 LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
934 [ac_cv_sunos_xmu_bug=no],
935 [ac_cv_sunos_xmu_bug=yes])
936 LDFLAGS="$ac_save_LDFLAGS"])
937 if test "$ac_cv_sunos_xmu_bug" = yes ; then
938 AC_CACHE_CHECK([whether the compiler understands -static],
940 [ac_save_LDFLAGS="$LDFLAGS"
941 LDFLAGS="$LDFLAGS -static"
942 AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
943 LDFLAGS="$ac_save_LDFLAGS"])
944 if test "$ac_cv_ld_static" = yes ; then
945 LDFLAGS="$LDFLAGS -static"
947 LDFLAGS="$LDFLAGS -Bstatic"
955 ###############################################################################
957 # Handle the --with-hackdir option
959 ###############################################################################
962 with_hackdir_req=unspecified
963 AC_ARG_WITH(hackdir,[
964 Installation options:
966 --with-hackdir=DIR Where to install the hundreds of demo executables.
967 Default: `PREFIX/lib/xscreensaver/'],
968 [with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes])
970 if test x"$with_hackdir" = xyes; then
971 HACKDIR='${exec_prefix}/lib/xscreensaver'
972 elif test x"$with_hackdir" = xno; then
975 # there must be a better way than this...
976 if test -z "`echo $with_hackdir | sed 's@^/.*@@'`" ; then
978 HACKDIR=$with_hackdir
981 HACKDIR="\${exec_prefix}$with_hackdir"
985 # canonicalize slashes.
986 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
988 # This option used to be called --enable-subdir; make sure that is no longer
989 # used, since configure brain-damagedly ignores unknown --enable options.
992 AC_ARG_ENABLE(subdir,,[obsolete_enable=yes])
993 if test -n "$obsolete_enable"; then
994 echo "error: the --enable-subdir option has been replaced with"
995 echo " the new --with-hackdir option; see \`configure --help'"
996 echo " for more information."
1001 ###############################################################################
1003 # Handle the --with-configdir option
1005 ###############################################################################
1008 with_configdir_req=unspecified
1009 AC_ARG_WITH(configdir,
1010 [ --with-configdir=DIR Where to install the data files that describe each
1011 of the display modes to the GUI.
1012 Default: `GTK_PREFIX/control-center/screensavers/'
1013 or `PREFIX/lib/xscreensaver/config/', depending on
1014 whether GTK is available.
1016 [with_configdir="$withval"; with_configdir_req="$withval"],
1017 [with_configdir=yes])
1019 if test x"$with_configdir" = xyes; then
1020 # filled in later...
1022 elif test x"$with_configdir" = xno; then
1023 echo "error: must be yes, or a pathname: --with-configdir=$with_configdir"
1026 # there must be a better way than this...
1027 if test -z "`echo $with_configdir | sed 's@^/.*@@'`" ; then
1029 HACK_CONF_DIR=$with_configdir
1032 HACK_CONF_DIR="\${exec_prefix}$with_configdir"
1039 ###############################################################################
1041 # Check for the SGI SCREEN_SAVER server extension.
1043 ###############################################################################
1046 with_sgi_req=unspecified
1047 AC_ARG_WITH(sgi-ext,
1048 [Except where noted, all of the --with options below can also take a
1049 directory argument: for example, `--with-motif=/opt/Motif'. That would
1050 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
1051 to be added to the -L list, assuming those directories exist.
1053 By default, support for each of these options will be built in, if the
1054 relevant library routines exist. At run time, they will then be used
1055 only if the X server being used supports them. Each --with option has
1056 a corresponding --without option, to override building support for them
1059 Screen blanking and idle-detection options:
1061 --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.],
1062 [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
1064 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
1066 if test "$with_sgi" = yes; then
1067 AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
1069 AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],,
1070 [#include <X11/Xlib.h>])
1072 elif test "$with_sgi" != no; then
1073 echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
1078 ###############################################################################
1080 # Check for the MIT-SCREEN-SAVER server extension.
1082 ###############################################################################
1085 with_mit_req=unspecified
1086 AC_ARG_WITH(mit-ext,
1087 [ --with-mit-ext Include support for the MIT-SCREEN-SAVER extension.],
1088 [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
1090 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
1092 if test "$with_mit" = yes; then
1093 AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes],,
1094 [#include <X11/Xlib.h>])
1096 # Now check to see if it's really in the library; XF86Free-3.3 ships
1097 # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
1099 if test "$have_mit" = yes; then
1100 AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [true], [have_mit=no], -lm)
1102 if test "$have_mit" = no; then
1103 # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead
1104 # of in Xext. Thank you master, may I have another.
1105 AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
1106 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
1107 [true], -lX11 -lXext -lm)
1110 if test "$have_mit" = no; then
1111 # Double fuck! Looks like some versions of XFree86 (whichever version
1112 # it is that comes with RedHat Linux 2.0 -- I can't find a version
1113 # number) put this garbage in Xss instead of Xext. Thank you master,
1114 # may I have another.
1115 AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
1116 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
1117 [true], -lX11 -lXext -lm)
1120 if test "$have_mit" = yes; then
1121 AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
1126 elif test "$with_mit" != no; then
1127 echo "error: must be yes or no: --with-mit-ext=$with_mit"
1132 ###############################################################################
1134 # Check for the XIDLE server extension.
1136 ###############################################################################
1139 with_xidle_req=unspecified
1140 AC_ARG_WITH(xidle-ext,
1141 [ --with-xidle-ext Include support for the XIDLE extension.],
1142 [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
1144 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
1146 if test "$with_xidle" = yes; then
1147 AC_CHECK_X_HEADER(X11/extensions/xidle.h,
1149 AC_DEFINE(HAVE_XIDLE_EXTENSION)],,
1150 [#include <X11/Xlib.h>])
1151 elif test "$with_xidle" != no; then
1152 echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
1157 ###############################################################################
1159 # Check for the SGI-VIDEO-CONTROL server extension.
1161 ###############################################################################
1164 with_sgivc_req=unspecified
1165 AC_ARG_WITH(sgivc-ext,
1166 [ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension.],
1167 [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
1169 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
1171 if test "$with_sgivc" = yes; then
1173 # first check for XSGIvc.h
1174 AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],,
1175 [#include <X11/Xlib.h>])
1177 # if that succeeded, then check for the -lXsgivc
1178 if test "$have_sgivc" = yes; then
1180 AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
1181 [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
1185 # if that succeeded, then we've really got it.
1186 if test "$have_sgivc" = yes; then
1187 AC_DEFINE(HAVE_SGI_VC_EXTENSION)
1190 elif test "$with_sgivc" != no; then
1191 echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
1196 ###############################################################################
1198 # Check for the DPMS server extension.
1200 ###############################################################################
1203 with_dpms_req=unspecified
1204 AC_ARG_WITH(dpms-ext,
1205 [ --with-dpms-ext Include support for the DPMS extension.],
1206 [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
1208 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
1210 if test "$with_dpms" = yes; then
1212 # first check for dpms.h
1213 AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes],,
1214 [#include <X11/Xlib.h>
1215 #include <X11/Xmd.h>])
1217 # if that succeeded, then check for the DPMS code in the libraries
1218 if test "$have_dpms" = yes; then
1220 # first look in -lXext (this is where it is with XFree86 4.0)
1222 AC_CHECK_X_LIB(Xext, DPMSInfo, [have_dpms=yes], [true], -lXext -lX11)
1224 # if that failed, look in -lXdpms (this is where it was in XFree86 3.x)
1225 if test "$have_dpms" = no; then
1226 AC_CHECK_X_LIB(Xdpms, DPMSInfo,
1227 [have_dpms=yes; XDPMS_LIBS="-lXdpms"], [true],
1233 # if that succeeded, then we've really got it.
1234 if test "$have_dpms" = yes; then
1235 AC_DEFINE(HAVE_DPMS_EXTENSION)
1238 elif test "$with_dpms" != no; then
1239 echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
1244 ###############################################################################
1246 # Check for the XINERAMA server extension.
1248 ###############################################################################
1251 with_xinerama_req=unspecified
1252 AC_ARG_WITH(xinerama-ext,
1253 [ --with-xinerama-ext Include support for the XINERAMA extension.],
1254 [with_xinerama="$withval"; with_xinerama_req="$withval"],[with_xinerama=yes])
1256 HANDLE_X_PATH_ARG(with_xinerama, --with-xinerama-ext, XINERAMA)
1258 if test "$with_xinerama" = yes; then
1260 # first check for Xinerama.h
1261 AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes],,
1262 [#include <X11/Xlib.h>])
1264 # if that succeeded, then check for the XINERAMA code in the libraries
1265 if test "$have_xinerama" = yes; then
1267 # first look in -lXext
1269 AC_CHECK_X_LIB(Xext, XineramaQueryScreens, [have_xinerama=yes], [true],
1272 # if that failed, look in -lXinerama (this is where it is in XFree86 4.1.)
1273 if test "$have_xinerama" = no; then
1274 AC_CHECK_X_LIB(Xinerama, XineramaQueryScreens,
1275 [have_xinerama=yes; SAVER_LIBS="$SAVER_LIBS -lXinerama"],
1276 [true], -lXext -lX11)
1280 # if that succeeded, then we've really got it.
1281 if test "$have_xinerama" = yes; then
1282 AC_DEFINE(HAVE_XINERAMA)
1285 elif test "$with_xinerama" != no; then
1286 echo "error: must be yes or no: --with-xinerama-ext=$with_xinerama"
1291 ###############################################################################
1293 # Check for the XF86VMODE server extension (for virtual screens.)
1295 ###############################################################################
1298 with_xf86vmode_req=unspecified
1299 AC_ARG_WITH(xf86vmode-ext,
1300 [ --with-xf86vmode-ext Include support for XFree86 virtual screens.],
1301 [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"],
1302 [with_xf86vmode=yes])
1304 HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
1308 if test "$with_xf86vmode" = yes; then
1310 # first check for xf86vmode.h
1311 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],,
1312 [#include <X11/Xlib.h>])
1314 # if that succeeded, then check for the -lXxf86vm
1315 if test "$have_xf86vmode" = yes; then
1317 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
1318 [have_xf86vmode=yes;
1319 VIDMODE_LIBS="-lXxf86vm";
1320 SAVER_LIBS="$SAVER_LIBS $VIDMODE_LIBS"],
1321 [true], -lXext -lX11)
1324 # if that succeeded, then we've really got it.
1325 if test "$have_xf86vmode" = yes; then
1326 AC_DEFINE(HAVE_XF86VMODE)
1329 elif test "$with_xf86vmode" != no; then
1330 echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
1335 ###############################################################################
1337 # Check for the XF86VMODE server extension (for gamma fading.)
1339 ###############################################################################
1342 have_xf86gamma_ramp=no
1343 with_xf86gamma_req=unspecified
1344 AC_ARG_WITH(xf86gamma-ext,
1345 [ --with-xf86gamma-ext Include support for XFree86 gamma fading.],
1346 [with_xf86gamma="$withval"; with_xf86gamma_req="$withval"],
1347 [with_xf86gamma=yes])
1349 HANDLE_X_PATH_ARG(with_xf86gamma, --with-xf86gamma-ext, xf86gamma)
1351 if test "$with_xf86gamma" = yes; then
1353 # first check for xf86vmode.h, if we haven't already
1354 if test "$have_xf86vmode" = yes; then
1357 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],,
1358 [#include <X11/Xlib.h>])
1361 # if that succeeded, then check for the -lXxf86vm
1362 if test "$have_xf86gamma" = yes; then
1364 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGamma,
1365 [have_xf86gamma=yes],
1366 [true], -lXext -lX11)
1369 # check for the Ramp versions of the functions too.
1370 if test "$have_xf86gamma" = yes; then
1371 have_xf86gamma_ramp=no
1372 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGammaRamp,
1373 [have_xf86gamma_ramp=yes],
1374 [true], -lXext -lX11)
1377 # if those tests succeeded, then we've really got the functions.
1378 if test "$have_xf86gamma" = yes; then
1379 AC_DEFINE(HAVE_XF86VMODE_GAMMA)
1382 if test "$have_xf86gamma_ramp" = yes; then
1383 AC_DEFINE(HAVE_XF86VMODE_GAMMA_RAMP)
1386 # pull in the lib, if we haven't already
1387 if test "$have_xf86gamma" = yes -a "$have_xf86vmode" = no; then
1388 SAVER_LIBS="$SAVER_LIBS -lXxf86vm"
1391 elif test "$with_xf86gamma" != no; then
1392 echo "error: must be yes or no: --with-xf86gamma-ext=$with_xf86vmode"
1397 ###############################################################################
1399 # Check for the RANDR (Resize and Rotate) server extension.
1401 # We need this to detect when the resolution of the desktop
1402 # has changed out from under us (this is a newer, different
1403 # mechanism than the XF86VMODE virtual viewports.)
1405 ###############################################################################
1408 with_randr_req=unspecified
1409 AC_ARG_WITH(randr-ext,
1410 [ --with-randr-ext Include support for the X Resize+Rotate extension.],
1411 [with_randr="$withval"; with_randr_req="$withval"],[with_randr=yes])
1413 HANDLE_X_PATH_ARG(with_randr, --with-randr-ext, RANDR)
1415 if test "$with_randr" = yes; then
1417 # first check for Randr.h
1418 AC_CHECK_X_HEADER(X11/extensions/Xrandr.h, [have_randr=yes],,
1419 [#include <X11/Xlib.h>])
1421 # if that succeeded, then check for the XRR code in the libraries
1422 if test "$have_randr" = yes; then
1424 # RANDR probably needs -lXrender
1426 AC_CHECK_X_LIB(Xrender, XRenderSetSubpixelOrder,
1427 [xrender_libs="-lXrender"], [true], -lXext -lX11)
1429 # first look for RANDR in -lXext
1431 AC_CHECK_X_LIB(Xext, XRRGetScreenInfo,
1432 [have_randr=yes; SAVER_LIBS="$SAVER_LIBS $xrender_libs"],
1433 [true], $xrender_libs -lXext -lX11)
1435 # if that failed, look in -lXrandr
1436 if test "$have_randr" = no; then
1437 AC_CHECK_X_LIB(Xrandr, XRRGetScreenInfo,
1438 [have_randr=yes; SAVER_LIBS="$SAVER_LIBS -lXrandr $xrender_libs"],
1439 [true], $xrender_libs -lXext -lX11)
1443 # if that succeeded, then we've really got it.
1444 if test "$have_randr" = yes; then
1445 AC_DEFINE(HAVE_RANDR)
1448 elif test "$with_randr" != no; then
1449 echo "error: must be yes or no: --with-randr-ext=$with_randr"
1454 ###############################################################################
1456 # Check for XF86MiscSetGrabKeysState (but only bother if we are already
1457 # using other XF86 stuff.)
1459 ###############################################################################
1461 have_xf86miscsetgrabkeysstate=no
1462 if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then
1463 AC_CHECK_X_LIB(Xxf86misc, XF86MiscSetGrabKeysState,
1464 [have_xf86miscsetgrabkeysstate=yes],
1465 [true], -lXext -lX11)
1466 if test "$have_xf86miscsetgrabkeysstate" = yes ; then
1467 SAVER_LIBS="$SAVER_LIBS -lXxf86misc"
1468 AC_DEFINE(HAVE_XF86MISCSETGRABKEYSSTATE)
1473 ###############################################################################
1475 # Check for HP XHPDisableReset and XHPEnableReset.
1477 ###############################################################################
1479 AC_MSG_CHECKING([for XHPDisableReset in X11/XHPlib.h])
1480 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
1481 [AC_DEFINE(HAVE_XHPDISABLERESET)
1482 SAVER_LIBS="-lXhp11 $SAVER_LIBS"
1483 AC_MSG_RESULT(yes)],
1484 [AC_MSG_RESULT(no)])
1487 ###############################################################################
1489 # Check for /proc/interrupts.
1491 ###############################################################################
1493 have_proc_interrupts=no
1494 with_proc_interrupts_req=unspecified
1495 AC_ARG_WITH(proc-interrupts,
1496 [ --with-proc-interrupts Include support for consulting the /proc/interrupts
1497 file to notice keyboard activity.],
1498 [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
1499 [with_proc_interrupts=yes])
1501 if test "$with_proc_interrupts" = yes; then
1503 AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
1504 ac_cv_have_proc_interrupts,
1505 [ac_cv_have_proc_interrupts=no
1506 if grep 'keyboard\|i8042' /proc/interrupts >/dev/null 2>&1 ; then
1507 ac_cv_have_proc_interrupts=yes
1510 have_proc_interrupts=$ac_cv_have_proc_interrupts
1512 if test "$have_proc_interrupts" = yes; then
1513 AC_DEFINE(HAVE_PROC_INTERRUPTS)
1516 elif test "$with_proc_interrupts" != no; then
1517 echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
1522 ###############################################################################
1524 # The --enable-locking option
1526 ###############################################################################
1528 AC_ARG_ENABLE(locking,[
1529 Screen locking options:
1531 --enable-locking Compile in support for locking the display.
1532 --disable-locking Do not allow locking at all.],
1533 [enable_locking="$enableval"],[enable_locking=yes])
1534 if test "$enable_locking" = yes; then
1536 elif test "$enable_locking" = no; then
1537 AC_DEFINE(NO_LOCKING)
1539 echo "error: must be yes or no: --enable-locking=$enable_locking"
1543 # We can't lock on MacOS X, so don't even bother compiling in support for it.
1545 if test "$ac_macosx" = yes; then
1546 if test "$enable_locking" = yes; then
1547 AC_MSG_RESULT(locking disabled: it doesn't work on MacOS X)
1549 AC_DEFINE(NO_LOCKING)
1554 ###############################################################################
1556 # The --enable-vt-locking option
1558 ###############################################################################
1560 #ac_vt_lockswitch=no
1561 #AC_ARG_ENABLE(vt-locking,[
1562 # --enable-vt-locking Compile in support for locking Virtual Terminals.
1563 # This is the default if the system supports it, and
1564 # if locking support is included (--enable-locking.)
1565 # --disable-vt-locking Do not allow locking of VTs, even if locking is
1567 # [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1568 #if test "$enable_vt_locking" = yes; then
1570 # AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1571 # [AC_TRY_COMPILE([#include <fcntl.h>
1572 # #include <sys/ioctl.h>
1573 # #include <sys/vt.h>],
1574 # [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1575 # [ac_cv_vt_lockswitch=yes],
1576 # [ac_cv_vt_lockswitch=no])])
1577 # ac_vt_lockswitch=$ac_cv_vt_lockswitch
1579 #elif test "$enable_vt_locking" = no; then
1582 # echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1586 #if test "$ac_vt_lockswitch" = yes; then
1587 # AC_DEFINE(HAVE_VT_LOCKSWITCH)
1588 # # the VT_LOCKSWITCH ioctl can only be used when running as root.
1589 # # #### but it doesn't work yet, so don't worry about that for now.
1594 ###############################################################################
1598 ###############################################################################
1602 # Solaris systems tend to come with PAM misconfigured.
1603 # Don't build it by default, even if the headers exist.
1607 # Default to building PAM support on all other systems, if it exists.
1608 with_pam_default=yes
1613 with_pam_req=unspecified
1616 [ --with-pam Include support for PAM (Pluggable Auth Modules.)],
1617 [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1619 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1621 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1622 AC_CACHE_CHECK([for PAM], ac_cv_pam,
1623 [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1626 if test "$ac_cv_pam" = yes ; then
1629 PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1631 # libpam typically requires dlopen and dlsym. On FreeBSD,
1632 # those are in libc. On Linux and Solaris, they're in libdl.
1633 AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1635 # On Linux, sigtimedwait() is in libc; on Solaris, it's in librt.
1637 AC_CHECK_LIB(c, sigtimedwait, [have_timedwait=yes])
1638 if test "$have_timedwait" = no ; then
1639 AC_CHECK_LIB(rt, sigtimedwait, [PASSWD_LIBS="${PASSWD_LIBS} -lrt"])
1642 AC_MSG_CHECKING(how to call pam_strerror)
1643 AC_CACHE_VAL(ac_cv_pam_strerror_args,
1644 [AC_TRY_COMPILE([#include <stdio.h>
1646 #include <security/pam_appl.h>],
1647 [pam_handle_t *pamh = 0;
1648 char *s = pam_strerror(pamh, PAM_SUCCESS);],
1649 [ac_pam_strerror_args=2],
1650 [AC_TRY_COMPILE([#include <stdio.h>
1652 #include <security/pam_appl.h>],
1654 pam_strerror(PAM_SUCCESS);],
1655 [ac_pam_strerror_args=1],
1656 [ac_pam_strerror_args=0])])
1657 ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1658 ac_pam_strerror_args=$ac_cv_pam_strerror_args
1659 if test "$ac_pam_strerror_args" = 1 ; then
1660 AC_MSG_RESULT(one argument)
1661 elif test "$ac_pam_strerror_args" = 2 ; then
1662 AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1663 AC_MSG_RESULT(two arguments)
1665 AC_MSG_RESULT(unknown)
1671 ###############################################################################
1673 # Check for Kerberos.
1675 ###############################################################################
1679 with_kerberos_req=unspecified
1681 AC_ARG_WITH(kerberos,
1682 [ --with-kerberos Include support for Kerberos authentication.],
1683 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1685 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1687 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1688 AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
1689 [AC_TRY_X_COMPILE([#include <krb.h>],,
1690 [ac_cv_kerberos=yes],
1691 [ac_cv_kerberos=no])])
1692 AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
1693 [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
1694 [ac_cv_kerberos5=yes],
1695 [ac_cv_kerberos5=no])])
1697 if test "$ac_cv_kerberos" = yes ; then
1699 AC_DEFINE(HAVE_KERBEROS)
1702 if test "$ac_cv_kerberos5" = yes ; then
1704 # Andrew Snare <ajs@pigpond.com> wrote:
1706 # You were assuming that if kerberosV (krb5) was found, then kerberosIV
1707 # (krb4) was also available. This turns out not to be the case with
1708 # mit-krb-1.2.7; apparently backwards-compatibility with KerberosIV
1711 # So, disable kerberosV support if libkrb4 can't be found.
1712 # This is not the best solution, but it makes the compile not fail.
1714 AC_CHECK_X_LIB(krb4, krb_get_tf_realm,
1715 [have_kerberos=yes],
1717 if test "$have_kerberos" = yes ; then
1719 AC_DEFINE(HAVE_KERBEROS)
1720 AC_DEFINE(HAVE_KERBEROS5)
1723 AC_MSG_WARN([Cannot find compat lib (libkrb4) needed to use Kerberos 5])
1728 if test "$have_kerberos5" = yes ; then
1729 # from Matt Knopp <mhat@infocalypse.netlag.com>
1730 # (who got it from amu@mit.edu)
1732 PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"
1734 # jwz: MacOS X uses -lkrb5, but not -lcrypt
1735 AC_CHECK_X_LIB(crypt, crypt, [PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1737 elif test "$have_kerberos" = yes ; then
1738 # from Tim Showalter <tjs@psaux.com> for FreeBSD 4.2
1739 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err"
1742 if test "$have_kerberos" = yes ; then
1743 AC_CHECK_FUNC(res_search,,
1744 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1745 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1751 ###############################################################################
1753 # Check for the nine billion variants of shadow passwords...
1755 ###############################################################################
1760 with_shadow_req=unspecified
1763 [ --with-shadow Include support for shadow password authentication.],
1764 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1766 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1768 if test "$enable_locking" = no ; then
1774 ###############################################################################
1776 # Check for Sun "adjunct" passwords.
1778 ###############################################################################
1780 if test "$with_shadow" = yes ; then
1781 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1782 [AC_TRY_X_COMPILE([#include <stdlib.h>
1784 #include <sys/types.h>
1785 #include <sys/label.h>
1786 #include <sys/audit.h>
1787 #include <pwdadj.h>],
1788 [struct passwd_adjunct *p = getpwanam("nobody");
1789 const char *pw = p->pwa_passwd;],
1790 [ac_cv_sun_adjunct=yes],
1791 [ac_cv_sun_adjunct=no])])
1792 if test "$ac_cv_sun_adjunct" = yes; then
1793 have_shadow_adjunct=yes
1800 ###############################################################################
1802 # Check for DEC and SCO so-called "enhanced" security.
1804 ###############################################################################
1806 if test "$with_shadow" = yes ; then
1807 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1808 [AC_TRY_X_COMPILE([#include <stdlib.h>
1810 #include <sys/types.h>
1812 #include <sys/security.h>
1814 [struct pr_passwd *p;
1816 set_auth_parameters(0, 0);
1817 check_auth_parameters();
1818 p = getprpwnam("nobody");
1819 pw = p->ufld.fd_encrypt;],
1820 [ac_cv_enhanced_passwd=yes],
1821 [ac_cv_enhanced_passwd=no])])
1822 if test $ac_cv_enhanced_passwd = yes; then
1823 have_shadow_enhanced=yes
1827 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1828 # (I'm told it needs -lcurses too, but I don't understand why.)
1829 # But on DEC, it's in -lsecurity.
1831 AC_CHECK_LIB(prot, getprpwnam,
1832 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1833 [AC_CHECK_LIB(security, getprpwnam,
1834 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1839 ###############################################################################
1841 # Check for HP's entry in the "Not Invented Here" Sweepstakes.
1843 ###############################################################################
1845 if test "$with_shadow" = yes ; then
1846 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1847 [AC_TRY_X_COMPILE([#include <stdlib.h>
1849 #include <sys/types.h>
1851 #include <hpsecurity.h>
1853 [struct s_passwd *p = getspwnam("nobody");
1854 const char *pw = p->pw_passwd;],
1855 [ac_cv_hpux_passwd=yes],
1856 [ac_cv_hpux_passwd=no])])
1857 if test "$ac_cv_hpux_passwd" = yes; then
1858 have_shadow_hpux=yes
1862 # on HPUX, bigcrypt is in -lsec
1863 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1868 ###############################################################################
1870 # Check for FreeBSD-style shadow passwords.
1872 # On FreeBSD, getpwnam() and friends work just like on non-shadow-
1873 # password systems -- except you only get stuff in the pw_passwd field
1874 # if the running program is setuid. So, guess that we've got this
1875 # lossage to contend with if /etc/master.passwd exists, and default to
1876 # a setuid installation.
1878 ###############################################################################
1880 if test "$with_shadow" = yes ; then
1881 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1882 [if test -f /etc/master.passwd ; then
1883 ac_cv_master_passwd=yes
1885 ac_cv_master_passwd=no
1887 if test "$ac_cv_master_passwd" = yes; then
1893 ###############################################################################
1895 # Check for traditional (ha!) shadow passwords.
1897 ###############################################################################
1899 if test "$with_shadow" = yes ; then
1900 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1901 [AC_TRY_X_COMPILE([#include <stdlib.h>
1903 #include <sys/types.h>
1905 #include <shadow.h>],
1906 [struct spwd *p = getspnam("nobody");
1907 const char *pw = p->sp_pwdp;],
1909 [ac_cv_shadow=no])])
1910 if test "$ac_cv_shadow" = yes; then
1914 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1916 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1917 if test "$have_getspnam" = no ; then
1918 AC_CHECK_LIB(gen, getspnam,
1919 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1925 ###############################################################################
1927 # Check for other libraries needed for non-shadow passwords.
1929 ###############################################################################
1931 if test "$enable_locking" = yes ; then
1933 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1935 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1936 if test "$have_crypt" = no ; then
1937 AC_CHECK_LIB(crypt, crypt,
1938 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1943 # Most of the above shadow mechanisms will have set need_setuid to yes,
1944 # if they were found. But, on some systems, we need setuid even when
1945 # using plain old vanilla passwords.
1947 if test "$enable_locking" = yes ; then
1949 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1956 if test "$have_shadow_adjunct" = yes ; then
1957 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1958 elif test "$have_shadow_enhanced" = yes ; then
1959 AC_DEFINE(HAVE_ENHANCED_PASSWD)
1960 elif test "$have_shadow_hpux" = yes ; then
1961 AC_DEFINE(HAVE_HPUX_PASSWD)
1962 elif test "$have_shadow" = yes ; then
1963 AC_DEFINE(HAVE_SHADOW_PASSWD)
1967 ###############################################################################
1969 # Check for external password helper
1970 # On SuSE, instead of having xscreensaver be a setuid program, they
1971 # fork an external program that takes the password on stdin, and
1972 # returns true if that password is a valid one. Then only that
1973 # smaller program needs to be setuid.
1975 # (Note that this external program is not a GUI: the GUI is still
1976 # all in xscreensaver itself; the external program just does auth.)
1978 ###############################################################################
1980 have_passwd_helper=no
1981 with_passwd_helper_req=unspecified
1983 AC_ARG_WITH(passwd-helper,
1984 [ --with-passwd-helper Include support for an external password
1985 verification helper program.],
1986 [with_passwd_helper="$withval"; with_passwd_helper_req="$withval"],[with_passwd_helper=no])
1987 # no HANDLE_X_PATH_ARG for this one
1989 if test "$enable_locking" = no ; then
1990 with_passwd_helper_req=no
1991 with_passwd_helper=no
1994 case "$with_passwd_helper" in
1997 AC_DEFINE_UNQUOTED(PASSWD_HELPER_PROGRAM, "$with_passwd_helper")
1998 have_passwd_helper=yes;;
2000 echo "error: --with-passwd-helper needs full pathname of helper (not '$with_passwd_helper')." >&2
2005 ###############################################################################
2007 # Check for -lgtk (and Gnome stuff)
2009 ###############################################################################
2012 with_gtk_req=unspecified
2014 User interface options:
2016 --with-gtk Use the Gtk toolkit for the user interface.],
2017 [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
2019 # if --with-gtk=/directory/ was specified, remember that directory so that
2020 # we can also look for the `gtk-config' program in that directory.
2030 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
2032 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
2033 echo "error: must be yes or no: --with-gtk=$with_gtk"
2038 parse_gtk_version_string() {
2041 maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
2042 min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
2044 ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
2045 if test -z "$ac_gtk_version"; then
2046 ac_gtk_version=unknown
2047 ac_gtk_version_string=unknown
2051 # Find pkg-config... (need this for both gtk and gdk_pixbuf.)
2052 # if the user specified --with-gtk=/foo/ then look there.
2055 if test ! -z "$gtk_dir"; then
2056 # canonicalize slashes.
2057 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2058 gtk_path="$foo:$gtk_path"
2061 AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path)
2063 if test -z "$pkg_config" ; then
2064 AC_MSG_WARN([pkg-config not found!])
2069 # Utility function for running pkg-config-based tests...
2072 pkg_check_version() {
2073 if test "$ok" = yes ; then
2076 AC_MSG_CHECKING(for $req)
2077 if $pkg_config --exists "$req" ; then
2078 vers=`$pkg_config --modversion "$req"`
2079 if $pkg_config --exists "$req >= $min" ; then
2080 AC_MSG_RESULT($vers)
2084 AC_MSG_RESULT($vers (wanted >= $min))
2100 if test "$with_gtk" = yes; then
2104 pkg_check_version gtk+-2.0 2.0.1 ; ac_gtk_version_string="$vers"
2105 pkg_check_version gmodule-2.0 2.0.0
2106 pkg_check_version libxml-2.0 2.4.6
2107 pkg_check_version libglade-2.0 2.0.0
2108 pkg_check_version gdk-pixbuf-2.0 2.0.0
2109 pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
2112 if test "$have_gtk" = no; then
2113 if test -n "$ac_gtk_version_string" ; then
2114 gtk_halfassed="$ac_gtk_version_string"
2115 gtk_halfassed_lib="$req"
2119 if test "$have_gtk" = yes; then
2120 parse_gtk_version_string
2124 if test "$have_gtk" = yes; then
2125 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
2126 [ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`])
2127 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
2128 [ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs`])
2130 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
2131 ac_gtk_config_libs=$ac_cv_gtk_config_libs
2135 GNOME_PANELDIR='$(GNOME_PANELDIR2)'
2136 if test "$have_gtk" = yes; then
2137 GNOME_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
2138 GNOME_DATADIR="$GNOME_DATADIR/share"
2141 if test "$have_gtk" = yes; then
2142 INCLUDES="$INCLUDES $ac_gtk_config_cflags"
2143 GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
2145 AC_DEFINE(HAVE_GTK2)
2152 # Check for the Gnome Help Browser.
2154 if test "$have_gtk" = yes; then
2155 AC_CHECK_PROGS(have_gnome_help, yelp gnome-help-browser, no)
2156 if test "$have_gnome_help" != no; then
2162 ###############################################################################
2166 ###############################################################################
2169 with_motif_req=unspecified
2170 AC_ARG_WITH(motif,[ --with-motif Use the Motif toolkit for the user interface
2171 (not recommended.)],
2172 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no])
2174 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
2176 if test "$with_motif" != yes -a "$with_motif" != no ; then
2177 echo "error: must be yes or no: --with-motif=$with_motif"
2181 if test "$with_motif" = yes; then
2183 AC_CHECK_X_HEADER(Xm/Xm.h,
2185 AC_DEFINE(HAVE_MOTIF)
2186 MOTIF_LIBS="$MOTIF_LIBS -lXm"],,
2187 [#include <stdlib.h>
2189 #include <X11/Intrinsic.h>])
2193 if test "$have_motif" = yes; then
2194 AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],,
2195 [#include <stdlib.h>
2197 #include <X11/Intrinsic.h>])
2201 ###############################################################################
2203 # Checking whether Motif is really Lesstif.
2205 ###############################################################################
2208 if test "$have_motif" = yes ; then
2209 AC_CACHE_CHECK([whether Motif is really LessTif],
2211 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
2212 [long vers = LesstifVersion;],
2213 [ac_cv_have_lesstif=yes],
2214 [ac_cv_have_lesstif=no])])
2215 have_lesstif=$ac_cv_have_lesstif
2219 lesstif_version=unknown
2220 lesstif_version_string=unknown
2222 if test "$have_lesstif" = yes ; then
2224 echo unknown > conftest-lt
2225 AC_CACHE_CHECK([LessTif version number],
2226 ac_cv_lesstif_version_string,
2227 [AC_TRY_X_RUN([#include <stdio.h>
2230 FILE *f = fopen("conftest-lt", "w");
2232 fprintf(f, "%d %d.%d\n", LesstifVersion,
2233 LESSTIF_VERSION, LESSTIF_REVISION);
2237 [ltv=`cat conftest-lt`
2238 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
2239 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
2240 [ac_cv_lesstif_version=unknown
2241 ac_cv_lesstif_version_string=unknown],
2242 [ac_cv_lesstif_version=unknown
2243 ac_cv_lesstif_version_string=unknown])])
2245 lesstif_version=$ac_cv_lesstif_version
2246 lesstif_version_string=$ac_cv_lesstif_version_string
2251 if test "$have_motif" = yes ; then
2253 echo unknown > conftest-mt
2254 AC_CACHE_CHECK([Motif version number],
2255 ac_cv_motif_version_string,
2256 [AC_TRY_X_RUN([#include <stdio.h>
2259 FILE *f = fopen("conftest-mt", "w");
2261 fprintf(f, "%d %d.%d\n", XmVersion,
2262 XmVERSION, XmREVISION);
2266 [mtv=`cat conftest-mt`
2267 ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
2268 ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
2269 [ac_cv_motif_version=unknown
2270 ac_cv_motif_version_string=unknown],
2271 [ac_cv_motif_version=unknown
2272 ac_cv_motif_version_string=unknown])])
2274 motif_version=$ac_cv_motif_version
2275 motif_version_string=$ac_cv_motif_version_string
2280 ###############################################################################
2282 # Checking whether Motif requires -lXpm.
2284 # If this is Motif 2.x, and we have XPM, then link against XPM as well.
2285 # The deal is, Motif 2.x requires XPM -- but it's a compilation option
2286 # of the library whether to build the XPM code into libXm, or whether
2287 # to rely on an external libXm. So the only way to tell whether XPM is
2288 # a link-time requirement is to examine libXm.a, which is very
2289 # difficult to do in an autoconf script. So... if it's Motif 2.x, we
2290 # always link against XPM if the XPM lib exists (and this will be a
2291 # no-op if libXm happens to already have the XPM code in it.)
2293 ###############################################################################
2295 motif_requires_xpm=no
2296 if test "$have_motif" = yes ; then
2297 AC_MSG_CHECKING(whether Motif requires XPM)
2298 if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
2300 motif_requires_xpm=yes
2301 AC_MSG_RESULT(maybe)
2308 ###############################################################################
2310 # Checking whether Motif requires -lXp.
2312 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
2313 # Extension". Why this extension isn't in -lXext with all the others,
2316 ###############################################################################
2319 if test "$have_motif" = yes ; then
2321 AC_CHECK_X_LIB(Xp, XpQueryExtension,
2322 [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
2323 [true], -lX11 -lXext -lm)
2327 ###############################################################################
2329 # Checking whether Motif requires -lXintl (for _Xsetlocale.)
2331 ###############################################################################
2334 if test "$have_motif" = yes ; then
2335 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
2337 if test "$have_xintl" = yes; then
2338 MOTIF_LIBS="$MOTIF_LIBS -lXintl"
2343 ###############################################################################
2345 # Check for -lGL or -lMesaGL.
2347 ###############################################################################
2351 with_gl_req=unspecified
2356 --with-gl Build those demos which depend on OpenGL.],
2357 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
2359 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
2361 ac_mesagl_version=unknown
2362 ac_mesagl_version_string=unknown
2364 if test "$with_gl" = yes; then
2365 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
2366 if test "$have_gl" = yes ; then
2367 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no,
2368 [#include <GL/gl.h>])
2371 # If we have the headers, try and figure out which vendor it's from.
2373 if test "$have_gl" = yes ; then
2375 # We need to know whether it's MesaGL so that we know which libraries
2378 AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
2379 [ac_cv_have_mesa_gl=no
2380 AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
2382 ac_have_mesa_gl=$ac_cv_have_mesa_gl
2389 # Some versions of MesaGL are compiled to require -lpthread.
2390 # So if the Mesa headers exist, and -lpthread exists, then always
2391 # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
2393 if test "$ac_have_mesa_gl" = yes; then
2394 AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
2398 # If we have Mesa headers, check to see if we can link against -lMesaGL.
2399 # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
2400 # Else, warn that GL is busted. (We have the headers, but no libs.)
2403 if test "$ac_have_mesa_gl" = yes ; then
2404 AC_CHECK_X_LIB(MesaGL, glXCreateContext,
2406 GL_LIBS="-lMesaGL -lMesaGLU $VIDMODE_LIBS $GL_LIBS"],
2407 [], -lMesaGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm)
2410 if test "$gl_lib_1" = "" ; then
2411 AC_CHECK_X_LIB(GL, glXCreateContext,
2413 GL_LIBS="-lGL -lGLU $VIDMODE_LIBS $GL_LIBS"],
2414 [], -lGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm)
2417 if test "$gl_lib_1" = "" ; then
2418 # we have headers, but no libs -- bail.
2423 # linking works -- we can build the GL hacks.
2425 if test "$ac_have_mesa_gl" = yes ; then
2426 AC_DEFINE(HAVE_MESA_GL)
2432 # Now that we know we have GL headers and libs, do some more GL testing.
2435 if test "$have_gl" = yes ; then
2436 # If it's MesaGL, we'd like to issue a warning if the version number
2437 # is less than or equal to 2.6, because that version had a security bug.
2439 if test "$ac_have_mesa_gl" = yes; then
2441 AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
2442 [cat > conftest.$ac_ext <<EOF
2443 #line __oline__ "configure"
2444 #include "confdefs.h"
2446 #ifndef MESA_MAJOR_VERSION
2447 # include <GL/xmesa.h>
2448 # ifdef XMESA_MAJOR_VERSION
2449 /* Around Mesa 3.2, they took out the Mesa version number, so instead,
2450 we have to check the XMesa version number (the number of the X protocol
2451 support, which seems to be the same as the Mesa version number.)
2453 # define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
2454 # define MESA_MINOR_VERSION XMESA_MINOR_VERSION
2456 /* Oh great. Some time after 3.4, they took out the xmesa.h header file,
2457 so we have no way of telling what version of Mesa this is at all.
2458 So, we'll guess that the osmesa version (the "offscreen protocol")
2459 is less than or equal to the real mesa version number. Except that
2460 if OSmesa is 3.3, assume at least Mesa 3.4, since OSmesa was 3.3 in
2461 Mesa 3.4. And Mesa 3.3 had xmesa.h. What a complete load of shit!
2463 # include <GL/osmesa.h>
2464 # define MESA_MAJOR_VERSION OSMESA_MAJOR_VERSION
2465 # define MESA_MINOR_VERSION OSMESA_MINOR_VERSION or newer, probably?
2466 # if OSMESA_MAJOR_VERSION == 3 && OSMESA_MINOR_VERSION == 3
2467 # undef MESA_MINOR_VERSION
2468 # define MESA_MINOR_VERSION 4 or newer, probably?
2472 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
2475 ac_save_CPPFLAGS="$CPPFLAGS"
2476 if test \! -z "$includedir" ; then
2477 CPPFLAGS="$CPPFLAGS -I$includedir"
2479 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2481 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | grep configure:`
2485 mglv=`echo "$mglv" | sed -n \
2486 's/^configure: *\([0-9][0-9]*\) *\([0-9].*\)$/\1.\2/p'`
2489 rm -f conftest.$ac_ext
2491 CPPFLAGS="$ac_save_CPPFLAGS"
2493 if test "$mglv" = ""; then
2494 ac_mesagl_version=unknown
2495 ac_mesagl_version_string=unknown
2497 ac_mesagl_version_string="$mglv"
2500 maj=`echo "$mglv" | sed -n 's/^\([0-9][0-9]*\)\..*$/\1/p'`
2501 min=`echo "$mglv" | sed -n 's/^.*\.\([0-9][0-9]*\).*$/\1/p'`
2503 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
2504 if test -z "$ac_mesagl_version"; then
2505 ac_mesagl_version=unknown
2506 ac_mesagl_version_string=unknown
2509 ac_cv_mesagl_version=$ac_mesagl_version
2510 ac_cv_mesagl_version_string=$ac_mesagl_version_string
2512 ac_mesagl_version=$ac_cv_mesagl_version
2513 ac_mesagl_version_string=$ac_cv_mesagl_version_string
2517 # Check for OpenGL 1.1 features.
2519 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
2520 [true], $GL_LIBS -lX11 -lXext -lm)
2523 elif test "$with_gl" != no; then
2524 echo "error: must be yes or no: --with-gl=$with_gl"
2529 ###############################################################################
2533 ###############################################################################
2536 with_gle_req=unspecified
2539 [ --with-gle Build those demos which depend on GLE
2540 (the OpenGL "extrusion" library.)],
2541 [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
2543 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
2547 if test "$have_gl" = no ; then
2549 elif test "$with_gle" = yes; then
2551 AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no,
2552 [#include <GL/gl.h>])
2553 if test "$have_gle3" = yes ; then
2556 AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no,
2557 [#include <GL/gl.h>])
2558 if test "$have_gle" = yes ; then
2559 AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no,
2560 [#include <GL/gl.h>])
2564 if test "$have_gle" = yes ; then
2567 AC_CHECK_X_LIB(gle, gleCreateGC,
2568 [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
2569 [], $GL_LIBS -lX11 -lXext -lm)
2571 if test "$have_gle" = yes ; then
2575 # sometimes the libmatrix stuff is included in libgle. look there first.
2577 # I don't get it. For some reason, this test passes on SGI, as if
2578 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
2579 # Yet the link is succeeding. Why???
2581 # AC_CHECK_X_LIB(gle, uview_direction_d,
2582 # [have_gle=yes; gle_halfassed=no],
2583 # [], $GL_LIBS -lX11 -lXext -lm)
2585 # As of GLE 3 this is in libgle, and has changed name to uview_direction!
2587 if test "$have_gle3" = yes ; then
2588 AC_CHECK_X_LIB(gle, uview_direction,
2589 [have_gle=yes; gle_halfassed=no],
2590 [], $GL_LIBS -lX11 -lXext -lm)
2592 # if it wasn't in libgle, then look in libmatrix.
2593 if test "$have_gle" = no ; then
2594 AC_CHECK_X_LIB(matrix, uview_direction_d,
2595 [have_gle=yes; gle_halfassed=no;
2596 GLE_LIBS="$GLE_LIBS -lmatrix"],
2597 [], $GL_LIBS -lX11 -lXext -lm)
2601 if test "$have_gle" = yes ; then
2603 if test "$have_gle3" = yes ; then
2604 AC_DEFINE(HAVE_GLE3)
2608 elif test "$with_gle" != no; then
2609 echo "error: must be yes or no: --with-gle=$with_gle"
2615 ###############################################################################
2617 # Check for -lgdk_pixbuf.
2618 # These tests are for gdk_pixbuf usage of the hacks,
2619 # not xscreensaver-demo (thus we have to test again to get
2620 # the libraries right: don't want to pull in all of GTK
2623 ###############################################################################
2626 with_gdk_pixbuf_req=unspecified
2628 [ --with-pixbuf Include support for the GDK-Pixbuf library in some
2629 demos, which will make it possible for them to read
2630 GIF, JPEG, and PNG files as well.],
2631 [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
2632 [with_gdk_pixbuf=yes])
2634 # if --with-pixbuf=/directory/ was specified, remember that directory so that
2635 # we can also look for the `gdk-pixbuf-config' program in that directory.
2636 case "$with_gdk_pixbuf" in
2638 gdk_pixbuf_dir="$with_gdk_pixbuf"
2645 HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF)
2647 if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then
2648 echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
2652 if test "$with_gdk_pixbuf" = yes; then
2658 pkg_check_version gdk-pixbuf-2.0 2.0.0
2659 pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
2660 have_gdk_pixbuf="$ok"
2662 if test "$have_gdk_pixbuf" = yes; then
2663 AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
2664 [ac_cv_gdk_pixbuf_config_cflags=`$pkg_config --cflags $pkgs`])
2665 AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
2666 [ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs`])
2668 ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
2669 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
2672 if test "$have_gdk_pixbuf" = yes; then
2674 # we appear to have pixbuf; check for headers/libs to be sure.
2676 ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
2677 CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
2681 # check for header A...
2682 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
2684 # if that worked, check for header B...
2685 if test "$have_gdk_pixbuf" = yes; then
2687 gdk_pixbuf_halfassed=yes
2688 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h,
2689 [have_gdk_pixbuf=yes
2690 gdk_pixbuf_halfassed=no])
2692 # yay, it has a new name in Gtk 2.x...
2693 if test "$have_gdk_pixbuf" = no; then
2695 gdk_pixbuf_halfassed=yes
2696 AC_CHECK_X_HEADER(gdk-pixbuf-xlib/gdk-pixbuf-xlib.h,
2697 [have_gdk_pixbuf=yes
2698 gdk_pixbuf_halfassed=no])
2701 CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
2704 if test "$have_gdk_pixbuf" = yes; then
2705 # we have the headers, now check for the libraries
2707 gdk_pixbuf_halfassed=yes
2709 AC_MSG_RESULT(checking for gdk_pixbuf usability...)
2712 AC_CHECK_X_LIB(c, gdk_pixbuf_new_from_file, [have_gdk_pixbuf=yes],,
2713 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
2715 if test "$have_gdk_pixbuf" = yes; then
2717 AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init,
2718 [have_gdk_pixbuf=yes
2719 gdk_pixbuf_halfassed=no],,
2720 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
2724 if test "$have_gdk_pixbuf" = yes; then
2725 INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
2726 XPM_LIBS="$ac_gdk_pixbuf_config_libs"
2727 AC_DEFINE(HAVE_GDK_PIXBUF)
2729 AC_MSG_RESULT(checking for gdk_pixbuf usability... no)
2734 ###############################################################################
2738 ###############################################################################
2741 with_xpm_req=unspecified
2743 [ --with-xpm Include support for XPM files in some demos.
2744 (Not needed if Pixbuf is used.)],
2745 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2747 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2749 if test "$with_xpm" = yes; then
2750 AC_CHECK_X_HEADER(X11/xpm.h,
2753 XPM_LIBS="-lXpm $XPM_LIBS"],,
2754 [#include <X11/Xlib.h>])
2755 elif test "$with_xpm" != no; then
2756 echo "error: must be yes or no: --with-xpm=$with_xpm"
2760 # See comment near $motif_requires_xpm, above.
2761 # Need to do this here, after both Motif and XPM have been checked for.
2763 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2764 if test "$motif_requires_xpm" = yes ; then
2765 MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
2770 ###############################################################################
2774 ###############################################################################
2777 with_jpeg_req=unspecified
2780 [ --with-jpeg Include support for the JPEG library.],
2781 [with_jpeg="$withval"; with_jpeg_req="$withval"],
2784 HANDLE_X_PATH_ARG(with_jpeg, --with-jpeg, JPEG)
2786 if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then
2787 echo "error: must be yes or no: --with-jpeg=$with_jpeg"
2791 if test "$with_jpeg" = yes; then
2794 AC_CHECK_X_HEADER(jpeglib.h, [have_jpeg=yes])
2796 if test "$have_jpeg" = yes; then
2797 # we have the header, now check for the library
2800 AC_CHECK_X_LIB(jpeg, jpeg_start_compress,
2804 AC_DEFINE(HAVE_JPEGLIB)])
2809 ###############################################################################
2811 # Check for pty support for 'phosphor'
2813 ###############################################################################
2816 AC_CHECK_HEADERS(pty.h util.h)
2817 AC_CHECK_X_LIB(util, forkpty,
2819 AC_DEFINE(HAVE_FORKPTY)])
2822 ###############################################################################
2824 # Check for the XSHM server extension.
2826 ###############################################################################
2829 with_xshm_req=unspecified
2830 AC_ARG_WITH(xshm-ext,
2831 [ --with-xshm-ext Include support for the Shared Memory extension.],
2832 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
2834 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
2836 if test "$with_xshm" = yes; then
2838 # first check for Xshm.h.
2839 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],,
2840 [#include <X11/Xlib.h>])
2842 # if that succeeded, then check for sys/ipc.h.
2843 if test "$have_xshm" = yes; then
2845 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
2848 # if that succeeded, then check for sys/shm.h.
2849 if test "$have_xshm" = yes; then
2851 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
2854 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
2855 # to exist, but the library code to not exist. And even better, the library
2856 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
2857 # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and
2858 # that's not quite right, but close enough.)
2862 if [ `uname -v` -eq 3 ]; then
2864 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
2865 [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
2866 [true], -lX11 -lXext -lm)
2871 # if that succeeded, then we've really got it.
2872 if test "$have_xshm" = yes; then
2873 AC_DEFINE(HAVE_XSHM_EXTENSION)
2876 elif test "$with_xshm" != no; then
2877 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
2882 ###############################################################################
2884 # Check for the DOUBLE-BUFFER server extension.
2886 ###############################################################################
2889 with_xdbe_req=unspecified
2890 AC_ARG_WITH(xdbe-ext,
2891 [ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.],
2892 [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
2894 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
2896 if test "$with_xdbe" = yes; then
2898 AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],,
2899 [#include <X11/Xlib.h>])
2900 if test "$have_xdbe" = yes; then
2901 AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
2904 elif test "$with_xdbe" != no; then
2905 echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
2910 ###############################################################################
2912 # Check for the SGI XReadDisplay server extension.
2914 # Note: this has to be down here, rather than up with the other server
2915 # extension tests, so that the output of `configure --help' is in the
2916 # right order. Arrgh!
2918 ###############################################################################
2921 with_readdisplay_req=unspecified
2922 AC_ARG_WITH(readdisplay,
2923 [ --with-readdisplay Include support for the XReadDisplay extension.],
2924 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
2925 [with_readdisplay=yes])
2927 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
2929 if test "$with_readdisplay" = yes; then
2930 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
2931 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),,
2932 [#include <X11/Xlib.h>])
2933 elif test "$with_readdisplay" != no; then
2934 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
2939 ###############################################################################
2941 # Check for a program to generate random text.
2943 # Zippy is funnier than the idiocy generally spat out by `fortune',
2944 # so first see if "fortune zippy" works. Else, use plain "fortune".
2946 # We used to dig around in Emacs to look for the "yow" program, but
2947 # most people who have Emacs also have "fortune zippy", so nevermind.
2949 ###############################################################################
2952 AC_ARG_WITH(fortune,[
2953 --with-fortune=PROGRAM Some demos are able to run an external program and
2954 display its text; this names the program to use by
2955 default (though it can be overridden with X
2956 resources.) Default is "/usr/games/fortune".],
2957 [with_fortune_req="$withval"; with_fortune="$withval"],[with_fortune=yes])
2959 if test "$with_fortune" = no || test "$with_fortune" = yes ; then
2964 if test -n "$with_fortune_req" ; then
2965 ac_cv_fortune_program=""
2966 case "$with_fortune_req" in
2969 set dummy $with_fortune_req ; fortune_tmp=$2
2970 AC_MSG_CHECKING([for $fortune_tmp])
2971 if test -x "$fortune_tmp" ; then
2979 set dummy $with_fortune_req ; fortune_tmp=$2
2981 unset ac_cv_path_fortune_tmp
2982 AC_PATH_PROG(fortune_tmp, $fortune_tmp, [])
2983 if test -z "$fortune_tmp" ; then
2988 ac_cv_fortune_program="$with_fortune"
2990 elif test -n "$ac_cv_fortune_program"; then
2991 AC_MSG_RESULT([checking for fortune... (cached) $ac_cv_fortune_program])
2994 unset ac_cv_path_fortune_tmp
2997 if test -z "$ac_cv_fortune_program" ; then
2999 # first look for fortune in /usr/games/ (and use absolute path)
3000 AC_PATH_PROGS(fortune_tmp, fortune,, "/usr/games")
3002 # if it's not there, look on $PATH (and don't use absolute path)
3003 if test -z "$fortune_tmp" ; then
3004 AC_CHECK_PROGS(fortune_tmp, fortune)
3007 # if we didn't find anything, then just assume /usr/games/
3008 if test -z "$fortune_tmp" ; then
3009 fortune_tmp="/usr/games/fortune"
3012 ac_cv_fortune_program="$fortune_tmp"
3014 # now check to see whether "fortune zippy" works.
3016 fortune_tmp="$fortune_tmp zippy"
3017 AC_MSG_CHECKING([for zippy quotes])
3018 if ( $fortune_tmp >/dev/null 2>&1 ); then
3019 ac_cv_fortune_program="$fortune_tmp"
3020 AC_MSG_RESULT($fortune_tmp)
3027 unset ac_cv_path_fortune_tmp
3030 AC_DEFINE_UNQUOTED(FORTUNE_PROGRAM, "$ac_cv_fortune_program")
3033 ###############################################################################
3035 # Check whether it's ok to install some hacks as setuid (e.g., "sonar")
3036 # This should be safe, but let's give people the option.
3038 ###############################################################################
3040 setuid_hacks_default=no
3041 setuid_hacks="$setuid_hacks_default"
3042 AC_ARG_WITH(setuid-hacks,
3043 [ --with-setuid-hacks Allow some demos to be installed `setuid root'
3044 (which is needed in order to ping other hosts.)
3046 [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
3048 HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks)
3050 if test "$setuid_hacks" = yes; then
3052 elif test "$setuid_hacks" != no; then
3053 echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks"
3058 ###############################################################################
3060 # Done testing. Now, set up the various -I and -L variables,
3061 # and decide which GUI program to build by default.
3063 ###############################################################################
3070 if test \! -z "$includedir" ; then
3071 INCLUDES="$INCLUDES -I$includedir"
3074 if test \! -z "$libdir" ; then
3075 LDFLAGS="$LDFLAGS -L$libdir"
3079 PREFERRED_DEMO_PROGRAM=''
3081 if test "$have_motif" = yes; then
3082 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
3083 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3085 if test "$have_gtk" = yes; then
3086 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
3087 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3091 if test "$have_kerberos" = yes; then
3092 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
3093 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
3095 if test "$have_pam" = yes; then
3096 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
3097 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
3098 INSTALL_PAM="install-pam"
3100 if test "$have_passwd_helper" = yes; then
3101 PASSWD_SRCS="$PASSWD_SRCS \$(PWHELPER_SRCS)"
3102 PASSWD_OBJS="$PASSWD_OBJS \$(PWHELPER_OBJS)"
3104 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
3105 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
3108 if test "$enable_locking" = yes; then
3109 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
3110 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
3112 LOCK_SRCS='$(NOLOCK_SRCS_1)'
3113 LOCK_OBJS='$(NOLOCK_OBJS_1)'
3116 if test "$ac_macosx" = yes; then
3117 EXES_OSX='$(EXES_OSX)'
3118 SCRIPTS_OSX='$(SCRIPTS_OSX)'
3119 MEN_OSX='$(MEN_OSX)'
3127 INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)'
3129 if test "$need_setuid" = yes; then
3135 if test "$setuid_hacks" = yes; then
3142 if test "$have_gl" = yes; then
3143 GL_EXES='$(GL_EXES)'
3144 GL_UTIL_EXES='$(GL_UTIL_EXES)'
3148 GL_KLUDGE="-${tab} "
3151 if test "$have_gle" = yes; then
3152 GLE_EXES='$(GLE_EXES)'
3153 GLE_KLUDGE="${tab} "
3155 GLE_KLUDGE="-${tab} "
3158 if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then
3159 JPEG_EXES='$(JPEG_EXES)'
3163 # Another substitution in the XScreenSaver.ad.in file:
3165 if test "$have_gnome_help" = yes; then
3174 # Now that we know whether we have Gnome, we can decide where the XML
3175 # config files get installed.
3177 if test -z "$HACK_CONF_DIR" ; then
3178 if test -n "$GNOME_DATADIR" ; then
3179 HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers'
3181 HACK_CONF_DIR='${prefix}/lib/xscreensaver/config'
3187 # After computing $HACK_CONF_DIR, make sure $GLADE_DATADIR has a value
3188 # so that we know where to install the Gtk pixmaps.
3190 # It should usually be "/usr/share/pixmaps/", but we can't just use
3191 # "$(prefix)/share/pixmaps" because that would usually result in
3192 # "/usr/X11R6/share/pixmaps/", which is wrong. It needs to be the
3193 # Gtk prefix, not the overall prefix.
3195 if test -n "$GNOME_DATADIR" ; then
3196 GLADE_DATADIR='$(GNOME_DATADIR)/xscreensaver'
3197 elif test "$have_gtk" = yes; then
3198 GLADE_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3199 GLADE_DATADIR="$GLADE_DATADIR/share/xscreensaver"
3205 # Set PO_DATADIR to something sensible.
3207 AC_MSG_CHECKING([for locale directory])
3208 if test -n "$GNOME_DATADIR" ; then
3209 PO_DATADIR="$GNOME_DATADIR"
3210 elif test "$have_gtk" = yes; then
3211 PO_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3212 PO_DATADIR="$PO_DATADIR/share"
3215 if test -z "$PO_DATADIR" ; then
3217 # #### Total fucking kludge --
3218 # Map /build/prefix/usr/X11R6/share/ to /build/prefix/usr/share/
3219 # but of course we need to expand all the nested variables to do that...
3227 PO_DATADIR=`echo $dd | sed 's@/X11R6/@/@'`
3230 AC_MSG_RESULT($PO_DATADIR/locale)
3233 # canonicalize slashes.
3234 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
3236 # gcc 3.0 likes to issue this warning for every file:
3238 # cc1: warning: changing search order for system directory "/usr/local/include"
3239 # cc1: warning: as it has already been specified as a non-system directory
3241 # Yay. We can only avoid that by deleting "-I${prefix}/include" from the list.
3242 # Which *should* be totally redundant, and thus an ok thing to delete?
3244 INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'`
3247 ###############################################################################
3249 # Perform substitutions and write Makefiles.
3251 ###############################################################################
3255 AC_SUBST(PREFERRED_DEMO_PROGRAM)
3256 AC_SUBST(ALL_DEMO_PROGRAMS)
3257 AC_SUBST(SAVER_LIBS)
3258 AC_SUBST(MOTIF_LIBS)
3267 AC_SUBST(XDPMS_LIBS)
3268 AC_SUBST(PASSWD_LIBS)
3269 AC_SUBST(INSTALL_SETUID)
3270 AC_SUBST(SETUID_HACKS)
3271 AC_SUBST(INSTALL_DIRS)
3272 AC_SUBST(NEED_SETUID)
3273 AC_SUBST(INSTALL_PAM)
3277 AC_SUBST(SCRIPTS_OSX)
3280 AC_SUBST(PASSWD_SRCS)
3281 AC_SUBST(PASSWD_OBJS)
3285 AC_SUBST(SAVER_GL_SRCS)
3286 AC_SUBST(SAVER_GL_OBJS)
3287 AC_SUBST(SAVER_GL_LIBS)
3292 AC_SUBST(GL_UTIL_EXES)
3296 AC_SUBST(GLE_KLUDGE)
3297 AC_SUBST(GNOMEHELP_Y)
3298 AC_SUBST(GNOMEHELP_N)
3300 AC_SUBST(GNOME_DATADIR)
3301 AC_SUBST(GLADE_DATADIR)
3302 AC_SUBST(PO_DATADIR)
3303 AC_SUBST(GNOME_PANELDIR)
3304 AC_SUBST(HACK_CONF_DIR)
3305 AC_SUBST(GTK_EXTRA_OBJS)
3307 APPDEFAULTS=$ac_x_app_defaults
3308 AC_SUBST(APPDEFAULTS)
3311 AC_SUBST(DEPEND_FLAGS)
3312 AC_SUBST(DEPEND_DEFINES)
3321 driver/XScreenSaver.ad
3322 driver/xscreensaver.kss)
3324 ###############################################################################
3326 # Print some warnings at the end.
3328 ###############################################################################
3330 warn_prefix_1=" Warning:"
3331 warn_prefix_2=" Note:"
3332 warn_prefix="$warn_prefix_1"
3335 warnsep=' #################################################################'
3338 if test "$warning" = no ; then
3339 echo '' ; echo "$warnsep" ; echo ''
3346 if test "$warning" = long ; then echo '' ; fi
3349 echo "$warn_prefix $rest"
3356 if test "$was" != no ; then echo '' ; fi
3358 echo "$warn_prefix $rest"
3368 warn_prefix="$warn_prefix_2"
3370 warn_prefix="$warn_prefix_1"
3374 warn_prefix="$warn_prefix_2"
3376 warn_prefix="$warn_prefix_1"
3380 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
3381 warn 'The SGI saver extension was requested, but was not found.'
3384 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
3385 warn 'The MIT saver extension was requested, but was not found.'
3388 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
3389 warn 'The XIdle extension was requested, but was not found.'
3392 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
3393 warn 'The XSHM extension was requested, but was not found.'
3396 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
3397 warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
3400 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
3401 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
3404 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
3405 warn 'The DPMS extension was requested, but was not found.'
3408 if test "$with_xinerama_req" = yes -a "$have_xinerama" = no ; then
3409 warn 'The Xinerama extension was requested, but was not found.'
3412 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
3413 warn 'The XF86VMODE extension was requested, but was not found.'
3416 if test "$with_randr_req" = yes -a "$have_randr" = no ; then
3417 warn 'The RANDR extension was requested, but was not found.'
3420 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
3421 warn "Checking of /proc/interrupts was requested, but it's bogus."
3425 if test "$gtk_halfassed" != no ; then
3426 warnL "GTK version $gtk_halfassed was found, but at least one supporting"
3427 warn2 "library ($gtk_halfassed_lib) was not, so GTK can't be used."
3428 warn2 "Perhaps some of the development packages are not installed?"
3429 if test "$have_gtk" = yes ; then
3430 v="$ac_gtk_version_string"
3431 warn2 "GTK $v is also installed, so it will be used instead."
3432 warn2 "Please read the above output and the \`config.log' file"
3433 warn2 "for more details."
3438 warn2 'Though the Motif front-end to xscreensaver is still'
3439 warn2 'maintained, it is no longer being updated with new'
3440 warn2 'features: all new development on the xscreensaver-demo'
3441 warn2 'program is happening in the GTK version, and not in the'
3442 warn2 'Motif version. It is recommended that you build against'
3443 warn2 'GTK instead of Motif. See <http://www.gtk.org/>.'
3446 if test "$have_motif" = no -a "$have_gtk" = no; then
3448 if test "$with_motif" = yes; then
3449 warnL "Neither the GTK nor Motif libraries were found; the"
3450 warn2 "\`xscreensaver-demo' program requires one of these."
3454 warnL "The GTK libraries do not seem to be available; the"
3455 warn2 "\`xscreensaver-demo' program requires them."
3457 # warn2 'You can use Motif or Lesstif instead of GTK (use the'
3458 # warn2 "\`--with-motif' option) but that is NOT recommended."
3462 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
3463 warnL "Use of Motif was requested, but it wasn't found;"
3464 warn2 "Gtk will be used instead."
3466 elif test "$jurassic_gtk" = yes ; then
3470 v="$ac_gtk_version_string"
3471 if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
3472 warnL "Use of Gtk was requested, but its version number is unknown;"
3473 elif test "$with_gtk_req" = yes ; then
3474 warnL "Use of Gtk was requested, but it is version $v;"
3476 warnL "Gtk was found on this system, but it is version $v;"
3479 warn2 "Gtk $pref_gtk or newer is required."
3481 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
3482 warnL "Use of Gtk was requested, but it wasn't found."
3486 if test "$have_gtk" = yes -a "$have_gdk_pixbuf" = no ; then
3487 warn "GTK is being used, but the GDK-Pixbuf library and/or"
3488 warn2 "headers were not found. That can't be good. Please"
3489 warn2 "install the GDK-Pixbuf development kit and re-configure."
3492 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
3494 preferred_lesstif=0.92
3496 if test "$lesstif_version" = unknown; then
3497 warnL "Unable to determine the LessTif version number!"
3498 warn2 "Make sure you are using version $preferred_lesstif or newer."
3499 warn2 "See <http://www.lesstif.org/>."
3501 elif test \! $lesstif_version -gt 82; then
3502 warnL "LessTif version $lesstif_version_string is being used."
3503 warn2 "LessTif versions 0.82 and earlier are too buggy to"
3504 warn2 "use with XScreenSaver; it is strongly recommended"
3505 warn2 "that you upgrade to at least version $preferred_lesstif!"
3506 warn2 "See <http://www.lesstif.org/>."
3511 if test "$have_motif" = yes -a "$have_gtk" = no ; then
3512 warn 'Motif is being used, and GTK is not.'
3518 if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
3519 warnL 'Use of XPM was requested, but it was not found.'
3522 if test "$with_gdk_pixbuf_req" = yes -a "$have_gdk_pixbuf" = no; then
3523 warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
3526 if test "$have_gdk_pixbuf" = no -o "$gdk_pixbuf_halfassed" = yes || \
3527 test "$have_gdk_pixbuf" = no -a "$have_xpm" = no ; then
3529 if test "$with_gdk_pixbuf_req" = yes ; then
3531 elif test "$with_gdk_pixbuf_req" = no ; then
3532 warnL 'The GDK-Pixbuf library is not being used.'
3534 warnL 'The GDK-Pixbuf library was not found.'
3537 if test "$with_xpm_req" = yes -o "$have_xpm" = yes ; then
3539 elif test "$with_xpm_req" = no ; then
3540 warnL 'The XPM library is not being used.'
3542 warnL 'The XPM library was not found.'
3545 if test "$have_gdk_pixbuf" = no -a "$have_xpm" = yes ; then
3546 warn2 'The XPM library is being used instead.'
3549 if test "$gdk_pixbuf_halfassed" = yes ; then
3551 warn2 'More specifically, we found the headers, but not the'
3552 warn2 'libraries; so either GDK-Pixbuf is half-installed on this'
3553 warn2 "system, or something else went wrong. The \`config.log'"
3554 warn2 'file might contain some clues.'
3558 warn2 'Some of the demos will not use images as much as they could.'
3559 warn2 'You should consider installing GDK-Pixbuf and re-running'
3560 warn2 'configure. (GDK-Pixbuf is recommended over XPM, as it'
3561 warn2 'provides support for more image formats.)'
3565 if test "$have_jpeg" = no ; then
3566 if test "$with_jpeg_req" = yes ; then
3567 warnL 'Use of libjpeg was requested, but it was not found.'
3568 elif test "$with_jpeg_req" = no ; then
3569 noteL 'The JPEG library is not being used.'
3571 noteL 'The JPEG library was not found.'
3574 if test "$jpeg_halfassed" = yes ; then
3576 warn2 'More specifically, we found the headers, but not the'
3577 warn2 'library; so either JPEG is half-installed on this'
3578 warn2 "system, or something else went wrong. The \`config.log'"
3579 warn2 'file might contain some clues.'
3583 if test "$have_gdk_pixbuf" = no ; then
3584 warn2 "This means that it won't be possible for the image-manipulating"
3585 warn2 "display modes to load files from disk; and it also means that"
3586 warn2 "the \`webcollage' program will be much slower."
3588 warn2 "This means the \`webcollage' program will be much slower."
3593 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
3594 preferred_mesagl=3.4
3595 mgv="$ac_mesagl_version_string"
3596 pgl="$preferred_mesagl"
3598 if test "$ac_mesagl_version" = unknown; then
3599 warnL "Unable to determine the MesaGL version number!"
3600 warn2 "Make sure you are using version $preferred_mesagl or newer."
3602 elif test \! "$ac_mesagl_version" -gt 2006; then
3603 warnL "MesaGL version number is $mgv --"
3604 warn2 "MesaGL 2.6 and earlier have a security bug. It is strongly"
3605 warn2 "recommended that you upgrade to at least version $preferred_mesagl."
3607 elif test \! "$ac_mesagl_version" -gt 3003; then
3608 warnL "MesaGL version number is $mgv --"
3609 warn2 "MesaGL 3.3 and earlier have some bugs; it is recommended"
3610 warn2 "that you upgrade to $pgl or newer."
3614 if test "$have_gl" = no ; then
3615 if test "$with_gl_req" = yes ; then
3616 warnL 'Use of GL was requested, but it was not found.'
3617 elif test "$with_gl_req" = no ; then
3618 noteL 'The OpenGL 3D library is not being used.'
3620 noteL 'The OpenGL 3D library was not found.'
3623 if test "$gl_halfassed" = yes ; then
3625 warn2 'More specifically, we found the headers, but not the'
3626 warn2 'libraries; so either GL is half-installed on this'
3627 warn2 "system, or something else went wrong. The \`config.log'"
3628 warn2 'file might contain some clues.'
3632 warn2 'Those demos which use 3D will not be built or installed.'
3633 warn2 'You might want to consider installing OpenGL and'
3634 warn2 "re-running configure. If your vendor doesn't ship"
3635 warn2 'their own implementation of OpenGL, you can get a free'
3636 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
3637 warn2 'info, see <http://www.opengl.org/>.'
3642 if test "$have_gl" = yes -a "$have_gle" = no ; then
3644 # nobody cares about this; don't print the warning unless it was
3645 # requested and not found, or halfway-found.
3646 if test "$with_gle_req" = yes -o "$gle_halfassed" = yes ; then
3648 if test "$with_gle_req" = yes ; then
3649 noteL 'Use of the GLE (GL Extrusion) library was requested, but'
3650 warn2 'it was not found (though the OpenGL library was found, and'
3651 warn2 'is being used.)'
3652 elif test "$with_gle_req" = no ; then
3653 noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
3654 warn2 'library is not.'
3656 noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
3660 if test "$gle_halfassed" = yes ; then
3662 warn2 'More specifically, we found the headers, but not the'
3663 warn2 'libraries; so either GLE is half-installed on this'
3664 warn2 "system, or something else went wrong. The \`config.log'"
3665 warn2 'file might contain some clues.'
3669 warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
3670 warn2 'will not be built or installed. You might want to consider'
3671 warn2 'installing GLE and re-running configure. You can find the'
3672 warn2 'GLE library at <http://www.linas.org/gle/>. For general'
3673 warn2 'OpenGL info, see <http://www.opengl.org/>.'
3679 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
3680 warn 'Use of XReadDisplay was requested, but it was not found.'
3683 if test -n "$with_fortune_req"; then
3684 if test "$with_fortune_req" != "$ac_cv_fortune_program" ; then
3685 warnL "$with_fortune_req was requested as the Fortune program,"
3686 warn2 "but was not found. The default will be used instead."
3690 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
3691 warn 'Use of Kerberos was requested, but it was not found.'
3694 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
3695 warn 'Use of PAM was requested, but it was not found.'
3698 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
3699 warn 'Use of shadow passwords was requested, but they were not found.'
3703 # You are in a twisty maze of namespaces and syntaxes, all alike.
3704 # Fuck the skull of Unix.
3706 eval bindir=${bindir}
3707 eval bindir=${bindir}
3708 eval bindir=${bindir}
3709 eval bindir=${bindir}
3710 eval bindir=${bindir}
3711 eval bindir=${bindir}
3712 eval HACKDIR=${HACKDIR}
3713 eval HACKDIR=${HACKDIR}
3714 eval HACKDIR=${HACKDIR}
3715 eval HACKDIR=${HACKDIR}
3716 eval HACKDIR=${HACKDIR}
3717 eval HACKDIR=${HACKDIR}
3718 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3719 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3720 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3721 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3722 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3723 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3725 # canonicalize slashes.
3726 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
3727 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
3728 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
3731 # Sanity check the hackdir
3732 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
3733 if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
3735 AC_MSG_ERROR([\"--with-hackdir=${bindir}/${bad_choice}\" won't work.
3736 There will be an executable installed with that name, so
3737 that can't be the name of a directory as well. Please
3738 re-configure with a different directory name.])
3745 # Now let's see if there's a previous RPM version already installed. Blargh!
3749 rpmv=`(rpm -qv xscreensaver) 2>/dev/null | \
3750 sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'`
3753 if test \! -z "$rpmv" ; then
3754 rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
3755 rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
3758 warnL "There is already an installed RPM of xscreensaver $rpmv"
3759 warn2 "on this system. You might want to remove it (with"
3760 warn2 '"rpm -ve xscreensaver") before running "make install"'
3761 warn2 "from this directory."
3763 warn2 "Alternately, you could build this version of xscreensaver"
3764 warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
3765 warn2 'file is included. Try "rpmbuild -v -ba xscreensaver.spec".'
3766 warn2 "See the RPM documentation for more info."
3769 if test "$rpmbdir" = "$rpmhdir" ; then
3770 warn2 "The RPM version was installed in $rpmbdir/."
3772 warn2 "The RPM version was installed in $rpmbdir/,"
3773 warn2 "with demos in $rpmhdir/."
3780 if test "${bindir}" = "${HACKDIR}" ; then
3784 if test "$do_dir_warning" = yes; then
3788 echo ' When you run "make install", the "xscreensaver",'
3789 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
3790 echo " will be installed in ${bindir}/."
3792 echo " The various graphics demos (180+ different executables) will"
3793 echo " be installed in ${HACKDIR}/."
3795 echo " If you would prefer the demos to be installed elsewhere,"
3796 echo " you should re-run configure with the --with-hackdir=DIR"
3797 echo " option. For more information, run \`./configure --help'."
3801 if test "$warning" != no; then
3802 echo '' ; echo "$warnsep" ; echo ''
3805 if test "$do_dir_warning" = no; then
3806 if test "$warning" = no; then
3809 echo "User programs will be installed in ${bindir}/"
3810 echo "Screen savers will be installed in ${HACKDIR}/"
3811 echo "Configuration will be installed in ${HACK_CONF_DIR}/"