1 # configure.in --- xscreensaver, Copyright (c) 1997-2005 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 $@"
11 ###############################################################################
15 ###############################################################################
18 /* config.h.in --- xscreensaver, Copyright (c) 1998-2000 Jamie Zawinski.
20 * The best way to set these parameters is by running the included `configure'
21 * script. That examines your system, and generates `config.h' from
24 * If something goes very wrong, you can edit `config.h' directly, but beware
25 * that your changes will be lost if you ever run `configure' again.
29 AH_TEMPLATE([HAVE_READ_DISPLAY_EXTENSION],
30 [Define this if you have the XReadDisplay extension (I think
31 this is an SGI-only thing; it's in
32 <X11/extensions/readdisplay.h>.) A few of the screenhacks will
33 take advantage of this if it's available.])
35 AH_TEMPLATE([HAVE_XHPDISABLERESET],
36 [Define this if you have the XHPDisableReset function (an HP only
37 thing which allows the Ctrl-Sh-Reset key sequence to be
38 temporarily disabled.)])
40 AH_TEMPLATE([HAVE_XIDLE_EXTENSION],
41 [Define this if you have the XIDLE extension installed. If you
42 have the XIDLE extension, this is recommended. (You have this
43 extension if the file /usr/include/X11/extensions/xidle.h
44 exists.) Turning on this flag lets XScreenSaver work better with
45 servers which support this extension; but it will still work
46 with servers which do not suport it, so it's a good idea to
47 compile in support for it if you can.])
49 AH_TEMPLATE([HAVE_MIT_SAVER_EXTENSION],
50 [Define this if you have the MIT-SCREEN-SAVER extension
51 installed. See the caveats about this extension, above.
52 (It's available if /usr/include/X11/extensions/scrnsaver.h
55 AH_TEMPLATE([HAVE_SGI_SAVER_EXTENSION],
56 [Define this if you have the SGI SCREEN_SAVER extension. This is
57 standard on Irix systems, and not available elsewhere.])
59 AH_TEMPLATE([HAVE_SGI_VC_EXTENSION],
60 [Define this if you have the SGI-VIDEO-CONTROL extension. This
61 is standard on Irix systems, and not available elsewhere.])
63 AH_TEMPLATE([HAVE_DPMS_EXTENSION],
64 [Define this if you have the XDPMS extension. This is standard
65 on sufficiently-recent XFree86 systems, and possibly elsewhere.
66 (It's available if the file /usr/include/X11/extensions/dpms.h
69 AH_TEMPLATE([HAVE_XF86VMODE],
70 [Define this if you have the functions XF86VidModeGetModeLine()
71 and XF86VidModeGetViewPort(), in support of virtual desktops
72 where the X server's root window is bigger than the actual
73 screen. This is an XFree86 thing, and probably doesn't exist
74 elsewhere. (It's available if the file
75 /usr/include/X11/extensions/xf86vmode.h exists.)])
77 AH_TEMPLATE([HAVE_XF86VMODE_GAMMA],
78 [Define this if you have the functions XF86VidModeGetGamma() and
79 XF86VidModeSetGamma(), which allow clients to change the gamma
80 response of the monitor. This is an XFree86 4.0.x thing, and
81 probably doesn't exist elsewhere. (It's available if the file
82 /usr/include/X11/extensions/xf86vmode.h exists and has stuff about
85 AH_TEMPLATE([HAVE_XF86VMODE_GAMMA_RAMP],
86 [Define this if you have the functions XF86VidModeGetGammaRamp()
87 and XF86VidModeSetGammaRamp(), which provide finer-grained
88 control than XF86VidMode[GS]etGamma(). These appeared in
91 AH_TEMPLATE([HAVE_XINERAMA],
92 [Define this if you have the Xinerama extension. This is
93 standard on sufficiently-recent XFree86 systems, and possibly
94 elsewhere. (It's available if the file
95 /usr/include/X11/extensions/Xinerama.h exists.)])
97 AH_TEMPLATE([HAVE_XF86MISCSETGRABKEYSSTATE],
98 [Define this if you have the XF86MiscSetGrabKeysState function
99 (which allows the Ctrl-Alt-KP_star and Ctrl-Alt-KP_slash key
100 sequences to be temporarily disabled. Sadly, it doesn't affect
101 Ctrl-Alt-BS or Ctrl-Alt-F1.)])
103 AH_TEMPLATE([HAVE_RANDR],
104 [Define this if you have the Resize and Rotate extension.
105 This is standard on sufficiently-recent XFree86 systems, and
106 possibly elsewhere. (It's available if the file
107 /usr/include/X11/extensions/Xrandr.h exists.)])
109 AH_TEMPLATE([HAVE_PROC_INTERRUPTS],
110 [Define this if you have a Linux-like /proc/interrupts file which
111 can be examined to determine when keyboard activity has
114 AH_TEMPLATE([HAVE_MOTIF],[Define this if you have Motif.])
116 AH_TEMPLATE([HAVE_XMCOMBOBOX],
117 [Define this if you have the XmComboBox Motif widget (Motif 2.0.)])
119 AH_TEMPLATE([HAVE_GTK],[Define this if you have Gtk (any version.)])
120 AH_TEMPLATE([HAVE_GTK2],[Define this if you have Gtk 2.x.])
122 AH_TEMPLATE([HAVE_CRAPPLET],
123 [Define this if you have Gnome and want to build support for the
124 xscreensaver control panel in the Gnome Control Center
125 (gnomecc). (This is needed only with Gtk 1.x.)])
127 AH_TEMPLATE([HAVE_CRAPPLET_IMMEDIATE],
128 [Define this if HAVE_CRAPPLET is defined, and the function
129 capplet_widget_changes_are_immediate() is available.])
131 AH_TEMPLATE([HAVE_XML],[Define this if you have the XML library.])
133 AH_TEMPLATE([HAVE_OLD_XML_HEADERS],
134 [Define this if you have the XML library headers in their old,
135 non-namespaced location (you lack the gnome-xml/libxml symlink)])
137 AH_TEMPLATE([HAVE_XPM],
138 [Define this if you have the XPM library installed. Some of the
139 demos can make use of this if it is available.])
141 AH_TEMPLATE([HAVE_GDK_PIXBUF],
142 [Define this if you have the GDK_Pixbuf library installed. Some
143 of the demos can make use of this if it is available.])
145 AH_TEMPLATE([HAVE_JPEGLIB],
146 [Define this if you have the Independent JPEG Group's JPEG
147 library installed. Some of the demos can make use of this if it
150 AH_TEMPLATE([HAVE_XMU],
151 [Define this if you have the Xmu library. This is standard part
152 of X, and if your vendor doesn't ship it, you should report that
155 AH_TEMPLATE([HAVE_GL],
156 [Define this if you have OpenGL. Some of the demos require it,
157 so if you don't have it, then those particular demos won't be
158 built. (This won't affect the screen saver as a whole.)])
160 AH_TEMPLATE([HAVE_MESA_GL],
161 [Define this if you have OpenGL, but it's the MesaGL variant.
162 (The libraries have different names.) (HAVE_GL should be defined
165 AH_TEMPLATE([HAVE_GLBINDTEXTURE],
166 [Define this if your version of OpenGL has the glBindTexture()
167 routine. This is the case for OpenGL 1.1, but not for OpenGL
170 AH_TEMPLATE([HAVE_GLE],
171 [Define this if you have the -lgle and -lmatrix libraries (GL
174 AH_TEMPLATE([HAVE_GLE3],[Define this if you have the -lgle from GLE version 3])
176 AH_TEMPLATE([HAVE_XSHM_EXTENSION],
177 [Define this if you have the X Shared Memory Extension.])
179 AH_TEMPLATE([HAVE_DOUBLE_BUFFER_EXTENSION],
180 [Define this if you have the X Double Buffer Extension.])
182 AH_TEMPLATE([FORTUNE_PROGRAM],
183 [Some screenhacks like to run an external program to generate
184 random pieces of text; set this to the one you like. Note that
185 this is just the default; X resources can be used to override
188 AH_TEMPLATE([PASSWD_HELPER_PROGRAM],
189 [Set the name of the password helper program, if any])
191 AH_TEMPLATE([NO_LOCKING],
192 [Define this to remove the option of locking the screen at all.])
194 AH_TEMPLATE([HAVE_KERBEROS],
195 [Define this if you want to use Kerberos authentication to
196 lock/unlock the screen instead of your local password. This
197 currently uses Kerberos V4, but a V5 server with V4
198 compatibility will work. WARNING: DO NOT USE AFS string-to-key
199 passwords with this option. This option currently *only* works
200 with standard Kerberos des_string_to_key. If your password is
201 an AFS password and not a kerberos password, it will not
202 authenticate properly. See the comments in driver/kpasswd.c for
203 more information if you need it.])
205 AH_TEMPLATE([HAVE_KERBEROS5],
206 [Define this if you have Kerberos 5, meaning we need to use the
207 Kerberos 4 compatibility layer.])
209 AH_TEMPLATE([HAVE_PAM],
210 [Define this if you want to use PAM (Pluggable Authentication
211 Modules) to lock/unlock the screen, instead of standard
212 /etc/passwd authentication.])
214 AH_TEMPLATE([PAM_SERVICE_NAME],
215 [If PAM is being used, this is the name of the PAM service that
216 xscreensaver will authenticate as. The default is
217 "xscreensaver", which means that the PAM library will look for
218 an "xscreensaver" line in /etc/pam.conf, or (on recent Linux
219 systems) will look for a file called /etc/pam.d/xscreensaver.
220 Some systems might already have a PAM installation that is
221 configured for xlock, so setting this to "xlock" would also work
224 AH_TEMPLATE([PAM_STRERROR_TWO_ARGS],
225 [Define if you have PAM and pam_strerror() requires two
228 AH_TEMPLATE([HAVE_SHADOW_PASSWD],
229 [Define this if your system uses 'shadow' passwords, that is, the
230 passwords live in /etc/shadow instead of /etc/passwd, and one
231 reads them with getspnam() instead of getpwnam(). (Note that
232 SCO systems do some random other thing; others might as well.
233 See the ifdefs in driver/passwd-pwent.c if you're having trouble
234 related to reading passwords.)])
236 AH_TEMPLATE([HAVE_ENHANCED_PASSWD],
237 [Define this if your system is Digital or SCO Unix with so-called
238 ``Enhanced Security'', that is, the passwords live in
239 /tcb/files/auth/<x>/<xyz> instead of in /etc/passwd, and one
240 reads them with getprpwnam() instead of getpwnam().])
242 AH_TEMPLATE([HAVE_ADJUNCT_PASSWD],
243 [Define this if your system is Solaris with ``adjunct'' passwords
244 (this is the version where one gets at the passwords with
245 getpwanam() instead of getpwnam().) I haven't tested this one,
246 let me know if it works.])
248 AH_TEMPLATE([HAVE_HPUX_PASSWD],
249 [Define this if you are running HPUX with so-called ``Secure
250 Passwords'' (if you have /usr/include/hpsecurity.h, you probably
251 have this.) I haven't tested this one, let me know if it works.])
253 AH_TEMPLATE([HAVE_VT_LOCKSWITCH],
254 [Define this if you are on a system that supports the
255 VT_LOCKSWITCH and VT_UNLOCKSWITCH ioctls. If this is defined,
256 then when the screen is locked, switching to another virtual
257 terminal will also be prevented. That is, the whole console
258 will be locked, rather than just the VT on which X is running.
259 (Well, that's the theory anyway -- in practice, I haven't yet
260 figured out how to make that work.)])
262 AH_TEMPLATE([HAVE_SYSLOG],
263 [Define this if you the openlog(), syslog(), and closelog()
264 functions. This is used for logging failed login attempts.])
266 AH_TEMPLATE([HAVE_ICMP],
267 [Define this if you do pings with a `struct icmp' and an
270 AH_TEMPLATE([HAVE_ICMPHDR],
271 [Define this if you do pings with a `struct icmphdr' and an
274 AH_TEMPLATE([HAVE_FORKPTY],
275 [Define this if you have the 'forkpty' function:
276 This allows 'phosphor' and 'apple2' to run curses-based
277 programs, or be used as terminal windows.])
279 AH_TEMPLATE([HAVE_GETTIMEOFDAY],
280 [Define this if you have the gettimeofday function.])
282 AH_TEMPLATE([GETTIMEOFDAY_TWO_ARGS],
283 [Define this if gettimeofday() takes two arguments.])
285 AH_TEMPLATE([XPointer],
286 [Define this to void* if you're using X11R4 or earlier.])
288 # After checking to see that --srcdir is correct (which AC_INIT does)
289 # check for some random other files that come later in the tar file,
290 # to make sure everything is here.
292 for d in driver utils hacks hacks/glx ; do
293 f=$srcdir/$d/Makefile.in
294 if test \! -r $f ; then
296 echo "ERROR: The package is incomplete: $f does not exist."
297 echo " This probably means that your download was truncated."
303 ###############################################################################
305 # Function to figure out how to run the compiler.
307 ###############################################################################
309 AC_DEFUN(AC_PROG_CC_ANSI,
312 if test -z "$GCC"; then
314 AC_MSG_CHECKING(how to request ANSI compilation)
317 AC_MSG_RESULT(HPUX: adding -Ae)
321 AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e)
322 CC="$CC -qlanglvl=ansi -qhalt=e"
325 AC_MSG_RESULT(DEC: adding -std1 -ieee)
329 AC_MSG_RESULT(no idea)
336 AC_MSG_RESULT(Solaris: adding -D__EXTENSIONS__)
337 CC="$CC -D__EXTENSIONS__"
344 AC_MSG_CHECKING([whether the compiler works on ANSI C])
345 AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
348 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
349 AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
351 if test -n "$GCC"; then
352 AC_MSG_RESULT(Turning on gcc compiler warnings.)
353 CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs"
355 # supposedly gcc 3.4 will have "-Wdeclaration-after-statement"
356 # and then perhaps we can do without -pedantic?
359 *-irix5* |*-irix6.[0-3]* )
360 AC_MSG_RESULT(Turning on SGI compiler warnings.)
361 CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
364 # if test -z "$GCC"; then
365 # AC_MSG_RESULT(Turning on DEC C compiler warnings.)
366 # CC="$CC -migrate -w0 -verbose -warnprotos"
374 ###############################################################################
376 # Functions to figure out how to disable // comments in ANSI C code.
378 # (With recent gcc, this is done with "-std=c89". With older gcc, this
379 # is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to
380 # gcc. Old gcc doesn't support -std, and new gcc doesn't support -lang.
381 # so much for compatibility!)
383 # UPDATE: apparently there is NO WAY to tell gcc 3.2.2 to require that
384 # declarations preceed statements, without resorting to "-pedantic".
385 # This means that there is no way to get gcc3 to issue warnings that
386 # ensure that your code complies with the ANSI/ISO C89 standard, without
387 # also drowning in totally useless warnings. Thank you master may I
390 # So, I give up, let's just use -pedantic.
392 ###############################################################################
394 AC_DEFUN(AC_GCC_ACCEPTS_STD,
395 [if test -n "$GCC"; then
396 AC_CACHE_CHECK([whether gcc accepts -std],
397 ac_cv_gcc_accepts_std,
398 [if ( ( gcc -E -std=c89 - </dev/null >/dev/null ) 2>&1 | \
399 grep unrecognized >/dev/null ); then
400 ac_cv_gcc_accepts_std=no
402 ac_cv_gcc_accepts_std=yes
404 ac_gcc_accepts_std="$ac_cv_gcc_accepts_std"
408 AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE,
409 [if test -n "$GCC"; then
411 AC_MSG_RESULT(Disabling C++ comments in ANSI C code.)
413 # The reason that // comments are banned from xscreensaver is that gcc is
414 # basically the only compiler in the world that supports them in C code.
415 # All other vendors support them only in their C++ compilers, not in their
416 # ANSI C compilers. This means that it's a portability problem: every time
417 # these comments have snuck into the xscreensaver source code, I've gotten
418 # complaints about it the next day. So we turn off support for them in gcc
419 # as well to prevent them from accidentially slipping in.
421 if test "$ac_gcc_accepts_std" = yes ; then
423 # -std=c89 defines __STRICT_ANSI__, which we don't want.
424 # (That appears to be the only additional preprocessor symbol
425 # it defines, in addition to the syntax changes it makes.)
427 # -std=gnu89 is no good, because // comments were a GNU extension
428 # before they were in the ANSI C 99 spec... (gcc 2.96 permits //
429 # with -std=gnu89 but not with -std=c89.)
431 CC="$CC -std=c89 -U__STRICT_ANSI__"
434 CC="$CC -Wp,-lang-c89"
440 ###############################################################################
442 # Function to figure out how to turn off Objective C on MacOS X.
443 # (We have to do this to work around an Apple-specific gcc bug.)
445 ###############################################################################
447 AC_DEFUN(AC_GCC_ACCEPTS_NO_CPP_PRECOMP,
448 [if test -n "$GCC"; then
449 AC_CACHE_CHECK([whether gcc accepts -no-cpp-precomp],
450 ac_cv_gcc_accepts_no_cpp_precomp,
451 [if ( ( gcc -E -no-cpp-precomp - </dev/null >/dev/null ) 2>&1 | \
452 grep unrecognized >/dev/null ); then
453 ac_cv_gcc_accepts_no_cpp_precomp=no
455 ac_cv_gcc_accepts_no_cpp_precomp=yes
457 ac_gcc_accepts_no_cpp_precomp="$ac_cv_gcc_accepts_no_cpp_precomp"
461 AC_DEFUN(AC_NO_OBJECTIVE_C,
462 [if test -n "$GCC"; then
463 AC_GCC_ACCEPTS_NO_CPP_PRECOMP
464 if test "$ac_gcc_accepts_no_cpp_precomp" = yes ; then
465 AC_MSG_RESULT(Disabling Objective C extensions in ANSI C code.)
466 CC="$CC -no-cpp-precomp"
472 ###############################################################################
474 # Function to figure out how to create directory trees.
476 ###############################################################################
478 AC_DEFUN(AC_PROG_INSTALL_DIRS,
479 [AC_CACHE_CHECK([whether "\${INSTALL} -d" creates intermediate directories],
480 ac_cv_install_d_creates_dirs,
481 [ac_cv_install_d_creates_dirs=no
483 if mkdir conftestdir; then
484 cd conftestdir 2>/dev/null
485 ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1
486 if test -d dir1/dir2/. ; then
487 ac_cv_install_d_creates_dirs=yes
494 if test "$ac_cv_install_d_creates_dirs" = no ; then
495 AC_CACHE_CHECK([whether "mkdir -p" creates intermediate directories],
496 ac_cv_mkdir_p_creates_dirs,
497 [ac_cv_mkdir_p_creates_dirs=no
499 if mkdir conftestdir; then
500 cd conftestdir 2>/dev/null
501 mkdir -p dir1/dir2 >/dev/null 2>&1
502 if test -d dir1/dir2/. ; then
503 ac_cv_mkdir_p_creates_dirs=yes
511 if test "$ac_cv_install_d_creates_dirs" = yes ; then
512 INSTALL_DIRS='${INSTALL} -d'
513 elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then
514 INSTALL_DIRS='mkdir -p'
517 INSTALL_DIRS='${INSTALL} -d'
522 ###############################################################################
524 # Function to check whether gettimeofday() exists, and how to call it.
525 # This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS.
527 ###############################################################################
529 AC_DEFUN(AC_GETTIMEOFDAY_ARGS,
530 [AC_MSG_CHECKING(how to call gettimeofday)
531 AC_CACHE_VAL(ac_cv_gettimeofday_args,
532 [AC_TRY_COMPILE([#include <stdlib.h>
533 #include <sys/time.h>],
534 [struct timeval tv; struct timezone tzp;
535 gettimeofday(&tv, &tzp);],
536 [ac_gettimeofday_args=2],
537 [AC_TRY_COMPILE([#include <stdlib.h>
538 #include <sys/time.h>],
539 [struct timeval tv; gettimeofday(&tv);],
540 [ac_gettimeofday_args=1],
541 [ac_gettimeofday_args=0])])
542 ac_cv_gettimeofday_args=$ac_gettimeofday_args])
543 ac_gettimeofday_args=$ac_cv_gettimeofday_args
544 if test "$ac_gettimeofday_args" = 1 ; then
545 AC_DEFINE(HAVE_GETTIMEOFDAY)
546 AC_MSG_RESULT(one argument)
547 elif test "$ac_gettimeofday_args" = 2 ; then
548 AC_DEFINE(HAVE_GETTIMEOFDAY)
549 AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
550 AC_MSG_RESULT(two arguments)
552 AC_MSG_RESULT(unknown)
557 ###############################################################################
559 # Function to find perl5 (defines PERL and PERL_VERSION.)
561 ###############################################################################
563 # M4 sucks!! perl sucks too!!
565 perl_version_cmd='print $]'
568 AC_DEFUN(AC_PROG_PERL,
569 [AC_PATH_PROGS(PERL, [perl5 perl],,)
570 if test -z "$PERL" ; then
573 AC_CACHE_CHECK([perl version], ac_cv_perl_version,
574 [ac_cv_perl_version=`$PERL -e "$perl_version_cmd"`])
575 PERL_VERSION=$ac_cv_perl_version
580 ###############################################################################
582 # Function to demand "bc". Losers.
584 ###############################################################################
586 AC_DEFUN(AC_DEMAND_BC,
587 [ac_bc_result=`echo 6+9 | bc 2>/dev/null`
588 AC_MSG_CHECKING([for bc])
589 if test "$ac_bc_result" = "15" ; then
594 AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard
595 part of Unix since the 1970s. Come back when your vendor
600 ###############################################################################
602 # Functions to check how to do ICMP PING requests.
604 ###############################################################################
606 AC_DEFUN(AC_CHECK_ICMP,
607 [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp,
608 [AC_TRY_COMPILE([#include <stdlib.h>
615 #include <sys/types.h>
616 #include <sys/time.h>
619 #include <sys/socket.h>
620 #include <netinet/in_systm.h>
621 #include <netinet/in.h>
622 #include <netinet/ip.h>
623 #include <netinet/ip_icmp.h>
624 #include <netinet/udp.h>
625 #include <arpa/inet.h>
629 struct sockaddr_in si;
631 i.icmp_type = ICMP_ECHO;
636 si.sin_family = AF_INET;
637 #if defined(__DECC) || defined(_IP_VHL)
643 [ac_cv_have_icmp=yes],
644 [ac_cv_have_icmp=no])])
645 if test "$ac_cv_have_icmp" = yes ; then
649 AC_DEFUN(AC_CHECK_ICMPHDR,
650 [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr,
651 [AC_TRY_COMPILE([#include <stdlib.h>
658 #include <sys/types.h>
659 #include <sys/time.h>
662 #include <sys/socket.h>
663 #include <netinet/in_systm.h>
664 #include <netinet/in.h>
665 #include <netinet/ip.h>
666 #include <netinet/ip_icmp.h>
667 #include <netinet/udp.h>
668 #include <arpa/inet.h>
672 struct sockaddr_in si;
678 i.un.echo.sequence = 0;
679 si.sin_family = AF_INET;
681 [ac_cv_have_icmphdr=yes],
682 [ac_cv_have_icmphdr=no])])
683 if test "$ac_cv_have_icmphdr" = yes ; then
684 AC_DEFINE(HAVE_ICMPHDR)
688 ###############################################################################
690 # Functions to check for various X11 crap.
692 ###############################################################################
694 # Try and find the app-defaults directory.
695 # It sucks that autoconf doesn't do this already...
697 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
699 if mkdir conftestdir; then
700 cd conftestdir 2>/dev/null
701 # Make sure to not put "make" in the Imakefile rules, since we grep it out.
702 cat > Imakefile <<'EOF'
704 @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
706 if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then
707 # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
708 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
714 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
715 # Look for the directory under a standard set of common directories.
716 # Check X11 before X11Rn because it's often a symlink to the current release.
718 /usr/X11/lib/app-defaults \
719 /usr/X11R6/lib/app-defaults \
720 /usr/X11R6/lib/X11/app-defaults \
721 /usr/X11R5/lib/app-defaults \
722 /usr/X11R5/lib/X11/app-defaults \
723 /usr/X11R4/lib/app-defaults \
724 /usr/X11R4/lib/X11/app-defaults \
726 /usr/lib/X11/app-defaults \
727 /usr/lib/X11R6/app-defaults \
728 /usr/lib/X11R5/app-defaults \
729 /usr/lib/X11R4/app-defaults \
731 /usr/local/X11/lib/app-defaults \
732 /usr/local/X11R6/lib/app-defaults \
733 /usr/local/X11R5/lib/app-defaults \
734 /usr/local/X11R4/lib/app-defaults \
736 /usr/local/lib/X11/app-defaults \
737 /usr/local/lib/X11R6/app-defaults \
738 /usr/local/lib/X11R6/X11/app-defaults \
739 /usr/local/lib/X11R5/app-defaults \
740 /usr/local/lib/X11R5/X11/app-defaults \
741 /usr/local/lib/X11R4/app-defaults \
742 /usr/local/lib/X11R4/X11/app-defaults \
744 /usr/X386/lib/X11/app-defaults \
745 /usr/x386/lib/X11/app-defaults \
746 /usr/XFree86/lib/X11/app-defaults \
748 /usr/lib/X11/app-defaults \
749 /usr/local/lib/X11/app-defaults \
750 /usr/unsupported/lib/X11/app-defaults \
751 /usr/athena/lib/X11/app-defaults \
752 /usr/local/x11r5/lib/X11/app-defaults \
753 /usr/lpp/Xamples/lib/X11/app-defaults \
754 /lib/usr/lib/X11/app-defaults \
756 /usr/openwin/lib/app-defaults \
757 /usr/openwin/lib/X11/app-defaults \
758 /usr/openwin/share/lib/app-defaults \
759 /usr/openwin/share/lib/X11/app-defaults \
761 /X11R6/lib/app-defaults \
762 /X11R5/lib/app-defaults \
763 /X11R4/lib/app-defaults \
766 if test -d "$ac_dir"; then
767 ac_x_app_defaults=$ac_dir
773 AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
775 AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
776 [AC_PATH_X_APP_DEFAULTS_XMKMF
777 if test x"$ac_x_app_defaults" = x; then
778 AC_PATH_X_APP_DEFAULTS_DIRECT
780 if test x"$ac_x_app_defaults" = x; then
781 ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
783 # Record where we found app-defaults for the cache.
784 ac_cv_x_app_defaults="$ac_x_app_defaults"
786 eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
789 AC_DEFUN(AC_XPOINTER,
790 [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
791 [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
792 [XPointer foo = (XPointer) 0;],
793 [ac_cv_xpointer=yes],
794 [ac_cv_xpointer=no])])
795 if test "$ac_cv_xpointer" != yes; then
796 AC_DEFINE(XPointer,[char*])
800 # Random special-cases for X on certain pathological OSes.
801 # You know who you are.
803 AC_DEFUN(AC_X_RANDOM_PATHS,
807 # The following arcana was gleaned from conversations with
808 # Eric Schwartz <erics@col.hp.com>:
810 # On HPUX 10.x, the parts of X that HP considers "standard" live in
811 # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider
812 # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
813 # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems.
814 # Also, there are symlinks from /usr/include/ and /usr/lib/ into
815 # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
816 # you don't need any -I or -L arguments.
818 # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
819 # are the same division as 10.x. However, there are no symlinks to
820 # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
821 # arguments are always necessary.
823 # However, X11R6 was available on HPUX 9.x as a patch: if that
824 # patch was installed, then all of X11R6 went in to
825 # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
827 # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
828 # whether R5 was available as a patch; R6 undoubtedly was not.)
830 # So. We try and use the highest numbered pair of
831 # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
832 # that are available. We do not mix and match different versions
835 # Question I still don't know the answer to: (do you?)
837 # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
838 # /usr/contrib/X11R6/ could be installed as a patch, what was in
839 # that contrib directory? Did it contain so-called "standard"
840 # X11R6, or did it include Xaw and Xmu as well? If the former,
841 # where did one find Xaw and Xmu on 9.x R6 systems? Would this
842 # be a situation where one had to reach into the R5 headers and
843 # libs to find Xmu? That is, must both R6 and R5 directories
844 # be on the -I and -L lists in that case?
846 for version in X11R6 X11R5 X11R4 ; do
847 # if either pair of directories exists...
848 if test -d /usr/include/$version || test -d /usr/contrib/$version/include
850 # if contrib exists, use it...
851 if test -d /usr/contrib/$version/include ; then
852 X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
853 X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
855 # if the "standard" one exists, use it.
856 if test -d /usr/include/$version ; then
857 X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
858 X_LIBS="$X_LIBS -L/usr/lib/$version"
860 # since at least one of the pair exists, go no farther.
865 # Now find Motif. Thanks for not making xmkmf find this by
866 # default, you losers.
868 if test -d /usr/include/Motif2.1 ; then
869 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif2.1"
870 X_LIBS="$X_LIBS -L/usr/lib/Motif2.1"
871 elif test -d /usr/include/Motif1.2 ; then
872 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
873 X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
874 elif test -d /usr/include/Motif1.1 ; then
875 X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
876 X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
879 # Now let's check for the pseudo-standard locations for OpenGL and XPM.
881 if test -d /opt/graphics/OpenGL/include ; then
882 # HP-UX 10.20 puts it here
883 X_CFLAGS="-I/opt/graphics/OpenGL/include $X_CFLAGS"
884 X_LIBS="-L/opt/graphics/OpenGL/lib $X_LIBS"
885 elif test -d /opt/Mesa/lib ; then
886 X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
887 X_LIBS="-L/opt/Mesa/lib $X_LIBS"
891 if test -d /opt/xpm/lib/X11 ; then
892 X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
893 X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
896 # On HPUX, default to installing in /opt/xscreensaver/ instead of
897 # in /usr/local/, unless there is already an xscreensaver in
898 # /usr/local/bin/. This can be overridden with the --prefix arg
899 # to configure. I'm not sure this is the right thing to do, but
900 # Richard Lloyd says so...
902 if test \! -x /usr/local/bin/xscreensaver ; then
903 ac_default_prefix=/opt/xscreensaver
909 # Thanks for not making xmkmf find this by default, pinheads.
910 # And thanks for moving things around again, too. Is this
911 # really the standard location now? What happened to the
912 # joke that this kind of thing went in /opt?
913 # cthomp says "answer: CDE (Common Disorganized Environment)"
915 if test -f /usr/dt/include/Xm/Xm.h ; then
916 X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
917 MOTIF_LIBS="$MOTIF_LIBS -L/usr/dt/lib -R/usr/dt/lib"
919 # Some versions of Slowlaris Motif require -lgen. But not all. Why?
920 AC_CHECK_LIB(gen, regcmp, [MOTIF_LIBS="$MOTIF_LIBS -lgen"])
926 # On MacOS X (10.x with "fink"), many things are under /sw/.
928 if test -d /sw/include ; then
929 X_CFLAGS="-I/sw/include $X_CFLAGS"
930 X_LIBS="-L/sw/lib $X_LIBS"
937 ###############################################################################
939 # Some utility functions to make checking for X things easier.
941 ###############################################################################
943 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
945 AC_DEFUN(AC_CHECK_X_HEADER, [
946 ac_save_CPPFLAGS="$CPPFLAGS"
947 if test \! -z "$includedir" ; then
948 CPPFLAGS="$CPPFLAGS -I$includedir"
950 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
951 AC_CHECK_HEADER([$1],[$2],[$3],[$4])
952 CPPFLAGS="$ac_save_CPPFLAGS"])
954 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
956 AC_DEFUN(AC_EGREP_X_HEADER, [
957 ac_save_CPPFLAGS="$CPPFLAGS"
958 if test \! -z "$includedir" ; then
959 CPPFLAGS="$CPPFLAGS -I$includedir"
961 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
962 AC_EGREP_HEADER([$1], [$2], [$3], [$4])
963 CPPFLAGS="$ac_save_CPPFLAGS"])
965 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
967 AC_DEFUN(AC_TRY_X_COMPILE, [
968 ac_save_CPPFLAGS="$CPPFLAGS"
969 if test \! -z "$includedir" ; then
970 CPPFLAGS="$CPPFLAGS -I$includedir"
972 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
973 AC_TRY_COMPILE([$1], [$2], [$3], [$4])
974 CPPFLAGS="$ac_save_CPPFLAGS"])
977 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
978 # Use this sparingly; it probably doesn't work very well on X programs.
980 AC_DEFUN(AC_CHECK_X_LIB, [
981 ac_save_CPPFLAGS="$CPPFLAGS"
982 ac_save_LDFLAGS="$LDFLAGS"
983 # ac_save_LIBS="$LIBS"
985 if test \! -z "$includedir" ; then
986 CPPFLAGS="$CPPFLAGS -I$includedir"
988 # note: $X_CFLAGS includes $x_includes
989 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
991 if test \! -z "$libdir" ; then
992 LDFLAGS="$LDFLAGS -L$libdir"
994 # note: $X_LIBS includes $x_libraries
995 LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
997 AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
998 CPPFLAGS="$ac_save_CPPFLAGS"
999 LDFLAGS="$ac_save_LDFLAGS"
1000 # LIBS="$ac_save_LIBS"
1003 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
1004 # (But not the -L directories!)
1006 AC_DEFUN(AC_TRY_X_RUN, [
1007 ac_save_CPPFLAGS="$CPPFLAGS"
1008 if test \! -z "$includedir" ; then
1009 CPPFLAGS="$CPPFLAGS -I$includedir"
1011 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1012 AC_TRY_RUN([$1], [$2], [$3], [$4])
1013 CPPFLAGS="$ac_save_CPPFLAGS"])
1017 # Usage: HANDLE_X_PATH_ARG([variable_name],
1018 # [--command-line-option],
1019 # [descriptive string])
1021 # All of the --with options take three forms:
1023 # --with-foo (or --with-foo=yes)
1024 # --without-foo (or --with-foo=no)
1027 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees
1028 # a directory (string beginning with a slash) it checks to see whether
1029 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
1032 AC_DEFUN(HANDLE_X_PATH_ARG, [
1038 AC_MSG_CHECKING([for [$3] headers])
1041 X_CFLAGS="-I$d $X_CFLAGS"
1044 AC_MSG_RESULT(not found ($d: no such directory))
1047 AC_MSG_CHECKING([for [$3] libs])
1050 X_LIBS="-L$d $X_LIBS"
1053 AC_MSG_RESULT(not found ($d: no such directory))
1056 # replace the directory string with "yes".
1063 echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
1064 echo " If it is a directory, then \`DIR/include' will be added to"
1065 echo " the -I list, and \`DIR/lib' will be added to the -L list."
1073 ###############################################################################
1074 ###############################################################################
1076 # End of function definitions. Now start actually executing stuff.
1078 ###############################################################################
1079 ###############################################################################
1081 # random compiler setup
1084 AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
1092 # stuff for Makefiles
1094 AC_PROG_INSTALL_DIRS
1097 # By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'.
1098 # That's wrong: it should be set to '${INSTALL}', so that one can
1099 # implement the "install-strip" target properly (strip executables,
1100 # but do not try to strip scripts.)
1102 INSTALL_SCRIPT='${INSTALL}'
1106 AC_CHECK_HEADERS(unistd.h)
1114 AC_GETTIMEOFDAY_ARGS
1115 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk)
1116 AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
1119 AC_CHECK_HEADERS(crypt.h sys/select.h)
1122 if test -z "$PERL" ; then
1123 # don't let it be blank...
1129 if test "$have_x" != yes; then
1130 AC_MSG_ERROR(Couldn't find X11 headers/libs. Try `$0 --help'.)
1133 AC_PATH_X_APP_DEFAULTS
1137 AC_MSG_CHECKING(whether this is MacOS X)
1144 AC_MSG_RESULT($ac_macosx)
1148 ###############################################################################
1152 ###############################################################################
1155 GETTEXT_PACKAGE=xscreensaver
1156 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
1157 [This is the name of the gettext package to use.])
1158 AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE",
1159 [This is the same as GETTEXT_PACKAGE, but for the glade
1161 AC_SUBST(GETTEXT_PACKAGE)
1163 ALL_LINGUAS="ca da de es et fi fr hu it ja ko nb nl no pl pt pt_BR ru sk sv vi wa zh_CN zh_TW"
1165 MKINSTALLDIRS="$INSTALL_DIRS"
1168 ###############################################################################
1170 # Check for -lXmu (some fucked up vendors don't ship it...)
1172 ###############################################################################
1175 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes],,
1176 [#include <stdlib.h>
1178 #include <X11/Intrinsic.h>])
1179 if test "$have_xmu" = no ; then
1180 XMU_SRCS='$(UTILS_SRC)/xmu.c'
1181 XMU_OBJS='$(UTILS_BIN)/xmu.o'
1191 ###############################################################################
1193 # Check for the SunOS 4.1.x _get_wmShellWidgetClass bug.
1194 # See comp.windows.x FAQ question 124. The right fix is to
1195 # get OpenWindows 3.0 patches 100512-02 and 100573-03.
1197 ###############################################################################
1199 if test "$have_xmu" = yes ; then
1202 AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
1203 ac_cv_sunos_xmu_bug,
1204 [ac_save_LDFLAGS="$LDFLAGS"
1205 if test \! -z "$x_libraries" ; then
1206 LDFLAGS="$LDFLAGS -L$x_libraries"
1208 # Note: this trick never works! (Generally.)
1209 # We're only getting away with using AC_TRY_LINK
1210 # with X libraries because we know it's SunOS.
1211 LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
1213 [ac_cv_sunos_xmu_bug=no],
1214 [ac_cv_sunos_xmu_bug=yes])
1215 LDFLAGS="$ac_save_LDFLAGS"])
1216 if test "$ac_cv_sunos_xmu_bug" = yes ; then
1217 AC_CACHE_CHECK([whether the compiler understands -static],
1219 [ac_save_LDFLAGS="$LDFLAGS"
1220 LDFLAGS="$LDFLAGS -static"
1221 AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
1222 LDFLAGS="$ac_save_LDFLAGS"])
1223 if test "$ac_cv_ld_static" = yes ; then
1224 LDFLAGS="$LDFLAGS -static"
1226 LDFLAGS="$LDFLAGS -Bstatic"
1234 ###############################################################################
1236 # Handle the --with-hackdir option
1238 ###############################################################################
1241 with_hackdir_req=unspecified
1242 AC_ARG_WITH(hackdir,[
1244 Installation options:
1245 --with-hackdir=DIR Where to install the hundreds of demo executables.
1246 Default: `PREFIX/libexec/xscreensaver/'],
1247 [with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes])
1249 if test x"$with_hackdir" = xyes; then
1250 HACKDIR='${libexecdir}/xscreensaver'
1251 elif test x"$with_hackdir" = xno; then
1254 HACKDIR=$with_hackdir
1257 # canonicalize slashes.
1258 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
1260 # This option used to be called --enable-subdir; make sure that is no longer
1261 # used, since configure brain-damagedly ignores unknown --enable options.
1264 AC_ARG_ENABLE(subdir,,[obsolete_enable=yes])
1265 if test -n "$obsolete_enable"; then
1266 echo "error: the --enable-subdir option has been replaced with"
1267 echo " the new --with-hackdir option; see \`configure --help'"
1268 echo " for more information."
1273 ###############################################################################
1275 # Handle the --with-configdir option
1277 ###############################################################################
1280 with_configdir_req=unspecified
1281 AC_ARG_WITH(configdir,
1282 [ --with-configdir=DIR Where to install the data files that describe each
1283 of the display modes to the GUI.
1284 Default: `PREFIX/share/xscreensaver/config/'
1286 [with_configdir="$withval"; with_configdir_req="$withval"],
1287 [with_configdir=yes])
1289 if test x"$with_configdir" = xyes; then
1290 HACK_CONF_DIR='${datadir}/xscreensaver/config'
1291 elif test x"$with_configdir" = xno; then
1292 echo "error: must be yes, or a pathname: --with-configdir=$with_configdir"
1295 # there must be a better way than this...
1296 if test -z "`echo $with_configdir | sed 's@^/.*@@'`" ; then
1298 HACK_CONF_DIR=$with_configdir
1301 HACK_CONF_DIR="\${exec_prefix}$with_configdir"
1308 ###############################################################################
1310 # Check for the SGI SCREEN_SAVER server extension.
1312 ###############################################################################
1315 with_sgi_req=unspecified
1316 AC_ARG_WITH(sgi-ext,
1317 [Except where noted, all of the --with options below can also take a
1318 directory argument: for example, `--with-motif=/opt/Motif'. That would
1319 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
1320 to be added to the -L list, assuming those directories exist.
1322 By default, support for each of these options will be built in, if the
1323 relevant library routines exist. At run time, they will then be used
1324 only if the X server being used supports them. Each --with option has
1325 a corresponding --without option, to override building support for them
1328 Screen blanking and idle-detection options:
1330 --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.],
1331 [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
1333 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
1335 if test "$with_sgi" = yes; then
1336 AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
1338 AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],,
1339 [#include <X11/Xlib.h>])
1341 elif test "$with_sgi" != no; then
1342 echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
1347 ###############################################################################
1349 # Check for the XIDLE server extension.
1351 ###############################################################################
1354 with_xidle_req=unspecified
1355 AC_ARG_WITH(xidle-ext,
1356 [ --with-xidle-ext Include support for the XIDLE extension.],
1357 [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
1359 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
1361 if test "$with_xidle" = yes; then
1362 AC_CHECK_X_HEADER(X11/extensions/xidle.h,
1364 AC_DEFINE(HAVE_XIDLE_EXTENSION)],,
1365 [#include <X11/Xlib.h>])
1366 elif test "$with_xidle" != no; then
1367 echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
1372 ###############################################################################
1374 # Check for the SGI-VIDEO-CONTROL server extension.
1376 ###############################################################################
1379 with_sgivc_req=unspecified
1380 AC_ARG_WITH(sgivc-ext,
1381 [ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension.],
1382 [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
1384 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
1386 if test "$with_sgivc" = yes; then
1388 # first check for XSGIvc.h
1389 AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],,
1390 [#include <X11/Xlib.h>])
1392 # if that succeeded, then check for the -lXsgivc
1393 if test "$have_sgivc" = yes; then
1395 AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
1396 [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
1400 # if that succeeded, then we've really got it.
1401 if test "$have_sgivc" = yes; then
1402 AC_DEFINE(HAVE_SGI_VC_EXTENSION)
1405 elif test "$with_sgivc" != no; then
1406 echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
1411 ###############################################################################
1413 # Check for the DPMS server extension.
1415 ###############################################################################
1418 with_dpms_req=unspecified
1419 AC_ARG_WITH(dpms-ext,
1420 [ --with-dpms-ext Include support for the DPMS extension.],
1421 [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
1423 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
1425 if test "$with_dpms" = yes; then
1427 # first check for dpms.h
1428 AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes],,
1429 [#include <X11/Xlib.h>
1430 #include <X11/Xmd.h>])
1432 # if that succeeded, then check for the DPMS code in the libraries
1433 if test "$have_dpms" = yes; then
1435 # first look in -lXext (this is where it is with XFree86 4.0)
1437 AC_CHECK_X_LIB(Xext, DPMSInfo, [have_dpms=yes], [true], -lXext -lX11)
1439 # if that failed, look in -lXdpms (this is where it was in XFree86 3.x)
1440 if test "$have_dpms" = no; then
1441 AC_CHECK_X_LIB(Xdpms, DPMSInfo,
1442 [have_dpms=yes; XDPMS_LIBS="-lXdpms"], [true],
1448 # if that succeeded, then we've really got it.
1449 if test "$have_dpms" = yes; then
1450 AC_DEFINE(HAVE_DPMS_EXTENSION)
1453 elif test "$with_dpms" != no; then
1454 echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
1459 ###############################################################################
1461 # Check for the XINERAMA server extension.
1463 ###############################################################################
1466 with_xinerama_req=unspecified
1467 AC_ARG_WITH(xinerama-ext,
1468 [ --with-xinerama-ext Include support for the XINERAMA extension.],
1469 [with_xinerama="$withval"; with_xinerama_req="$withval"],[with_xinerama=yes])
1471 HANDLE_X_PATH_ARG(with_xinerama, --with-xinerama-ext, XINERAMA)
1473 if test "$with_xinerama" = yes; then
1475 # first check for Xinerama.h
1476 AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes],,
1477 [#include <X11/Xlib.h>])
1479 # if that succeeded, then check for the XINERAMA code in the libraries
1480 if test "$have_xinerama" = yes; then
1482 # first look in -lXext
1484 AC_CHECK_X_LIB(Xext, XineramaQueryScreens, [have_xinerama=yes], [true],
1487 # if that failed, look in -lXinerama (this is where it is in XFree86 4.1.)
1488 if test "$have_xinerama" = no; then
1489 AC_CHECK_X_LIB(Xinerama, XineramaQueryScreens,
1490 [have_xinerama=yes; XINERAMA_LIBS="-lXinerama"],
1491 [true], -lXext -lX11)
1495 # if that succeeded, then we've really got it.
1496 if test "$have_xinerama" = yes; then
1497 AC_DEFINE(HAVE_XINERAMA)
1500 elif test "$with_xinerama" != no; then
1501 echo "error: must be yes or no: --with-xinerama-ext=$with_xinerama"
1506 ###############################################################################
1508 # Check for the XF86VMODE server extension (for virtual screens.)
1510 ###############################################################################
1513 with_xf86vmode_req=unspecified
1514 AC_ARG_WITH(xf86vmode-ext,
1515 [ --with-xf86vmode-ext Include support for XFree86 virtual screens.],
1516 [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"],
1517 [with_xf86vmode=yes])
1519 HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
1523 if test "$with_xf86vmode" = yes; then
1525 # first check for xf86vmode.h
1526 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],,
1527 [#include <X11/Xlib.h>])
1529 # if that succeeded, then check for the -lXxf86vm
1530 if test "$have_xf86vmode" = yes; then
1532 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
1533 [have_xf86vmode=yes;
1534 VIDMODE_LIBS="-lXxf86vm";
1535 SAVER_LIBS="$SAVER_LIBS $VIDMODE_LIBS"],
1536 [true], -lXext -lX11)
1539 # if that succeeded, then we've really got it.
1540 if test "$have_xf86vmode" = yes; then
1541 AC_DEFINE(HAVE_XF86VMODE)
1544 elif test "$with_xf86vmode" != no; then
1545 echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
1550 ###############################################################################
1552 # Check for the XF86VMODE server extension (for gamma fading.)
1554 ###############################################################################
1557 have_xf86gamma_ramp=no
1558 with_xf86gamma_req=unspecified
1559 AC_ARG_WITH(xf86gamma-ext,
1560 [ --with-xf86gamma-ext Include support for XFree86 gamma fading.],
1561 [with_xf86gamma="$withval"; with_xf86gamma_req="$withval"],
1562 [with_xf86gamma=yes])
1564 HANDLE_X_PATH_ARG(with_xf86gamma, --with-xf86gamma-ext, xf86gamma)
1566 if test "$with_xf86gamma" = yes; then
1568 # first check for xf86vmode.h, if we haven't already
1569 if test "$have_xf86vmode" = yes; then
1572 AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],,
1573 [#include <X11/Xlib.h>])
1576 # if that succeeded, then check for the -lXxf86vm
1577 if test "$have_xf86gamma" = yes; then
1579 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGamma,
1580 [have_xf86gamma=yes],
1581 [true], -lXext -lX11)
1584 # check for the Ramp versions of the functions too.
1585 if test "$have_xf86gamma" = yes; then
1586 have_xf86gamma_ramp=no
1587 AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGammaRamp,
1588 [have_xf86gamma_ramp=yes],
1589 [true], -lXext -lX11)
1592 # if those tests succeeded, then we've really got the functions.
1593 if test "$have_xf86gamma" = yes; then
1594 AC_DEFINE(HAVE_XF86VMODE_GAMMA)
1597 if test "$have_xf86gamma_ramp" = yes; then
1598 AC_DEFINE(HAVE_XF86VMODE_GAMMA_RAMP)
1601 # pull in the lib, if we haven't already
1602 if test "$have_xf86gamma" = yes -a "$have_xf86vmode" = no; then
1603 SAVER_LIBS="$SAVER_LIBS -lXxf86vm"
1606 elif test "$with_xf86gamma" != no; then
1607 echo "error: must be yes or no: --with-xf86gamma-ext=$with_xf86vmode"
1612 ###############################################################################
1614 # Check for the RANDR (Resize and Rotate) server extension.
1616 # We need this to detect when the resolution of the desktop
1617 # has changed out from under us (this is a newer, different
1618 # mechanism than the XF86VMODE virtual viewports.)
1620 ###############################################################################
1623 with_randr_req=unspecified
1624 AC_ARG_WITH(randr-ext,
1625 [ --with-randr-ext Include support for the X Resize+Rotate extension.],
1626 [with_randr="$withval"; with_randr_req="$withval"],[with_randr=yes])
1628 HANDLE_X_PATH_ARG(with_randr, --with-randr-ext, RANDR)
1630 if test "$with_randr" = yes; then
1632 # first check for Randr.h
1633 AC_CHECK_X_HEADER(X11/extensions/Xrandr.h, [have_randr=yes],,
1634 [#include <X11/Xlib.h>])
1636 # if that succeeded, then check for the XRR code in the libraries
1637 if test "$have_randr" = yes; then
1639 # RANDR probably needs -lXrender
1641 AC_CHECK_X_LIB(Xrender, XRenderSetSubpixelOrder,
1642 [xrender_libs="-lXrender"], [true], -lXext -lX11)
1644 # first look for RANDR in -lXext
1646 AC_CHECK_X_LIB(Xext, XRRGetScreenInfo,
1647 [have_randr=yes; SAVER_LIBS="$SAVER_LIBS $xrender_libs"],
1648 [true], $xrender_libs -lXext -lX11)
1650 # if that failed, look in -lXrandr
1651 if test "$have_randr" = no; then
1652 AC_CHECK_X_LIB(Xrandr, XRRGetScreenInfo,
1653 [have_randr=yes; SAVER_LIBS="$SAVER_LIBS -lXrandr $xrender_libs"],
1654 [true], $xrender_libs -lXext -lX11)
1658 # if that succeeded, then we've really got it.
1659 if test "$have_randr" = yes; then
1660 AC_DEFINE(HAVE_RANDR)
1663 elif test "$with_randr" != no; then
1664 echo "error: must be yes or no: --with-randr-ext=$with_randr"
1669 ###############################################################################
1671 # Check for XF86MiscSetGrabKeysState (but only bother if we are already
1672 # using other XF86 stuff.)
1674 ###############################################################################
1676 have_xf86miscsetgrabkeysstate=no
1677 if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then
1678 AC_CHECK_X_LIB(Xxf86misc, XF86MiscSetGrabKeysState,
1679 [have_xf86miscsetgrabkeysstate=yes],
1680 [true], -lXext -lX11)
1681 if test "$have_xf86miscsetgrabkeysstate" = yes ; then
1682 SAVER_LIBS="$SAVER_LIBS -lXxf86misc"
1683 AC_DEFINE(HAVE_XF86MISCSETGRABKEYSSTATE)
1688 ###############################################################################
1690 # Check for HP XHPDisableReset and XHPEnableReset.
1692 ###############################################################################
1694 AC_MSG_CHECKING([for XHPDisableReset in X11/XHPlib.h])
1695 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
1696 [AC_DEFINE(HAVE_XHPDISABLERESET)
1697 SAVER_LIBS="-lXhp11 $SAVER_LIBS"
1698 AC_MSG_RESULT(yes)],
1699 [AC_MSG_RESULT(no)])
1702 ###############################################################################
1704 # Check for /proc/interrupts.
1706 ###############################################################################
1708 have_proc_interrupts=no
1709 with_proc_interrupts_req=unspecified
1710 AC_ARG_WITH(proc-interrupts,
1711 [ --with-proc-interrupts Include support for consulting the /proc/interrupts
1712 file to notice keyboard activity.],
1713 [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
1714 [with_proc_interrupts=yes])
1716 if test "$with_proc_interrupts" = yes; then
1718 AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
1719 ac_cv_have_proc_interrupts,
1720 [ac_cv_have_proc_interrupts=no
1721 if grep 'keyboard\|i8042' /proc/interrupts >/dev/null 2>&1 ; then
1722 ac_cv_have_proc_interrupts=yes
1725 have_proc_interrupts=$ac_cv_have_proc_interrupts
1727 if test "$have_proc_interrupts" = yes; then
1728 AC_DEFINE(HAVE_PROC_INTERRUPTS)
1731 elif test "$with_proc_interrupts" != no; then
1732 echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
1737 ###############################################################################
1739 # The --enable-locking option
1741 ###############################################################################
1743 AC_ARG_ENABLE(locking,[Screen locking options:
1744 --enable-locking Compile in support for locking the display.
1745 --disable-locking Do not allow locking at all.],
1746 [enable_locking="$enableval"],[enable_locking=yes])
1747 if test "$enable_locking" = yes; then
1749 elif test "$enable_locking" = no; then
1750 AC_DEFINE(NO_LOCKING)
1752 echo "error: must be yes or no: --enable-locking=$enable_locking"
1756 # We can't lock on MacOS X, so don't even bother compiling in support for it.
1758 if test "$ac_macosx" = yes; then
1759 if test "$enable_locking" = yes; then
1760 AC_MSG_RESULT(locking disabled: it doesn't work on MacOS X)
1762 AC_DEFINE(NO_LOCKING)
1767 ###############################################################################
1769 # The --enable-vt-locking option
1771 ###############################################################################
1773 #ac_vt_lockswitch=no
1774 #AC_ARG_ENABLE(vt-locking,[
1775 # --enable-vt-locking Compile in support for locking Virtual Terminals.
1776 # This is the default if the system supports it, and
1777 # if locking support is included (--enable-locking.)
1778 # --disable-vt-locking Do not allow locking of VTs, even if locking is
1780 # [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1781 #if test "$enable_vt_locking" = yes; then
1783 # AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1784 # [AC_TRY_COMPILE([#include <fcntl.h>
1785 # #include <sys/ioctl.h>
1786 # #include <sys/vt.h>],
1787 # [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1788 # [ac_cv_vt_lockswitch=yes],
1789 # [ac_cv_vt_lockswitch=no])])
1790 # ac_vt_lockswitch=$ac_cv_vt_lockswitch
1792 #elif test "$enable_vt_locking" = no; then
1795 # echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1799 #if test "$ac_vt_lockswitch" = yes; then
1800 # AC_DEFINE(HAVE_VT_LOCKSWITCH)
1801 # # the VT_LOCKSWITCH ioctl can only be used when running as root.
1802 # # #### but it doesn't work yet, so don't worry about that for now.
1807 ###############################################################################
1811 ###############################################################################
1815 # Solaris systems tend to come with PAM misconfigured.
1816 # Don't build it by default, even if the headers exist.
1820 # Default to building PAM support on all other systems, if it exists.
1821 with_pam_default=yes
1826 with_pam_req=unspecified
1829 [ --with-pam Include support for PAM (Pluggable Auth Modules.)],
1830 [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1832 AC_ARG_WITH([pam_service_name],
1833 AC_HELP_STRING([--with-pam-service-name=NAME],
1834 [NAME is the name of the PAM service that
1835 xscreensaver will authenticate as.]),
1836 [pam_service_name="$withval"],[pam_service_name="xscreensaver"])
1838 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1840 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1841 AC_CACHE_CHECK([for PAM], ac_cv_pam,
1842 [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1845 if test "$ac_cv_pam" = yes ; then
1848 AC_DEFINE_UNQUOTED(PAM_SERVICE_NAME,"$pam_service_name")
1850 PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1852 # libpam typically requires dlopen and dlsym. On FreeBSD,
1853 # those are in libc. On Linux and Solaris, they're in libdl.
1854 AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1856 # On Linux, sigtimedwait() is in libc; on Solaris, it's in librt.
1858 AC_CHECK_LIB(c, sigtimedwait, [have_timedwait=yes])
1859 if test "$have_timedwait" = no ; then
1860 AC_CHECK_LIB(rt, sigtimedwait, [PASSWD_LIBS="${PASSWD_LIBS} -lrt"])
1863 AC_MSG_CHECKING(how to call pam_strerror)
1864 AC_CACHE_VAL(ac_cv_pam_strerror_args,
1865 [AC_TRY_COMPILE([#include <stdio.h>
1867 #include <security/pam_appl.h>],
1868 [pam_handle_t *pamh = 0;
1869 char *s = pam_strerror(pamh, PAM_SUCCESS);],
1870 [ac_pam_strerror_args=2],
1871 [AC_TRY_COMPILE([#include <stdio.h>
1873 #include <security/pam_appl.h>],
1875 pam_strerror(PAM_SUCCESS);],
1876 [ac_pam_strerror_args=1],
1877 [ac_pam_strerror_args=0])])
1878 ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1879 ac_pam_strerror_args=$ac_cv_pam_strerror_args
1880 if test "$ac_pam_strerror_args" = 1 ; then
1881 AC_MSG_RESULT(one argument)
1882 elif test "$ac_pam_strerror_args" = 2 ; then
1883 AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1884 AC_MSG_RESULT(two arguments)
1886 AC_MSG_RESULT(unknown)
1892 ###############################################################################
1894 # Check for Kerberos.
1896 ###############################################################################
1900 with_kerberos_req=unspecified
1902 AC_ARG_WITH(kerberos,
1903 [ --with-kerberos Include support for Kerberos authentication.],
1904 [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1906 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1908 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1909 AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
1910 [AC_TRY_X_COMPILE([#include <krb.h>],,
1911 [ac_cv_kerberos=yes],
1912 [ac_cv_kerberos=no])])
1913 AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
1914 [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
1915 [ac_cv_kerberos5=yes],
1916 [ac_cv_kerberos5=no])])
1918 if test "$ac_cv_kerberos" = yes ; then
1920 AC_DEFINE(HAVE_KERBEROS)
1923 if test "$ac_cv_kerberos5" = yes ; then
1925 # Andrew Snare <ajs@pigpond.com> wrote:
1927 # You were assuming that if kerberosV (krb5) was found, then kerberosIV
1928 # (krb4) was also available. This turns out not to be the case with
1929 # mit-krb-1.2.7; apparently backwards-compatibility with KerberosIV
1932 # So, disable kerberosV support if libkrb4 can't be found.
1933 # This is not the best solution, but it makes the compile not fail.
1935 AC_CHECK_X_LIB(krb4, krb_get_tf_realm,
1936 [have_kerberos=yes],
1938 if test "$have_kerberos" = yes ; then
1940 AC_DEFINE(HAVE_KERBEROS)
1941 AC_DEFINE(HAVE_KERBEROS5)
1944 AC_MSG_WARN([Cannot find compat lib (libkrb4) needed to use Kerberos 5])
1949 if test "$have_kerberos5" = yes ; then
1950 # from Matt Knopp <mhat@infocalypse.netlag.com>
1951 # (who got it from amu@mit.edu)
1953 PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"
1955 # jwz: MacOS X uses -lkrb5, but not -lcrypt
1956 AC_CHECK_X_LIB(crypt, crypt, [PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1958 elif test "$have_kerberos" = yes ; then
1959 # from Tim Showalter <tjs@psaux.com> for FreeBSD 4.2
1960 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err"
1963 if test "$have_kerberos" = yes ; then
1964 AC_CHECK_FUNC(res_search,,
1965 AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1966 AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1972 ###############################################################################
1974 # Check for the nine billion variants of shadow passwords...
1976 ###############################################################################
1981 with_shadow_req=unspecified
1984 [ --with-shadow Include support for shadow password authentication.],
1985 [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1987 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1989 if test "$enable_locking" = no ; then
1995 ###############################################################################
1997 # Check for Sun "adjunct" passwords.
1999 ###############################################################################
2001 if test "$with_shadow" = yes ; then
2002 AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
2003 [AC_TRY_X_COMPILE([#include <stdlib.h>
2005 #include <sys/types.h>
2006 #include <sys/label.h>
2007 #include <sys/audit.h>
2008 #include <pwdadj.h>],
2009 [struct passwd_adjunct *p = getpwanam("nobody");
2010 const char *pw = p->pwa_passwd;],
2011 [ac_cv_sun_adjunct=yes],
2012 [ac_cv_sun_adjunct=no])])
2013 if test "$ac_cv_sun_adjunct" = yes; then
2014 have_shadow_adjunct=yes
2021 ###############################################################################
2023 # Check for DEC and SCO so-called "enhanced" security.
2025 ###############################################################################
2027 if test "$with_shadow" = yes ; then
2028 AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
2029 [AC_TRY_X_COMPILE([#include <stdlib.h>
2031 #include <sys/types.h>
2033 #include <sys/security.h>
2035 [struct pr_passwd *p;
2037 set_auth_parameters(0, 0);
2038 check_auth_parameters();
2039 p = getprpwnam("nobody");
2040 pw = p->ufld.fd_encrypt;],
2041 [ac_cv_enhanced_passwd=yes],
2042 [ac_cv_enhanced_passwd=no])])
2043 if test $ac_cv_enhanced_passwd = yes; then
2044 have_shadow_enhanced=yes
2048 # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
2049 # (I'm told it needs -lcurses too, but I don't understand why.)
2050 # But on DEC, it's in -lsecurity.
2052 AC_CHECK_LIB(prot, getprpwnam,
2053 [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
2054 [AC_CHECK_LIB(security, getprpwnam,
2055 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
2060 ###############################################################################
2062 # Check for HP's entry in the "Not Invented Here" Sweepstakes.
2064 ###############################################################################
2066 if test "$with_shadow" = yes ; then
2067 AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
2068 [AC_TRY_X_COMPILE([#include <stdlib.h>
2070 #include <sys/types.h>
2072 #include <hpsecurity.h>
2074 [struct s_passwd *p = getspwnam("nobody");
2075 const char *pw = p->pw_passwd;],
2076 [ac_cv_hpux_passwd=yes],
2077 [ac_cv_hpux_passwd=no])])
2078 if test "$ac_cv_hpux_passwd" = yes; then
2079 have_shadow_hpux=yes
2083 # on HPUX, bigcrypt is in -lsec
2084 AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
2089 ###############################################################################
2091 # Check for FreeBSD-style shadow passwords.
2093 # On FreeBSD, getpwnam() and friends work just like on non-shadow-
2094 # password systems -- except you only get stuff in the pw_passwd field
2095 # if the running program is setuid. So, guess that we've got this
2096 # lossage to contend with if /etc/master.passwd exists, and default to
2097 # a setuid installation.
2099 ###############################################################################
2101 if test "$with_shadow" = yes ; then
2102 AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
2103 [if test -f /etc/master.passwd ; then
2104 ac_cv_master_passwd=yes
2106 ac_cv_master_passwd=no
2108 if test "$ac_cv_master_passwd" = yes; then
2114 ###############################################################################
2116 # Check for traditional (ha!) shadow passwords.
2118 ###############################################################################
2120 if test "$with_shadow" = yes ; then
2121 AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
2122 [AC_TRY_X_COMPILE([#include <stdlib.h>
2124 #include <sys/types.h>
2126 #include <shadow.h>],
2127 [struct spwd *p = getspnam("nobody");
2128 const char *pw = p->sp_pwdp;],
2130 [ac_cv_shadow=no])])
2131 if test "$ac_cv_shadow" = yes; then
2135 # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
2137 AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
2138 if test "$have_getspnam" = no ; then
2139 AC_CHECK_LIB(gen, getspnam,
2140 [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
2146 ###############################################################################
2148 # Check for other libraries needed for non-shadow passwords.
2150 ###############################################################################
2152 if test "$enable_locking" = yes ; then
2154 # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
2156 AC_CHECK_LIB(c, crypt, [have_crypt=yes])
2157 if test "$have_crypt" = no ; then
2158 AC_CHECK_LIB(crypt, crypt,
2159 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
2164 # Most of the above shadow mechanisms will have set need_setuid to yes,
2165 # if they were found. But, on some systems, we need setuid even when
2166 # using plain old vanilla passwords.
2168 if test "$enable_locking" = yes ; then
2170 *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
2177 if test "$have_shadow_adjunct" = yes ; then
2178 AC_DEFINE(HAVE_ADJUNCT_PASSWD)
2179 elif test "$have_shadow_enhanced" = yes ; then
2180 AC_DEFINE(HAVE_ENHANCED_PASSWD)
2181 elif test "$have_shadow_hpux" = yes ; then
2182 AC_DEFINE(HAVE_HPUX_PASSWD)
2183 elif test "$have_shadow" = yes ; then
2184 AC_DEFINE(HAVE_SHADOW_PASSWD)
2188 ###############################################################################
2190 # Check for external password helper
2191 # On SuSE, instead of having xscreensaver be a setuid program, they
2192 # fork an external program that takes the password on stdin, and
2193 # returns true if that password is a valid one. Then only that
2194 # smaller program needs to be setuid.
2196 # (Note that this external program is not a GUI: the GUI is still
2197 # all in xscreensaver itself; the external program just does auth.)
2199 ###############################################################################
2201 have_passwd_helper=no
2202 with_passwd_helper_req=unspecified
2204 AC_ARG_WITH(passwd-helper,
2205 [ --with-passwd-helper Include support for an external password
2206 verification helper program.],
2207 [with_passwd_helper="$withval"; with_passwd_helper_req="$withval"],[with_passwd_helper=no])
2208 # no HANDLE_X_PATH_ARG for this one
2210 if test "$enable_locking" = no ; then
2211 with_passwd_helper_req=no
2212 with_passwd_helper=no
2215 case "$with_passwd_helper" in
2218 AC_DEFINE_UNQUOTED(PASSWD_HELPER_PROGRAM, "$with_passwd_helper")
2219 have_passwd_helper=yes;;
2221 echo "error: --with-passwd-helper needs full pathname of helper (not '$with_passwd_helper')." >&2
2226 ###############################################################################
2228 # Check for a login manager for a "New Login" button on the lock dialog.
2229 # Usually this will be "/usr/bin/gdmflexiserver".
2231 ###############################################################################
2233 have_login_manager=no
2234 with_login_manager_req=unspecified
2235 default_login_manager='gdmflexiserver -l'
2237 AC_ARG_WITH(login-manager,
2238 [ --with-login-manager Put a "New Login" button on the unlock dialog that
2239 runs a login manager such as gdmflexiserver.],
2240 [with_login_manager="$withval"; with_login_manager_req="$withval"],
2241 [with_login_manager=no])
2242 # no HANDLE_X_PATH_ARG for this one
2244 if test "$enable_locking" = no ; then
2245 with_login_manager_req=no
2246 with_login_manager=no
2249 if test -n "$with_login_manager_req" ; then
2250 ac_cv_login_manager_program=""
2252 if test "$with_login_manager_req" = "yes" ; then
2253 with_login_manager_req=$default_login_manager
2256 case "$with_login_manager_req" in
2259 set dummy $with_login_manager_req ; login_manager_tmp=$2
2260 AC_MSG_CHECKING([for $login_manager_tmp])
2261 if test -x "$login_manager_tmp" ; then
2263 with_login_manager="$login_manager_tmp"
2266 with_login_manager=""
2271 set dummy $with_login_manager_req ; login_manager_tmp=$2
2273 unset ac_cv_path_login_manager_tmp
2274 AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, [])
2275 if test -z "$login_manager_tmp" ; then
2276 with_login_manager=""
2278 with_login_manager="$login_manager_tmp"
2282 ac_cv_login_manager_program="$with_login_manager"
2284 elif test -n "$ac_cv_login_manager_program"; then
2285 AC_MSG_RESULT([checking for login_manager... (cached) $ac_cv_login_manager_program])
2288 NEW_LOGIN_COMMAND_P=''
2289 NEW_LOGIN_COMMAND="$ac_cv_login_manager_program"
2291 if test -z "$NEW_LOGIN_COMMAND" ; then
2292 NEW_LOGIN_COMMAND="$default_login_manager"
2293 NEW_LOGIN_COMMAND_P='! '
2298 ###############################################################################
2300 # Check for -lgtk (and Gnome stuff)
2302 ###############################################################################
2305 with_gtk_req=unspecified
2307 User interface options:
2309 --with-gtk Use the Gtk toolkit for the user interface.],
2310 [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
2312 # if --with-gtk=/directory/ was specified, remember that directory so that
2313 # we can also look for the `gtk-config' program in that directory.
2323 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
2325 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
2326 echo "error: must be yes or no: --with-gtk=$with_gtk"
2331 parse_gtk_version_string() {
2334 maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
2335 min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
2337 ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
2338 if test -z "$ac_gtk_version"; then
2339 ac_gtk_version=unknown
2340 ac_gtk_version_string=unknown
2344 # Find pkg-config... (need this for both gtk and gdk_pixbuf.)
2345 # if the user specified --with-gtk=/foo/ then look there.
2348 if test ! -z "$gtk_dir"; then
2349 # canonicalize slashes.
2350 foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2351 gtk_path="$foo:$gtk_path"
2354 AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path)
2356 if test -z "$pkg_config" ; then
2357 AC_MSG_WARN([pkg-config not found!])
2362 # Utility function for running pkg-config-based tests...
2365 pkg_check_version() {
2366 if test "$ok" = yes ; then
2369 AC_MSG_CHECKING(for $req)
2370 if $pkg_config --exists "$req" ; then
2371 vers=`$pkg_config --modversion "$req"`
2372 if $pkg_config --exists "$req >= $min" ; then
2373 AC_MSG_RESULT($vers)
2377 AC_MSG_RESULT($vers (wanted >= $min))
2393 if test "$with_gtk" = yes; then
2397 pkg_check_version gtk+-2.0 2.0.1 ; ac_gtk_version_string="$vers"
2398 pkg_check_version gmodule-2.0 2.0.0
2399 pkg_check_version libxml-2.0 2.4.6
2400 pkg_check_version libglade-2.0 1.99.0
2401 pkg_check_version gdk-pixbuf-2.0 2.0.0
2402 pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
2405 if test "$have_gtk" = no; then
2406 if test -n "$ac_gtk_version_string" ; then
2407 gtk_halfassed="$ac_gtk_version_string"
2408 gtk_halfassed_lib="$req"
2412 if test "$have_gtk" = yes; then
2413 parse_gtk_version_string
2417 if test "$have_gtk" = yes; then
2418 AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
2419 [ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`])
2420 AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
2421 [ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs`])
2423 ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
2424 ac_gtk_config_libs=$ac_cv_gtk_config_libs
2428 if test "$have_gtk" = yes; then
2429 GTK_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
2430 GTK_DATADIR="$GTK_DATADIR/share"
2433 if test "$have_gtk" = yes; then
2434 INCLUDES="$INCLUDES $ac_gtk_config_cflags"
2435 GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
2437 AC_DEFINE(HAVE_GTK2)
2444 # Check for the various Gnome help and URL loading programs.
2446 if test "$have_gtk" = yes; then
2447 AC_CHECK_PROGS(gnome_open_program, gnome-open)
2448 AC_CHECK_PROGS(gnome_url_show_program, gnome-url-show)
2452 ###############################################################################
2456 ###############################################################################
2459 with_motif_req=unspecified
2460 AC_ARG_WITH(motif,[ --with-motif Use the Motif toolkit for the user interface
2461 (not recommended.)],
2462 [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no])
2464 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
2466 if test "$with_motif" != yes -a "$with_motif" != no ; then
2467 echo "error: must be yes or no: --with-motif=$with_motif"
2471 if test "$with_motif" = yes; then
2473 AC_CHECK_X_HEADER(Xm/Xm.h,
2475 AC_DEFINE(HAVE_MOTIF)
2476 MOTIF_LIBS="$MOTIF_LIBS -lXm"],,
2477 [#include <stdlib.h>
2479 #include <X11/Intrinsic.h>])
2483 if test "$have_motif" = yes; then
2484 AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],,
2485 [#include <stdlib.h>
2487 #include <X11/Intrinsic.h>])
2491 ###############################################################################
2493 # Checking whether Motif is really Lesstif.
2495 ###############################################################################
2498 if test "$have_motif" = yes ; then
2499 AC_CACHE_CHECK([whether Motif is really LessTif],
2501 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
2502 [long vers = LesstifVersion;],
2503 [ac_cv_have_lesstif=yes],
2504 [ac_cv_have_lesstif=no])])
2505 have_lesstif=$ac_cv_have_lesstif
2509 lesstif_version=unknown
2510 lesstif_version_string=unknown
2512 if test "$have_lesstif" = yes ; then
2514 echo unknown > conftest-lt
2515 AC_CACHE_CHECK([LessTif version number],
2516 ac_cv_lesstif_version_string,
2517 [AC_TRY_X_RUN([#include <stdio.h>
2520 FILE *f = fopen("conftest-lt", "w");
2522 fprintf(f, "%d %d.%d\n", LesstifVersion,
2523 LESSTIF_VERSION, LESSTIF_REVISION);
2527 [ltv=`cat conftest-lt`
2528 ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
2529 ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
2530 [ac_cv_lesstif_version=unknown
2531 ac_cv_lesstif_version_string=unknown],
2532 [ac_cv_lesstif_version=unknown
2533 ac_cv_lesstif_version_string=unknown])])
2535 lesstif_version=$ac_cv_lesstif_version
2536 lesstif_version_string=$ac_cv_lesstif_version_string
2541 if test "$have_motif" = yes ; then
2543 echo unknown > conftest-mt
2544 AC_CACHE_CHECK([Motif version number],
2545 ac_cv_motif_version_string,
2546 [AC_TRY_X_RUN([#include <stdio.h>
2549 FILE *f = fopen("conftest-mt", "w");
2551 fprintf(f, "%d %d.%d\n", XmVersion,
2552 XmVERSION, XmREVISION);
2556 [mtv=`cat conftest-mt`
2557 ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
2558 ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
2559 [ac_cv_motif_version=unknown
2560 ac_cv_motif_version_string=unknown],
2561 [ac_cv_motif_version=unknown
2562 ac_cv_motif_version_string=unknown])])
2564 motif_version=$ac_cv_motif_version
2565 motif_version_string=$ac_cv_motif_version_string
2570 ###############################################################################
2572 # Checking whether Motif requires -lXpm.
2574 # If this is Motif 2.x, and we have XPM, then link against XPM as well.
2575 # The deal is, Motif 2.x requires XPM -- but it's a compilation option
2576 # of the library whether to build the XPM code into libXm, or whether
2577 # to rely on an external libXm. So the only way to tell whether XPM is
2578 # a link-time requirement is to examine libXm.a, which is very
2579 # difficult to do in an autoconf script. So... if it's Motif 2.x, we
2580 # always link against XPM if the XPM lib exists (and this will be a
2581 # no-op if libXm happens to already have the XPM code in it.)
2583 ###############################################################################
2585 motif_requires_xpm=no
2586 if test "$have_motif" = yes ; then
2587 AC_MSG_CHECKING(whether Motif requires XPM)
2588 if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
2590 motif_requires_xpm=yes
2591 AC_MSG_RESULT(maybe)
2598 ###############################################################################
2600 # Checking whether Motif requires -lXp.
2602 # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
2603 # Extension". Why this extension isn't in -lXext with all the others,
2606 ###############################################################################
2609 if test "$have_motif" = yes ; then
2611 AC_CHECK_X_LIB(Xp, XpQueryExtension,
2612 [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
2613 [true], -lX11 -lXext -lm)
2617 ###############################################################################
2619 # Checking whether Motif requires -lXintl (for _Xsetlocale.)
2621 ###############################################################################
2624 if test "$have_motif" = yes ; then
2625 AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
2627 if test "$have_xintl" = yes; then
2628 MOTIF_LIBS="$MOTIF_LIBS -lXintl"
2633 ###############################################################################
2635 # Check for -lGL or -lMesaGL.
2637 ###############################################################################
2641 with_gl_req=unspecified
2646 --with-gl Build those demos which depend on OpenGL.],
2647 [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
2649 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
2651 ac_mesagl_version=unknown
2652 ac_mesagl_version_string=unknown
2654 if test "$with_gl" = yes; then
2655 AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
2656 if test "$have_gl" = yes ; then
2657 AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no,
2658 [#include <GL/gl.h>])
2661 # If we have the headers, try and figure out which vendor it's from.
2663 if test "$have_gl" = yes ; then
2665 # We need to know whether it's MesaGL so that we know which libraries
2668 AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
2669 [ac_cv_have_mesa_gl=no
2670 AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
2672 ac_have_mesa_gl=$ac_cv_have_mesa_gl
2679 # Some versions of MesaGL are compiled to require -lpthread.
2680 # So if the Mesa headers exist, and -lpthread exists, then always
2681 # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
2683 if test "$ac_have_mesa_gl" = yes; then
2684 AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
2688 # If we have Mesa headers, check to see if we can link against -lMesaGL.
2689 # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
2690 # Else, warn that GL is busted. (We have the headers, but no libs.)
2693 if test "$ac_have_mesa_gl" = yes ; then
2694 AC_CHECK_X_LIB(MesaGL, glXCreateContext,
2696 GL_LIBS="-lMesaGL -lMesaGLU $VIDMODE_LIBS $GL_LIBS"],
2697 [], -lMesaGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm)
2700 if test "$gl_lib_1" = "" ; then
2701 AC_CHECK_X_LIB(GL, glXCreateContext,
2703 GL_LIBS="-lGL -lGLU $VIDMODE_LIBS $GL_LIBS"],
2704 [], -lGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm)
2707 if test "$gl_lib_1" = "" ; then
2708 # we have headers, but no libs -- bail.
2713 # linking works -- we can build the GL hacks.
2715 if test "$ac_have_mesa_gl" = yes ; then
2716 AC_DEFINE(HAVE_MESA_GL)
2722 # Now that we know we have GL headers and libs, do some more GL testing.
2725 if test "$have_gl" = yes ; then
2726 # If it's MesaGL, we'd like to issue a warning if the version number
2727 # is less than or equal to 2.6, because that version had a security bug.
2729 if test "$ac_have_mesa_gl" = yes; then
2731 AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
2732 [cat > conftest.$ac_ext <<EOF
2733 #line __oline__ "configure"
2734 #include "confdefs.h"
2736 #ifndef MESA_MAJOR_VERSION
2737 # include <GL/xmesa.h>
2738 # ifdef XMESA_MAJOR_VERSION
2739 /* Around Mesa 3.2, they took out the Mesa version number, so instead,
2740 we have to check the XMesa version number (the number of the X protocol
2741 support, which seems to be the same as the Mesa version number.)
2743 # define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
2744 # define MESA_MINOR_VERSION XMESA_MINOR_VERSION
2746 /* Oh great. Some time after 3.4, they took out the xmesa.h header file,
2747 so we have no way of telling what version of Mesa this is at all.
2748 So, we'll guess that the osmesa version (the "offscreen protocol")
2749 is less than or equal to the real mesa version number. Except that
2750 if OSmesa is 3.3, assume at least Mesa 3.4, since OSmesa was 3.3 in
2751 Mesa 3.4. And Mesa 3.3 had xmesa.h. What a complete load of shit!
2753 # include <GL/osmesa.h>
2754 # define MESA_MAJOR_VERSION OSMESA_MAJOR_VERSION
2755 # define MESA_MINOR_VERSION OSMESA_MINOR_VERSION or newer, probably?
2756 # if OSMESA_MAJOR_VERSION == 3 && OSMESA_MINOR_VERSION == 3
2757 # undef MESA_MINOR_VERSION
2758 # define MESA_MINOR_VERSION 4 or newer, probably?
2762 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
2765 ac_save_CPPFLAGS="$CPPFLAGS"
2766 if test \! -z "$includedir" ; then
2767 CPPFLAGS="$CPPFLAGS -I$includedir"
2769 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2771 mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | grep configure:`
2775 mglv=`echo "$mglv" | sed -n \
2776 's/^configure: *\([0-9][0-9]*\) *\([0-9].*\)$/\1.\2/p'`
2779 rm -f conftest.$ac_ext
2781 CPPFLAGS="$ac_save_CPPFLAGS"
2783 if test "$mglv" = ""; then
2784 ac_mesagl_version=unknown
2785 ac_mesagl_version_string=unknown
2787 ac_mesagl_version_string="$mglv"
2790 maj=`echo "$mglv" | sed -n 's/^\([0-9][0-9]*\)\..*$/\1/p'`
2791 min=`echo "$mglv" | sed -n 's/^.*\.\([0-9][0-9]*\).*$/\1/p'`
2793 ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
2794 if test -z "$ac_mesagl_version"; then
2795 ac_mesagl_version=unknown
2796 ac_mesagl_version_string=unknown
2799 ac_cv_mesagl_version=$ac_mesagl_version
2800 ac_cv_mesagl_version_string=$ac_mesagl_version_string
2802 ac_mesagl_version=$ac_cv_mesagl_version
2803 ac_mesagl_version_string=$ac_cv_mesagl_version_string
2807 # Check for OpenGL 1.1 features.
2809 AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
2810 [true], $GL_LIBS -lX11 -lXext -lm)
2813 elif test "$with_gl" != no; then
2814 echo "error: must be yes or no: --with-gl=$with_gl"
2819 ###############################################################################
2823 ###############################################################################
2826 with_gle_req=unspecified
2829 [ --with-gle Build those demos which depend on GLE
2830 (the OpenGL "extrusion" library.)],
2831 [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
2833 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
2837 if test "$have_gl" = no ; then
2839 elif test "$with_gle" = yes; then
2841 AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no,
2842 [#include <GL/gl.h>])
2843 if test "$have_gle3" = yes ; then
2846 AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no,
2847 [#include <GL/gl.h>])
2848 if test "$have_gle" = yes ; then
2849 AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no,
2850 [#include <GL/gl.h>])
2854 if test "$have_gle" = yes ; then
2857 AC_CHECK_X_LIB(gle, gleCreateGC,
2858 [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
2859 [], $GL_LIBS -lX11 -lXext -lm)
2861 if test "$have_gle" = yes ; then
2865 # sometimes the libmatrix stuff is included in libgle. look there first.
2867 # I don't get it. For some reason, this test passes on SGI, as if
2868 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
2869 # Yet the link is succeeding. Why???
2871 # AC_CHECK_X_LIB(gle, uview_direction_d,
2872 # [have_gle=yes; gle_halfassed=no],
2873 # [], $GL_LIBS -lX11 -lXext -lm)
2875 # As of GLE 3 this is in libgle, and has changed name to uview_direction!
2877 if test "$have_gle3" = yes ; then
2878 AC_CHECK_X_LIB(gle, uview_direction,
2879 [have_gle=yes; gle_halfassed=no],
2880 [], $GL_LIBS -lX11 -lXext -lm)
2882 # if it wasn't in libgle, then look in libmatrix.
2883 if test "$have_gle" = no ; then
2884 AC_CHECK_X_LIB(matrix, uview_direction_d,
2885 [have_gle=yes; gle_halfassed=no;
2886 GLE_LIBS="$GLE_LIBS -lmatrix"],
2887 [], $GL_LIBS -lX11 -lXext -lm)
2891 if test "$have_gle" = yes ; then
2893 if test "$have_gle3" = yes ; then
2894 AC_DEFINE(HAVE_GLE3)
2898 elif test "$with_gle" != no; then
2899 echo "error: must be yes or no: --with-gle=$with_gle"
2905 ###############################################################################
2907 # Check for -lgdk_pixbuf.
2908 # These tests are for gdk_pixbuf usage of the hacks,
2909 # not xscreensaver-demo (thus we have to test again to get
2910 # the libraries right: don't want to pull in all of GTK
2913 ###############################################################################
2916 with_gdk_pixbuf_req=unspecified
2918 [ --with-pixbuf Include support for the GDK-Pixbuf library in some
2919 demos, which will make it possible for them to read
2920 GIF, JPEG, and PNG files as well.],
2921 [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
2922 [with_gdk_pixbuf=yes])
2924 # if --with-pixbuf=/directory/ was specified, remember that directory so that
2925 # we can also look for the `gdk-pixbuf-config' program in that directory.
2926 case "$with_gdk_pixbuf" in
2928 gdk_pixbuf_dir="$with_gdk_pixbuf"
2935 HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF)
2937 if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then
2938 echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
2942 if test "$with_gdk_pixbuf" = yes; then
2948 pkg_check_version gdk-pixbuf-2.0 2.0.0
2949 pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
2950 have_gdk_pixbuf="$ok"
2952 if test "$have_gdk_pixbuf" = yes; then
2953 AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
2954 [ac_cv_gdk_pixbuf_config_cflags=`$pkg_config --cflags $pkgs`])
2955 AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
2956 [ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs`])
2958 ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
2959 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
2962 if test "$have_gdk_pixbuf" = yes; then
2964 # we appear to have pixbuf; check for headers/libs to be sure.
2966 ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
2967 CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
2971 # check for header A...
2972 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
2974 # if that worked, check for header B...
2975 if test "$have_gdk_pixbuf" = yes; then
2977 gdk_pixbuf_halfassed=yes
2978 AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h,
2979 [have_gdk_pixbuf=yes
2980 gdk_pixbuf_halfassed=no])
2982 # yay, it has a new name in Gtk 2.x...
2983 if test "$have_gdk_pixbuf" = no; then
2985 gdk_pixbuf_halfassed=yes
2986 AC_CHECK_X_HEADER(gdk-pixbuf-xlib/gdk-pixbuf-xlib.h,
2987 [have_gdk_pixbuf=yes
2988 gdk_pixbuf_halfassed=no])
2991 CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
2994 if test "$have_gdk_pixbuf" = yes; then
2995 # we have the headers, now check for the libraries
2997 gdk_pixbuf_halfassed=yes
2999 AC_MSG_RESULT(checking for gdk_pixbuf usability...)
3002 AC_CHECK_X_LIB(c, gdk_pixbuf_new_from_file, [have_gdk_pixbuf=yes],,
3003 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
3005 if test "$have_gdk_pixbuf" = yes; then
3007 AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init,
3008 [have_gdk_pixbuf=yes
3009 gdk_pixbuf_halfassed=no],,
3010 $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
3014 if test "$have_gdk_pixbuf" = yes; then
3015 INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
3016 XPM_LIBS="$ac_gdk_pixbuf_config_libs"
3017 AC_DEFINE(HAVE_GDK_PIXBUF)
3019 AC_MSG_RESULT(checking for gdk_pixbuf usability... no)
3024 ###############################################################################
3028 ###############################################################################
3031 with_xpm_req=unspecified
3033 [ --with-xpm Include support for XPM files in some demos.
3034 (Not needed if Pixbuf is used.)],
3035 [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
3037 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
3039 if test "$with_xpm" = yes; then
3040 AC_CHECK_X_HEADER(X11/xpm.h,
3043 XPM_LIBS="-lXpm $XPM_LIBS"],,
3044 [#include <X11/Xlib.h>])
3045 elif test "$with_xpm" != no; then
3046 echo "error: must be yes or no: --with-xpm=$with_xpm"
3050 # See comment near $motif_requires_xpm, above.
3051 # Need to do this here, after both Motif and XPM have been checked for.
3053 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
3054 if test "$motif_requires_xpm" = yes ; then
3055 MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
3060 ###############################################################################
3064 ###############################################################################
3067 with_jpeg_req=unspecified
3070 [ --with-jpeg Include support for the JPEG library.],
3071 [with_jpeg="$withval"; with_jpeg_req="$withval"],
3074 HANDLE_X_PATH_ARG(with_jpeg, --with-jpeg, JPEG)
3076 if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then
3077 echo "error: must be yes or no: --with-jpeg=$with_jpeg"
3081 if test "$with_jpeg" = yes; then
3084 AC_CHECK_X_HEADER(jpeglib.h, [have_jpeg=yes])
3086 if test "$have_jpeg" = yes; then
3087 # we have the header, now check for the library
3090 AC_CHECK_X_LIB(jpeg, jpeg_start_compress,
3094 AC_DEFINE(HAVE_JPEGLIB)])
3099 ###############################################################################
3101 # Check for pty support: this allows 'phosphor' and 'apple2'
3102 # to run curses-based programs, or be used as terminal windows.
3104 ###############################################################################
3107 AC_CHECK_HEADERS(pty.h util.h)
3108 AC_CHECK_X_LIB(util, forkpty,
3110 AC_DEFINE(HAVE_FORKPTY)])
3113 ###############################################################################
3115 # Check for the XSHM server extension.
3117 ###############################################################################
3120 with_xshm_req=unspecified
3121 AC_ARG_WITH(xshm-ext,
3122 [ --with-xshm-ext Include support for the Shared Memory extension.],
3123 [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
3125 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
3127 if test "$with_xshm" = yes; then
3129 # first check for Xshm.h.
3130 AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],,
3131 [#include <X11/Xlib.h>])
3133 # if that succeeded, then check for sys/ipc.h.
3134 if test "$have_xshm" = yes; then
3136 AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
3139 # if that succeeded, then check for sys/shm.h.
3140 if test "$have_xshm" = yes; then
3142 AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
3145 # AIX is pathological, as usual: apparently it's normal for the Xshm headers
3146 # to exist, but the library code to not exist. And even better, the library
3147 # code is in its own library: libXextSam.a. So, if we're on AIX, and that
3148 # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and
3149 # that's not quite right, but close enough.)
3153 if [ `uname -v` -eq 3 ]; then
3155 AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
3156 [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
3157 [true], -lX11 -lXext -lm)
3162 # if that succeeded, then we've really got it.
3163 if test "$have_xshm" = yes; then
3164 AC_DEFINE(HAVE_XSHM_EXTENSION)
3167 elif test "$with_xshm" != no; then
3168 echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
3173 ###############################################################################
3175 # Check for the DOUBLE-BUFFER server extension.
3177 ###############################################################################
3180 with_xdbe_req=unspecified
3181 AC_ARG_WITH(xdbe-ext,
3182 [ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.],
3183 [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
3185 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
3187 if test "$with_xdbe" = yes; then
3189 AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],,
3190 [#include <X11/Xlib.h>])
3191 if test "$have_xdbe" = yes; then
3192 AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)
3195 elif test "$with_xdbe" != no; then
3196 echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
3201 ###############################################################################
3203 # Check for the SGI XReadDisplay server extension.
3205 # Note: this has to be down here, rather than up with the other server
3206 # extension tests, so that the output of `configure --help' is in the
3207 # right order. Arrgh!
3209 ###############################################################################
3212 with_readdisplay_req=unspecified
3213 AC_ARG_WITH(readdisplay,
3214 [ --with-readdisplay Include support for the XReadDisplay extension.],
3215 [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
3216 [with_readdisplay=yes])
3218 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
3220 if test "$with_readdisplay" = yes; then
3221 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
3222 AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),,
3223 [#include <X11/Xlib.h>])
3224 elif test "$with_readdisplay" != no; then
3225 echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
3230 ###############################################################################
3232 # Check for a directory full of images to use as the default value
3233 # of the "imageDirectory" preference.
3235 ###############################################################################
3238 with_imagedir_req=unspecified
3240 AC_ARG_WITH(image-directory,
3241 [ --with-image-directory=DIR By default, some demos may display random images
3242 from this directory.],
3243 [with_imagedir="$withval"; with_imagedir_req="$withval"],
3244 [with_imagedir=yes])
3245 # no HANDLE_X_PATH_ARG for this one
3247 case "$with_imagedir" in
3250 AC_MSG_CHECKING([for image directory $with_imagedir])
3251 if test -d "$with_imagedir" ; then
3261 #### Could use some more defaults here...
3263 "/usr/share/backgrounds/images/" \
3264 "/usr/share/wallpapers/" \
3265 "/Library/Desktop Pictures/" \
3267 if test -z "$with_imagedir"; then
3268 AC_MSG_CHECKING([for image directory $dd])
3269 if test -d "$dd" ; then
3284 echo "error: must be an absolute path: --with-image-directory=$with_imagedir_req"
3288 ac_cv_imagedir="$with_imagedir"
3290 DEFAULT_IMAGES_P='True'
3291 DEFAULT_IMAGE_DIRECTORY="$ac_cv_imagedir"
3293 if test -z "$DEFAULT_IMAGE_DIRECTORY" ; then
3294 DEFAULT_IMAGES_P='False'
3298 ###############################################################################
3300 # Pick a text file to use as the default of the "textFile" preference.
3301 # Any old file will do, but preferably one that will make interesting
3302 # shapes when displayed by "starwars" and "fontglide".
3304 ###############################################################################
3307 with_textfile_req=unspecified
3309 AC_ARG_WITH(text-file,
3310 [ --with-text-file=FILE By default, some demos may display this file.],
3311 [with_textfile="$withval"; with_textfile_req="$withval"],
3312 [with_textfile=yes])
3313 # no HANDLE_X_PATH_ARG for this one
3315 case "$with_textfile" in
3318 AC_MSG_CHECKING([for image directory $with_textfile])
3319 if test -d "$with_textfile" ; then
3329 #### Could use some more defaults here...
3331 "/usr/X11R6/lib/X11/doc/README" \
3332 "/usr/share/doc/xserver-common/copyright" \
3333 "/usr/X11R6/README" \
3335 if test -z "$with_textfile"; then
3336 AC_MSG_CHECKING([for text file $f])
3337 if test -f "$f" ; then
3352 echo "error: must be an absolute path: --with-image-directory=$with_textfile_req"
3356 ac_cv_textfile="$with_textfile"
3358 DEFAULT_TEXT_FILE="$ac_cv_textfile"
3361 ###############################################################################
3363 # Check whether it's ok to install some hacks as setuid (e.g., "sonar")
3364 # This should be safe, but let's give people the option.
3366 ###############################################################################
3368 setuid_hacks_default=no
3369 setuid_hacks="$setuid_hacks_default"
3370 AC_ARG_WITH(setuid-hacks,
3371 [ --with-setuid-hacks Allow some demos to be installed `setuid root'
3372 (which is needed in order to ping other hosts.)
3374 [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
3376 HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks)
3378 if test "$setuid_hacks" = yes; then
3380 elif test "$setuid_hacks" != no; then
3381 echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks"
3386 ###############################################################################
3388 # Done testing. Now, set up the various -I and -L variables,
3389 # and decide which GUI program to build by default.
3391 ###############################################################################
3398 if test \! -z "$includedir" ; then
3399 INCLUDES="$INCLUDES -I$includedir"
3402 if test \! -z "$libdir" ; then
3403 LDFLAGS="$LDFLAGS -L$libdir"
3407 PREFERRED_DEMO_PROGRAM=''
3409 if test "$have_motif" = yes; then
3410 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
3411 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3413 if test "$have_gtk" = yes; then
3414 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
3415 ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3419 if test "$have_kerberos" = yes; then
3420 PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
3421 PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
3423 if test "$have_pam" = yes; then
3424 PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
3425 PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
3426 INSTALL_PAM="install-pam"
3428 if test "$have_passwd_helper" = yes; then
3429 PASSWD_SRCS="$PASSWD_SRCS \$(PWHELPER_SRCS)"
3430 PASSWD_OBJS="$PASSWD_OBJS \$(PWHELPER_OBJS)"
3432 PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
3433 PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
3436 if test "$enable_locking" = yes; then
3437 LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
3438 LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
3440 LOCK_SRCS='$(NOLOCK_SRCS_1)'
3441 LOCK_OBJS='$(NOLOCK_OBJS_1)'
3444 if test "$ac_macosx" = yes; then
3445 EXES_OSX='$(EXES_OSX)'
3446 SCRIPTS_OSX='$(SCRIPTS_OSX)'
3447 MEN_OSX='$(MEN_OSX)'
3455 INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)'
3457 if test "$need_setuid" = yes; then
3463 if test "$setuid_hacks" = yes; then
3470 if test "$have_gl" = yes; then
3471 GL_EXES='$(GL_EXES)'
3472 GL_UTIL_EXES='$(GL_UTIL_EXES)'
3476 GL_KLUDGE="-${tab} "
3479 if test "$have_gle" = yes; then
3480 GLE_EXES='$(GLE_EXES)'
3481 GLE_KLUDGE="${tab} "
3483 GLE_KLUDGE="-${tab} "
3486 if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then
3487 JPEG_EXES='$(JPEG_EXES)'
3491 # Another substitution in the XScreenSaver.ad.in file:
3493 if test "$gnome_open_program" != ''; then
3497 elif test "$gnome_url_show_program" != ''; then
3508 # Set PO_DATADIR to something sensible.
3510 AC_MSG_CHECKING([for locale directory])
3511 if test -n "$GTK_DATADIR" ; then
3512 PO_DATADIR="$GTK_DATADIR"
3513 elif test "$have_gtk" = yes; then
3514 PO_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3515 PO_DATADIR="$PO_DATADIR/share"
3518 if test -z "$PO_DATADIR" ; then
3520 # #### Total fucking kludge --
3521 # Map /build/prefix/usr/X11R6/share/ to /build/prefix/usr/share/
3522 # but of course we need to expand all the nested variables to do that...
3530 PO_DATADIR=`echo $dd | sed 's@/X11R6/@/@'`
3533 AC_MSG_RESULT($PO_DATADIR/locale)
3536 # canonicalize slashes.
3537 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
3539 # gcc 3.0 likes to issue this warning for every file:
3541 # cc1: warning: changing search order for system directory "/usr/local/include"
3542 # cc1: warning: as it has already been specified as a non-system directory
3544 # Yay. We can only avoid that by deleting "-I${prefix}/include" from the list.
3545 # Which *should* be totally redundant, and thus an ok thing to delete?
3547 INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'`
3550 ###############################################################################
3552 # Perform substitutions and write Makefiles.
3554 ###############################################################################
3558 AC_SUBST(PREFERRED_DEMO_PROGRAM)
3559 AC_SUBST(ALL_DEMO_PROGRAMS)
3560 AC_SUBST(SAVER_LIBS)
3561 AC_SUBST(MOTIF_LIBS)
3570 AC_SUBST(XDPMS_LIBS)
3571 AC_SUBST(XINERAMA_LIBS)
3572 AC_SUBST(PASSWD_LIBS)
3573 AC_SUBST(INSTALL_SETUID)
3574 AC_SUBST(SETUID_HACKS)
3575 AC_SUBST(INSTALL_DIRS)
3576 AC_SUBST(NEED_SETUID)
3577 AC_SUBST(INSTALL_PAM)
3578 AC_SUBST(NEW_LOGIN_COMMAND)
3579 AC_SUBST(NEW_LOGIN_COMMAND_P)
3580 AC_SUBST(DEFAULT_IMAGES_P)
3581 AC_SUBST(DEFAULT_IMAGE_DIRECTORY)
3582 AC_SUBST(DEFAULT_TEXT_FILE)
3586 AC_SUBST(SCRIPTS_OSX)
3589 AC_SUBST(PASSWD_SRCS)
3590 AC_SUBST(PASSWD_OBJS)
3594 AC_SUBST(SAVER_GL_SRCS)
3595 AC_SUBST(SAVER_GL_OBJS)
3596 AC_SUBST(SAVER_GL_LIBS)
3601 AC_SUBST(GL_UTIL_EXES)
3605 AC_SUBST(GLE_KLUDGE)
3610 AC_SUBST(GTK_DATADIR)
3611 AC_SUBST(PO_DATADIR)
3612 AC_SUBST(HACK_CONF_DIR)
3613 AC_SUBST(GTK_EXTRA_OBJS)
3615 APPDEFAULTS=$ac_x_app_defaults
3616 AC_SUBST(APPDEFAULTS)
3619 AC_SUBST(DEPEND_FLAGS)
3620 AC_SUBST(DEPEND_DEFINES)
3629 driver/XScreenSaver.ad)
3631 ###############################################################################
3633 # Print some warnings at the end.
3635 ###############################################################################
3637 warn_prefix_1=" Warning:"
3638 warn_prefix_2=" Note:"
3639 warn_prefix="$warn_prefix_1"
3642 warnsep=' #################################################################'
3645 if test "$warning" = no ; then
3646 echo '' ; echo "$warnsep" ; echo ''
3653 if test "$warning" = long ; then echo '' ; fi
3656 echo "$warn_prefix $rest"
3663 if test "$was" != no ; then echo '' ; fi
3665 echo "$warn_prefix $rest"
3675 warn_prefix="$warn_prefix_2"
3677 warn_prefix="$warn_prefix_1"
3681 warn_prefix="$warn_prefix_2"
3683 warn_prefix="$warn_prefix_1"
3687 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
3688 warn 'The SGI saver extension was requested, but was not found.'
3691 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
3692 warn 'The XIdle extension was requested, but was not found.'
3695 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
3696 warn 'The XSHM extension was requested, but was not found.'
3699 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
3700 warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
3703 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
3704 warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
3707 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
3708 warn 'The DPMS extension was requested, but was not found.'
3711 if test "$with_xinerama_req" = yes -a "$have_xinerama" = no ; then
3712 warn 'The Xinerama extension was requested, but was not found.'
3715 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
3716 warn 'The XF86VMODE extension was requested, but was not found.'
3719 if test "$with_randr_req" = yes -a "$have_randr" = no ; then
3720 warn 'The RANDR extension was requested, but was not found.'
3723 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
3724 warn "Checking of /proc/interrupts was requested, but it's bogus."
3727 if test "$pkg_config" = false ; then
3728 warnL 'The "pkg-config" program was not found. Without that,'
3729 warn2 "detection of the various GTK libraries won't work."
3731 pkgerr=`$pkg_config --list-all 2>&1 >/dev/null`
3732 if test "x$pkgerr" != "x" ; then
3733 warnL 'The "pkg-config" program produces errors. This often causes'
3734 warn2 "detection of the various GTK libraries to malfunction."
3735 warn2 "The errors are:"
3737 echo "$pkgerr" | sed 's/^/ > /g'
3741 if test "$gtk_halfassed" != no ; then
3742 warnL "GTK version $gtk_halfassed was found, but at least one supporting"
3743 warn2 "library ($gtk_halfassed_lib) was not, so GTK can't be used."
3744 warn2 "Perhaps some of the development packages are not installed?"
3745 if test "$have_gtk" = yes ; then
3746 v="$ac_gtk_version_string"
3747 warn2 "GTK $v is also installed, so it will be used instead."
3748 warn2 "Please read the above output and the \`config.log' file"
3749 warn2 "for more details."
3754 warn2 'Though the Motif front-end to xscreensaver is still'
3755 warn2 'maintained, it is no longer being updated with new'
3756 warn2 'features: all new development on the xscreensaver-demo'
3757 warn2 'program is happening in the GTK version, and not in the'
3758 warn2 'Motif version. It is recommended that you build against'
3759 warn2 'GTK instead of Motif. See <http://www.gtk.org/>.'
3762 if test "$have_motif" = no -a "$have_gtk" = no; then
3764 if test "$with_motif" = yes; then
3765 warnL "Neither the GTK nor Motif libraries were found; the"
3766 warn2 "\`xscreensaver-demo' program requires one of these."
3770 warnL "The GTK libraries do not seem to be available; the"
3771 warn2 "\`xscreensaver-demo' program requires them."
3773 # warn2 'You can use Motif or Lesstif instead of GTK (use the'
3774 # warn2 "\`--with-motif' option) but that is NOT recommended."
3778 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
3779 warnL "Use of Motif was requested, but it wasn't found;"
3780 warn2 "Gtk will be used instead."
3782 elif test "$jurassic_gtk" = yes ; then
3786 v="$ac_gtk_version_string"
3787 if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
3788 warnL "Use of Gtk was requested, but its version number is unknown;"
3789 elif test "$with_gtk_req" = yes ; then
3790 warnL "Use of Gtk was requested, but it is version $v;"
3792 warnL "Gtk was found on this system, but it is version $v;"
3795 warn2 "Gtk $pref_gtk or newer is required."
3797 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
3798 warnL "Use of Gtk was requested, but it wasn't found."
3802 if test "$have_gtk" = yes -a "$have_gdk_pixbuf" = no ; then
3803 warn "GTK is being used, but the GDK-Pixbuf library and/or"
3804 warn2 "headers were not found. That can't be good. Please"
3805 warn2 "install the GDK-Pixbuf development kit and re-configure."
3808 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
3810 preferred_lesstif=0.92
3812 if test "$lesstif_version" = unknown; then
3813 warnL "Unable to determine the LessTif version number!"
3814 warn2 "Make sure you are using version $preferred_lesstif or newer."
3815 warn2 "See <http://www.lesstif.org/>."
3817 elif test \! $lesstif_version -gt 82; then
3818 warnL "LessTif version $lesstif_version_string is being used."
3819 warn2 "LessTif versions 0.82 and earlier are too buggy to"
3820 warn2 "use with XScreenSaver; it is strongly recommended"
3821 warn2 "that you upgrade to at least version $preferred_lesstif!"
3822 warn2 "See <http://www.lesstif.org/>."
3827 if test "$have_motif" = yes -a "$have_gtk" = no ; then
3828 warn 'Motif is being used, and GTK is not.'
3834 if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
3835 warnL 'Use of XPM was requested, but it was not found.'
3838 if test "$with_gdk_pixbuf_req" = yes -a "$have_gdk_pixbuf" = no; then
3839 warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
3842 if test "$have_gdk_pixbuf" = no -o "$gdk_pixbuf_halfassed" = yes || \
3843 test "$have_gdk_pixbuf" = no -a "$have_xpm" = no ; then
3845 if test "$with_gdk_pixbuf_req" = yes ; then
3847 elif test "$with_gdk_pixbuf_req" = no ; then
3848 warnL 'The GDK-Pixbuf library is not being used.'
3850 warnL 'The GDK-Pixbuf library was not found.'
3853 if test "$with_xpm_req" = yes -o "$have_xpm" = yes ; then
3855 elif test "$with_xpm_req" = no ; then
3856 warnL 'The XPM library is not being used.'
3858 warnL 'The XPM library was not found.'
3861 if test "$have_gdk_pixbuf" = no -a "$have_xpm" = yes ; then
3862 warn2 'The XPM library is being used instead.'
3865 if test "$gdk_pixbuf_halfassed" = yes ; then
3867 warn2 'More specifically, we found the headers, but not the'
3868 warn2 'libraries; so either GDK-Pixbuf is half-installed on this'
3869 warn2 "system, or something else went wrong. The \`config.log'"
3870 warn2 'file might contain some clues.'
3874 warn2 'Some of the demos will not use images as much as they could.'
3875 warn2 'You should consider installing GDK-Pixbuf and re-running'
3876 warn2 'configure. (GDK-Pixbuf is recommended over XPM, as it'
3877 warn2 'provides support for more image formats.)'
3881 if test "$have_jpeg" = no ; then
3882 if test "$with_jpeg_req" = yes ; then
3883 warnL 'Use of libjpeg was requested, but it was not found.'
3884 elif test "$with_jpeg_req" = no ; then
3885 noteL 'The JPEG library is not being used.'
3887 noteL 'The JPEG library was not found.'
3890 if test "$jpeg_halfassed" = yes ; then
3892 warn2 'More specifically, we found the headers, but not the'
3893 warn2 'library; so either JPEG is half-installed on this'
3894 warn2 "system, or something else went wrong. The \`config.log'"
3895 warn2 'file might contain some clues.'
3899 if test "$have_gdk_pixbuf" = no ; then
3900 warn2 "This means that it won't be possible for the image-manipulating"
3901 warn2 "display modes to load files from disk; and it also means that"
3902 warn2 "the \`webcollage' program will be much slower."
3904 warn2 "This means the \`webcollage' program will be much slower."
3909 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
3910 preferred_mesagl=3.4
3911 mgv="$ac_mesagl_version_string"
3912 pgl="$preferred_mesagl"
3914 if test "$ac_mesagl_version" = unknown; then
3915 warnL "Unable to determine the MesaGL version number!"
3916 warn2 "Make sure you are using version $preferred_mesagl or newer."
3918 elif test \! "$ac_mesagl_version" -gt 2006; then
3919 warnL "MesaGL version number is $mgv --"
3920 warn2 "MesaGL 2.6 and earlier have a security bug. It is strongly"
3921 warn2 "recommended that you upgrade to at least version $preferred_mesagl."
3923 elif test \! "$ac_mesagl_version" -gt 3003; then
3924 warnL "MesaGL version number is $mgv --"
3925 warn2 "MesaGL 3.3 and earlier have some bugs; it is recommended"
3926 warn2 "that you upgrade to $pgl or newer."
3930 if test "$have_gl" = no ; then
3931 if test "$with_gl_req" = yes ; then
3932 warnL 'Use of GL was requested, but it was not found.'
3933 elif test "$with_gl_req" = no ; then
3934 noteL 'The OpenGL 3D library is not being used.'
3936 noteL 'The OpenGL 3D library was not found.'
3939 if test "$gl_halfassed" = yes ; then
3941 warn2 'More specifically, we found the headers, but not the'
3942 warn2 'libraries; so either GL is half-installed on this'
3943 warn2 "system, or something else went wrong. The \`config.log'"
3944 warn2 'file might contain some clues.'
3948 warn2 'Those demos which use 3D will not be built or installed.'
3949 warn2 'You might want to consider installing OpenGL and'
3950 warn2 "re-running configure. If your vendor doesn't ship"
3951 warn2 'their own implementation of OpenGL, you can get a free'
3952 warn2 'version at <http://www.mesa3d.org/>. For general OpenGL'
3953 warn2 'info, see <http://www.opengl.org/>.'
3958 if test "$have_gl" = yes -a "$have_gle" = no ; then
3960 # nobody cares about this; don't print the warning unless it was
3961 # requested and not found, or halfway-found.
3962 if test "$with_gle_req" = yes -o "$gle_halfassed" = yes ; then
3964 if test "$with_gle_req" = yes ; then
3965 noteL 'Use of the GLE (GL Extrusion) library was requested, but'
3966 warn2 'it was not found (though the OpenGL library was found, and'
3967 warn2 'is being used.)'
3968 elif test "$with_gle_req" = no ; then
3969 noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
3970 warn2 'library is not.'
3972 noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
3976 if test "$gle_halfassed" = yes ; then
3978 warn2 'More specifically, we found the headers, but not the'
3979 warn2 'libraries; so either GLE is half-installed on this'
3980 warn2 "system, or something else went wrong. The \`config.log'"
3981 warn2 'file might contain some clues.'
3985 warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
3986 warn2 'will not be built or installed. You might want to consider'
3987 warn2 'installing GLE and re-running configure. You can find the'
3988 warn2 'GLE library at <http://www.linas.org/gle/>. For general'
3989 warn2 'OpenGL info, see <http://www.opengl.org/>.'
3995 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
3996 warn 'Use of XReadDisplay was requested, but it was not found.'
3999 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
4000 warn 'Use of Kerberos was requested, but it was not found.'
4003 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
4004 warn 'Use of PAM was requested, but it was not found.'
4007 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
4008 warn 'Use of shadow passwords was requested, but they were not found.'
4012 # You are in a twisty maze of namespaces and syntaxes, all alike.
4013 # Fuck the skull of Unix.
4015 eval bindir=${bindir}
4016 eval bindir=${bindir}
4017 eval bindir=${bindir}
4018 eval bindir=${bindir}
4019 eval bindir=${bindir}
4020 eval bindir=${bindir}
4021 eval HACKDIR=${HACKDIR}
4022 eval HACKDIR=${HACKDIR}
4023 eval HACKDIR=${HACKDIR}
4024 eval HACKDIR=${HACKDIR}
4025 eval HACKDIR=${HACKDIR}
4026 eval HACKDIR=${HACKDIR}
4027 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4028 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4029 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4030 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4031 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4032 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4034 # canonicalize slashes.
4035 bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'`
4036 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
4037 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
4040 # Sanity check the hackdir
4041 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
4042 if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
4044 AC_MSG_ERROR([\"--with-hackdir=${bindir}/${bad_choice}\" won't work.
4045 There will be an executable installed with that name, so
4046 that can't be the name of a directory as well. Please
4047 re-configure with a different directory name.])
4054 # Now let's warn if there's a previous RPM version already installed.
4055 # But don't bother with this test if we are currently *building* an RPM.
4057 if test -z "$RPM_PACKAGE_VERSION" ; then
4059 rpmnames="xscreensaver xscreensaver-base xscreensaver-extras"
4063 rpmv=`(rpm -qv $rpmnames) 2>/dev/null | \
4064 sed -n 's/^[-a-z]*-\([0-9][0-9]*[.][0-9][0-9a-z]*\)-.*$/\1/p' | \
4068 if test \! -z "$rpmv" ; then
4069 rpmbdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
4070 rpmhdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/attraction$@\1@p'`
4073 warnL "There is already an installed RPM of xscreensaver $rpmv"
4074 warn2 'on this system. You might want to remove it ("rpm -ve")'
4075 warn2 'before running "make install" in this directory.'
4077 warn2 "Alternately, you could build this version of xscreensaver"
4078 warn2 'as an RPM, and then install that. An "xscreensaver.spec"'
4079 warn2 'file is included. Try "rpmbuild -v -ba xscreensaver.spec".'
4080 warn2 "See the RPM documentation for more info."
4083 if test "$rpmbdir" = "$rpmhdir" ; then
4084 warn2 "The RPM version was installed in $rpmbdir/."
4087 warn2 "The RPM version was installed in $rpmbdir/,"
4088 warn2 "with demos in $rpmhdir/."
4093 if test "${bindir}" = "${HACKDIR}" ; then
4097 if test "$do_dir_warning" = yes; then
4101 echo ' When you run "make install", the "xscreensaver",'
4102 echo ' "xscreensaver-demo", and "xscreensaver-command" executables'
4103 echo " will be installed in ${bindir}/."
4105 echo " The various graphics demos (190+ different executables) will"
4106 echo " be installed in ${HACKDIR}/."
4108 echo " If you would prefer the demos to be installed elsewhere,"
4109 echo " you should re-run configure with the --with-hackdir=DIR"
4110 echo " option. For more information, run \`./configure --help'."
4114 if test "$warning" != no; then
4115 echo '' ; echo "$warnsep" ; echo ''
4118 if test "$do_dir_warning" = no; then
4119 if test "$warning" = no; then
4122 echo "User programs will be installed in ${bindir}/"
4123 echo "Screen savers will be installed in ${HACKDIR}/"
4124 echo "Configuration will be installed in ${HACK_CONF_DIR}/"