1 # configure.in --- xscreensaver, Copyright (c) 1997-2000 Jamie Zawinski.
4 AC_INIT(driver/subprocs.c)
5 AC_CONFIG_HEADER(config.h)
7 echo "current directory: `pwd`"
8 echo "command line was: $0 $@"
11 # After checking to see that --srcdir is correct (which AC_INIT does)
12 # check for some random other files that come later in the tar file,
13 # to make sure everything is here.
15 for d in driver utils hacks hacks/glx ; do
16 f=$srcdir/$d/Makefile.in
17 if test \! -r $f ; then
19 echo "ERROR: The package is incomplete: $f does not exist."
20 echo " This probably means that your download was truncated."
27 ###############################################################################
29 # Function to figure out how to run the compiler.
31 ###############################################################################
33 AC_DEFUN(AC_PROG_CC_ANSI,
36 if test -z "$GCC"; then
37 AC_MSG_CHECKING(how to request ANSI compilation)
40 AC_MSG_RESULT(HPUX: adding -Ae)
44 AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e)
45 CC="$CC -qlanglvl=ansi -qhalt=e"
49 AC_MSG_RESULT(DEC: adding -std1 -ieee)
54 AC_MSG_RESULT(no idea)
59 AC_MSG_CHECKING([whether the compiler works on ANSI C])
60 AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
63 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
64 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
66 if test -n "$GCC"; then
67 AC_MSG_RESULT(Turning on gcc compiler warnings.)
68 CC="$CC -Wall -Wstrict-prototypes -Wnested-externs -Wno-format"
71 *-irix5* |*-irix6.[0-3]* )
72 AC_MSG_RESULT(Turning on SGI compiler warnings.)
73 CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
76 # if test -z "$GCC"; then
77 # AC_MSG_RESULT(Turning on DEC C compiler warnings.)
78 # CC="$CC -migrate -w0 -verbose -warnprotos"
86 ###############################################################################
88 # Functions to figure out how to disable // comments in ANSI C code.
90 # (With recent gcc, this is done with "-std=c89". With older gcc, this
91 # is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to
92 # gcc. Old gcc doesn't support -std, and new gcc doesn't support -lang.
93 # so much for compatibility!)
95 ###############################################################################
97 AC_DEFUN(AC_GCC_ACCEPTS_STD,
98 [if test -n "$GCC"; then
99 AC_CACHE_CHECK([whether gcc accepts -std],
100 ac_cv_gcc_accepts_std,
101 [if ( gcc -E -std=c89 - </dev/null 2>&1 >/dev/null | \
102 grep unrecognized >/dev/null ); then
103 ac_cv_gcc_accepts_std=no
105 ac_cv_gcc_accepts_std=yes
107 ac_gcc_accepts_std="$ac_cv_gcc_accepts_std"
111 AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE,
112 [if test -n "$GCC"; then
114 AC_MSG_RESULT(Disabling C++ comments in ANSI C code.)
116 # The reason that // comments are banned from xscreensaver is that gcc is
117 # basically the only compiler in the world that supports them in C code.
118 # All other vendors support them only in their C++ compilers, not in their
119 # ANSI C compilers. This means that it's a portability problem: every time
120 # these comments have snuck into the xscreensaver source code, I've gotten
121 # complaints about it the next day. So we turn off support for them in gcc
122 # as well to prevent them from accidentially slipping in.
124 if test "$ac_gcc_accepts_std" = yes ; then
126 # -std=c89 defines __STRICT_ANSI__, which we don't want.
127 # (That appears to be the only additional preprocessor symbol
128 # it defines, in addition to the syntax changes it makes.)
130 # -std=gnu89 is no good, because // comments were a GNU extension
131 # before they were in the ANSI C 99 spec... (gcc 2.96 permits //
132 # with -std=gnu89 but not with -std=c89.)
134 CC="$CC -std=c89 -U__STRICT_ANSI__"
137 CC="$CC -Wp,-lang-c89"
143 ###############################################################################
145 # Function to figure out how to create directory trees.
147 ###############################################################################
149 AC_DEFUN(AC_PROG_INSTALL_DIRS,
150 [AC_CACHE_CHECK([whether \"\${INSTALL} -d\" creates intermediate directories],
151 ac_cv_install_d_creates_dirs,
152 [ac_cv_install_d_creates_dirs=no
154 if mkdir conftestdir; then
156 ${INSTALL} -d `pwd`/dir1/dir2 >&- 2>&-
157 if test -d dir1/dir2/. ; then
158 ac_cv_install_d_creates_dirs=yes
165 if test "$ac_cv_install_d_creates_dirs" = no ; then
166 AC_CACHE_CHECK([whether \"mkdir -p\" creates intermediate directories],
167 ac_cv_mkdir_p_creates_dirs,
168 [ac_cv_mkdir_p_creates_dirs=no
170 if mkdir conftestdir; then
172 mkdir -p dir1/dir2 >&- 2>&-
173 if test -d dir1/dir2/. ; then
174 ac_cv_mkdir_p_creates_dirs=yes
182 if test "$ac_cv_install_d_creates_dirs" = yes ; then
183 INSTALL_DIRS='${INSTALL} -d'
184 elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then
185 INSTALL_DIRS='mkdir -p'
188 INSTALL_DIRS='${INSTALL} -d'
193 ###############################################################################
195 # Function to check whether gettimeofday() exists, and how to call it.
196 # This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS.
198 ###############################################################################
200 AC_DEFUN(AC_GETTIMEOFDAY_ARGS,
201 [AC_MSG_CHECKING(how to call gettimeofday)
202 AC_CACHE_VAL(ac_cv_gettimeofday_args,
203 [AC_TRY_COMPILE([#include <stdlib.h>
204 #include <sys/time.h>],
205 [struct timeval tv; struct timezone tzp;
206 gettimeofday(&tv, &tzp);],
207 [ac_gettimeofday_args=2],
208 [AC_TRY_COMPILE([#include <stdlib.h>
209 #include <sys/time.h>],
210 [struct timeval tv; gettimeofday(&tv);],
211 [ac_gettimeofday_args=1],
212 [ac_gettimeofday_args=0])])
213 ac_cv_gettimeofday_args=$ac_gettimeofday_args])
214 ac_gettimeofday_args=$ac_cv_gettimeofday_args
215 if test "$ac_gettimeofday_args" = 1 ; then
216 AC_DEFINE(HAVE_GETTIMEOFDAY)
217 AC_MSG_RESULT(one argument)
218 elif test "$ac_gettimeofday_args" = 2 ; then
219 AC_DEFINE(HAVE_GETTIMEOFDAY)
220 AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
221 AC_MSG_RESULT(two arguments)
223 AC_MSG_RESULT(unknown)
228 ###############################################################################
230 # Function to find perl5 (defines PERL and PERL_VERSION.)
232 ###############################################################################
234 # M4 sucks!! perl sucks too!!
236 perl_version_cmd='print $]'
239 AC_DEFUN(AC_PROG_PERL,
240 [AC_PATH_PROGS(PERL, [perl5 perl],,)
241 if test -z "$PERL" ; then
244 AC_CACHE_CHECK([perl version], ac_cv_perl_version,
245 [ac_cv_perl_version=`$PERL -e "$perl_version_cmd"`])
246 PERL_VERSION=$ac_cv_perl_version
251 ###############################################################################
253 # Function to demand "bc". Losers.
255 ###############################################################################
257 AC_DEFUN(AC_DEMAND_BC,
258 [ac_bc_result=`echo 6+9 | bc 2>/dev/null`
259 AC_MSG_CHECKING([for bc])
260 if test "$ac_bc_result" = "15" ; then
265 AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard
266 part of Unix since the 1970s. Come back when your vendor
271 ###############################################################################
273 # Functions to check how to do ICMP PING requests.
275 ###############################################################################
277 AC_DEFUN(AC_CHECK_ICMP,
278 [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp,
279 [AC_TRY_COMPILE([#include <stdlib.h>
286 #include <sys/types.h>
287 #include <sys/time.h>
290 #include <sys/socket.h>
291 #include <netinet/in_systm.h>
292 #include <netinet/in.h>
293 #include <netinet/ip.h>
294 #include <netinet/ip_icmp.h>
295 #include <netinet/udp.h>
296 #include <arpa/inet.h>
300 struct sockaddr_in si;
302 i.icmp_type = ICMP_ECHO;
307 si.sin_family = AF_INET;
308 #if defined(__DECC) || defined(_IP_VHL)
314 [ac_cv_have_icmp=yes],
315 [ac_cv_have_icmp=no])])
316 if test "$ac_cv_have_icmp" = yes ; then
320 AC_DEFUN(AC_CHECK_ICMPHDR,
321 [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr,
322 [AC_TRY_COMPILE([#include <stdlib.h>
329 #include <sys/types.h>
330 #include <sys/time.h>
333 #include <sys/socket.h>
334 #include <netinet/in_systm.h>
335 #include <netinet/in.h>
336 #include <netinet/ip.h>
337 #include <netinet/ip_icmp.h>
338 #include <netinet/udp.h>
339 #include <arpa/inet.h>
343 struct sockaddr_in si;
349 i.un.echo.sequence = 0;
350 si.sin_family = AF_INET;
352 [ac_cv_have_icmphdr=yes],
353 [ac_cv_have_icmphdr=no])])
354 if test "$ac_cv_have_icmphdr" = yes ; then
355 AC_DEFINE(HAVE_ICMPHDR)
359 ###############################################################################
361 # Functions to check for various X11 crap.
363 ###############################################################################
365 # Try and find the app-defaults directory.
366 # It sucks that autoconf doesn't do this already...
368 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
370 if mkdir conftestdir; then
372 # Make sure to not put "make" in the Imakefile rules, since we grep it out.
373 cat > Imakefile <<'EOF'
375 @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
377 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
378 # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
379 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
385 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
386 # Look for the directory under a standard set of common directories.
387 # Check X11 before X11Rn because it's often a symlink to the current release.
389 /usr/X11/lib/app-defaults \
390 /usr/X11R6/lib/app-defaults \
391 /usr/X11R6/lib/X11/app-defaults \
392 /usr/X11R5/lib/app-defaults \
393 /usr/X11R5/lib/X11/app-defaults \
394 /usr/X11R4/lib/app-defaults \
395 /usr/X11R4/lib/X11/app-defaults \
397 /usr/lib/X11/app-defaults \
398 /usr/lib/X11R6/app-defaults \
399 /usr/lib/X11R5/app-defaults \
400 /usr/lib/X11R4/app-defaults \
402 /usr/local/X11/lib/app-defaults \
403 /usr/local/X11R6/lib/app-defaults \
404 /usr/local/X11R5/lib/app-defaults \
405 /usr/local/X11R4/lib/app-defaults \
407 /usr/local/lib/X11/app-defaults \
408 /usr/local/lib/X11R6/app-defaults \
409 /usr/local/lib/X11R6/X11/app-defaults \
410 /usr/local/lib/X11R5/app-defaults \
411 /usr/local/lib/X11R5/X11/app-defaults \
412 /usr/local/lib/X11R4/app-defaults \
413 /usr/local/lib/X11R4/X11/app-defaults \
415 /usr/X386/lib/X11/app-defaults \
416 /usr/x386/lib/X11/app-defaults \
417 /usr/XFree86/lib/X11/app-defaults \
419 /usr/lib/X11/app-defaults \
420 /usr/local/lib/X11/app-defaults \
421 /usr/unsupported/lib/X11/app-defaults \
422 /usr/athena/lib/X11/app-defaults \
423 /usr/local/x11r5/lib/X11/app-defaults \
424 /usr/lpp/Xamples/lib/X11/app-defaults \
425 /lib/usr/lib/X11/app-defaults \
427 /usr/openwin/lib/app-defaults \
428 /usr/openwin/lib/X11/app-defaults \
429 /usr/openwin/share/lib/app-defaults \
430 /usr/openwin/share/lib/X11/app-defaults \
432 /X11R6/lib/app-defaults \
433 /X11R5/lib/app-defaults \
434 /X11R4/lib/app-defaults \
437 if test -d "$ac_dir"; then
438 ac_x_app_defaults=$ac_dir
444 AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
446 AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
447 [AC_PATH_X_APP_DEFAULTS_XMKMF
448 if test x"$ac_x_app_defaults" = x; then
449 AC_PATH_X_APP_DEFAULTS_DIRECT
451 if test x"$ac_x_app_defaults" = x; then
452 ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
454 # Record where we found app-defaults for the cache.
455 ac_cv_x_app_defaults="$ac_x_app_defaults"
457 eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
460 AC_DEFUN(AC_XPOINTER,
461 [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
462 [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
463 [XPointer foo = (XPointer) 0;],
464 [ac_cv_xpointer=yes],
465 [ac_cv_xpointer=no])])
466 if test "$ac_cv_xpointer" != yes; then
467 AC_DEFINE(XPointer,[char*])
471 # Random special-cases for X on certain pathological OSes.
472 # You know who you are.
474 AC_DEFUN(AC_X_RANDOM_PATHS,
478 # The following arcana was gleaned from conversations with
479 # Eric Schwartz <erics@col.hp.com>:
481 # On HPUX 10.x, the parts of X that HP considers "standard" live in
482 # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider
483 # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
484 # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems.
485 # Also, there are symlinks from /usr/include/ and /usr/lib/ into
486 # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
487 # you don't need any -I or -L arguments.
489 # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
490 # are the same division as 10.x. However, there are no symlinks to
491 # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
492 # arguments are always necessary.
494 # However, X11R6 was available on HPUX 9.x as a patch: if that
495 # patch was installed, then all of X11R6 went in to
496 # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
498 # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
499 # whether R5 was available as a patch; R6 undoubtedly was not.)
501 # So. We try and use the highest numbered pair of
502 # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
503 # that are available. We do not mix and match different versions
506 # Question I still don't know the answer to: (do you?)
508 # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
509 # /usr/contrib/X11R6/ could be installed as a patch, what was in
510 # that contrib directory? Did it contain so-called "standard"
511 # X11R6, or did it include Xaw and Xmu as well? If the former,
512 # where did one find Xaw and Xmu on 9.x R6 systems? Would this
513 # be a situation where one had to reach into the R5 headers and
514 # libs to find Xmu? That is, must both R6 and R5 directories
515 # be on the -I and -L lists in that case?
517 for version in X11R6 X11R5 X11R4 ; do
518 # if either pair of directories exists...
519 if test -d /usr/include/$version || test -d /usr/contrib/$version/include
521 # if contrib exists, use it...
522 if test -d /usr/contrib/$version/include ; then
523 X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
524 X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
526 # if the "standard" one exists, use it.
527 if test -d /usr/include/$version ; then
528 X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
529 X_LIBS="$X_LIBS -L/usr/lib/$version"
531 # since at least one of the pair exists, go no farther.
536 # Now find Motif. Thanks for not making xmkmf find this by
537 # default, you losers.
539 if test -d /usr/include/Motif2.1 ; then
540 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif2.1"
541 X_LIBS="$X_LIBS -L/usr/lib/Motif2.1"
542 elif test -d /usr/include/Motif1.2 ; then
543 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
544 X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
545 elif test -d /usr/include/Motif1.1 ; then
546 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
547 X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
550 # Now let's check for the pseudo-standard locations for OpenGL and XPM.
552 if test -d /opt/graphics/OpenGL/include ; then
553 # HP-UX 10.20 puts it here
554 X_CFLAGS="-I/opt/graphics/OpenGL/include $X_CFLAGS"
555 X_LIBS="-L/opt/graphics/OpenGL/lib $X_LIBS"
556 elif test -d /opt/Mesa/lib ; then
557 X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
558 X_LIBS="-L/opt/Mesa/lib $X_LIBS"
562 if test -d /opt/xpm/lib/X11 ; then
563 X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
564 X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
567 # On HPUX, default to installing in /opt/xscreensaver/ instead of
568 # in /usr/local/, unless there is already an xscreensaver in
569 # /usr/local/bin/. This can be overridden with the --prefix arg
570 # to configure. I'm not sure this is the right thing to do, but
571 # Richard Lloyd says so...
573 if test \! -x /usr/local/bin/xscreensaver ; then
574 ac_default_prefix=/opt/xscreensaver
580 # Thanks for not making xmkmf find this by default, pinheads.
581 # And thanks for moving things around again, too. Is this
582 # really the standard location now? What happened to the
583 # joke that this kind of thing went in /opt?
584 # cthomp says "answer: CDE (Common Disorganized Environment)"
586 if test -f /usr/dt/include/Xm/Xm.h ; then
587 X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
588 X_LIBS="$X_LIBS -L/usr/dt/lib -R:/usr/dt/lib"
590 # Some versions of Slowlaris Motif require -lgen. But not all. Why?
591 AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"])
598 ###############################################################################
600 # Some utility functions to make checking for X things easier.
602 ###############################################################################
604 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
606 AC_DEFUN(AC_CHECK_X_HEADER, [
607 ac_save_CPPFLAGS="$CPPFLAGS"
608 if test \! -z "$includedir" ; then
609 CPPFLAGS="$CPPFLAGS -I$includedir"
611 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
612 AC_CHECK_HEADER([$1], [$2])
613 CPPFLAGS="$ac_save_CPPFLAGS"])
615 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
617 AC_DEFUN(AC_EGREP_X_HEADER, [
618 ac_save_CPPFLAGS="$CPPFLAGS"
619 if test \! -z "$includedir" ; then
620 CPPFLAGS="$CPPFLAGS -I$includedir"
622 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
623 AC_EGREP_HEADER([$1], [$2], [$3], [$4])
624 CPPFLAGS="$ac_save_CPPFLAGS"])
626 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
628 AC_DEFUN(AC_TRY_X_COMPILE, [
629 ac_save_CPPFLAGS="$CPPFLAGS"
630 if test \! -z "$includedir" ; then
631 CPPFLAGS="$CPPFLAGS -I$includedir"
633 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
634 AC_TRY_COMPILE([$1], [$2], [$3], [$4])
635 CPPFLAGS="$ac_save_CPPFLAGS"])
638 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
639 # Use this sparingly; it probably doesn't work very well on X programs.
641 AC_DEFUN(AC_CHECK_X_LIB, [
642 ac_save_CPPFLAGS="$CPPFLAGS"
643 ac_save_LDFLAGS="$LDFLAGS"
644 # ac_save_LIBS="$LIBS"
646 if test \! -z "$includedir" ; then
647 CPPFLAGS="$CPPFLAGS -I$includedir"
649 # note: $X_CFLAGS includes $x_includes
650 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
652 if test \! -z "$libdir" ; then
653 LDFLAGS="$LDFLAGS -L$libdir"
655 # note: $X_LIBS includes $x_libraries
656 LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
658 AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
659 CPPFLAGS="$ac_save_CPPFLAGS"
660 LDFLAGS="$ac_save_LDFLAGS"
661 # LIBS="$ac_save_LIBS"
664 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
665 # (But not the -L directories!)
667 AC_DEFUN(AC_TRY_X_RUN, [
668 ac_save_CPPFLAGS="$CPPFLAGS"
669 if test \! -z "$includedir" ; then
670 CPPFLAGS="$CPPFLAGS -I$includedir"
672 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
673 AC_TRY_RUN([$1], [$2], [$3], [$4])
674 CPPFLAGS="$ac_save_CPPFLAGS"])
678 # Usage: HANDLE_X_PATH_ARG([variable_name],
679 # [--command-line-option],
680 # [descriptive string])
682 # All of the --with options take three forms:
684 # --with-foo (or --with-foo=yes)
685 # --without-foo (or --with-foo=no)
688 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees
689 # a directory (string beginning with a slash) it checks to see whether
690 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
693 AC_DEFUN(HANDLE_X_PATH_ARG, [
699 AC_MSG_CHECKING([for [$3] headers])
702 X_CFLAGS="-I$d $X_CFLAGS"
705 AC_MSG_RESULT(not found ($d: no such directory))
708 AC_MSG_CHECKING([for [$3] libs])
711 X_LIBS="-L$d $X_LIBS"
714 AC_MSG_RESULT(not found ($d: no such directory))
717 # replace the directory string with "yes".
724 echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
725 echo " If it is a directory, then \`DIR/include' will be added to"
726 echo " the -I list, and \`DIR/lib' will be added to the -L list."
734 ###############################################################################
735 ###############################################################################
737 # End of function definitions. Now start actually executing stuff.
739 ###############################################################################
740 ###############################################################################
742 # random compiler setup
745 AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
751 # stuff for Makefiles
756 # By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'.
757 # That's wrong: it should be set to '${INSTALL}', so that one can
758 # implement the "install-strip" target properly (strip executables,
759 # but do not try to strip scripts.)
761 INSTALL_SCRIPT='${INSTALL}'
765 AC_CHECK_HEADERS(unistd.h)
774 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv)
776 AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
779 AC_CHECK_HEADERS(crypt.h sys/select.h)
782 if test -z "$PERL" ; then
783 # don't let it be blank...
789 if test "$have_x" != yes; then
790 AC_MSG_ERROR(Couldn't find X11 headers/libs. Try \`$0 --help'.)
793 AC_PATH_X_APP_DEFAULTS
799 ###############################################################################
801 # Check for -lXmu (some fucked up vendors don't ship it...)
803 ###############################################################################
806 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes])
807 if test "$have_xmu" = no ; then
808 XMU_SRCS='$(UTILS_SRC)/xmu.c'
809 XMU_OBJS='$(UTILS_BIN)/xmu.o'
819 ###############################################################################
821 # Check for the SunOS 4.1.x _get_wmShellWidgetClass bug.
822 # See comp.windows.x FAQ question 124. The right fix is to
823 # get OpenWindows 3.0 patches 100512-02 and 100573-03.
825 ###############################################################################
827 if test "$have_xmu" = yes ; then
830 AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
832 [ac_save_LDFLAGS="$LDFLAGS"
833 if test \! -z "$x_libraries" ; then
834 LDFLAGS="$LDFLAGS -L$x_libraries"
836 # Note: this trick never works! (Generally.)
837 # We're only getting away with using AC_TRY_LINK
838 # with X libraries because we know it's SunOS.
839 LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
841 [ac_cv_sunos_xmu_bug=no],
842 [ac_cv_sunos_xmu_bug=yes])
843 LDFLAGS="$ac_save_LDFLAGS"])
844 if test "$ac_cv_sunos_xmu_bug" = yes ; then
845 AC_CACHE_CHECK([whether the compiler understands -static],
847 [ac_save_LDFLAGS="$LDFLAGS"
848 LDFLAGS="$LDFLAGS -static"
849 AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
850 LDFLAGS="$ac_save_LDFLAGS"])
851 if test "$ac_cv_ld_static" = yes ; then
852 LDFLAGS="$LDFLAGS -static"
854 LDFLAGS="$LDFLAGS -Bstatic"
862 ###############################################################################
864 # Handle the --enable-subdir option
866 ###############################################################################
868 AC_ARG_ENABLE(subdir,[
869 Installation options:
871 --enable-subdir=DIR Put the demo programs in a subdirectory of \`bindir',
872 instead of putting them in bindir itself. You can
873 specify the name of the subdirectory. For example,
874 \`--exec-prefix=/usr/local --enable-subdir=demos'
875 would put xscreensaver in /usr/local/bin/, and would
876 put the demos in /usr/local/bin/demos/. (If DIR
877 begins with /, then bindir will not be prepended.)
879 --disable-subdir Just put the demos in \`bindir' (this is the default.)
881 [enable_subdir="$enableval"],[enable_subdir=no])
882 if test x"$enable_subdir" = xno; then
884 elif test x"$enable_subdir" = xyes -o x"$enable_subdir" = x ; then
885 echo "error: must be a subdirectory name: --enable-subdir=$enable_subdir"
888 # there must be a better way than this...
889 if test -z "`echo $enable_subdir | sed 's@^/.*@@'`" ; then
891 HACKDIR=$enable_subdir
894 HACKDIR='${bindir}/'$enable_subdir
898 # canonicalize slashes.
899 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
902 ###############################################################################
904 # Check for the SGI SCREEN_SAVER server extension.
906 ###############################################################################
909 with_sgi_req=unspecified
911 [Except where noted, all of the --with options below can also take a
912 directory argument: for example, \`--with-motif=/opt/Motif'. That would
913 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
914 to be added to the -L list, assuming those directories exist.
916 By default, support for each of these options will be built in, if the
917 relevant library routines exist. At run time, they will then be used
918 only if the X server being used supports them. Each --with option has
919 a corresponding --without option, to override building support for them
922 Screen blanking and idle-detection options:
924 --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.],
925 [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
927 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
929 if test "$with_sgi" = yes; then
930 AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
932 AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)])
934 elif test "$with_sgi" != no; then
935 echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
940 ###############################################################################
942 # Check for the MIT-SCREEN-SAVER server extension.
944 ###############################################################################
947 with_mit_req=unspecified
949 [ --with-mit-ext Include support for the MIT-SCREEN-SAVER extension.],
950 [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
952 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
954 if test "$with_mit" = yes; then
955 AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes])
957 # Now check to see if it's really in the library; XF86Free-3.3 ships
958 # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
960 if test "$have_mit" = yes; then
961 AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [true], [have_mit=no], -lm)
963 if test "$have_mit" = no; then
964 # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead
965 # of in Xext. Thank you master, may I have another.
966 AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
967 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
968 [true], -lX11 -lXext -lm)
971 if test "$have_mit" = no; then
972 # Double fuck! Looks like some versions of XFree86 (whichever version
973 # it is that comes with RedHat Linux 2.0 -- I can't find a version
974 # number) put this garbage in Xss instead of Xext. Thank you master,
975 # may I have another.
976 AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
977 [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
978 [true], -lX11 -lXext -lm)
981 if test "$have_mit" = yes; then
982 AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
987 elif test "$with_mit" != no; then
988 echo "error: must be yes or no: --with-mit-ext=$with_mit"
993 ###############################################################################
995 # Check for the XIDLE server extension.
997 ###############################################################################
1000 with_xidle_req=unspecified
1001 AC_ARG_WITH(xidle-ext,
1002 [ --with-xidle-ext Include support for the XIDLE extension.],
1003 [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
1005 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
1007 if test "$with_xidle" = yes; then
1008 AC_CHECK_X_HEADER(X11/extensions/xidle.h,
1010 AC_DEFINE(HAVE_XIDLE_EXTENSION)])
1011 elif test "$with_xidle" != no; then
1012 echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
1017 ###############################################################################
1019 # Check for the SGI-VIDEO-CONTROL server extension.
1021 ###############################################################################
1024 with_sgivc_req=unspecified
1025 AC_ARG_WITH(sgivc-ext,
1026 [ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension.],
1027 [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
1029 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
1031 if test "$with_sgivc" = yes; then
1033 # first check for XSGIvc.h
1034 AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes])
1036 # if that succeeded, then check for the -lXsgivc
1037 if test "$have_sgivc" = yes; then
1039 AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
1040 [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
1044 # if that succeeded, then we've really got it.
1045 if test "$have_sgivc" = yes; then
1046 AC_DEFINE(HAVE_SGI_VC_EXTENSION)
1049 elif test "$with_sgivc" != no; then
1050 echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
1055 ###############################################################################
1057 # Check for the DPMS server extension.
1059 ###############################################################################
1062 with_dpms_req=unspecified
1063 AC_ARG_WITH(dpms-ext,
1064 [ --with-dpms-ext Include support for the DPMS extension.],
1065 [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
1067 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
1069 if test "$with_dpms" = yes; then
1071 # first check for dpms.h
1072 AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes])
1074 # if that succeeded, then check for the DPMS code in the libraries
1075 if test "$have_dpms" = yes; then
1077 # first look in -lXext (this is where it is with XFree86 4.0)
1079 AC_CHECK_X_LIB(Xext, DPMSInfo, [have_dpms=yes], [true], -lXext -lX11)
1081 # if that failed, look in -lXdpms (this is where it was in XFree86 3.x)
1082 if test "$have_dpms" = no; then
1083 AC_CHECK_X_LIB(Xdpms, DPMSInfo,
1084 [have_dpms=yes; XDPMS_LIBS="-lXdpms"], [true],
1090 # if that succeeded, then we've really got it.
1091 if test "$have_dpms" = yes; then
1092 AC_DEFINE(HAVE_DPMS_EXTENSION)
1095 elif test "$with_dpms" != no; then
1096 echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
1101 ###############################################################################
1103 # Check for the XF86VMODE server extension (for virtual screens.)
1105 ###############################################################################
1108 with_xf86vmode_req=unspecified
1109 AC_ARG_WITH(xf86vmode-ext,
1110 [ --with-xf86vmode-ext Include support for XFree86 virtual screens.],
1111 [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"],
1112 [with_xf86vmode=yes])
1114 HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
1116 if test "$with_xf86vmode" = yes; then
1118 # first check for xf86vmode.h
1119 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes])
1121 # if that succeeded, then check for the -lXxf86vm
1122 if test "$have_xf86vmode" = yes; then
1124 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
1125 [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
1126 [true], -lXext -lX11)
1129 # if that succeeded, then we've really got it.
1130 if test "$have_xf86vmode" = yes; then
1131 AC_DEFINE(HAVE_XF86VMODE)
1134 elif test "$with_xf86vmode" != no; then
1135 echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
1140 ###############################################################################
1142 # Check for the XF86VMODE server extension (for gamma fading.)
1144 ###############################################################################
1147 have_xf86gamma_ramp=no
1148 with_xf86gamma_req=unspecified
1149 AC_ARG_WITH(xf86gamma-ext,
1150 [ --with-xf86gamma-ext Include support for XFree86 gamma fading.],
1151 [with_xf86gamma="$withval"; with_xf86gamma_req="$withval"],
1152 [with_xf86gamma=yes])
1154 HANDLE_X_PATH_ARG(with_xf86gamma, --with-xf86gamma-ext, xf86gamma)
1156 if test "$with_xf86gamma" = yes; then
1158 # first check for xf86vmode.h, if we haven't already
1159 if test "$have_xf86vmode" = yes; then
1162 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes])
1165 # if that succeeded, then check for the -lXxf86vm
1166 if test "$have_xf86gamma" = yes; then
1168 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGamma,
1169 [have_xf86gamma=yes],
1170 [true], -lXext -lX11)
1173 # check for the Ramp versions of the functions too.
1174 if test "$have_xf86gamma" = yes; then
1175 have_xf86gamma_ramp=no
1176 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGammaRamp,
1177 [have_xf86gamma_ramp=yes],
1178 [true], -lXext -lX11)
1181 # if those tests succeeded, then we've really got the functions.
1182 if test "$have_xf86gamma" = yes; then
1183 AC_DEFINE(HAVE_XF86VMODE_GAMMA)
1186 if test "$have_xf86gamma_ramp" = yes; then
1187 AC_DEFINE(HAVE_XF86VMODE_GAMMA_RAMP)
1190 # pull in the lib, if we haven't already
1191 if test "$have_xf86gamma" = yes -a "$have_xf86vmode" = no; then
1192 SAVER_LIBS="$SAVER_LIBS -lXxf86vm"
1195 elif test "$with_xf86gamma" != no; then
1196 echo "error: must be yes or no: --with-xf86gamma-ext=$with_xf86vmode"
1201 ###############################################################################
1203 # Check for HP XHPDisableReset and XHPEnableReset.
1205 ###############################################################################
1207 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
1208 [AC_DEFINE(HAVE_XHPDISABLERESET)
1209 SAVER_LIBS="-lXhp11 $SAVER_LIBS"])
1212 ###############################################################################
1214 # Check for /proc/interrupts.
1216 ###############################################################################
1218 have_proc_interrupts=no
1219 with_proc_interrupts_req=unspecified
1220 AC_ARG_WITH(proc-interrupts,
1221 [ --with-proc-interrupts Include support for consulting the /proc/interrupts
1222 file to notice keyboard activity.],
1223 [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
1224 [with_proc_interrupts=yes])
1226 if test "$with_proc_interrupts" = yes; then
1228 AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
1229 ac_cv_have_proc_interrupts,
1230 [ac_cv_have_proc_interrupts=no
1231 if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
1232 ac_cv_have_proc_interrupts=yes
1235 have_proc_interrupts=$ac_cv_have_proc_interrupts
1237 if test "$have_proc_interrupts" = yes; then
1238 AC_DEFINE(HAVE_PROC_INTERRUPTS)
1241 elif test "$with_proc_interrupts" != no; then
1242 echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
1247 ###############################################################################
1249 # The --enable-locking option
1251 ###############################################################################
1253 AC_ARG_ENABLE(locking,[
1254 Screen locking options:
1256 --enable-locking Compile in support for locking the display.
1257 --disable-locking Do not allow locking at all.
1259 [enable_locking="$enableval"],[enable_locking=yes])
1260 if test "$enable_locking" = yes; then
1262 elif test "$enable_locking" = no; then
1263 AC_DEFINE(NO_LOCKING)
1265 echo "error: must be yes or no: --enable-locking=$enable_locking"
1271 ###############################################################################
1273 # The --enable-vt-locking option
1275 ###############################################################################
1277 #ac_vt_lockswitch=no
1278 #AC_ARG_ENABLE(vt-locking,[
1279 # --enable-vt-locking Compile in support for locking Virtual Terminals.
1280 # This is the default if the system supports it, and
1281 # if locking support is included (--enable-locking.)
1282 # --disable-vt-locking Do not allow locking of VTs, even if locking is
1284 # [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1285 #if test "$enable_vt_locking" = yes; then
1287 # AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1288 # [AC_TRY_COMPILE([#include <fcntl.h>
1289 # #include <sys/ioctl.h>
1290 # #include <sys/vt.h>],
1291 # [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1292 # [ac_cv_vt_lockswitch=yes],
1293 # [ac_cv_vt_lockswitch=no])])
1294 # ac_vt_lockswitch=$ac_cv_vt_lockswitch
1296 #elif test "$enable_vt_locking" = no; then
1299 # echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1303 #if test "$ac_vt_lockswitch" = yes; then
1304 # AC_DEFINE(HAVE_VT_LOCKSWITCH)
1305 # # the VT_LOCKSWITCH ioctl can only be used when running as root.
1306 # # #### but it doesn't work yet, so don't worry about that for now.
1312 ###############################################################################
1316 ###############################################################################
1320 # Solaris systems tend to come with PAM misconfigured.
1321 # Don't build it by default, even if the headers exist.
1325 # Default to building PAM support on all other systems, if it exists.
1326 with_pam_default=yes
1331 with_pam_req=unspecified
1334 [ --with-pam Include support for PAM (Pluggable Auth Modules.)],
1335 [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1337 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1339 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1340 AC_CACHE_CHECK([for PAM], ac_cv_pam,
1341 [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1344 if test "$ac_cv_pam" = yes ; then
1347 PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1349 # libpam typically requires dlopen and dlsym. On FreeBSD,
1350 # those are in libc. On Linux and Solaris, they're in libdl.
1351 AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1353 AC_MSG_CHECKING(how to call pam_strerror)
1354 AC_CACHE_VAL(ac_cv_pam_strerror_args,
1355 [AC_TRY_COMPILE([#include <stdio.h>
1357 #include <security/pam_appl.h>],
1358 [pam_handle_t *pamh = 0;
1359 char *s = pam_strerror(pamh, PAM_SUCCESS);],
1360 [ac_pam_strerror_args=2],
1361 [AC_TRY_COMPILE([#include <stdio.h>
1363 #include <security/pam_appl.h>],
1365 pam_strerror(PAM_SUCCESS);],
1366 [ac_pam_strerror_args=1],
1367 [ac_pam_strerror_args=0])])
1368 ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1369 ac_pam_strerror_args=$ac_cv_pam_strerror_args
1370 if test "$ac_pam_strerror_args" = 1 ; then
1371 AC_MSG_RESULT(one argument)
1372 elif test "$ac_pam_strerror_args" = 2 ; then
1373 AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1374 AC_MSG_RESULT(two arguments)
1376 AC_MSG_RESULT(unknown)
1382 ###############################################################################
1384 # Check for Kerberos.
1386 ###############################################################################
1390 with_kerberos_req=unspecified
1392 AC_ARG_WITH(kerberos,
1393 [ --with-kerberos Include support for Kerberos authentication.],
1394 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1396 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1398 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1399 AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
1400 [AC_TRY_X_COMPILE([#include <krb.h>],,
1401 [ac_cv_kerberos=yes],
1402 [ac_cv_kerberos=no])])
1403 AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
1404 [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
1405 [ac_cv_kerberos5=yes],
1406 [ac_cv_kerberos5=no])])
1408 if test "$ac_cv_kerberos" = yes ; then
1410 AC_DEFINE(HAVE_KERBEROS)
1413 if test "$ac_cv_kerberos5" = yes ; then
1416 AC_DEFINE(HAVE_KERBEROS)
1417 AC_DEFINE(HAVE_KERBEROS5)
1420 if test "$have_kerberos5" = yes ; then
1421 # from Matt Knopp <mhat@infocalypse.netlag.com>
1422 # (who got it from amu@mit.edu)
1423 PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcrypt -lcom_err"
1424 elif test "$have_kerberos" = yes ; then
1425 # from Tim Showalter <tjs+@andrew.cmu.edu>
1426 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes"
1429 if test "$have_kerberos" = yes ; then
1430 AC_CHECK_FUNC(res_search,,
1431 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1432 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1438 ###############################################################################
1440 # Check for the nine billion variants of shadow passwords...
1442 ###############################################################################
1447 with_shadow_req=unspecified
1450 [ --with-shadow Include support for shadow password authentication.],
1451 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1453 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1455 if test "$enable_locking" = no ; then
1461 ###############################################################################
1463 # Check for Sun "adjunct" passwords.
1465 ###############################################################################
1467 if test "$with_shadow" = yes ; then
1468 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1469 [AC_TRY_X_COMPILE([#include <stdlib.h>
1471 #include <sys/types.h>
1472 #include <sys/label.h>
1473 #include <sys/audit.h>
1474 #include <pwdadj.h>],
1475 [struct passwd_adjunct *p = getpwanam("nobody");
1476 const char *pw = p->pwa_passwd;],
1477 [ac_cv_sun_adjunct=yes],
1478 [ac_cv_sun_adjunct=no])])
1479 if test "$ac_cv_sun_adjunct" = yes; then
1480 have_shadow_adjunct=yes
1487 ###############################################################################
1489 # Check for DEC and SCO so-called "enhanced" security.
1491 ###############################################################################
1493 if test "$with_shadow" = yes ; then
1494 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1495 [AC_TRY_X_COMPILE([#include <stdlib.h>
1497 #include <sys/types.h>
1499 #include <sys/security.h>
1501 [struct pr_passwd *p;
1503 set_auth_parameters(0, 0);
1504 check_auth_parameters();
1505 p = getprpwnam("nobody");
1506 pw = p->ufld.fd_encrypt;],
1507 [ac_cv_enhanced_passwd=yes],
1508 [ac_cv_enhanced_passwd=no])])
1509 if test $ac_cv_enhanced_passwd = yes; then
1510 have_shadow_enhanced=yes
1514 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1515 # (I'm told it needs -lcurses too, but I don't understand why.)
1516 # But on DEC, it's in -lsecurity.
1518 AC_CHECK_LIB(prot, getprpwnam,
1519 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1520 [AC_CHECK_LIB(security, getprpwnam,
1521 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1526 ###############################################################################
1528 # Check for HP's entry in the "Not Invented Here" Sweepstakes.
1530 ###############################################################################
1532 if test "$with_shadow" = yes ; then
1533 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1534 [AC_TRY_X_COMPILE([#include <stdlib.h>
1536 #include <sys/types.h>
1538 #include <hpsecurity.h>
1540 [struct s_passwd *p = getspwnam("nobody");
1541 const char *pw = p->pw_passwd;],
1542 [ac_cv_hpux_passwd=yes],
1543 [ac_cv_hpux_passwd=no])])
1544 if test "$ac_cv_hpux_passwd" = yes; then
1545 have_shadow_hpux=yes
1549 # on HPUX, bigcrypt is in -lsec
1550 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1555 ###############################################################################
1557 # Check for FreeBSD-style shadow passwords.
1559 # On FreeBSD, getpwnam() and friends work just like on non-shadow-
1560 # password systems -- except you only get stuff in the pw_passwd field
1561 # if the running program is setuid. So, guess that we've got this
1562 # lossage to contend with if /etc/master.passwd exists, and default to
1563 # a setuid installation.
1565 ###############################################################################
1567 if test "$with_shadow" = yes ; then
1568 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1569 [if test -f /etc/master.passwd ; then
1570 ac_cv_master_passwd=yes
1572 ac_cv_master_passwd=no
1574 if test "$ac_cv_master_passwd" = yes; then
1580 ###############################################################################
1582 # Check for traditional (ha!) shadow passwords.
1584 ###############################################################################
1586 if test "$with_shadow" = yes ; then
1587 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1588 [AC_TRY_X_COMPILE([#include <stdlib.h>
1590 #include <sys/types.h>
1592 #include <shadow.h>],
1593 [struct spwd *p = getspnam("nobody");
1594 const char *pw = p->sp_pwdp;],
1596 [ac_cv_shadow=no])])
1597 if test "$ac_cv_shadow" = yes; then
1601 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1603 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1604 if test "$have_getspnam" = no ; then
1605 AC_CHECK_LIB(gen, getspnam,
1606 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1612 ###############################################################################
1614 # Check for other libraries needed for non-shadow passwords.
1616 ###############################################################################
1618 if test "$enable_locking" = yes ; then
1620 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1622 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1623 if test "$have_crypt" = no ; then
1624 AC_CHECK_LIB(crypt, crypt,
1625 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1630 # Most of the above shadow mechanisms will have set need_setuid to yes,
1631 # if they were found. But, on some systems, we need setuid even when
1632 # using plain old vanilla passwords.
1634 if test "$enable_locking" = yes ; then
1636 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1643 if test "$have_shadow_adjunct" = yes ; then
1644 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1645 elif test "$have_shadow_enhanced" = yes ; then
1646 AC_DEFINE(HAVE_ENHANCED_PASSWD)
1647 elif test "$have_shadow_hpux" = yes ; then
1648 AC_DEFINE(HAVE_HPUX_PASSWD)
1649 elif test "$have_shadow" = yes ; then
1650 AC_DEFINE(HAVE_SHADOW_PASSWD)
1654 ###############################################################################
1658 ###############################################################################
1661 with_motif_req=unspecified
1663 User interface options:
1665 --with-motif Use the Motif toolkit for the user interface.],
1666 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=yes])
1668 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
1670 if test "$with_motif" != yes -a "$with_motif" != no ; then
1671 echo "error: must be yes or no: --with-motif=$with_motif"
1675 if test "$with_motif" = yes; then
1677 AC_CHECK_X_HEADER(Xm/Xm.h,
1679 AC_DEFINE(HAVE_MOTIF)
1680 MOTIF_LIBS="$MOTIF_LIBS -lXm"])
1684 if test "$have_motif" = yes; then
1685 AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)])
1689 ###############################################################################
1691 # Check for -lgtk (and Gnome stuff)
1693 ###############################################################################
1696 with_gtk_req=unspecified
1698 [ --with-gtk Use the Gtk toolkit for the user interface.],
1699 [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
1701 # if --with-gtk=/directory/ was specified, remember that directory so that
1702 # we can also look for the `gtk-config' program in that directory.
1712 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
1714 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
1715 echo "error: must be yes or no: --with-gtk=$with_gtk"
1720 with_gnome_req=unspecified
1722 [ --with-gnome Include support for the Gnome Control Center.],
1723 [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
1725 # if --with-gnome=/directory/ was specified, remember that directory so that
1726 # we can also look for the `gnome-config' program in that directory.
1727 case "$with_gnome" in
1729 gnome_dir="$with_gnome"
1736 HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome)
1738 if test "$with_gnome" != yes -a "$with_gnome" != no ; then
1739 echo "error: must be yes or no: --with-gnome=$with_gnome"
1745 if test "$with_gtk" = yes; then
1748 # if the user specified --with-gtk=/foo/ then look in /foo/bin/
1749 # for glib-config and gtk-config.
1753 if test ! -z "$gtk_dir"; then
1754 # canonicalize slashes.
1755 gtk_dir=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
1756 gtk_path="$gtk_dir:$gtk_path"
1759 if test ! -z "gnome_dir"; then
1760 # canonicalize slashes.
1761 gnome_dir=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
1762 gtk_path="$gnome_dir:$gtk_path"
1765 AC_PATH_PROGS(glib_config, glib12-config glib-config,, $gtk_path)
1766 AC_PATH_PROGS(gtk_config, gtk12-config gtk-config,, $gtk_path)
1768 if test "$with_gnome" = yes; then
1769 AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
1772 if test -n "$glib_config" -a -n "gtk_config" ; then
1774 if test "$with_gnome" = yes -a -n "$gnome_config" ; then
1779 if test "$have_gtk" = yes; then
1780 AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
1781 [ac_cv_gtk_version_string=`$gtk_config --version`])
1782 ac_gtk_version_string=$ac_cv_gtk_version_string
1785 maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
1786 min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
1788 ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
1789 if test -z "$ac_gtk_version"; then
1790 ac_gtk_version=unknown
1791 ac_gtk_version_string=unknown
1793 if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
1801 if test "$have_gtk" = yes; then
1802 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
1803 [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
1804 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
1805 [ac_cv_gtk_config_libs=`$gtk_config --libs`])
1807 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
1808 ac_gtk_config_libs=$ac_cv_gtk_config_libs
1810 # Check for Gnome Capplet support.
1812 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1813 gnome_config_libs="gtk capplet gnomeui"
1814 AC_MSG_CHECKING(for Gnome capplet includes)
1815 AC_CACHE_VAL(ac_cv_gnome_config_cflags,
1816 [if ( $gnome_config --cflags $gnome_config_libs 2>&1 >/dev/null | \
1817 grep Unknown >/dev/null ) ; then
1818 ac_cv_gnome_config_cflags=''
1820 ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
1822 ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
1823 if test "$ac_gnome_config_cflags" = "" ; then
1827 AC_MSG_RESULT($ac_gnome_config_cflags)
1831 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1832 AC_MSG_CHECKING(for Gnome capplet libs)
1833 AC_CACHE_VAL(ac_cv_gnome_config_libs,
1834 [if ( $gnome_config --libs $gnome_config_libs 2>&1 >/dev/null |
1835 grep Unknown >/dev/null ) ; then
1836 ac_cv_gnome_config_libs=''
1838 ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
1840 ac_gnome_config_libs=$ac_cv_gnome_config_libs
1841 if test "$ac_gnome_config_libs" = "" ; then
1845 AC_MSG_RESULT($ac_gnome_config_libs)
1850 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1851 GNOME_DATADIR=`$gnome_config --datadir`
1855 # If we have Gnome, then override the gtk-config values with
1856 # the gnome-config values.
1858 if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1859 ac_gtk_config_cflags=$ac_gnome_config_cflags
1860 ac_gtk_config_libs=$ac_gnome_config_libs
1861 AC_DEFINE(HAVE_CRAPPLET)
1865 if test "$have_gtk" = yes; then
1866 INCLUDES="$INCLUDES $ac_gtk_config_cflags"
1867 GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
1874 # Check for the Gnome Help Browser.
1876 if test "$have_gnome" = yes; then
1877 AC_CHECK_PROG(have_gnome_help, gnome-help-browser, yes, no)
1883 ###############################################################################
1885 # Checking whether Motif is really Lesstif.
1887 ###############################################################################
1890 if test "$have_motif" = yes ; then
1891 AC_CACHE_CHECK([whether Motif is really LessTif],
1893 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
1894 [long vers = LesstifVersion;],
1895 [ac_cv_have_lesstif=yes],
1896 [ac_cv_have_lesstif=no])])
1897 have_lesstif=$ac_cv_have_lesstif
1901 lesstif_version=unknown
1902 lesstif_version_string=unknown
1904 if test "$have_lesstif" = yes ; then
1906 echo unknown > conftest-lt
1907 AC_CACHE_CHECK([LessTif version number],
1908 ac_cv_lesstif_version_string,
1909 [AC_TRY_X_RUN([#include <stdio.h>
1912 FILE *f = fopen("conftest-lt", "w");
1914 fprintf(f, "%d %d.%d\n", LesstifVersion,
1915 LESSTIF_VERSION, LESSTIF_REVISION);
1919 [ltv=`cat conftest-lt`
1920 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
1921 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
1922 [ac_cv_lesstif_version=unknown
1923 ac_cv_lesstif_version_string=unknown],
1924 [ac_cv_lesstif_version=unknown
1925 ac_cv_lesstif_version_string=unknown])])
1927 lesstif_version=$ac_cv_lesstif_version
1928 lesstif_version_string=$ac_cv_lesstif_version_string
1933 if test "$have_motif" = yes ; then
1935 echo unknown > conftest-mt
1936 AC_CACHE_CHECK([Motif version number],
1937 ac_cv_motif_version_string,
1938 [AC_TRY_X_RUN([#include <stdio.h>
1941 FILE *f = fopen("conftest-mt", "w");
1943 fprintf(f, "%d %d.%d\n", XmVersion,
1944 XmVERSION, XmREVISION);
1948 [mtv=`cat conftest-mt`
1949 ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
1950 ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
1951 [ac_cv_motif_version=unknown
1952 ac_cv_motif_version_string=unknown],
1953 [ac_cv_motif_version=unknown
1954 ac_cv_motif_version_string=unknown])])
1956 motif_version=$ac_cv_motif_version
1957 motif_version_string=$ac_cv_motif_version_string
1962 ###############################################################################
1964 # Checking whether Motif requires -lXpm.
1966 # If this is Motif 2.x, and we have XPM, then link against XPM as well.
1967 # The deal is, Motif 2.x requires XPM -- but it's a compilation option
1968 # of the library whether to build the XPM code into libXm, or whether
1969 # to rely on an external libXm. So the only way to tell whether XPM is
1970 # a link-time requirement is to examine libXm.a, which is very
1971 # difficult to do in an autoconf script. So... if it's Motif 2.x, we
1972 # always link against XPM if the XPM lib exists (and this will be a
1973 # no-op if libXm happens to already have the XPM code in it.)
1975 ###############################################################################
1977 motif_requires_xpm=no
1978 if test "$have_motif" = yes ; then
1979 AC_MSG_CHECKING(whether Motif requires XPM)
1980 if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
1982 motif_requires_xpm=yes
1983 AC_MSG_RESULT(maybe)
1990 ###############################################################################
1992 # Checking whether Motif requires -lXp.
1994 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
1995 # Extension". Why this extension isn't in -lXext with all the others,
1998 ###############################################################################
2001 if test "$have_motif" = yes ; then
2003 AC_CHECK_X_LIB(Xp, XpQueryExtension,
2004 [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
2005 [true], -lX11 -lXext -lm)
2009 ###############################################################################
2011 # Checking whether Motif requires -lXintl (for _Xsetlocale.)
2013 ###############################################################################
2016 if test "$have_motif" = yes ; then
2017 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
2019 if test "$have_xintl" = yes; then
2020 MOTIF_LIBS="$MOTIF_LIBS -lXintl"
2025 ###############################################################################
2027 # Check for -lGL or -lMesaGL.
2029 ###############################################################################
2033 with_gl_req=unspecified
2038 --with-gl Build those demos which depend on OpenGL.],
2039 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
2041 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
2043 ac_mesagl_version=unknown
2044 ac_mesagl_version_string=unknown
2046 if test "$with_gl" = yes; then
2047 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
2048 if test "$have_gl" = yes ; then
2049 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no)
2052 # If we have the headers, try and figure out which vendor it's from.
2054 if test "$have_gl" = yes ; then
2056 # We need to know whether it's MesaGL so that we know which libraries
2059 AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
2060 [ac_cv_have_mesa_gl=no
2061 AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
2063 ac_have_mesa_gl=$ac_cv_have_mesa_gl
2070 # Some versions of MesaGL are compiled to require -lpthread.
2071 # So if the Mesa headers exist, and -lpthread exists, then always
2072 # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
2074 if test "$ac_have_mesa_gl" = yes; then
2075 AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
2079 # If we have Mesa headers, check to see if we can link against -lMesaGL.
2080 # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
2081 # Else, warn that GL is busted. (We have the headers, but no libs.)
2084 if test "$ac_have_mesa_gl" = yes ; then
2085 AC_CHECK_X_LIB(MesaGL, glXCreateContext,
2087 GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
2088 [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
2091 if test "$gl_lib_1" = "" ; then
2092 AC_CHECK_X_LIB(GL, glXCreateContext,
2094 GL_LIBS="-lGL -lGLU $GL_LIBS"],
2095 [], -lGLU $GL_LIBS -lX11 -lXext -lm)
2098 if test "$gl_lib_1" = "" ; then
2099 # we have headers, but no libs -- bail.
2104 # linking works -- we can build the GL hacks.
2106 if test "$ac_have_mesa_gl" = yes ; then
2107 AC_DEFINE(HAVE_MESA_GL)
2113 # Now that we know we have GL headers and libs, do some more GL testing.
2116 if test "$have_gl" = yes ; then
2117 # If it's MesaGL, we'd like to issue a warning if the version number
2118 # is less than or equal to 2.6, because that version had a security bug.
2120 if test "$ac_have_mesa_gl" = yes; then
2122 AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
2123 [cat > conftest.$ac_ext <<EOF
2124 #line __oline__ "configure"
2125 #include "confdefs.h"
2127 #ifndef MESA_MAJOR_VERSION
2128 # include <GL/xmesa.h>
2129 # define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
2130 # define MESA_MINOR_VERSION XMESA_MINOR_VERSION
2132 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
2135 ac_save_CPPFLAGS="$CPPFLAGS"
2136 if test \! -z "$includedir" ; then
2137 CPPFLAGS="$CPPFLAGS -I$includedir"
2139 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2143 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \
2144 's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
2147 rm -f conftest.$ac_ext
2149 CPPFLAGS="$ac_save_CPPFLAGS"
2151 if test "$mglv" = ""; then
2152 ac_mesagl_version=unknown
2153 ac_mesagl_version_string=unknown
2155 ac_mesagl_version_string=$mglv
2156 maj=`echo $mglv | sed -n 's/\..*//p'`
2157 min=`echo $mglv | sed -n 's/.*\.//p'`
2158 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
2159 if test -z "$ac_mesagl_version"; then
2160 ac_mesagl_version=unknown
2161 ac_mesagl_version_string=unknown
2164 ac_cv_mesagl_version=$ac_mesagl_version
2165 ac_cv_mesagl_version_string=$ac_mesagl_version_string
2167 ac_mesagl_version=$ac_cv_mesagl_version
2168 ac_mesagl_version_string=$ac_cv_mesagl_version_string
2172 # Check for OpenGL 1.1 features.
2174 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
2175 [true], $GL_LIBS -lX11 -lXext -lm)
2178 elif test "$with_gl" != no; then
2179 echo "error: must be yes or no: --with-gl=$with_gl"
2184 ###############################################################################
2188 ###############################################################################
2191 with_gle_req=unspecified
2194 [ --with-gle Build those demos which depend on GLE
2195 (the OpenGL "extrusion" library.)],
2196 [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
2198 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
2202 if test "$with_gle" = yes; then
2204 AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no)
2205 if test "$have_gle3" = yes ; then
2208 AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no)
2209 if test "$have_gle" = yes ; then
2210 AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no)
2214 if test "$have_gle" = yes ; then
2217 AC_CHECK_X_LIB(gle, gleCreateGC,
2218 [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
2219 [], $GL_LIBS -lX11 -lXext -lm)
2221 if test "$have_gle" = yes ; then
2225 # sometimes the libmatrix stuff is included in libgle. look there first.
2227 # I don't get it. For some reason, this test passes on SGI, as if
2228 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
2229 # Yet the link is succeeding. Why???
2231 # AC_CHECK_X_LIB(gle, uview_direction_d,
2232 # [have_gle=yes; gle_halfassed=no],
2233 # [], $GL_LIBS -lX11 -lXext -lm)
2235 # As of GLE 3 this is in libgle, and has changed name to uview_direction!
2237 if test "$have_gle3" = yes ; then
2238 AC_CHECK_X_LIB(gle, uview_direction,
2239 [have_gle=yes; gle_halfassed=no],
2240 [], $GL_LIBS -lX11 -lXext -lm)
2242 # if it wasn't in libgle, then look in libmatrix.
2243 if test "$have_gle" = no ; then
2244 AC_CHECK_X_LIB(matrix, uview_direction_d,
2245 [have_gle=yes; gle_halfassed=no;
2246 GLE_LIBS="$GLE_LIBS -lmatrix"],
2247 [], $GL_LIBS -lX11 -lXext -lm)
2251 if test "$have_gle" = yes ; then
2253 if test "$have_gle3" = yes ; then
2254 AC_DEFINE(HAVE_GLE3)
2258 elif test "$with_gle" != no; then
2259 echo "error: must be yes or no: --with-gle=$with_gle"
2266 ###############################################################################
2270 ###############################################################################
2273 with_xpm_req=unspecified
2275 [ --with-xpm Include support for XPM files in some demos.],
2276 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2278 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2280 if test "$with_xpm" = yes; then
2281 AC_CHECK_X_HEADER(X11/xpm.h,
2285 elif test "$with_xpm" != no; then
2286 echo "error: must be yes or no: --with-xpm=$with_xpm"
2290 # See comment near $motif_requires_xpm, above.
2291 # Need to do this here, after both Motif and XPM have been checked for.
2293 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2294 if test "$motif_requires_xpm" = yes ; then
2295 MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
2300 ###############################################################################
2302 # Check for the XSHM server extension.
2304 ###############################################################################
2307 with_xshm_req=unspecified
2308 AC_ARG_WITH(xshm-ext,
2309 [ --with-xshm-ext Include support for the XSHM extension.],
2310 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
2312 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
2314 if test "$with_xshm" = yes; then
2316 # first check for Xshm.h.
2317 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes])
2319 # if that succeeded, then check for sys/ipc.h.
2320 if test "$have_xshm" = yes; then
2322 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
2325 # if that succeeded, then check for sys/shm.h.
2326 if test "$have_xshm" = yes; then
2328 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
2331 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
2332 # to exist, but the library code to not exist. And even better, the library
2333 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
2334 # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and
2335 # that's not quite right, but close enough.)
2339 if [ `uname -v` -eq 3 ]; then
2341 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
2342 [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
2343 [true], -lX11 -lXext -lm)
2348 # if that succeeded, then we've really got it.
2349 if test "$have_xshm" = yes; then
2350 AC_DEFINE(HAVE_XSHM_EXTENSION)
2353 elif test "$with_xshm" != no; then
2354 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
2359 ###############################################################################
2361 # Check for the DOUBLE-BUFFER server extension.
2363 ###############################################################################
2366 with_xdbe_req=unspecified
2367 AC_ARG_WITH(xdbe-ext,
2368 [ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.],
2369 [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
2371 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
2373 if test "$with_xdbe" = yes; then
2375 AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes])
2376 if test "$have_xdbe" = yes; then
2377 AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
2380 elif test "$with_xdbe" != no; then
2381 echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
2386 ###############################################################################
2388 # Check for the SGI XReadDisplay server extension.
2390 # Note: this has to be down here, rather than up with the other server
2391 # extension tests, so that the output of `configure --help' is in the
2392 # right order. Arrgh!
2394 ###############################################################################
2397 with_readdisplay_req=unspecified
2398 AC_ARG_WITH(readdisplay,
2399 [ --with-readdisplay Include support for the XReadDisplay extension.],
2400 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
2401 [with_readdisplay=yes])
2403 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
2405 if test "$with_readdisplay" = yes; then
2406 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
2407 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION))
2408 elif test "$with_readdisplay" != no; then
2409 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
2414 ###############################################################################
2416 # Check for a program to generate random text.
2418 # Zippy is funnier than the idiocy generally spat out by `fortune',
2419 # so try to find that, by invoking Emacs and asking it where its
2420 # libexec directory is ("yow" lives in there.)
2422 # If that doesn't work, see if fortune, zippy, or yow are on $PATH,
2423 # and if so, use them.
2425 # If that doesn't work, look in /usr/games, and if it's there, use
2426 # the full pathname.
2428 ###############################################################################
2432 --with-zippy=PROGRAM Some demos are able to run an external program and
2433 display its text; this names the program to use by
2434 default (though it can be overridden with X
2435 resources.) If you don't specify this, the default
2436 is to use \"yow\" from the Emacs distribution (if you
2437 have it) or else to use \"fortune\".],
2438 [with_zippy_req="$withval"; with_zippy="$withval"],[with_zippy=yes])
2440 if test "$with_zippy" = no || test "$with_zippy" = yes ; then
2445 if test -n "$with_zippy_req" ; then
2446 ac_cv_zippy_program=""
2447 case "$with_zippy_req" in
2449 AC_MSG_CHECKING([for $with_zippy_req])
2450 if test -x "$with_zippy_req" ; then
2459 unset ac_cv_path_zip2
2460 AC_PATH_PROG(zip2, $with_zippy_req, [])
2461 if test "$zip2" = ""; then
2466 ac_cv_zippy_program="$with_zippy"
2468 elif test -n "$ac_cv_zippy_program"; then
2469 AC_MSG_RESULT([checking for zippy... (cached) $ac_cv_zippy_program])
2472 if test ! -n "$ac_cv_zippy_program"; then
2474 AC_CHECK_PROGS(emacs_exe, emacs)
2475 AC_CHECK_PROGS(xemacs_exe, xemacs)
2477 ac_cv_zippy_program=""
2478 eargs='-batch -q -nw --eval'
2480 if test -n "$emacs_exe" ; then
2481 AC_MSG_CHECKING([for emacs yow])
2483 # get emacs to tell us where the libexec directory is.
2485 dir=`$emacs_exe $eargs '(princ (concat exec-directory "\n"))' \
2486 2>/dev/null | tail -1`
2487 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
2489 # try running libexec/yow and see if it exits without error.
2491 if test x"$dir" != x -a -x "$dir/yow" ; then
2492 if $dir/yow >&- 2>&- ; then
2493 ac_cv_zippy_program="$dir/yow"
2494 AC_MSG_RESULT($ac_cv_zippy_program)
2501 if test -z "$ac_cv_zippy_program" ; then
2502 AC_MSG_CHECKING([for xemacs yow])
2503 if test -n "$xemacs_exe" ; then
2505 # get xemacs to tell us where the libexec directory is.
2507 dir=`$xemacs_exe $eargs '(princ (concat exec-directory "\n"))' \
2508 2>/dev/null | tail -1`
2509 dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
2511 # try running libexec/yow and see if it exits without error.
2513 if test x"$dir" != x -a -x "$dir/yow" ; then
2514 if $dir/yow >&- 2>&- ; then
2515 ac_cv_zippy_program="$dir/yow"
2516 AC_MSG_RESULT($ac_cv_zippy_program)
2519 # in some xemacs installations, the pathname of the yow.lines file
2520 # isn't hardcoded into the yow executable, and must be passed on
2521 # the command line. See if it's in libexec/../etc/.
2525 dir_up=`echo "$dir" | sed 's@/[^/]*$@@'`
2528 yowlines="$dir_up/etc/yow.lines"
2529 if $dir/yow -f $yowlines >&- 2>&- ; then
2530 ac_cv_zippy_program="$dir/yow -f $yowlines"
2531 AC_MSG_RESULT($ac_cv_zippy_program)
2534 # In newer XEmacs releases, yow.lines is in a different place,
2535 # and the easiest way to get it is by calling the new function
2536 # `locate-data-file'.
2538 yowlines=`$xemacs_exe $eargs \
2539 '(princ (concat (locate-data-file "yow.lines") "\n"))' \
2540 2>/dev/null | tail -1`
2541 if $dir/yow -f $yowlines >&- 2>&- ; then
2542 ac_cv_zippy_program="$dir/yow -f $yowlines"
2543 AC_MSG_RESULT($ac_cv_zippy_program)
2553 # if that didn't work, try for some other programs...
2554 if test -z "$ac_cv_zippy_program" ; then
2556 AC_CHECK_PROGS(fortune, [fortune zippy yow])
2557 # if that didn't work, try for those programs in /usr/games...
2558 if test -z "$fortune" ; then
2559 AC_PATH_PROGS(fortune, [fortune zippy yow], fortune,
2560 /usr/games:/usr/local/games:$PATH)
2565 if test -z "$ac_cv_zippy_program" ; then
2566 ac_cv_zippy_program=fortune
2569 AC_DEFINE_UNQUOTED(ZIPPY_PROGRAM, "$ac_cv_zippy_program")
2572 ###############################################################################
2574 # Check whether it's ok to install some hacks as setuid (e.g., "sonar")
2575 # This should be safe, but let's give people the option.
2577 ###############################################################################
2579 setuid_hacks_default=no
2580 setuid_hacks="$setuid_hacks_default"
2581 AC_ARG_WITH(setuid-hacks,
2582 [ --with-setuid-hacks Allow some demos to be installed \`setuid root'
2583 (which is needed in order to ping other hosts.)
2585 [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
2587 HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks)
2589 if test "$setuid_hacks" = yes; then
2591 elif test "$setuid_hacks" != no; then
2592 echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks"
2597 ###############################################################################
2599 # Done testing. Now, set up the various -I and -L variables,
2600 # and decide which GUI program to build by default.
2602 ###############################################################################
2609 if test \! -z "$includedir" ; then
2610 INCLUDES="$INCLUDES -I$includedir"
2613 if test \! -z "$libdir" ; then
2614 LDFLAGS="$LDFLAGS -L$libdir"
2618 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2620 if test "$have_motif" = yes; then
2621 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2622 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2624 if test "$have_gtk" = yes; then
2625 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
2626 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2630 if test "$have_kerberos" = yes; then
2631 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
2632 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
2634 if test "$have_pam" = yes; then
2635 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
2636 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
2637 INSTALL_PAM="install-pam"
2639 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
2640 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
2643 if test "$enable_locking" = yes; then
2644 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
2645 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
2647 LOCK_SRCS='$(NOLOCK_SRCS_1)'
2648 LOCK_OBJS='$(NOLOCK_OBJS_1)'
2651 INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)'
2653 if test "$need_setuid" = yes; then
2659 if test "$setuid_hacks" = yes; then
2666 if test "$have_gl" = yes; then
2667 GL_EXES='$(GL_EXES)'
2668 GL_UTIL_EXES='$(GL_UTIL_EXES)'
2672 GL_KLUDGE="-${tab} "
2675 if test "$have_gle" = yes; then
2676 GLE_EXES='$(GLE_EXES)'
2677 GLE_MEN='$(GLE_MEN)'
2678 GLE_KLUDGE="${tab} "
2680 GLE_KLUDGE="-${tab} "
2684 # Another substitution in the XScreenSaver.ad.in file:
2686 if test "$have_gnome_help" = yes; then
2695 ###############################################################################
2697 # Perform substitutions and write Makefiles.
2699 ###############################################################################
2703 AC_SUBST(PREFERRED_DEMO_PROGRAM)
2704 AC_SUBST(ALL_DEMO_PROGRAMS)
2705 AC_SUBST(SAVER_LIBS)
2706 AC_SUBST(MOTIF_LIBS)
2712 AC_SUBST(XDPMS_LIBS)
2713 AC_SUBST(PASSWD_LIBS)
2714 AC_SUBST(INSTALL_SETUID)
2715 AC_SUBST(SETUID_HACKS)
2716 AC_SUBST(INSTALL_DIRS)
2717 AC_SUBST(NEED_SETUID)
2718 AC_SUBST(INSTALL_PAM)
2720 AC_SUBST(PASSWD_SRCS)
2721 AC_SUBST(PASSWD_OBJS)
2725 AC_SUBST(SAVER_GL_SRCS)
2726 AC_SUBST(SAVER_GL_OBJS)
2727 AC_SUBST(SAVER_GL_LIBS)
2731 AC_SUBST(GL_UTIL_EXES)
2736 AC_SUBST(GLE_KLUDGE)
2737 AC_SUBST(GNOMEHELP_Y)
2738 AC_SUBST(GNOMEHELP_N)
2740 AC_SUBST(GNOME_DATADIR)
2742 APPDEFAULTS=$ac_x_app_defaults
2743 AC_SUBST(APPDEFAULTS)
2746 AC_SUBST(DEPEND_FLAGS)
2747 AC_SUBST(DEPEND_DEFINES)
2755 driver/XScreenSaver.ad)
2757 ###############################################################################
2759 # Print some warnings at the end.
2761 ###############################################################################
2763 warn_prefix_1=" Warning:"
2764 warn_prefix_2=" Note:"
2765 warn_prefix="$warn_prefix_1"
2768 warnsep=' #################################################################'
2771 if test "$warning" = no ; then
2772 echo '' ; echo "$warnsep" ; echo ''
2779 if test "$warning" = long ; then echo '' ; fi
2782 echo "$warn_prefix $rest"
2789 if test "$was" != no ; then echo '' ; fi
2791 echo "$warn_prefix $rest"
2801 warn_prefix="$warn_prefix_2"
2803 warn_prefix="$warn_prefix_1"
2807 warn_prefix="$warn_prefix_2"
2809 warn_prefix="$warn_prefix_1"
2813 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
2814 warn 'The SGI saver extension was requested, but was not found.'
2817 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
2818 warn 'The MIT saver extension was requested, but was not found.'
2821 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
2822 warn 'The XIdle extension was requested, but was not found.'
2825 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
2826 warn 'The XSHM extension was requested, but was not found.'
2829 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
2830 warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
2833 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
2834 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
2837 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
2838 warn 'The DPMS extension was requested, but was not found.'
2841 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
2842 warn 'The XF86VMODE extension was requested, but was not found.'
2845 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
2846 warn "Checking of /proc/interrupts was requested, but it's bogus."
2850 if test "$have_motif" = no -a "$have_gtk" = no; then
2851 warnL "Neither Motif nor Gtk seem to be available;"
2852 warn2 "the \`xscreensaver-demo' program requires one of these."
2854 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
2855 warnL "Use of Motif was requested, but it wasn't found;"
2856 warn2 "Gtk will be used instead."
2858 elif test "$jurassic_gtk" = yes ; then
2862 v="$ac_gtk_version_string"
2863 if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
2864 warnL "Use of Gtk was requested, but its version number is unknown;"
2865 elif test "$with_gtk_req" = yes ; then
2866 warnL "Use of Gtk was requested, but it is version $v;"
2868 warnL "Gtk was found on this system, but it is version $v;"
2871 warn2 "Gtk $pref_gtk or newer is required. Motif will be used instead."
2873 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
2874 warnL "Use of Gtk was requested, but it wasn't found;"
2875 warn2 "Motif will be used instead."
2880 if test "$with_gnome_req" = yes -a "$have_gnome" = no ; then
2881 warn 'Use of the Gnome Control Panel was requested, but the necessary'
2882 warn2 'headers and/or libraries were not found.'
2886 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
2888 preferred_lesstif=0.86
2890 if test "$lesstif_version" = unknown; then
2891 warnL "Unable to determine the LessTif version number!"
2892 warn2 "Make sure you are using version $preferred_lesstif or newer."
2893 warn2 "See <http://www.lesstif.org/>."
2895 elif test \! $lesstif_version -gt 82; then
2896 warnL "LessTif version $lesstif_version_string is being used."
2897 warn2 "LessTif versions 0.82 and earlier are too buggy to"
2898 warn2 "use with XScreenSaver; it is strongly recommended"
2899 warn2 "that you upgrade to at least version $preferred_lesstif!"
2900 warn2 "See <http://www.lesstif.org/>."
2906 if test "$have_xpm" = no ; then
2907 if test "$with_xpm_req" = yes ; then
2908 warnL 'Use of XPM was requested, but it was not found.'
2909 elif test "$with_xpm_req" = no ; then
2910 noteL 'The XPM library is not being used.'
2912 noteL 'The XPM library was not found.'
2916 warn2 'Some of the demos will not be as colorful as they'
2917 warn2 'could be. You might want to consider installing XPM'
2918 warn2 'and re-running configure. (Remember to delete the'
2919 warn2 'config.cache file first.) You can find XPM at most'
2920 warn2 'X11 archive sites, such as <http://sunsite.unc.edu/>.'
2924 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
2925 preferred_mesagl=3.4
2926 mgv="$ac_mesagl_version_string"
2927 pgl="$preferred_mesagl"
2929 if test "$ac_mesagl_version" = unknown; then
2930 warnL "Unable to determine the MesaGL version number!"
2931 warn2 "Make sure you are using version $preferred_mesagl or newer."
2933 elif test \! "$ac_mesagl_version" -gt 2006; then
2934 warnL "MesaGL version $mgv is being used. MesaGL 2.6 and earlier"
2935 warn2 "have a security bug. It is strongly recommended that you"
2936 warn2 "upgrade to at least version $preferred_mesagl."
2938 elif test \! "$ac_mesagl_version" -gt 3003; then
2939 warnL "MesaGL version $mgv is being used. That version has some"
2940 warn2 "bugs; it is recommended that you upgrade to $pgl or newer."
2944 if test "$have_gl" = no ; then
2945 if test "$with_gl_req" = yes ; then
2946 warnL 'Use of GL was requested, but it was not found.'
2947 elif test "$with_gl_req" = no ; then
2948 noteL 'The OpenGL 3D library is not being used.'
2950 noteL 'The OpenGL 3D library was not found.'
2953 if test "$gl_halfassed" = yes ; then
2955 warn2 'More specifically, we found the headers, but not the'
2956 warn2 'libraries; so either GL is half-installed on this'
2957 warn2 "system, or something else went wrong. The \`config.log'"
2958 warn2 'file might contain some clues.'
2962 warn2 'Those demos which use 3D will not be built or installed.'
2963 warn2 'You might want to consider installing OpenGL and'
2964 warn2 're-running configure. (Remember to delete the'
2965 warn2 "config.cache file first.) If your vendor doesn't ship"
2966 warn2 'their own implementation of OpenGL, you can get a free'
2967 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
2968 warn2 'info, see <http://www.opengl.org/>.'
2973 if test "$have_gl" = yes -a "$have_gle" = no ; then
2974 if test "$with_gle_req" = yes ; then
2975 noteL 'Use of the GLE (GL Extrusion) library was requested, but'
2976 warn2 'it was not found (though the OpenGL library was found, and'
2977 warn2 'is being used.)'
2978 elif test "$with_gle_req" = no ; then
2979 noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
2980 warn2 'library is not.'
2982 noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
2986 if test "$gle_halfassed" = yes ; then
2988 warn2 'More specifically, we found the headers, but not the'
2989 warn2 'libraries; so either GLE is half-installed on this'
2990 warn2 "system, or something else went wrong. The \`config.log'"
2991 warn2 'file might contain some clues.'
2995 warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
2996 warn2 'will not be built or installed. You might want to consider'
2997 warn2 'installing GLE and re-running configure. (Remember to delete'
2998 warn2 'the config.cache file first.) You can find the GLE library'
2999 warn2 'at <http://www.linas.org/gle/>. For general OpenGL info,'
3000 warn2 'see <http://www.opengl.org/>.'
3005 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
3006 warn 'Use of XReadDisplay was requested, but it was not found.'
3009 if test -n "$with_zippy_req"; then
3010 if test "$with_zippy_req" != "$ac_cv_zippy_program" ; then
3011 warnL "$with_zippy_req was requested as the Zippy program,"
3012 warn2 "but was not found. The default will be used instead."
3016 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
3017 warn 'Use of Kerberos was requested, but it was not found.'
3020 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
3021 warn 'Use of PAM was requested, but it was not found.'
3024 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
3025 warn 'Use of shadow passwords was requested, but they were not found.'
3029 # You are in a twisty maze of namespaces and syntaxes, all alike.
3030 # Fuck the skull of Unix.
3032 eval bindir=${bindir}
3033 eval bindir=${bindir}
3034 eval bindir=${bindir}
3035 eval bindir=${bindir}
3036 eval bindir=${bindir}
3037 eval bindir=${bindir}
3038 eval HACKDIR=${HACKDIR}
3039 eval HACKDIR=${HACKDIR}
3040 eval HACKDIR=${HACKDIR}
3041 eval HACKDIR=${HACKDIR}
3042 eval HACKDIR=${HACKDIR}
3043 eval HACKDIR=${HACKDIR}
3045 # canonicalize slashes.
3046 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
3047 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
3050 # Sanity check the subdir
3051 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
3052 if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
3054 AC_MSG_ERROR([\"--enable-subdir=${bindir}/${bad_choice}\" won't work.
3055 There will be an executable installed with that name, so
3056 that can't be the name of a directory as well. Please
3057 re-configure with a different directory name.])
3064 # Now let's see if there's a previous RPM version already installed. Blargh!
3068 rpmv=`(rpm -qv xscreensaver) 2>&- | \
3069 sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'`
3072 if test \! -z "$rpmv" ; then
3073 rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
3074 rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
3077 warnL "There is already an installed RPM of xscreensaver $rpmv"
3078 warn2 "on this system. You might want to remove it (with"
3079 warn2 '"rpm -ve xscreensaver") before running "make install"'
3080 warn2 "from this directory."
3082 warn2 "Alternately, you could build this version of xscreensaver"
3083 warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
3084 warn2 "file is included. See the RPM documentation for more info."
3087 if test "$rpmbdir" = "$rpmhdir" ; then
3088 warn2 "The RPM version was installed in $rpmbdir."
3090 warn2 "The RPM version was installed in $rpmbdir,"
3091 warn2 "with demos in $rpmhdir."
3098 # Warn about egregious GNOME bogosity.
3100 #if (rpm -qv control-center) >&- 2>&- ; then
3102 # warnL "The Gnome Control Center seems to be installed."
3104 # warn2 "Note that simply installing this version of xscreensaver"
3105 # warn2 "will not cause GNOME to know about the newly-added display"
3106 # warn2 "modes -- GNOME is just lame that way. Instead of using the"
3107 # warn2 "Control Center, try using the \`xscreensaver-demo' command."
3111 if test "${bindir}" = "${HACKDIR}" ; then
3115 if test "$do_dir_warning" = yes; then
3119 echo ' When you run "make install", the "xscreensaver",'
3120 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
3121 echo " will be installed in ${bindir}."
3123 echo " The various graphics demos (120+ different executables) will"
3124 echo " also be installed in ${HACKDIR}."
3126 echo " If you would prefer the demos to be installed elsewhere"
3127 echo " (for example, in a dedicated directory) you should re-run"
3128 echo " configure with the --enable-subdir=DIR option. For more"
3129 echo " information, run $0 --help."
3133 if test "$warning" != no; then
3134 echo '' ; echo "$warnsep" ; echo ''