ftp://ftp.jp.xemacs.org/pub/NetBSD/packages/distfiles/xscreensaver-4.15.tar.gz
[xscreensaver] / configure.in
1 # configure.in --- xscreensaver, Copyright (c) 1997-2003 Jamie Zawinski.
2 #
3
4 AC_PREREQ(2.52)
5 AC_INIT(driver/subprocs.c)
6 AC_CONFIG_HEADER(config.h)
7
8 echo "current directory: `pwd`"
9 echo "command line was: $0 $@"
10
11
12 # After checking to see that --srcdir is correct (which AC_INIT does)
13 # check for some random other files that come later in the tar file,
14 # to make sure everything is here.
15 #
16 for d in driver utils hacks hacks/glx ; do
17   f=$srcdir/$d/Makefile.in
18   if test \! -r $f ; then
19     echo ""
20     echo "ERROR: The package is incomplete: $f does not exist."
21     echo "       This probably means that your download was truncated."
22     echo ""
23     exit 1
24   fi
25 done
26
27 ###############################################################################
28 #
29 #       Function to figure out how to run the compiler.
30 #
31 ###############################################################################
32
33 AC_DEFUN(AC_PROG_CC_ANSI,
34  [AC_PROG_CC
35
36   if test -z "$GCC"; then
37     AC_MSG_CHECKING(how to request ANSI compilation)
38     case "$host" in
39       *-hpux* )
40         AC_MSG_RESULT(HPUX: adding -Ae)
41         CC="$CC -Ae"
42       ;;
43       *-aix* )
44         AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e)
45         CC="$CC -qlanglvl=ansi -qhalt=e"
46       ;;
47
48       *-dec-* )
49         AC_MSG_RESULT(DEC: adding -std1 -ieee)
50         CC="$CC -std1"
51       ;;
52
53       *)
54         AC_MSG_RESULT(no idea)
55       ;;
56     esac
57   fi
58
59   OBJCC="$CC"
60
61   AC_MSG_CHECKING([whether the compiler works on ANSI C])
62   AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
63      AC_MSG_RESULT(yes),
64      AC_MSG_RESULT(no)
65      AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
66      AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
67
68   if test -n "$GCC"; then
69     AC_MSG_RESULT(Turning on gcc compiler warnings.)
70     CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs"
71     OBJCC="$OBJCC -Wall"
72     # supposedly gcc 3.4 will have "-Wdeclaration-after-statement"
73     # and then perhaps we can do without -pedantic?
74   else
75     case "$host" in
76       *-irix5* |*-irix6.[0-3]* )
77         AC_MSG_RESULT(Turning on SGI compiler warnings.)
78         CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
79       ;;
80 #     *-dec-osf* )
81 #       if test -z "$GCC"; then
82 #         AC_MSG_RESULT(Turning on DEC C compiler warnings.)
83 #         CC="$CC -migrate -w0 -verbose -warnprotos"
84 #       fi
85 #     ;;
86     esac
87   fi
88 ])
89
90
91 ###############################################################################
92 #
93 #       Functions to figure out how to disable // comments in ANSI C code.
94 #
95 #       (With recent gcc, this is done with "-std=c89".  With older gcc, this
96 #       is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to
97 #       gcc.  Old gcc doesn't support -std, and new gcc doesn't support -lang.
98 #       so much for compatibility!)
99 #
100 #       UPDATE: apparently there is NO WAY to tell gcc 3.2.2 to require that
101 #       declarations preceed statements, without resorting to "-pedantic".
102 #       This means that there is no way to get gcc3 to issue warnings that
103 #       ensure that your code complies with the ANSI/ISO C89 standard, without
104 #       also drowning in totally useless warnings.  Thank you master may I
105 #       have another.
106 #
107 #       So, I give up, let's just use -pedantic.
108 #
109 ###############################################################################
110
111 AC_DEFUN(AC_GCC_ACCEPTS_STD,
112  [if test -n "$GCC"; then
113    AC_CACHE_CHECK([whether gcc accepts -std],
114      ac_cv_gcc_accepts_std,
115     [if ( ( gcc -E -std=c89 - </dev/null >/dev/null ) 2>&1 | \
116           grep unrecognized >/dev/null ); then
117        ac_cv_gcc_accepts_std=no
118      else
119        ac_cv_gcc_accepts_std=yes
120      fi])
121    ac_gcc_accepts_std="$ac_cv_gcc_accepts_std"
122   fi
123 ])
124
125 AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE,
126  [if test -n "$GCC"; then
127    AC_GCC_ACCEPTS_STD
128    AC_MSG_RESULT(Disabling C++ comments in ANSI C code.)
129    #
130    # The reason that // comments are banned from xscreensaver is that gcc is
131    # basically the only compiler in the world that supports them in C code.
132    # All other vendors support them only in their C++ compilers, not in their
133    # ANSI C compilers.  This means that it's a portability problem: every time
134    # these comments have snuck into the xscreensaver source code, I've gotten
135    # complaints about it the next day.  So we turn off support for them in gcc
136    # as well to prevent them from accidentially slipping in.
137    #
138    if test "$ac_gcc_accepts_std" = yes ; then
139      #
140      # -std=c89 defines __STRICT_ANSI__, which we don't want.
141      # (That appears to be the only additional preprocessor symbol
142      # it defines, in addition to the syntax changes it makes.)
143      #
144      # -std=gnu89 is no good, because // comments were a GNU extension
145      # before they were in the ANSI C 99 spec...  (gcc 2.96 permits //
146      # with -std=gnu89 but not with -std=c89.)
147      #
148      CC="$CC -std=c89 -U__STRICT_ANSI__"
149    else
150      # The old way:
151      CC="$CC -Wp,-lang-c89"
152    fi
153   fi
154 ])
155
156
157 ###############################################################################
158 #
159 #       Function to figure out how to turn off Objective C on MacOS X.
160 #       (We have to do this to work around an Apple-specific gcc bug.)
161 #
162 ###############################################################################
163
164 AC_DEFUN(AC_GCC_ACCEPTS_NO_CPP_PRECOMP,
165  [if test -n "$GCC"; then
166    AC_CACHE_CHECK([whether gcc accepts -no-cpp-precomp],
167      ac_cv_gcc_accepts_no_cpp_precomp,
168     [if ( ( gcc -E -no-cpp-precomp - </dev/null >/dev/null ) 2>&1 | \
169           grep unrecognized >/dev/null ); then
170        ac_cv_gcc_accepts_no_cpp_precomp=no
171      else
172        ac_cv_gcc_accepts_no_cpp_precomp=yes
173      fi])
174    ac_gcc_accepts_no_cpp_precomp="$ac_cv_gcc_accepts_no_cpp_precomp"
175   fi
176 ])
177
178 AC_DEFUN(AC_NO_OBJECTIVE_C,
179  [if test -n "$GCC"; then
180    AC_GCC_ACCEPTS_NO_CPP_PRECOMP
181    if test "$ac_gcc_accepts_no_cpp_precomp" = yes ; then
182      AC_MSG_RESULT(Disabling Objective C extensions in ANSI C code.)
183      CC="$CC -no-cpp-precomp"
184    fi
185   fi
186 ])
187
188
189 ###############################################################################
190 #
191 #       Function to figure out how to create directory trees.
192 #
193 ###############################################################################
194
195 AC_DEFUN(AC_PROG_INSTALL_DIRS,
196  [AC_CACHE_CHECK([whether \"\${INSTALL} -d\" creates intermediate directories],
197     ac_cv_install_d_creates_dirs,
198     [ac_cv_install_d_creates_dirs=no
199      rm -rf conftestdir
200      if mkdir conftestdir; then
201        cd conftestdir 2>/dev/null
202        ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1
203        if test -d dir1/dir2/. ; then
204          ac_cv_install_d_creates_dirs=yes
205        fi
206        cd .. 2>/dev/null
207        rm -rf conftestdir
208      fi
209     ])
210
211   if test "$ac_cv_install_d_creates_dirs" = no ; then
212     AC_CACHE_CHECK([whether \"mkdir -p\" creates intermediate directories],
213       ac_cv_mkdir_p_creates_dirs,
214       [ac_cv_mkdir_p_creates_dirs=no
215        rm -rf conftestdir
216        if mkdir conftestdir; then
217          cd conftestdir 2>/dev/null
218          mkdir -p dir1/dir2 >/dev/null 2>&1
219          if test -d dir1/dir2/. ; then
220            ac_cv_mkdir_p_creates_dirs=yes
221          fi
222          cd .. 2>/dev/null
223          rm -rf conftestdir
224        fi
225       ])
226   fi
227
228   if test "$ac_cv_install_d_creates_dirs" = yes ; then
229     INSTALL_DIRS='${INSTALL} -d'
230   elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then
231     INSTALL_DIRS='mkdir -p'
232   else
233     # any other ideas?
234     INSTALL_DIRS='${INSTALL} -d'
235   fi
236 ])
237
238
239 ###############################################################################
240 #
241 #       Function to check whether gettimeofday() exists, and how to call it.
242 #       This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS.
243 #
244 ###############################################################################
245
246 AC_DEFUN(AC_GETTIMEOFDAY_ARGS,
247  [AC_MSG_CHECKING(how to call gettimeofday)
248   AC_CACHE_VAL(ac_cv_gettimeofday_args,
249    [AC_TRY_COMPILE([#include <stdlib.h>
250                     #include <sys/time.h>],
251                    [struct timeval tv; struct timezone tzp;
252                     gettimeofday(&tv, &tzp);],
253                    [ac_gettimeofday_args=2],
254                    [AC_TRY_COMPILE([#include <stdlib.h>
255                                     #include <sys/time.h>],
256                                    [struct timeval tv; gettimeofday(&tv);],
257                                    [ac_gettimeofday_args=1],
258                                    [ac_gettimeofday_args=0])])
259     ac_cv_gettimeofday_args=$ac_gettimeofday_args])
260   ac_gettimeofday_args=$ac_cv_gettimeofday_args
261   if test "$ac_gettimeofday_args" = 1 ; then
262     AC_DEFINE(HAVE_GETTIMEOFDAY)
263     AC_MSG_RESULT(one argument)
264   elif test "$ac_gettimeofday_args" = 2 ; then
265     AC_DEFINE(HAVE_GETTIMEOFDAY)
266     AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
267     AC_MSG_RESULT(two arguments)
268   else
269     AC_MSG_RESULT(unknown)
270   fi
271 ])
272
273
274 ###############################################################################
275 #
276 #       Function to find perl5 (defines PERL and PERL_VERSION.)
277 #
278 ###############################################################################
279
280 # M4 sucks!!  perl sucks too!!
281 changequote(X,Y)
282 perl_version_cmd='print $]'
283 changequote([,])
284
285 AC_DEFUN(AC_PROG_PERL,
286  [AC_PATH_PROGS(PERL, [perl5 perl],,)
287   if test -z "$PERL" ; then
288     PERL_VERSION=0
289   else
290     AC_CACHE_CHECK([perl version], ac_cv_perl_version,
291                    [ac_cv_perl_version=`$PERL -e "$perl_version_cmd"`])
292     PERL_VERSION=$ac_cv_perl_version
293   fi
294  ])
295
296
297 ###############################################################################
298 #
299 #       Function to demand "bc".  Losers.
300 #
301 ###############################################################################
302
303 AC_DEFUN(AC_DEMAND_BC,
304  [ac_bc_result=`echo 6+9 | bc 2>/dev/null`
305   AC_MSG_CHECKING([for bc])
306   if test "$ac_bc_result" = "15" ; then
307     AC_MSG_RESULT(yes)
308   else
309     AC_MSG_RESULT(no)
310     echo ''
311     AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard
312                   part of Unix since the 1970s.  Come back when your vendor
313                   has grown a clue.])
314   fi
315  ])
316
317 ###############################################################################
318 #
319 #       Functions to check how to do ICMP PING requests.
320 #
321 ###############################################################################
322
323 AC_DEFUN(AC_CHECK_ICMP,
324  [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp,
325   [AC_TRY_COMPILE([#include <stdlib.h>
326                    #include <stdio.h>
327                    #include <math.h>
328                    #include <unistd.h>
329                    #include <limits.h>
330                    #include <signal.h>
331                    #include <fcntl.h>
332                    #include <sys/types.h>
333                    #include <sys/time.h>
334                    #include <sys/ipc.h>
335                    #include <sys/shm.h>
336                    #include <sys/socket.h>
337                    #include <netinet/in_systm.h>
338                    #include <netinet/in.h>
339                    #include <netinet/ip.h>
340                    #include <netinet/ip_icmp.h>
341                    #include <netinet/udp.h>
342                    #include <arpa/inet.h>
343                    #include <netdb.h>],
344                   [struct icmp i;
345                    struct sockaddr s;
346                    struct sockaddr_in si;
347                    struct ip ip;
348                    i.icmp_type = ICMP_ECHO;
349                    i.icmp_code = 0;
350                    i.icmp_cksum = 0;
351                    i.icmp_id = 0;
352                    i.icmp_seq = 0;
353                    si.sin_family = AF_INET;
354                    #if defined(__DECC) || defined(_IP_VHL)
355                    ip.ip_vhl = 0;
356                    #else
357                    ip.ip_hl = 0;
358                    #endif
359                    ],
360                   [ac_cv_have_icmp=yes],
361                   [ac_cv_have_icmp=no])])
362  if test "$ac_cv_have_icmp" = yes ; then
363    AC_DEFINE(HAVE_ICMP)
364  fi])
365
366 AC_DEFUN(AC_CHECK_ICMPHDR,
367  [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr,
368   [AC_TRY_COMPILE([#include <stdlib.h>
369                    #include <stdio.h>
370                    #include <math.h>
371                    #include <unistd.h>
372                    #include <limits.h>
373                    #include <signal.h>
374                    #include <fcntl.h>
375                    #include <sys/types.h>
376                    #include <sys/time.h>
377                    #include <sys/ipc.h>
378                    #include <sys/shm.h>
379                    #include <sys/socket.h>
380                    #include <netinet/in_systm.h>
381                    #include <netinet/in.h>
382                    #include <netinet/ip.h>
383                    #include <netinet/ip_icmp.h>
384                    #include <netinet/udp.h>
385                    #include <arpa/inet.h>
386                    #include <netdb.h>],
387                   [struct icmphdr i;
388                    struct sockaddr s;
389                    struct sockaddr_in si;
390                    struct ip ip;
391                    i.type = ICMP_ECHO;
392                    i.code = 0;
393                    i.checksum = 0;
394                    i.un.echo.id = 0;
395                    i.un.echo.sequence = 0;
396                    si.sin_family = AF_INET;
397                    ip.ip_hl = 0;],
398                   [ac_cv_have_icmphdr=yes],
399                   [ac_cv_have_icmphdr=no])])
400  if test "$ac_cv_have_icmphdr" = yes ; then
401    AC_DEFINE(HAVE_ICMPHDR)
402  fi])
403
404
405 ###############################################################################
406 #
407 #       Functions to check for various X11 crap.
408 #
409 ###############################################################################
410
411 # Try and find the app-defaults directory.
412 # It sucks that autoconf doesn't do this already...
413 #
414 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
415   rm -fr conftestdir
416   if mkdir conftestdir; then
417     cd conftestdir 2>/dev/null
418     # Make sure to not put "make" in the Imakefile rules, since we grep it out.
419     cat > Imakefile <<'EOF'
420 acfindx:
421         @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
422 EOF
423     if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then
424       # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
425       eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
426     fi
427     cd .. 2>/dev/null
428     rm -fr conftestdir
429   fi])
430
431 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
432   # Look for the directory under a standard set of common directories.
433   # Check X11 before X11Rn because it's often a symlink to the current release.
434   for ac_dir in                                 \
435     /usr/X11/lib/app-defaults                   \
436     /usr/X11R6/lib/app-defaults                 \
437     /usr/X11R6/lib/X11/app-defaults             \
438     /usr/X11R5/lib/app-defaults                 \
439     /usr/X11R5/lib/X11/app-defaults             \
440     /usr/X11R4/lib/app-defaults                 \
441     /usr/X11R4/lib/X11/app-defaults             \
442                                                 \
443     /usr/lib/X11/app-defaults                   \
444     /usr/lib/X11R6/app-defaults                 \
445     /usr/lib/X11R5/app-defaults                 \
446     /usr/lib/X11R4/app-defaults                 \
447                                                 \
448     /usr/local/X11/lib/app-defaults             \
449     /usr/local/X11R6/lib/app-defaults           \
450     /usr/local/X11R5/lib/app-defaults           \
451     /usr/local/X11R4/lib/app-defaults           \
452                                                 \
453     /usr/local/lib/X11/app-defaults             \
454     /usr/local/lib/X11R6/app-defaults           \
455     /usr/local/lib/X11R6/X11/app-defaults       \
456     /usr/local/lib/X11R5/app-defaults           \
457     /usr/local/lib/X11R5/X11/app-defaults       \
458     /usr/local/lib/X11R4/app-defaults           \
459     /usr/local/lib/X11R4/X11/app-defaults       \
460                                                 \
461     /usr/X386/lib/X11/app-defaults              \
462     /usr/x386/lib/X11/app-defaults              \
463     /usr/XFree86/lib/X11/app-defaults           \
464                                                 \
465     /usr/lib/X11/app-defaults                   \
466     /usr/local/lib/X11/app-defaults             \
467     /usr/unsupported/lib/X11/app-defaults       \
468     /usr/athena/lib/X11/app-defaults            \
469     /usr/local/x11r5/lib/X11/app-defaults       \
470     /usr/lpp/Xamples/lib/X11/app-defaults       \
471     /lib/usr/lib/X11/app-defaults               \
472                                                 \
473     /usr/openwin/lib/app-defaults               \
474     /usr/openwin/lib/X11/app-defaults           \
475     /usr/openwin/share/lib/app-defaults         \
476     /usr/openwin/share/lib/X11/app-defaults     \
477                                                 \
478     /X11R6/lib/app-defaults                     \
479     /X11R5/lib/app-defaults                     \
480     /X11R4/lib/app-defaults                     \
481     ; \
482   do
483     if test -d "$ac_dir"; then
484       ac_x_app_defaults=$ac_dir
485       break
486     fi
487   done
488 ])
489
490 AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
491   [AC_REQUIRE_CPP()
492     AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
493      [AC_PATH_X_APP_DEFAULTS_XMKMF
494       if test x"$ac_x_app_defaults" = x; then
495         AC_PATH_X_APP_DEFAULTS_DIRECT
496       fi
497       if test x"$ac_x_app_defaults" = x; then
498         ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
499       else
500         # Record where we found app-defaults for the cache.
501         ac_cv_x_app_defaults="$ac_x_app_defaults"
502       fi])
503     eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
504
505
506 AC_DEFUN(AC_XPOINTER,
507  [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
508                  [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
509                                    [XPointer foo = (XPointer) 0;],
510                                    [ac_cv_xpointer=yes],
511                                    [ac_cv_xpointer=no])])
512   if test "$ac_cv_xpointer" != yes; then
513    AC_DEFINE(XPointer,[char*])
514   fi])
515
516
517 # Random special-cases for X on certain pathological OSes.
518 # You know who you are.
519 #
520 AC_DEFUN(AC_X_RANDOM_PATHS,
521  [case "$host" in
522     *-hpux*)
523
524       # The following arcana was gleaned from conversations with
525       # Eric Schwartz <erics@col.hp.com>:
526       #
527       # On HPUX 10.x, the parts of X that HP considers "standard" live in
528       # /usr/{include,lib}/X11R6/.  The parts that HP doesn't consider
529       # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
530       # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems.
531       # Also, there are symlinks from /usr/include/ and /usr/lib/ into
532       # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
533       # you don't need any -I or -L arguments.
534       #
535       # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
536       # are the same division as 10.x.  However, there are no symlinks to
537       # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
538       # arguments are always necessary.
539       #
540       # However, X11R6 was available on HPUX 9.x as a patch: if that
541       # patch was installed, then all of X11R6 went in to
542       # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
543       #
544       # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
545       # whether R5 was available as a patch; R6 undoubtedly was not.)
546       #
547       # So.  We try and use the highest numbered pair of
548       # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
549       # that are available.  We do not mix and match different versions
550       # of X.
551       #
552       # Question I still don't know the answer to: (do you?)
553       #
554       #   * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
555       #     /usr/contrib/X11R6/ could be installed as a patch, what was in
556       #     that contrib directory?  Did it contain so-called "standard"
557       #     X11R6, or did it include Xaw and Xmu as well?  If the former,
558       #     where did one find Xaw and Xmu on 9.x R6 systems?  Would this
559       #     be a situation where one had to reach into the R5 headers and
560       #     libs to find Xmu?  That is, must both R6 and R5 directories
561       #     be on the -I and -L lists in that case?
562       #
563       for version in X11R6 X11R5 X11R4 ; do
564         # if either pair of directories exists...
565         if test -d /usr/include/$version || test -d /usr/contrib/$version/include
566         then
567            # if contrib exists, use it...
568            if test -d /usr/contrib/$version/include ; then
569              X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
570              X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
571            fi
572            # if the "standard" one exists, use it.
573            if test -d /usr/include/$version ; then
574              X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
575              X_LIBS="$X_LIBS -L/usr/lib/$version"
576            fi
577            # since at least one of the pair exists, go no farther.
578            break
579         fi
580       done
581
582       # Now find Motif.  Thanks for not making xmkmf find this by
583       # default, you losers.
584       #
585       if test -d /usr/include/Motif2.1 ; then
586         X_CFLAGS="$X_CFLAGS -I/usr/include/Motif2.1"
587         X_LIBS="$X_LIBS -L/usr/lib/Motif2.1"
588       elif test -d /usr/include/Motif1.2 ; then
589         X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
590         X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
591       elif test -d /usr/include/Motif1.1 ; then
592         X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
593         X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
594       fi
595
596       # Now let's check for the pseudo-standard locations for OpenGL and XPM.
597       #
598       if test -d /opt/graphics/OpenGL/include ; then
599         # HP-UX 10.20 puts it here
600         X_CFLAGS="-I/opt/graphics/OpenGL/include $X_CFLAGS"
601         X_LIBS="-L/opt/graphics/OpenGL/lib $X_LIBS"
602       elif test -d /opt/Mesa/lib ; then
603         X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
604         X_LIBS="-L/opt/Mesa/lib $X_LIBS"
605       fi
606
607
608       if test -d /opt/xpm/lib/X11 ; then
609         X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
610         X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
611       fi
612
613       # On HPUX, default to installing in /opt/xscreensaver/ instead of
614       # in /usr/local/, unless there is already an xscreensaver in
615       # /usr/local/bin/.  This can be overridden with the --prefix arg
616       # to configure.  I'm not sure this is the right thing to do, but
617       # Richard Lloyd says so...
618       #
619       if test \! -x /usr/local/bin/xscreensaver ; then
620         ac_default_prefix=/opt/xscreensaver
621       fi
622
623     ;;
624     *-solaris*)
625
626       # Thanks for not making xmkmf find this by default, pinheads.
627       # And thanks for moving things around again, too.  Is this
628       # really the standard location now?  What happened to the
629       # joke that this kind of thing went in /opt?
630       # cthomp says "answer: CDE (Common Disorganized Environment)"
631       #
632       if test -f /usr/dt/include/Xm/Xm.h ; then
633         X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
634         MOTIF_LIBS="$MOTIF_LIBS -L/usr/dt/lib -R/usr/dt/lib"
635
636         # Some versions of Slowlaris Motif require -lgen.  But not all.  Why?
637         AC_CHECK_LIB(gen, regcmp, [MOTIF_LIBS="$MOTIF_LIBS -lgen"])
638       fi
639
640     ;;
641     *-darwin*)
642
643       # On MacOS X (10.x with "fink"), many things are under /sw/.
644       #
645       if test -d /sw/include ; then
646         X_CFLAGS="-I/sw/include $X_CFLAGS"
647         X_LIBS="-L/sw/lib $X_LIBS"
648       fi
649     ;;
650   esac])
651
652
653
654 ###############################################################################
655 #
656 #       Some utility functions to make checking for X things easier.
657 #
658 ###############################################################################
659
660 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
661 #
662 AC_DEFUN(AC_CHECK_X_HEADER, [
663   ac_save_CPPFLAGS="$CPPFLAGS"
664   if test \! -z "$includedir" ; then 
665     CPPFLAGS="$CPPFLAGS -I$includedir"
666   fi
667   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
668   AC_CHECK_HEADER([$1],[$2],[$3],[$4])
669   CPPFLAGS="$ac_save_CPPFLAGS"])
670
671 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
672 #
673 AC_DEFUN(AC_EGREP_X_HEADER, [
674   ac_save_CPPFLAGS="$CPPFLAGS"
675   if test \! -z "$includedir" ; then 
676     CPPFLAGS="$CPPFLAGS -I$includedir"
677   fi
678   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
679   AC_EGREP_HEADER([$1], [$2], [$3], [$4])
680   CPPFLAGS="$ac_save_CPPFLAGS"])
681
682 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
683 #
684 AC_DEFUN(AC_TRY_X_COMPILE, [
685   ac_save_CPPFLAGS="$CPPFLAGS"
686   if test \! -z "$includedir" ; then 
687     CPPFLAGS="$CPPFLAGS -I$includedir"
688   fi
689   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
690   AC_TRY_COMPILE([$1], [$2], [$3], [$4])
691   CPPFLAGS="$ac_save_CPPFLAGS"])
692
693
694 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
695 # Use this sparingly; it probably doesn't work very well on X programs.
696 #
697 AC_DEFUN(AC_CHECK_X_LIB, [
698   ac_save_CPPFLAGS="$CPPFLAGS"
699   ac_save_LDFLAGS="$LDFLAGS"
700 #  ac_save_LIBS="$LIBS"
701
702   if test \! -z "$includedir" ; then 
703     CPPFLAGS="$CPPFLAGS -I$includedir"
704   fi
705   # note: $X_CFLAGS includes $x_includes
706   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
707
708   if test \! -z "$libdir" ; then
709     LDFLAGS="$LDFLAGS -L$libdir"
710   fi
711   # note: $X_LIBS includes $x_libraries
712   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
713
714   AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
715   CPPFLAGS="$ac_save_CPPFLAGS"
716   LDFLAGS="$ac_save_LDFLAGS"
717 #  LIBS="$ac_save_LIBS"
718   ])
719
720 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
721 # (But not the -L directories!)
722 #
723 AC_DEFUN(AC_TRY_X_RUN, [
724   ac_save_CPPFLAGS="$CPPFLAGS"
725   if test \! -z "$includedir" ; then 
726     CPPFLAGS="$CPPFLAGS -I$includedir"
727   fi
728   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
729   AC_TRY_RUN([$1], [$2], [$3], [$4])
730   CPPFLAGS="$ac_save_CPPFLAGS"])
731
732
733
734 # Usage: HANDLE_X_PATH_ARG([variable_name],
735 #                          [--command-line-option],
736 #                          [descriptive string])
737 #
738 # All of the --with options take three forms:
739 #
740 #   --with-foo (or --with-foo=yes)
741 #   --without-foo (or --with-foo=no)
742 #   --with-foo=/DIR
743 #
744 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case.  When it sees
745 # a directory (string beginning with a slash) it checks to see whether
746 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
747 # as appropriate.
748 #
749 AC_DEFUN(HANDLE_X_PATH_ARG, [
750    case "$[$1]" in
751     yes) ;;
752     no)  ;;
753
754     /*)
755      AC_MSG_CHECKING([for [$3] headers])
756      d=$[$1]/include
757      if test -d $d; then
758        X_CFLAGS="-I$d $X_CFLAGS"
759        AC_MSG_RESULT($d)
760      else
761        AC_MSG_RESULT(not found ($d: no such directory))
762      fi
763
764      AC_MSG_CHECKING([for [$3] libs])
765      d=$[$1]/lib
766      if test -d $d; then
767        X_LIBS="-L$d $X_LIBS"
768        AC_MSG_RESULT($d)
769      else
770        AC_MSG_RESULT(not found ($d: no such directory))
771      fi
772
773      # replace the directory string with "yes".
774      [$1]_req="yes"
775      [$1]=$[$1]_req
776      ;;
777
778     *)
779      echo ""
780      echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
781      echo "       If it is a directory, then \`DIR/include' will be added to"
782      echo "       the -I list, and \`DIR/lib' will be added to the -L list."
783      exit 1
784      ;;
785    esac
786   ])
787
788
789
790 ###############################################################################
791 ###############################################################################
792 #
793 #       End of function definitions.  Now start actually executing stuff.
794 #
795 ###############################################################################
796 ###############################################################################
797
798 # random compiler setup
799 AC_CANONICAL_HOST
800 AC_PROG_CC_ANSI
801 AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
802 AC_NO_OBJECTIVE_C
803 AC_PROG_CPP
804 AC_C_CONST
805 AC_C_INLINE
806 AC_EXEEXT
807 AC_DEMAND_BC
808
809 # stuff for Makefiles
810 AC_PROG_INSTALL
811 AC_PROG_INSTALL_DIRS
812 AC_PROG_MAKE_SET
813
814 # By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'.
815 # That's wrong: it should be set to '${INSTALL}', so that one can
816 # implement the "install-strip" target properly (strip executables,
817 # but do not try to strip scripts.)
818 #
819 INSTALL_SCRIPT='${INSTALL}'
820
821 # random libc stuff
822 AC_HEADER_STDC
823 AC_CHECK_HEADERS(unistd.h)
824 AC_TYPE_MODE_T
825 AC_TYPE_PID_T
826 AC_TYPE_SIZE_T
827 AC_TYPE_SIGNAL
828 AC_HEADER_TIME
829 AC_HEADER_SYS_WAIT
830 AC_HEADER_DIRENT
831 AC_GETTIMEOFDAY_ARGS
832 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk)
833 AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
834 AC_CHECK_ICMP
835 AC_CHECK_ICMPHDR
836 AC_CHECK_HEADERS(crypt.h sys/select.h)
837 AC_PROG_PERL
838
839 if test -z "$PERL" ; then
840   # don't let it be blank...
841   PERL=/usr/bin/perl
842 fi
843
844 AC_PATH_XTRA
845
846 if test "$have_x" != yes; then
847   AC_MSG_ERROR(Couldn't find X11 headers/libs.  Try \`$0 --help'.)
848 fi
849
850 AC_PATH_X_APP_DEFAULTS
851 AC_X_RANDOM_PATHS
852 AC_XPOINTER
853
854 AC_MSG_CHECKING(whether this is MacOS X)
855   ac_macosx=no
856   case "$host" in
857     *-apple-darwin* )
858       ac_macosx=yes
859     ;;
860   esac
861 AC_MSG_RESULT($ac_macosx)
862
863
864
865 ###############################################################################
866 #
867 #       Gettext support
868 #
869 ###############################################################################
870
871 AC_PROG_INTLTOOL
872 GETTEXT_PACKAGE=xscreensaver
873 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE")
874 AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE")
875 AC_SUBST(GETTEXT_PACKAGE)
876
877 ALL_LINGUAS="ca da de es et fi fr hu it ja ko nl no pl pt pt_BR ru sk sv vi wa zh_CN zh_TW"
878 AM_GLIB_GNU_GETTEXT
879 MKINSTALLDIRS="$INSTALL_DIRS"
880
881
882 ###############################################################################
883 #
884 #       Check for -lXmu (some fucked up vendors don't ship it...)
885 #
886 ###############################################################################
887
888 have_xmu=no
889 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes],,
890                   [#include <stdlib.h>
891                    #include <stdio.h>
892                    #include <X11/Intrinsic.h>])
893 if test "$have_xmu" = no ; then
894   XMU_SRCS='$(UTILS_SRC)/xmu.c'
895   XMU_OBJS='$(UTILS_BIN)/xmu.o'
896   XMU_LIBS=''
897 else
898   XMU_SRCS=''
899   XMU_OBJS=''
900   XMU_LIBS='-lXmu'
901   AC_DEFINE(HAVE_XMU)
902 fi
903
904
905 ###############################################################################
906 #
907 #       Check for the SunOS 4.1.x _get_wmShellWidgetClass bug.
908 #       See comp.windows.x FAQ question 124.  The right fix is to
909 #       get OpenWindows 3.0 patches 100512-02 and 100573-03.
910 #
911 ###############################################################################
912
913 if test "$have_xmu" = yes ; then
914   case "$host" in
915     *-sunos4*)
916     AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
917                    ac_cv_sunos_xmu_bug,
918                    [ac_save_LDFLAGS="$LDFLAGS"
919                     if test \! -z "$x_libraries" ; then
920                       LDFLAGS="$LDFLAGS -L$x_libraries"
921                     fi
922                     # Note: this trick never works!  (Generally.)
923                     # We're only getting away with using AC_TRY_LINK
924                     # with X libraries because we know it's SunOS.
925                     LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
926                     AC_TRY_LINK(,,
927                                 [ac_cv_sunos_xmu_bug=no],
928                                 [ac_cv_sunos_xmu_bug=yes])
929                     LDFLAGS="$ac_save_LDFLAGS"])
930     if test "$ac_cv_sunos_xmu_bug" = yes ; then
931       AC_CACHE_CHECK([whether the compiler understands -static], 
932                      ac_cv_ld_static,
933                      [ac_save_LDFLAGS="$LDFLAGS"
934                       LDFLAGS="$LDFLAGS -static"
935                       AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
936                     LDFLAGS="$ac_save_LDFLAGS"])
937       if test "$ac_cv_ld_static" = yes ; then
938         LDFLAGS="$LDFLAGS -static"
939       else
940         LDFLAGS="$LDFLAGS -Bstatic"
941       fi
942     fi
943     ;;
944   esac
945 fi
946
947
948 ###############################################################################
949 #
950 #       Handle the --with-hackdir option
951 #
952 ###############################################################################
953
954 have_hackdir=yes
955 with_hackdir_req=unspecified
956 AC_ARG_WITH(hackdir,[
957 Installation options:
958
959   --with-hackdir=DIR      Where to install the hundreds of demo executables.
960                           Default: \`PREFIX/lib/xscreensaver/'],
961   [with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes])
962
963 if test x"$with_hackdir" = xyes; then
964   HACKDIR='${exec_prefix}/lib/xscreensaver'
965 elif test x"$with_hackdir" = xno; then
966   HACKDIR='${bindir}'
967 else
968   # there must be a better way than this...
969   if test -z "`echo $with_hackdir | sed 's@^/.*@@'`" ; then
970     # absolute path
971     HACKDIR=$with_hackdir
972   else
973     # relative path
974     HACKDIR="\${exec_prefix}$with_hackdir"
975   fi
976 fi
977
978 # canonicalize slashes.
979 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
980
981 # This option used to be called --enable-subdir; make sure that is no longer
982 # used, since configure brain-damagedly ignores unknown --enable options.
983
984 obsolete_enable=
985 AC_ARG_ENABLE(subdir,,[obsolete_enable=yes])
986 if test -n "$obsolete_enable"; then
987   echo "error: the --enable-subdir option has been replaced with"
988   echo "       the new --with-hackdir option; see \`configure --help'"
989   echo "       for more information."
990   exit 1
991 fi
992
993
994 ###############################################################################
995 #
996 #       Handle the --with-configdir option
997 #
998 ###############################################################################
999
1000 have_configdir=yes
1001 with_configdir_req=unspecified
1002 AC_ARG_WITH(configdir,
1003 [  --with-configdir=DIR    Where to install the data files that describe each
1004                           of the display modes to the GUI.
1005                           Default: \`GNOMEPREFIX/control-center/screensavers/'
1006                           or \`PREFIX/lib/xscreensaver/config/', depending on
1007                           whether GNOME is available.
1008 ],
1009   [with_configdir="$withval"; with_configdir_req="$withval"],
1010   [with_configdir=yes])
1011
1012 if test x"$with_configdir" = xyes; then
1013   # filled in later...
1014   HACK_CONF_DIR=''
1015 elif test x"$with_configdir" = xno; then
1016   echo "error: must be yes, or a pathname: --with-configdir=$with_configdir"
1017   exit 1
1018 else
1019   # there must be a better way than this...
1020   if test -z "`echo $with_configdir | sed 's@^/.*@@'`" ; then
1021     # absolute path
1022     HACK_CONF_DIR=$with_configdir
1023   else
1024     # relative path
1025     HACK_CONF_DIR="\${exec_prefix}$with_configdir"
1026   fi
1027 fi
1028
1029
1030
1031
1032 ###############################################################################
1033 #
1034 #       Check for the SGI SCREEN_SAVER server extension.
1035 #
1036 ###############################################################################
1037
1038 have_sgi=no
1039 with_sgi_req=unspecified
1040 AC_ARG_WITH(sgi-ext,
1041 [Except where noted, all of the --with options below can also take a
1042 directory argument: for example, \`--with-motif=/opt/Motif'.  That would
1043 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
1044 to be added to the -L list, assuming those directories exist.  
1045
1046 By default, support for each of these options will be built in, if the
1047 relevant library routines exist.  At run time, they will then be used
1048 only if the X server being used supports them.  Each --with option has
1049 a corresponding --without option, to override building support for them
1050 at all.
1051
1052 Screen blanking and idle-detection options:
1053
1054   --with-sgi-ext          Include support for the SGI SCREEN_SAVER extension.],
1055   [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
1056
1057 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
1058
1059 if test "$with_sgi" = yes; then
1060   AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
1061                     [have_sgi=yes
1062                      AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],,
1063                     [#include <X11/Xlib.h>])
1064
1065 elif test "$with_sgi" != no; then
1066   echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
1067   exit 1
1068 fi
1069
1070
1071 ###############################################################################
1072 #
1073 #       Check for the MIT-SCREEN-SAVER server extension.
1074 #
1075 ###############################################################################
1076
1077 have_mit=no
1078 with_mit_req=unspecified
1079 AC_ARG_WITH(mit-ext,
1080 [  --with-mit-ext          Include support for the MIT-SCREEN-SAVER extension.],
1081   [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
1082
1083 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
1084
1085 if test "$with_mit" = yes; then
1086   AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes],,
1087                     [#include <X11/Xlib.h>])
1088
1089   # Now check to see if it's really in the library; XF86Free-3.3 ships
1090   # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
1091   #
1092   if test "$have_mit" = yes; then
1093     AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [true], [have_mit=no], -lm)
1094
1095     if test "$have_mit" = no; then
1096       # Fuck!  Looks like XF86Free-3.3 actually puts it in XExExt instead
1097       # of in Xext.  Thank you master, may I have another.
1098       AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
1099                      [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
1100                      [true], -lX11 -lXext -lm)
1101     fi
1102
1103     if test "$have_mit" = no; then
1104       # Double fuck!  Looks like some versions of XFree86 (whichever version
1105       # it is that comes with RedHat Linux 2.0 -- I can't find a version 
1106       # number) put this garbage in Xss instead of Xext.  Thank you master,
1107       #  may I have another.
1108       AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
1109                      [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
1110                      [true], -lX11 -lXext -lm)
1111     fi
1112
1113   if test "$have_mit" = yes; then
1114     AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
1115   fi
1116
1117   fi
1118
1119 elif test "$with_mit" != no; then
1120   echo "error: must be yes or no: --with-mit-ext=$with_mit"
1121   exit 1
1122 fi
1123
1124
1125 ###############################################################################
1126 #
1127 #       Check for the XIDLE server extension.
1128 #
1129 ###############################################################################
1130
1131 have_xidle=no
1132 with_xidle_req=unspecified
1133 AC_ARG_WITH(xidle-ext,
1134 [  --with-xidle-ext        Include support for the XIDLE extension.],
1135   [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
1136
1137 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
1138
1139 if test "$with_xidle" = yes; then
1140   AC_CHECK_X_HEADER(X11/extensions/xidle.h,
1141                     [have_xidle=yes
1142                      AC_DEFINE(HAVE_XIDLE_EXTENSION)],,
1143                     [#include <X11/Xlib.h>])
1144 elif test "$with_xidle" != no; then
1145   echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
1146   exit 1
1147 fi
1148
1149
1150 ###############################################################################
1151 #
1152 #       Check for the SGI-VIDEO-CONTROL server extension.
1153 #
1154 ###############################################################################
1155
1156 have_sgivc=no
1157 with_sgivc_req=unspecified
1158 AC_ARG_WITH(sgivc-ext,
1159 [  --with-sgivc-ext        Include support for the SGI-VIDEO-CONTROL extension.],
1160   [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
1161
1162 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
1163
1164 if test "$with_sgivc" = yes; then
1165
1166   # first check for XSGIvc.h
1167   AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],,
1168                     [#include <X11/Xlib.h>])
1169
1170   # if that succeeded, then check for the -lXsgivc
1171   if test "$have_sgivc" = yes; then
1172     have_sgivc=no
1173     AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
1174                   [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
1175                   -lXext -lX11)
1176   fi
1177
1178   # if that succeeded, then we've really got it.
1179   if test "$have_sgivc" = yes; then
1180     AC_DEFINE(HAVE_SGI_VC_EXTENSION)
1181   fi
1182
1183 elif test "$with_sgivc" != no; then
1184   echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
1185   exit 1
1186 fi
1187
1188
1189 ###############################################################################
1190 #
1191 #       Check for the DPMS server extension.
1192 #
1193 ###############################################################################
1194
1195 have_dpms=no
1196 with_dpms_req=unspecified
1197 AC_ARG_WITH(dpms-ext,
1198 [  --with-dpms-ext         Include support for the DPMS extension.],
1199   [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
1200
1201 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
1202
1203 if test "$with_dpms" = yes; then
1204
1205   # first check for dpms.h
1206   AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes],,
1207                     [#include <X11/Xlib.h>
1208                      #include <X11/Xmd.h>])
1209
1210   # if that succeeded, then check for the DPMS code in the libraries
1211   if test "$have_dpms" = yes; then
1212
1213     # first look in -lXext (this is where it is with XFree86 4.0)
1214     have_dpms=no
1215     AC_CHECK_X_LIB(Xext, DPMSInfo, [have_dpms=yes], [true], -lXext -lX11)
1216
1217     # if that failed, look in -lXdpms (this is where it was in XFree86 3.x)
1218     if test "$have_dpms" = no; then
1219       AC_CHECK_X_LIB(Xdpms, DPMSInfo,
1220                     [have_dpms=yes; XDPMS_LIBS="-lXdpms"], [true],
1221                     -lXext -lX11)
1222     fi
1223   fi
1224
1225
1226   # if that succeeded, then we've really got it.
1227   if test "$have_dpms" = yes; then
1228     AC_DEFINE(HAVE_DPMS_EXTENSION)
1229   fi
1230
1231 elif test "$with_dpms" != no; then
1232   echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
1233   exit 1
1234 fi
1235
1236
1237 ###############################################################################
1238 #
1239 #       Check for the XINERAMA server extension.
1240 #
1241 ###############################################################################
1242
1243 have_xinerama=no
1244 with_xinerama_req=unspecified
1245 AC_ARG_WITH(xinerama-ext,
1246 [  --with-xinerama-ext     Include support for the XINERAMA extension.],
1247   [with_xinerama="$withval"; with_xinerama_req="$withval"],[with_xinerama=yes])
1248
1249 HANDLE_X_PATH_ARG(with_xinerama, --with-xinerama-ext, XINERAMA)
1250
1251 if test "$with_xinerama" = yes; then
1252
1253   # first check for Xinerama.h
1254   AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes],,
1255                     [#include <X11/Xlib.h>])
1256
1257   # if that succeeded, then check for the XINERAMA code in the libraries
1258   if test "$have_xinerama" = yes; then
1259
1260     # first look in -lXext
1261     have_xinerama=no
1262     AC_CHECK_X_LIB(Xext, XineramaQueryScreens, [have_xinerama=yes], [true],
1263                   -lXext -lX11)
1264
1265     # if that failed, look in -lXinerama (this is where it is in XFree86 4.1.)
1266     if test "$have_xinerama" = no; then
1267       AC_CHECK_X_LIB(Xinerama, XineramaQueryScreens,
1268                      [have_xinerama=yes; SAVER_LIBS="$SAVER_LIBS -lXinerama"],
1269                      [true], -lXext -lX11)
1270     fi
1271   fi
1272
1273   # if that succeeded, then we've really got it.
1274   if test "$have_xinerama" = yes; then
1275     AC_DEFINE(HAVE_XINERAMA)
1276   fi
1277
1278 elif test "$with_xinerama" != no; then
1279   echo "error: must be yes or no: --with-xinerama-ext=$with_xinerama"
1280   exit 1
1281 fi
1282
1283
1284 ###############################################################################
1285 #
1286 #       Check for the XF86VMODE server extension (for virtual screens.)
1287 #
1288 ###############################################################################
1289
1290 have_xf86vmode=no
1291 with_xf86vmode_req=unspecified
1292 AC_ARG_WITH(xf86vmode-ext,
1293 [  --with-xf86vmode-ext    Include support for XFree86 virtual screens.],
1294   [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"],
1295   [with_xf86vmode=yes])
1296
1297 HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
1298
1299 if test "$with_xf86vmode" = yes; then
1300
1301   # first check for xf86vmode.h
1302   AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],,
1303                     [#include <X11/Xlib.h>])
1304
1305   # if that succeeded, then check for the -lXxf86vm
1306   if test "$have_xf86vmode" = yes; then
1307     have_xf86vmode=no
1308     AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
1309                   [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
1310                    [true], -lXext -lX11)
1311   fi
1312
1313   # if that succeeded, then we've really got it.
1314   if test "$have_xf86vmode" = yes; then
1315     AC_DEFINE(HAVE_XF86VMODE)
1316   fi
1317
1318 elif test "$with_xf86vmode" != no; then
1319   echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
1320   exit 1
1321 fi
1322
1323
1324 ###############################################################################
1325 #
1326 #       Check for the XF86VMODE server extension (for gamma fading.)
1327 #
1328 ###############################################################################
1329
1330 have_xf86gamma=no
1331 have_xf86gamma_ramp=no
1332 with_xf86gamma_req=unspecified
1333 AC_ARG_WITH(xf86gamma-ext,
1334 [  --with-xf86gamma-ext    Include support for XFree86 gamma fading.],
1335   [with_xf86gamma="$withval"; with_xf86gamma_req="$withval"],
1336   [with_xf86gamma=yes])
1337
1338 HANDLE_X_PATH_ARG(with_xf86gamma, --with-xf86gamma-ext, xf86gamma)
1339
1340 if test "$with_xf86gamma" = yes; then
1341
1342   # first check for xf86vmode.h, if we haven't already
1343   if test "$have_xf86vmode" = yes; then
1344     have_xf86gamma=yes
1345   else
1346     AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],,
1347                       [#include <X11/Xlib.h>])
1348   fi
1349
1350   # if that succeeded, then check for the -lXxf86vm
1351   if test "$have_xf86gamma" = yes; then
1352     have_xf86gamma=no
1353     AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGamma,
1354                   [have_xf86gamma=yes],
1355                    [true], -lXext -lX11)
1356   fi
1357
1358   # check for the Ramp versions of the functions too.
1359   if test "$have_xf86gamma" = yes; then
1360     have_xf86gamma_ramp=no
1361     AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGammaRamp,
1362                   [have_xf86gamma_ramp=yes],
1363                    [true], -lXext -lX11)
1364   fi
1365
1366   # if those tests succeeded, then we've really got the functions.
1367   if test "$have_xf86gamma" = yes; then
1368     AC_DEFINE(HAVE_XF86VMODE_GAMMA)
1369   fi
1370
1371   if test "$have_xf86gamma_ramp" = yes; then
1372     AC_DEFINE(HAVE_XF86VMODE_GAMMA_RAMP)
1373   fi
1374
1375   # pull in the lib, if we haven't already
1376   if test "$have_xf86gamma" = yes -a "$have_xf86vmode" = no; then
1377     SAVER_LIBS="$SAVER_LIBS -lXxf86vm"
1378   fi
1379
1380 elif test "$with_xf86gamma" != no; then
1381   echo "error: must be yes or no: --with-xf86gamma-ext=$with_xf86vmode"
1382   exit 1
1383 fi
1384
1385
1386 ###############################################################################
1387 #
1388 #       Check for XF86MiscSetGrabKeysState (but only bother if we are already
1389 #       using other XF86 stuff.)
1390 #
1391 ###############################################################################
1392
1393 have_xf86miscsetgrabkeysstate=no
1394 if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then
1395   AC_CHECK_X_LIB(Xxf86misc, XF86MiscSetGrabKeysState,
1396                 [have_xf86miscsetgrabkeysstate=yes],
1397                 [true], -lXext -lX11)
1398   if test "$have_xf86miscsetgrabkeysstate" = yes ; then
1399     SAVER_LIBS="$SAVER_LIBS -lXxf86misc"
1400     AC_DEFINE(HAVE_XF86MISCSETGRABKEYSSTATE)
1401   fi
1402 fi
1403
1404
1405 ###############################################################################
1406 #
1407 #       Check for HP XHPDisableReset and XHPEnableReset.
1408 #
1409 ###############################################################################
1410
1411 AC_MSG_CHECKING([for XHPDisableReset in X11/XHPlib.h])
1412 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
1413                   [AC_DEFINE(HAVE_XHPDISABLERESET)
1414                    SAVER_LIBS="-lXhp11 $SAVER_LIBS"
1415                    AC_MSG_RESULT(yes)],
1416                   [AC_MSG_RESULT(no)])
1417
1418
1419 ###############################################################################
1420 #
1421 #       Check for /proc/interrupts.
1422 #
1423 ###############################################################################
1424
1425 have_proc_interrupts=no
1426 with_proc_interrupts_req=unspecified
1427 AC_ARG_WITH(proc-interrupts,
1428 [  --with-proc-interrupts  Include support for consulting the /proc/interrupts
1429                           file to notice keyboard activity.],
1430   [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
1431   [with_proc_interrupts=yes])
1432
1433 if test "$with_proc_interrupts" = yes; then
1434
1435    AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
1436     ac_cv_have_proc_interrupts,
1437     [ac_cv_have_proc_interrupts=no
1438      if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
1439        ac_cv_have_proc_interrupts=yes
1440      fi
1441     ])
1442    have_proc_interrupts=$ac_cv_have_proc_interrupts
1443
1444   if test "$have_proc_interrupts" = yes; then
1445     AC_DEFINE(HAVE_PROC_INTERRUPTS)
1446   fi
1447
1448 elif test "$with_proc_interrupts" != no; then
1449   echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
1450   exit 1
1451 fi
1452
1453
1454 ###############################################################################
1455 #
1456 #       The --enable-locking option
1457 #
1458 ###############################################################################
1459
1460 AC_ARG_ENABLE(locking,[
1461 Screen locking options:
1462
1463   --enable-locking        Compile in support for locking the display.
1464   --disable-locking       Do not allow locking at all.],
1465   [enable_locking="$enableval"],[enable_locking=yes])
1466 if test "$enable_locking" = yes; then
1467   true
1468 elif test "$enable_locking" = no; then
1469   AC_DEFINE(NO_LOCKING)
1470 else
1471   echo "error: must be yes or no: --enable-locking=$enable_locking"
1472   exit 1
1473 fi
1474
1475 # We can't lock on MacOS X, so don't even bother compiling in support for it.
1476 #
1477 if test "$ac_macosx" = yes; then
1478   if test "$enable_locking" = yes; then
1479     AC_MSG_RESULT(locking disabled: it doesn't work on MacOS X)
1480     enable_locking=no
1481     AC_DEFINE(NO_LOCKING)
1482   fi
1483 fi
1484
1485
1486 ###############################################################################
1487 #
1488 #       The --enable-vt-locking option
1489 #
1490 ###############################################################################
1491
1492 #ac_vt_lockswitch=no
1493 #AC_ARG_ENABLE(vt-locking,[
1494 #  --enable-vt-locking     Compile in support for locking Virtual Terminals.
1495 #                          This is the default if the system supports it, and
1496 #                          if locking support is included (--enable-locking.)
1497 #  --disable-vt-locking    Do not allow locking of VTs, even if locking is
1498 #                          enabled.],
1499 #  [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1500 #if test "$enable_vt_locking" = yes; then
1501 #
1502 #  AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1503 #   [AC_TRY_COMPILE([#include <fcntl.h>
1504 #                   #include <sys/ioctl.h>
1505 #                   #include <sys/vt.h>],
1506 #                  [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1507 #                  [ac_cv_vt_lockswitch=yes],
1508 #                  [ac_cv_vt_lockswitch=no])])
1509 #  ac_vt_lockswitch=$ac_cv_vt_lockswitch
1510 #
1511 #elif test "$enable_vt_locking" = no; then
1512 #  true
1513 #else
1514 #  echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1515 #  exit 1
1516 #fi
1517 #
1518 #if test "$ac_vt_lockswitch" = yes; then
1519 #  AC_DEFINE(HAVE_VT_LOCKSWITCH)
1520 #  # the VT_LOCKSWITCH ioctl can only be used when running as root.
1521 #  # #### but it doesn't work yet, so don't worry about that for now.
1522 ##  need_setuid=yes
1523 #fi
1524
1525
1526 ###############################################################################
1527 #
1528 #       Check for PAM.
1529 #
1530 ###############################################################################
1531
1532 case "$host" in
1533   *-solaris*)
1534    # Solaris systems tend to come with PAM misconfigured.
1535    #  Don't build it by default, even if the headers exist.
1536    with_pam_default=no
1537    ;;
1538   *)
1539    # Default to building PAM support on all other systems, if it exists.
1540    with_pam_default=yes
1541   ;;
1542 esac
1543
1544 have_pam=no
1545 with_pam_req=unspecified
1546
1547 AC_ARG_WITH(pam,
1548 [  --with-pam              Include support for PAM (Pluggable Auth Modules.)],
1549   [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1550
1551 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1552
1553 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1554   AC_CACHE_CHECK([for PAM], ac_cv_pam,
1555                  [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1556                                    [ac_cv_pam=yes],
1557                                    [ac_cv_pam=no])])
1558   if test "$ac_cv_pam" = yes ; then
1559     have_pam=yes
1560     AC_DEFINE(HAVE_PAM)
1561     PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1562
1563     # libpam typically requires dlopen and dlsym.  On FreeBSD,
1564     # those are in libc.  On Linux and Solaris, they're in libdl.
1565     AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1566
1567     # On Linux, sigtimedwait() is in libc; on Solaris, it's in librt.
1568     have_timedwait=no
1569     AC_CHECK_LIB(c, sigtimedwait, [have_timedwait=yes])
1570     if test "$have_timedwait" = no ; then
1571       AC_CHECK_LIB(rt, sigtimedwait, [PASSWD_LIBS="${PASSWD_LIBS} -lrt"])
1572     fi
1573
1574     AC_MSG_CHECKING(how to call pam_strerror)
1575     AC_CACHE_VAL(ac_cv_pam_strerror_args,
1576      [AC_TRY_COMPILE([#include <stdio.h>
1577                       #include <stdlib.h>
1578                       #include <security/pam_appl.h>],
1579                      [pam_handle_t *pamh = 0;
1580                       char *s = pam_strerror(pamh, PAM_SUCCESS);],
1581                      [ac_pam_strerror_args=2],
1582                      [AC_TRY_COMPILE([#include <stdio.h>
1583                                       #include <stdlib.h>
1584                                       #include <security/pam_appl.h>],
1585                                      [char *s =
1586                                        pam_strerror(PAM_SUCCESS);],
1587                                      [ac_pam_strerror_args=1],
1588                                      [ac_pam_strerror_args=0])])
1589       ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1590     ac_pam_strerror_args=$ac_cv_pam_strerror_args
1591     if test "$ac_pam_strerror_args" = 1 ; then
1592       AC_MSG_RESULT(one argument)
1593     elif test "$ac_pam_strerror_args" = 2 ; then
1594       AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1595       AC_MSG_RESULT(two arguments)
1596     else
1597       AC_MSG_RESULT(unknown)
1598     fi
1599   fi
1600 fi
1601
1602
1603 ###############################################################################
1604 #
1605 #       Check for Kerberos.
1606 #
1607 ###############################################################################
1608
1609 have_kerberos=no
1610 have_kerberos5=no
1611 with_kerberos_req=unspecified
1612
1613 AC_ARG_WITH(kerberos, 
1614 [  --with-kerberos         Include support for Kerberos authentication.],
1615   [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1616
1617 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1618
1619 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1620   AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
1621                  [AC_TRY_X_COMPILE([#include <krb.h>],,
1622                                    [ac_cv_kerberos=yes],
1623                                    [ac_cv_kerberos=no])])
1624   AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
1625                  [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
1626                                    [ac_cv_kerberos5=yes],
1627                                    [ac_cv_kerberos5=no])])
1628
1629   if test "$ac_cv_kerberos" = yes ; then
1630     have_kerberos=yes
1631     AC_DEFINE(HAVE_KERBEROS)
1632   fi
1633
1634   if test "$ac_cv_kerberos5" = yes ; then
1635
1636     # Andrew Snare <ajs@pigpond.com> wrote:
1637     #
1638     # You were assuming that if kerberosV (krb5) was found, then kerberosIV
1639     # (krb4) was also available.  This turns out not to be the case with
1640     # mit-krb-1.2.7; apparently backwards-compatibility with KerberosIV
1641     # is optional.
1642     #
1643     # So, disable kerberosV support if libkrb4 can't be found.
1644     # This is not the best solution, but it makes the compile not fail.
1645     #
1646     AC_CHECK_X_LIB(krb4, krb_get_tf_realm,
1647                    [have_kerberos=yes],
1648                    [have_kerberos=no])
1649     if test "$have_kerberos" = yes ; then
1650       have_kerberos5=yes
1651       AC_DEFINE(HAVE_KERBEROS)
1652       AC_DEFINE(HAVE_KERBEROS5)
1653     else
1654       have_kerberos5=no
1655       AC_MSG_WARN([Cannot find compat lib (libkrb4) needed to use Kerberos 5])
1656     fi
1657
1658   fi
1659
1660   if test "$have_kerberos5" = yes ; then
1661     # from Matt Knopp <mhat@infocalypse.netlag.com>
1662     # (who got it from amu@mit.edu)
1663
1664     PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"
1665
1666     # jwz: MacOS X uses -lkrb5, but not -lcrypt
1667     AC_CHECK_X_LIB(crypt, crypt, [PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1668
1669   elif test "$have_kerberos" = yes ; then
1670     # from Tim Showalter <tjs@psaux.com> for FreeBSD 4.2
1671     PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err"
1672   fi
1673
1674   if test "$have_kerberos" = yes ; then
1675     AC_CHECK_FUNC(res_search,,
1676       AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1677         AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1678       ))
1679   fi
1680 fi
1681
1682
1683 ###############################################################################
1684 #
1685 #       Check for the nine billion variants of shadow passwords...
1686 #
1687 ###############################################################################
1688
1689 need_setuid=no
1690
1691 have_shadow=no
1692 with_shadow_req=unspecified
1693
1694 AC_ARG_WITH(shadow,
1695 [  --with-shadow           Include support for shadow password authentication.],
1696   [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1697
1698 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1699
1700 if test "$enable_locking" = no ; then
1701   with_shadow_req=no
1702   with_shadow=no
1703 fi
1704
1705
1706 ###############################################################################
1707 #
1708 #       Check for Sun "adjunct" passwords.
1709 #
1710 ###############################################################################
1711
1712 if test "$with_shadow" = yes ; then
1713   AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1714                  [AC_TRY_X_COMPILE([#include <stdlib.h>
1715                                     #include <unistd.h>
1716                                     #include <sys/types.h>
1717                                     #include <sys/label.h>
1718                                     #include <sys/audit.h>
1719                                     #include <pwdadj.h>],
1720                       [struct passwd_adjunct *p = getpwanam("nobody");
1721                        const char *pw = p->pwa_passwd;],
1722                       [ac_cv_sun_adjunct=yes],
1723                       [ac_cv_sun_adjunct=no])])
1724   if test "$ac_cv_sun_adjunct" = yes; then
1725     have_shadow_adjunct=yes
1726     have_shadow=yes
1727     need_setuid=yes
1728   fi
1729 fi
1730
1731
1732 ###############################################################################
1733 #
1734 #       Check for DEC and SCO so-called "enhanced" security.
1735 #
1736 ###############################################################################
1737
1738 if test "$with_shadow" = yes ; then
1739   AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1740                  [AC_TRY_X_COMPILE([#include <stdlib.h>
1741                                     #include <unistd.h>
1742                                     #include <sys/types.h>
1743                                     #include <pwd.h>
1744                                     #include <sys/security.h>
1745                                     #include <prot.h>],
1746                       [struct pr_passwd *p;
1747                        const char *pw;
1748                        set_auth_parameters(0, 0);
1749                        check_auth_parameters();
1750                        p = getprpwnam("nobody");
1751                        pw = p->ufld.fd_encrypt;],
1752                       [ac_cv_enhanced_passwd=yes],
1753                       [ac_cv_enhanced_passwd=no])])
1754   if test $ac_cv_enhanced_passwd = yes; then
1755     have_shadow_enhanced=yes
1756     have_shadow=yes
1757     need_setuid=yes
1758
1759     # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1760     # (I'm told it needs -lcurses too, but I don't understand why.)
1761     # But on DEC, it's in -lsecurity.
1762     #
1763     AC_CHECK_LIB(prot, getprpwnam, 
1764                  [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1765                  [AC_CHECK_LIB(security, getprpwnam, 
1766                                [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1767                  [-lx])
1768   fi
1769 fi
1770
1771 ###############################################################################
1772 #
1773 #       Check for HP's entry in the "Not Invented Here" Sweepstakes.
1774 #
1775 ###############################################################################
1776
1777 if test "$with_shadow" = yes ; then
1778   AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1779                  [AC_TRY_X_COMPILE([#include <stdlib.h>
1780                                     #include <unistd.h>
1781                                     #include <sys/types.h>
1782                                     #include <pwd.h>
1783                                     #include <hpsecurity.h>
1784                                     #include <prot.h>],
1785                       [struct s_passwd *p = getspwnam("nobody");
1786                        const char *pw = p->pw_passwd;],
1787                       [ac_cv_hpux_passwd=yes],
1788                       [ac_cv_hpux_passwd=no])])
1789   if test "$ac_cv_hpux_passwd" = yes; then
1790     have_shadow_hpux=yes
1791     have_shadow=yes
1792     need_setuid=yes
1793
1794     # on HPUX, bigcrypt is in -lsec
1795     AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1796   fi
1797 fi
1798
1799
1800 ###############################################################################
1801 #
1802 #       Check for FreeBSD-style shadow passwords.
1803 #
1804 #       On FreeBSD, getpwnam() and friends work just like on non-shadow-
1805 #       password systems -- except you only get stuff in the pw_passwd field
1806 #       if the running program is setuid.  So, guess that we've got this
1807 #       lossage to contend with if /etc/master.passwd exists, and default to
1808 #       a setuid installation.
1809 #
1810 ###############################################################################
1811
1812 if test "$with_shadow" = yes ; then
1813   AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1814                  [if test -f /etc/master.passwd ; then
1815                     ac_cv_master_passwd=yes
1816                   else
1817                     ac_cv_master_passwd=no
1818                   fi])
1819   if test "$ac_cv_master_passwd" = yes; then
1820     need_setuid=yes
1821   fi
1822 fi
1823
1824
1825 ###############################################################################
1826 #
1827 #       Check for traditional (ha!) shadow passwords.
1828 #
1829 ###############################################################################
1830
1831 if test "$with_shadow" = yes ; then
1832   AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1833                  [AC_TRY_X_COMPILE([#include <stdlib.h>
1834                                     #include <unistd.h>
1835                                     #include <sys/types.h>
1836                                     #include <pwd.h>
1837                                     #include <shadow.h>],
1838                       [struct spwd *p = getspnam("nobody");
1839                        const char *pw = p->sp_pwdp;],
1840                       [ac_cv_shadow=yes],
1841                       [ac_cv_shadow=no])])
1842   if test "$ac_cv_shadow" = yes; then
1843     have_shadow=yes
1844     need_setuid=yes
1845
1846     # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1847     have_getspnam=no
1848     AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1849     if test "$have_getspnam" = no ; then
1850       AC_CHECK_LIB(gen, getspnam,
1851                    [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1852     fi
1853   fi
1854 fi
1855
1856
1857 ###############################################################################
1858 #
1859 #       Check for other libraries needed for non-shadow passwords.
1860 #
1861 ###############################################################################
1862
1863 if test "$enable_locking" = yes ; then
1864
1865   # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1866   have_crypt=no
1867   AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1868   if test "$have_crypt" = no ; then
1869     AC_CHECK_LIB(crypt, crypt,
1870                  [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1871   fi
1872 fi
1873
1874
1875 # Most of the above shadow mechanisms will have set need_setuid to yes,
1876 # if they were found.  But, on some systems, we need setuid even when
1877 # using plain old vanilla passwords.
1878 #
1879 if test "$enable_locking" = yes ; then
1880   case "$host" in
1881     *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1882       need_setuid=yes
1883     ;;
1884   esac
1885 fi
1886
1887
1888 if test "$have_shadow_adjunct" = yes ; then
1889   AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1890 elif test "$have_shadow_enhanced" = yes ; then
1891   AC_DEFINE(HAVE_ENHANCED_PASSWD)
1892 elif test "$have_shadow_hpux" = yes ; then
1893   AC_DEFINE(HAVE_HPUX_PASSWD)
1894 elif test "$have_shadow" = yes ; then
1895   AC_DEFINE(HAVE_SHADOW_PASSWD)
1896 fi
1897
1898
1899 ###############################################################################
1900 #
1901 #       Check for external password helper
1902 #       On SuSE, instead of having xscreensaver be a setuid program, they
1903 #       fork an external program that takes the password on stdin, and
1904 #       returns true if that password is a valid one.  Then only that
1905 #       smaller program needs to be setuid.
1906 #
1907 #       (Note that this external program is not a GUI: the GUI is still
1908 #       all in xscreensaver itself; the external program just does auth.)
1909 #
1910 ###############################################################################
1911
1912 have_passwd_helper=no
1913 with_passwd_helper_req=unspecified
1914
1915 AC_ARG_WITH(passwd-helper,
1916 [  --with-passwd-helper    Include support for an external password
1917                           verification helper program.],
1918   [with_passwd_helper="$withval"; with_passwd_helper_req="$withval"],[with_passwd_helper=no])
1919 # no HANDLE_X_PATH_ARG for this one
1920
1921 if test "$enable_locking" = no ; then
1922   with_passwd_helper_req=no
1923   with_passwd_helper=no
1924 fi
1925
1926 case "$with_passwd_helper" in
1927   ""|no) : ;;
1928   /*)
1929     AC_DEFINE_UNQUOTED(PASSWD_HELPER_PROGRAM, "$with_passwd_helper")
1930     have_passwd_helper=yes;;
1931   *)
1932     echo "error: --with-passwd-helper needs full pathname of helper (not '$with_passwd_helper')." >&2
1933     exit 1
1934 esac
1935
1936
1937 ###############################################################################
1938 #
1939 #       Check for -lXm.
1940 #
1941 ###############################################################################
1942
1943 have_motif=no
1944 with_motif_req=unspecified
1945 AC_ARG_WITH(motif,[
1946 User interface options:
1947
1948   --with-motif            Use the Motif toolkit for the user interface
1949                           (not recommended.)],
1950   [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no])
1951
1952 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
1953
1954 if test "$with_motif" != yes -a "$with_motif" != no ; then
1955   echo "error: must be yes or no: --with-motif=$with_motif"
1956   exit 1
1957 fi
1958
1959 if test "$with_motif" = yes; then
1960   have_motif=no
1961   AC_CHECK_X_HEADER(Xm/Xm.h,
1962                     [have_motif=yes
1963                      AC_DEFINE(HAVE_MOTIF)
1964                      MOTIF_LIBS="$MOTIF_LIBS -lXm"],,
1965                     [#include <stdlib.h>
1966                      #include <stdio.h>
1967                      #include <X11/Intrinsic.h>])
1968 fi
1969
1970
1971 if test "$have_motif" = yes; then
1972   AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],,
1973                     [#include <stdlib.h>
1974                      #include <stdio.h>
1975                      #include <X11/Intrinsic.h>])
1976 fi
1977
1978
1979 ###############################################################################
1980 #
1981 #       Check for -lgtk (and Gnome stuff)
1982 #
1983 ###############################################################################
1984
1985 have_gtk=no
1986 have_gtk2=no
1987 with_gtk_req=unspecified
1988 AC_ARG_WITH(gtk,
1989 [  --with-gtk              Use the Gtk toolkit for the user interface.],
1990   [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
1991
1992 # if --with-gtk=/directory/ was specified, remember that directory so that
1993 # we can also look for the `gtk-config' program in that directory.
1994 case "$with_gtk" in
1995   /*)
1996     gtk_dir="$with_gtk"
1997     ;;
1998   *)
1999     gtk_dir=""
2000     ;;
2001 esac
2002
2003 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
2004
2005 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
2006   echo "error: must be yes or no: --with-gtk=$with_gtk"
2007   exit 1
2008 fi
2009
2010 have_gnome=no
2011 with_gnome_req=unspecified
2012 AC_ARG_WITH(gnome,
2013 [  --with-gnome            Include support for the Gnome 1.x Control Center.
2014                           (This option is not needed with GTK 2.x / Gnome 2.x.)
2015 ],
2016   [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
2017
2018 # if --with-gnome=/directory/ was specified, remember that directory so that
2019 # we can also look for the `gnome-config' program in that directory.
2020 case "$with_gnome" in
2021   /*)
2022     gnome_dir="$with_gnome"
2023     ;;
2024   *)
2025     gnome_dir=""
2026     ;;
2027 esac
2028
2029 HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome)
2030
2031 if test "$with_gnome" != yes -a "$with_gnome" != no ; then
2032   echo "error: must be yes or no: --with-gnome=$with_gnome"
2033   exit 1
2034 fi
2035
2036 parse_gtk_version_string() {
2037   # M4 sucks!!
2038   changequote(X,Y)
2039   maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
2040   min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
2041   changequote([,])
2042   ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
2043   if test -z "$ac_gtk_version"; then
2044     ac_gtk_version=unknown
2045     ac_gtk_version_string=unknown
2046   fi
2047 }
2048
2049
2050 jurassic_gtk=no
2051 gtk2_halfassed=no
2052
2053 if test "$with_gtk" = yes; then
2054   have_gtk=no
2055   
2056   # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2057   # look in /foo/bin/ for glib-config, gtk-config, and gnome-config.
2058   #
2059   gtk_path="$PATH"
2060
2061   if test ! -z "$gtk_dir"; then
2062     # canonicalize slashes.
2063     foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2064     gtk_path="$foo:$gtk_path"
2065   fi
2066
2067   if test ! -z "$gnome_dir"; then
2068     # canonicalize slashes.
2069     foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2070     gtk_path="$foo:$gtk_path"
2071   fi
2072
2073   AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path)
2074
2075   if test -n "$pkg_config" ; then
2076     #
2077     # the new way...
2078     # run pkg-config based tests.
2079     #
2080     pkgs=''
2081     pkg_check_version() {
2082       if test "$ok" = yes ; then
2083         req="$1"
2084         min="$2"
2085         AC_MSG_CHECKING(for $req)
2086         if $pkg_config --exists "$req" ; then
2087           vers=`$pkg_config --modversion "$req"`
2088           if $pkg_config --exists "$req >= $min" ; then
2089             AC_MSG_RESULT($vers)
2090             pkgs="$pkgs $req"
2091             return 1
2092           else
2093             AC_MSG_RESULT($vers (wanted >= $min))
2094             ok=no
2095             return 0
2096           fi
2097         else
2098           AC_MSG_RESULT(no)
2099           ok=no
2100           return 0
2101         fi
2102       fi
2103     }
2104
2105     AC_MSG_RESULT(checking for GTK 2.x with pkg-config based tests...)
2106
2107     ok="yes"
2108     pkg_check_version       gtk+-2.0  2.0.1  ; ac_gtk_version_string="$vers"
2109     pkg_check_version    gmodule-2.0  2.0.0
2110     pkg_check_version     libxml-2.0  2.4.6
2111     pkg_check_version   libglade-2.0  1.99.0
2112 #   pkg_check_version gdk_pixbuf      0.1
2113     have_gtk="$ok"
2114
2115     if test "$have_gtk" = yes; then
2116       have_gtk2=yes
2117       AC_DEFINE(HAVE_GTK2)
2118     else
2119       if test -n "$ac_gtk_version_string" ; then
2120         gtk2_halfassed="$ac_gtk_version_string"
2121         gtk2_halfassed_lib="$req"
2122       fi
2123     fi
2124
2125     if test "$have_gtk" = no; then
2126       #
2127       # we don't have GTK 2.  Let's look for GTK 1.
2128       #
2129       AC_MSG_RESULT(checking for GTK 1.x with pkg-config based tests...)
2130
2131       pkgs=''
2132       ok="yes"
2133       pkg_check_version gtk+       1.2     ; ac_gtk_version_string="$vers"
2134       pkg_check_version glib       1.0
2135       pkg_check_version gdk_pixbuf 0.1
2136       have_gtk="$ok"
2137
2138       # Now check for Gnome...
2139       #
2140       if test "$have_gtk" = yes -a "$with_gnome" = yes; then
2141         old_pkgs="$pkgs"
2142         ok=yes
2143         pkg_check_version capplet    1.0
2144         pkg_check_version gnomeui    1.0
2145         pkg_check_version gdk_pixbuf 0.1
2146         have_gnome="$ok"
2147
2148         if test "$have_gnome" = no; then
2149           pkgs="$old_pkgs"
2150         else
2151           AC_DEFINE(HAVE_CRAPPLET)
2152         fi
2153       fi
2154     fi
2155
2156     if test "$have_gtk" = yes; then
2157       parse_gtk_version_string
2158       jurassic_gtk=no
2159     else
2160       have_gnome=no
2161     fi
2162
2163     if test "$have_gtk" = yes; then
2164       AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
2165                      [ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`])
2166       AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
2167                      [ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs`])
2168     fi
2169     ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
2170     ac_gtk_config_libs=$ac_cv_gtk_config_libs
2171
2172     ac_gnome_config_cflags=$ac_gtk_config_cflags
2173     ac_gnome_config_libs=$ac_gtk_config_libs
2174
2175   else
2176     #
2177     # the old way...
2178     # run {gnome,gtk}-config based tests.
2179     #
2180     AC_MSG_RESULT(checking for GTK 1.x with gtk-config based tests...)
2181
2182     AC_PATH_PROGS(glib_config,  glib12-config glib-config,,  $gtk_path)
2183     AC_PATH_PROGS(gtk_config,   gtk12-config  gtk-config,,   $gtk_path)
2184
2185     if test "$with_gnome" = yes; then
2186       AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
2187     fi
2188
2189     if test -n "$glib_config" -a  -n "$gtk_config" ; then
2190       have_gtk=yes
2191       if test "$with_gnome" = yes -a -n "$gnome_config" ; then
2192         have_gnome=yes
2193       fi
2194     fi
2195
2196     if test "$have_gtk" = yes; then
2197       AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
2198                      [ac_cv_gtk_version_string=`$gtk_config --version`])
2199       ac_gtk_version_string=$ac_cv_gtk_version_string
2200       parse_gtk_version_string
2201     fi
2202
2203     if test "$have_gtk" = yes; then
2204       if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
2205       then
2206         have_gtk=no
2207         have_gnome=no
2208         jurassic_gtk=yes
2209       fi
2210     fi
2211
2212     if test "$have_gtk" = yes; then
2213       AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
2214                      [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
2215       AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
2216                      [ac_cv_gtk_config_libs=`$gtk_config --libs`])
2217     fi
2218     ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
2219     ac_gtk_config_libs=$ac_cv_gtk_config_libs
2220
2221     # Check for Gnome Capplet support.
2222     # Note that this is only needed with Gnome 1.x, not Gnome 2.x.
2223     # In a Gnome 2.x world, libcapplet will not exist.
2224     # (In fact, this likely won't even be checked, since in a Gnome 2.x
2225     # world, we will probably be up in the "$pkg_config" branch instead
2226     # of here in the "$gnome_config" branch.)
2227     #
2228     if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2229       gnome_config_libs="gtk capplet gnomeui gdk_pixbuf"
2230       AC_MSG_CHECKING(for Gnome capplet includes)
2231       AC_CACHE_VAL(ac_cv_gnome_config_cflags,
2232         [if ( $gnome_config --cflags $gnome_config_libs 2>&1 | \
2233               grep Unknown >/dev/null ) ; then
2234            ac_cv_gnome_config_cflags=''
2235          else
2236           ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
2237          fi])
2238       ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
2239       if test "$ac_gnome_config_cflags" = "" ; then
2240         have_gnome=no
2241         AC_MSG_RESULT(no)
2242       else
2243         AC_MSG_RESULT($ac_gnome_config_cflags)
2244       fi
2245     fi
2246
2247     if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2248       AC_MSG_CHECKING(for Gnome capplet libs)
2249       AC_CACHE_VAL(ac_cv_gnome_config_libs,
2250         [if ( $gnome_config --libs $gnome_config_libs 2>&1 |
2251               grep Unknown >/dev/null ) ; then
2252            ac_cv_gnome_config_libs=''
2253          else
2254            ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
2255          fi])
2256       ac_gnome_config_libs=$ac_cv_gnome_config_libs
2257       if test "$ac_gnome_config_libs" = "" ; then
2258         have_gnome=no
2259         AC_MSG_RESULT(no)
2260       else
2261         AC_MSG_RESULT($ac_gnome_config_libs)
2262       fi
2263     fi
2264
2265     # If we have Gnome, then override the gtk-config values with 
2266     # the gnome-config values.
2267     #
2268     if test "$have_gnome" = yes -a "$have_gtk" = yes; then
2269       ac_gtk_config_cflags=$ac_gnome_config_cflags
2270       ac_gtk_config_libs=$ac_gnome_config_libs
2271       AC_DEFINE(HAVE_CRAPPLET)
2272     fi
2273
2274   fi   # end of {gnome,gtk}-config based tests
2275
2276   if test "$have_gtk" = yes -a "$have_gtk2" = no; then
2277     # check for this function that was not in libcapplet 1.2.
2278     # (only needed in Gnome/Gtk 1.x, not Gnome/Gtk 2.x)
2279     AC_CHECK_X_LIB(capplet, capplet_widget_changes_are_immediate,
2280                    [AC_DEFINE(HAVE_CRAPPLET_IMMEDIATE)], [true],
2281                    $ac_gnome_config_libs)
2282   fi
2283
2284
2285   GNOME_DATADIR=""
2286   if test "$have_gtk" = yes; then
2287     if test -n "$pkg_config"; then
2288       if test "$have_gtk2" = yes; then
2289         GNOME_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
2290       else
2291         GNOME_DATADIR=`$pkg_config --variable=prefix gtk+`
2292       fi
2293     else
2294       GNOME_DATADIR=`$gtk_config --prefix`
2295     fi
2296     GNOME_DATADIR="$GNOME_DATADIR/share"
2297   fi
2298
2299   # .desktop files go in different places in Gnome 1.x and Gnome 2.x...
2300   if test "$have_gtk2" = yes; then
2301     GNOME_PANELDIR='$(GNOME_PANELDIR2)'
2302   else
2303     GNOME_PANELDIR='$(GNOME_PANELDIR1)'
2304   fi
2305
2306
2307   if test "$have_gtk" = yes; then
2308     INCLUDES="$INCLUDES $ac_gtk_config_cflags"
2309     GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
2310     AC_DEFINE(HAVE_GTK)
2311
2312     if test "$have_gtk2" = yes; then
2313       GTK_EXTRA_OBJS=""
2314     else
2315       GTK_EXTRA_OBJS="\$(GTK_EXTRA_OBJS)"
2316     fi
2317   fi
2318
2319 fi
2320
2321
2322 # Check for the Gnome Help Browser.
2323 #
2324 if test "$have_gtk" = yes; then
2325   AC_CHECK_PROGS(have_gnome_help, yelp gnome-help-browser, no)
2326   if test "$have_gnome_help" != no; then
2327     have_gnome_help=yes
2328   fi
2329 fi
2330
2331
2332 ###############################################################################
2333 #
2334 #       Check for -lxml
2335 #
2336 ###############################################################################
2337
2338 have_xml=no
2339 with_xml_req=unspecified
2340 xml_halfassed=no
2341 AC_ARG_WITH(xml,
2342 [  --with-xml              The XML toolkit is needed for some parts of
2343                           the Gtk interface.  Without it, the configuration
2344                           interface will be much less featureful.],
2345 [with_xml="$withval"; with_xml_req="$withval"],[with_xml=yes])
2346
2347 # if --with-xml=/directory/ was specified, remember that directory so that
2348 # we can also look for the `xml-config' program in that directory.
2349 case "$with_xml" in
2350   /*)
2351     xml_dir="$with_xml"
2352     ;;
2353   *)
2354     xml_dir=""
2355     ;;
2356 esac
2357
2358 HANDLE_X_PATH_ARG(with_xml, --with-xml, XML)
2359
2360 if test "$with_xml" != yes -a "$with_xml" != no ; then
2361   echo "error: must be yes or no: --with-xml=$with_xml"
2362   exit 1
2363 fi
2364
2365 if test "$with_xml" = yes; then
2366   have_xml=no
2367   have_old_xml=no
2368
2369   # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2370   # look in /foo/bin/ for for xml-config.
2371   #
2372   xml_path="$PATH"
2373
2374   if test ! -z "$gtk_dir"; then
2375     # canonicalize slashes.
2376     foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2377     xml_path="$foo:$xml_path"
2378   fi
2379
2380   if test ! -z "$gnome_dir"; then
2381     # canonicalize slashes.
2382     foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2383     xml_path="$foo:$xml_path"
2384   fi
2385
2386   if test -n "$pkg_config" ; then
2387     #
2388     # the new way...
2389     # run pkg-config based tests.
2390     #
2391     pkgs=""
2392     ok="yes"
2393
2394     # If we have Gtk 2.x, then *only* XML 2.x will work.
2395     # If we have Gtk 1.x, or don't have Gtk at all, then
2396     # either XML 1.x or 2.x will work.
2397
2398     # First check for XML 2.x.
2399     #
2400     pkg_check_version libxml-2.0 2.4.6
2401
2402     # If that didn't work (we don't have XML 2.x) and we *don't* have
2403     # Gtk 2.x, then check to see if we have XML 1.x
2404     #
2405     if test "$ok" = no -a "$have_gtk2" = no; then
2406       ok=yes
2407       pkg_check_version libxml 1.0
2408     fi
2409
2410     have_xml="$ok"
2411
2412     if test "$have_xml" = yes; then
2413       AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2414                      [ac_cv_xml_config_cflags=`$pkg_config --cflags $pkgs`])
2415       AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2416                      [ac_cv_xml_config_libs=`$pkg_config --libs $pkgs`])
2417       ac_xml_config_cflags=$ac_cv_xml_config_cflags
2418       ac_xml_config_libs=$ac_cv_xml_config_libs
2419     fi
2420
2421   else
2422     #
2423     # the old way...
2424     # run {xml2,xml}-config based tests.
2425     #
2426
2427     AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path)
2428
2429     # If we found the xml-config program, run it to get flags.
2430     #
2431     if test -n "$xml_config" ; then
2432       AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2433                      [ac_cv_xml_config_cflags=`$xml_config --cflags`])
2434       AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2435                      [ac_cv_xml_config_libs=`$xml_config --libs`])
2436       ac_xml_config_cflags=$ac_cv_xml_config_cflags
2437       ac_xml_config_libs=$ac_cv_xml_config_libs
2438     fi
2439
2440     ac_save_xml_CPPFLAGS="$CPPFLAGS"
2441     CPPFLAGS="$CPPFLAGS $ac_xml_config_cflags"
2442
2443     # first try <libxml/parser.h> which is the new way...
2444     #
2445     AC_CHECK_X_HEADER(libxml/xmlIO.h, [have_xml=yes],,
2446                       [#include <libxml/parser.h>])
2447
2448     # if that didn't work, then try just <parser.h> which is the old way...
2449     #
2450     if test "$have_xml" = no; then
2451       AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes; have_old_xml=yes],,
2452                         [#include <parser.h>])
2453     fi
2454
2455     CPPFLAGS="$ac_save_xml_CPPFLAGS"
2456   fi
2457
2458
2459   have_zlib=no
2460   if test "$have_xml" = yes; then
2461     # we have the XML headers; now make sure zlib is around.
2462     # yes, it's stupid we have to do this too, but there is
2463     # dependency screwage in Gnome.
2464     AC_CHECK_X_LIB(z, zlibVersion, [have_zlib=yes])
2465     if test "$have_zlib" = no; then
2466       xml_halfassed=yes
2467       have_xml=no
2468     fi
2469   fi
2470
2471   if test "$have_xml" = yes; then
2472     # we have the header, now check for the library
2473     have_xml=no
2474     xml_halfassed=yes
2475     AC_CHECK_X_LIB(c, xmlParseChunk,
2476                    [have_xml=yes
2477                     xml_halfassed=no
2478                     XML_LIBS="$ac_xml_config_libs"
2479                     AC_DEFINE(HAVE_XML)],
2480                    [true],
2481                    $ac_xml_config_libs)
2482   fi
2483
2484   if test "$have_xml" = yes; then
2485     INCLUDES="$INCLUDES $ac_xml_config_cflags"
2486     GTK_LIBS="$GTK_LIBS $ac_xml_config_libs"
2487     AC_DEFINE(HAVE_XML)
2488     if test "$have_old_xml" = yes; then
2489       AC_DEFINE(HAVE_OLD_XML_HEADERS)
2490     fi
2491   fi
2492
2493 fi
2494
2495
2496 ###############################################################################
2497 #
2498 #       Checking whether Motif is really Lesstif.
2499 #
2500 ###############################################################################
2501
2502 have_lesstif=no
2503 if test "$have_motif" = yes ; then
2504   AC_CACHE_CHECK([whether Motif is really LessTif], 
2505                  ac_cv_have_lesstif,
2506                  [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
2507                                    [long vers = LesstifVersion;],
2508                                    [ac_cv_have_lesstif=yes],
2509                                    [ac_cv_have_lesstif=no])])
2510   have_lesstif=$ac_cv_have_lesstif
2511 fi
2512
2513
2514 lesstif_version=unknown
2515 lesstif_version_string=unknown
2516
2517 if test "$have_lesstif" = yes ; then
2518   ltv=unknown
2519   echo unknown > conftest-lt
2520   AC_CACHE_CHECK([LessTif version number],
2521                  ac_cv_lesstif_version_string,
2522       [AC_TRY_X_RUN([#include <stdio.h>
2523                      #include <Xm/Xm.h>
2524                      int main() {
2525                        FILE *f = fopen("conftest-lt", "w");
2526                        if (!f) exit(1);
2527                        fprintf(f, "%d %d.%d\n", LesstifVersion,
2528                           LESSTIF_VERSION, LESSTIF_REVISION);
2529                        fclose(f);
2530                        exit(0);
2531                      }],
2532                     [ltv=`cat conftest-lt`
2533                      ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
2534                      ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
2535                     [ac_cv_lesstif_version=unknown
2536                      ac_cv_lesstif_version_string=unknown],
2537                     [ac_cv_lesstif_version=unknown
2538                      ac_cv_lesstif_version_string=unknown])])
2539   rm -f conftest-lt
2540   lesstif_version=$ac_cv_lesstif_version
2541   lesstif_version_string=$ac_cv_lesstif_version_string
2542
2543 fi
2544
2545
2546 if test "$have_motif" = yes ; then
2547   mtv=unknown
2548   echo unknown > conftest-mt
2549   AC_CACHE_CHECK([Motif version number],
2550                  ac_cv_motif_version_string,
2551       [AC_TRY_X_RUN([#include <stdio.h>
2552                      #include <Xm/Xm.h>
2553                      int main() {
2554                        FILE *f = fopen("conftest-mt", "w");
2555                        if (!f) exit(1);
2556                        fprintf(f, "%d %d.%d\n", XmVersion,
2557                           XmVERSION, XmREVISION);
2558                        fclose(f);
2559                        exit(0);
2560                      }],
2561                     [mtv=`cat conftest-mt`
2562                      ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
2563                      ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
2564                     [ac_cv_motif_version=unknown
2565                      ac_cv_motif_version_string=unknown],
2566                     [ac_cv_motif_version=unknown
2567                      ac_cv_motif_version_string=unknown])])
2568   rm -f conftest-mt
2569   motif_version=$ac_cv_motif_version
2570   motif_version_string=$ac_cv_motif_version_string
2571
2572 fi
2573
2574
2575 ###############################################################################
2576 #
2577 #       Checking whether Motif requires -lXpm.
2578 #
2579 #       If this is Motif 2.x, and we have XPM, then link against XPM as well.
2580 #       The deal is, Motif 2.x requires XPM -- but it's a compilation option
2581 #       of the library whether to build the XPM code into libXm, or whether
2582 #       to rely on an external libXm.  So the only way to tell whether XPM is
2583 #       a link-time requirement is to examine libXm.a, which is very
2584 #       difficult to do in an autoconf script.  So... if it's Motif 2.x, we
2585 #       always link against XPM if the XPM lib exists (and this will be a
2586 #       no-op if libXm happens to already have the XPM code in it.)
2587 #
2588 ###############################################################################
2589
2590 motif_requires_xpm=no
2591 if test "$have_motif" = yes ; then
2592    AC_MSG_CHECKING(whether Motif requires XPM)
2593    if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
2594    then
2595      motif_requires_xpm=yes
2596      AC_MSG_RESULT(maybe)
2597    else
2598      AC_MSG_RESULT(no)
2599    fi
2600 fi
2601
2602
2603 ###############################################################################
2604 #
2605 #       Checking whether Motif requires -lXp.
2606 #
2607 #       Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
2608 #       Extension".   Why this extension isn't in -lXext with all the others,
2609 #       I have no idea.
2610 #
2611 ###############################################################################
2612
2613 have_xp_ext=no
2614 if test "$have_motif" = yes ; then
2615    have_xp_ext=no
2616    AC_CHECK_X_LIB(Xp, XpQueryExtension,
2617                   [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
2618                   [true], -lX11 -lXext -lm)
2619 fi
2620
2621
2622 ###############################################################################
2623 #
2624 #       Checking whether Motif requires -lXintl (for _Xsetlocale.)
2625 #
2626 ###############################################################################
2627
2628 have_xintl=no
2629 if test "$have_motif" = yes ; then
2630   AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
2631                  -lX11 -lXext -lm)
2632   if test "$have_xintl" = yes; then
2633     MOTIF_LIBS="$MOTIF_LIBS -lXintl"
2634   fi
2635 fi
2636
2637
2638 ###############################################################################
2639 #
2640 #       Check for -lGL or -lMesaGL.
2641 #
2642 ###############################################################################
2643
2644 have_gl=no
2645 ac_have_mesa_gl=no
2646 with_gl_req=unspecified
2647 gl_halfassed=no
2648 AC_ARG_WITH(gl,[
2649 Graphics options:
2650
2651   --with-gl               Build those demos which depend on OpenGL.],
2652   [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
2653
2654 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
2655
2656 ac_mesagl_version=unknown
2657 ac_mesagl_version_string=unknown
2658
2659 if test "$with_gl" = yes; then
2660   AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
2661   if test "$have_gl" = yes ; then
2662     AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no,
2663                       [#include <GL/gl.h>])
2664   fi
2665
2666   # If we have the headers, try and figure out which vendor it's from.
2667   #
2668   if test "$have_gl" = yes ; then
2669
2670     # We need to know whether it's MesaGL so that we know which libraries
2671     # to link against.
2672     #
2673     AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
2674       [ac_cv_have_mesa_gl=no
2675        AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
2676       ])
2677     ac_have_mesa_gl=$ac_cv_have_mesa_gl
2678  
2679
2680     gl_lib_1=""
2681     GL_LIBS=""
2682
2683
2684     # Some versions of MesaGL are compiled to require -lpthread.
2685     # So if the Mesa headers exist, and -lpthread exists, then always
2686     # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
2687     #
2688     if test "$ac_have_mesa_gl" = yes; then
2689       AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
2690     fi
2691
2692
2693     # If we have Mesa headers, check to see if we can link against -lMesaGL.
2694     # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
2695     # Else, warn that GL is busted.  (We have the headers, but no libs.)
2696     #
2697
2698     if test "$ac_have_mesa_gl" = yes ; then
2699       AC_CHECK_X_LIB(MesaGL, glXCreateContext, 
2700                      [gl_lib_1="MesaGL"
2701                       GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
2702                      [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
2703     fi
2704
2705     if test "$gl_lib_1" = "" ; then
2706       AC_CHECK_X_LIB(GL, glXCreateContext, 
2707                      [gl_lib_1="GL"
2708                       GL_LIBS="-lGL -lGLU $GL_LIBS"],
2709                      [], -lGLU $GL_LIBS -lX11 -lXext -lm)
2710     fi
2711
2712     if test "$gl_lib_1" = "" ; then
2713       # we have headers, but no libs -- bail.
2714       have_gl=no
2715       ac_have_mesa_gl=no
2716       gl_halfassed=yes
2717     else
2718       # linking works -- we can build the GL hacks.
2719       AC_DEFINE(HAVE_GL)
2720       if test "$ac_have_mesa_gl" = yes ; then
2721         AC_DEFINE(HAVE_MESA_GL)
2722       fi
2723     fi
2724   fi
2725
2726
2727   # Now that we know we have GL headers and libs, do some more GL testing.
2728   #
2729
2730   if test "$have_gl" = yes ; then
2731     # If it's MesaGL, we'd like to issue a warning if the version number
2732     # is less than or equal to 2.6, because that version had a security bug.
2733     #
2734     if test "$ac_have_mesa_gl" = yes; then
2735
2736       AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
2737         [cat > conftest.$ac_ext <<EOF
2738 #line __oline__ "configure"
2739 #include "confdefs.h"
2740 #include <GL/gl.h>
2741 #ifndef MESA_MAJOR_VERSION
2742 # include <GL/xmesa.h>
2743 # ifdef XMESA_MAJOR_VERSION
2744    /* Around Mesa 3.2, they took out the Mesa version number, so instead,
2745       we have to check the XMesa version number (the number of the X protocol
2746       support, which seems to be the same as the Mesa version number.)
2747     */
2748 #  define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
2749 #  define MESA_MINOR_VERSION XMESA_MINOR_VERSION
2750 # else
2751    /* Oh great.  Some time after 3.4, they took out the xmesa.h header file,
2752       so we have no way of telling what version of Mesa this is at all.
2753       So, we'll guess that the osmesa version (the "offscreen protocol")
2754       is less than or equal to the real mesa version number.  Except that
2755       if OSmesa is 3.3, assume at least Mesa 3.4, since OSmesa was 3.3 in
2756       Mesa 3.4.  And Mesa 3.3 had xmesa.h.  What a complete load of shit!
2757     */
2758 # include <GL/osmesa.h>
2759 #  define MESA_MAJOR_VERSION OSMESA_MAJOR_VERSION
2760 #  define MESA_MINOR_VERSION OSMESA_MINOR_VERSION or newer, probably?
2761 #  if OSMESA_MAJOR_VERSION == 3 && OSMESA_MINOR_VERSION == 3
2762 #   undef MESA_MINOR_VERSION
2763 #   define MESA_MINOR_VERSION 4 or newer, probably?
2764 #  endif
2765 # endif
2766 #endif
2767 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
2768 EOF
2769
2770          ac_save_CPPFLAGS="$CPPFLAGS"
2771          if test \! -z "$includedir" ; then 
2772            CPPFLAGS="$CPPFLAGS -I$includedir"
2773          fi
2774          CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2775
2776          mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | grep configure:`
2777
2778          # M4 sucks!!
2779          changequote(X,Y)
2780           mglv=`echo "$mglv" | sed -n \
2781              's/^configure: *\([0-9][0-9]*\)  *\([0-9].*\)$/\1.\2/p'`
2782          changequote([,])
2783
2784          rm -f conftest.$ac_ext
2785
2786          CPPFLAGS="$ac_save_CPPFLAGS"
2787
2788          if test "$mglv" = ""; then
2789            ac_mesagl_version=unknown
2790            ac_mesagl_version_string=unknown
2791          else
2792            ac_mesagl_version_string="$mglv"
2793            # M4 sucks!!
2794            changequote(X,Y)
2795            maj=`echo "$mglv" | sed -n 's/^\([0-9][0-9]*\)\..*$/\1/p'`
2796            min=`echo "$mglv" | sed -n 's/^.*\.\([0-9][0-9]*\).*$/\1/p'`
2797            changequote([,])
2798            ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
2799            if test -z "$ac_mesagl_version"; then
2800              ac_mesagl_version=unknown
2801              ac_mesagl_version_string=unknown
2802            fi
2803          fi
2804          ac_cv_mesagl_version=$ac_mesagl_version
2805          ac_cv_mesagl_version_string=$ac_mesagl_version_string
2806       ])
2807       ac_mesagl_version=$ac_cv_mesagl_version
2808       ac_mesagl_version_string=$ac_cv_mesagl_version_string
2809     fi
2810
2811
2812     # Check for OpenGL 1.1 features.
2813     #
2814     AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
2815                    [true], $GL_LIBS -lX11 -lXext -lm)
2816   fi
2817
2818 elif test "$with_gl" != no; then
2819   echo "error: must be yes or no: --with-gl=$with_gl"
2820   exit 1
2821 fi
2822
2823
2824 ###############################################################################
2825 #
2826 #       Check for -lgle.
2827 #
2828 ###############################################################################
2829
2830 have_gle=no
2831 with_gle_req=unspecified
2832 gle_halfassed=no
2833 AC_ARG_WITH(gle,
2834 [  --with-gle              Build those demos which depend on GLE
2835                           (the OpenGL "extrusion" library.)],
2836   [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
2837
2838 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
2839
2840 GLE_LIBS=""
2841
2842 if test "$have_gl" = no ; then
2843  true
2844 elif test "$with_gle" = yes; then
2845
2846   AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no,
2847                     [#include <GL/gl.h>])
2848   if test "$have_gle3" = yes ; then
2849     have_gle=yes;
2850   else
2851     AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no,
2852                     [#include <GL/gl.h>])
2853     if test "$have_gle" = yes ; then
2854       AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no,
2855                         [#include <GL/gl.h>])
2856     fi
2857   fi
2858
2859   if test "$have_gle" = yes ; then
2860     have_gle=no
2861     gle_halfassed=yes
2862     AC_CHECK_X_LIB(gle, gleCreateGC, 
2863                    [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
2864                    [], $GL_LIBS -lX11 -lXext -lm)
2865   fi
2866   if test "$have_gle" = yes ; then
2867     have_gle=no
2868     gle_halfassed=yes
2869
2870     # sometimes the libmatrix stuff is included in libgle.  look there first.
2871 #
2872 # I don't get it.  For some reason, this test passes on SGI, as if
2873 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
2874 # Yet the link is succeeding.  Why???
2875 #
2876 #    AC_CHECK_X_LIB(gle, uview_direction_d, 
2877 #                   [have_gle=yes; gle_halfassed=no],
2878 #                   [], $GL_LIBS -lX11 -lXext -lm)
2879
2880     # As of GLE 3 this is in libgle, and has changed name to uview_direction!
2881     # *sigh*
2882     if test "$have_gle3" = yes ; then
2883       AC_CHECK_X_LIB(gle, uview_direction, 
2884                      [have_gle=yes; gle_halfassed=no],
2885                     [], $GL_LIBS -lX11 -lXext -lm)
2886     fi
2887     # if it wasn't in libgle, then look in libmatrix.
2888     if test "$have_gle" = no ; then
2889       AC_CHECK_X_LIB(matrix, uview_direction_d, 
2890                      [have_gle=yes; gle_halfassed=no;
2891                       GLE_LIBS="$GLE_LIBS -lmatrix"],
2892                     [], $GL_LIBS -lX11 -lXext -lm)
2893     fi
2894   fi
2895
2896   if test "$have_gle" = yes ; then
2897     AC_DEFINE(HAVE_GLE)
2898     if test "$have_gle3" = yes ; then
2899       AC_DEFINE(HAVE_GLE3)
2900     fi
2901   fi
2902
2903 elif test "$with_gle" != no; then
2904   echo "error: must be yes or no: --with-gle=$with_gle"
2905   exit 1
2906
2907 fi
2908
2909
2910
2911 ###############################################################################
2912 #
2913 #       Check for -lXpm.
2914 #
2915 ###############################################################################
2916
2917 have_xpm=no
2918 with_xpm_req=unspecified
2919 AC_ARG_WITH(xpm,
2920 [  --with-xpm              Include support for XPM files in some demos.
2921                           (Not needed if Pixbuf is used.)],
2922   [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2923
2924 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2925
2926 if test "$with_xpm" = yes; then
2927   AC_CHECK_X_HEADER(X11/xpm.h,
2928                    [have_xpm=yes
2929                     AC_DEFINE(HAVE_XPM)
2930                     XPM_LIBS="-lXpm"],,
2931                     [#include <X11/Xlib.h>])
2932 elif test "$with_xpm" != no; then
2933   echo "error: must be yes or no: --with-xpm=$with_xpm"
2934   exit 1
2935 fi
2936
2937 # See comment near $motif_requires_xpm, above.
2938 # Need to do this here, after both Motif and XPM have been checked for.
2939 #
2940 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2941   if test "$motif_requires_xpm" = yes ; then
2942     MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
2943   fi
2944 fi
2945
2946 ###############################################################################
2947 #
2948 #       Check for -lgdk_pixbuf.
2949 #
2950 ###############################################################################
2951
2952 have_gdk_pixbuf=no
2953 with_gdk_pixbuf_req=unspecified
2954 AC_ARG_WITH(pixbuf,
2955 [  --with-pixbuf           Include support for the GDK-Pixbuf library in some
2956                           demos, which will make it possible for them to read
2957                           GIF, JPEG, and PNG files as well.  (The path here is
2958                           ignored if GTK 2.x is being used.)],
2959   [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
2960   [with_gdk_pixbuf=yes])
2961
2962 # if --with-pixbuf=/directory/ was specified, remember that directory so that
2963 # we can also look for the `gdk-pixbuf-config' program in that directory.
2964 case "$with_gdk_pixbuf" in
2965   /*)
2966     gdk_pixbuf_dir="$with_gdk_pixbuf"
2967     ;;
2968   *)
2969     gdk_pixbuf_dir=""
2970     ;;
2971 esac
2972
2973 HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF)
2974
2975 if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then
2976   echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
2977   exit 1
2978 fi
2979
2980 if test "$with_gdk_pixbuf" = yes; then
2981   have_gdk_pixbuf=no
2982   have_gdk_pixbuf2=no
2983
2984   if test -n "$pkg_config" ; then
2985     #
2986     # the new way...
2987     # run pkg-config based tests.
2988     #
2989     pkgs=''
2990     ok="yes"
2991
2992     # If we have Gtk 2.x, then *only* gdk-pixbuf 2.x will work.
2993     # If we have Gtk 1.x, then *only* gdk-pixbuf 1.x will work.
2994     # If we don't have Gtk at all, then either will work.
2995
2996     if test "$have_gtk" = no -o "$have_gtk2" = yes; then
2997       #
2998       # we don't have Gtk; or we have Gtk 2.x.  Check for pixbuf 2.x.
2999       #
3000       AC_MSG_RESULT(checking for gdk_pixbuf 2.x with gtk-config based tests...)
3001       pkg_check_version gdk-pixbuf-2.0      2.0.0
3002       pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
3003       have_gdk_pixbuf="$ok"
3004       have_gdk_pixbuf2="$ok"
3005     fi
3006
3007     if test "$have_gtk" = no -o "$have_gtk2" = no; then
3008       #
3009       # we don't have Gtk; or we have Gtk 1.x.
3010       # If we don't have pixbuf 2.x, then check for pixbuf 1.x.
3011       #
3012       if test "$have_gdk_pixbuf2" = no; then
3013         pkgs=''
3014         ok="yes"
3015       AC_MSG_RESULT(checking for gdk_pixbuf 1.x with gtk-config based tests...)
3016         pkg_check_version gdk_pixbuf      0.0
3017         pkg_check_version gdk_pixbuf_xlib 0.0
3018         have_gdk_pixbuf="$ok"
3019       fi
3020     fi
3021
3022     if test "$have_gdk_pixbuf" = yes; then
3023       AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
3024                  [ac_cv_gdk_pixbuf_config_cflags=`$pkg_config --cflags $pkgs`])
3025       AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
3026                  [ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs`])
3027     fi
3028     ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
3029     ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
3030   fi
3031
3032
3033   if test "$have_gdk_pixbuf" = no; then
3034     #
3035     # the old way...
3036     # run gdk-pixbuf-config based tests.
3037     # note that we can't assume that the existence of "pkg-config" means
3038     # that we don't have to look for gdk-pixbuf-config -- in Gnome 1.4,
3039     # pkg-config exists, but doesn't know about pixbuf.
3040     #
3041
3042    AC_MSG_RESULT(checking for gdk_pixbuf with gdk-pixbuf-config based tests...)
3043
3044     # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
3045     # look in /foo/bin/ for for gdk-pixbuf-config.
3046     #
3047     gdk_pixbuf_path="$PATH"
3048
3049     if test ! -z "$gtk_dir"; then
3050       # canonicalize slashes.
3051       foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
3052       gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
3053     fi
3054
3055     if test ! -z "$gnome_dir"; then
3056       # canonicalize slashes.
3057       foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
3058       gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
3059     fi
3060
3061     AC_PATH_PROGS(gdk_pixbuf_config, gdk-pixbuf-config,, $gdk_pixbuf_path)
3062
3063     # If we found the gdk-pixbuf-config program, run it to get flags.
3064     #
3065     if test -n "$gdk_pixbuf_config" ; then
3066       AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
3067                 [ac_cv_gdk_pixbuf_config_cflags=`$gdk_pixbuf_config --cflags`])
3068       AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
3069                 [ac_cv_gdk_pixbuf_config_libs=`$gdk_pixbuf_config --libs`])
3070
3071       # note that "gdk-pixbuf-config --libs" produces a link line including
3072       # -lgdk_pixbuf, but there's no way to get it to produce one that also
3073       # includes -lgdk_pixbuf_xlib.  Since we don't know *exactly* what the
3074       # name of the library will be, construct it with sed...
3075       # M4 sucks!!
3076       changequote(X,Y)
3077       ac_cv_gdk_pixbuf_config_libs=`echo $ac_cv_gdk_pixbuf_config_libs | \
3078        sed 's@ \(-lgdk_pixbuf\([-_a-zA-Z0-9.]*\)\) @ \1 -lgdk_pixbuf_xlib\2 @'`
3079       changequote([,])
3080
3081       ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
3082       ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
3083     fi
3084   fi
3085
3086   ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
3087   CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
3088
3089   if test "$have_gdk_pixbuf" = no; then
3090     #
3091     # we appear to have pixbuf; check for headers/libs to be sure.
3092     #
3093
3094     have_gdk_pixbuf=no
3095
3096     # check for header A...
3097     AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
3098
3099     # if that worked, check for header B...
3100     if test "$have_gdk_pixbuf" = yes; then
3101       have_gdk_pixbuf=no
3102       gdk_pixbuf_halfassed=yes
3103       AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h,
3104                         [have_gdk_pixbuf=yes
3105                          gdk_pixbuf_halfassed=no])
3106
3107       # yay, it has a new name in Gtk 2.x...
3108       if test "$have_gdk_pixbuf" = no; then
3109         have_gdk_pixbuf=no
3110         gdk_pixbuf_halfassed=yes
3111         AC_CHECK_X_HEADER(gdk-pixbuf-xlib/gdk-pixbuf-xlib.h,
3112                           [have_gdk_pixbuf=yes
3113                            gdk_pixbuf_halfassed=no])
3114       fi
3115     fi
3116   fi
3117
3118   CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
3119
3120   if test "$have_gdk_pixbuf" = yes; then
3121     # we have the headers, now check for the libraries
3122     have_gdk_pixbuf=no
3123     gdk_pixbuf_halfassed=yes
3124
3125     # library A...
3126     AC_CHECK_X_LIB(c, gdk_pixbuf_new_from_file, [have_gdk_pixbuf=yes],,
3127                    $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
3128     # library B...
3129     if test "$have_gdk_pixbuf" = yes; then
3130       have_gdk_pixbuf=no
3131       AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init,
3132                      [have_gdk_pixbuf=yes
3133                       gdk_pixbuf_halfassed=no],,
3134                      $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
3135     fi
3136   fi
3137
3138   if test "$have_gdk_pixbuf" = yes; then
3139     INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
3140     XPM_LIBS="$ac_gdk_pixbuf_config_libs"
3141     AC_DEFINE(HAVE_GDK_PIXBUF)
3142   else
3143     have_gdk_pixbuf2=no
3144   fi
3145 fi
3146
3147
3148 ###############################################################################
3149 #
3150 #       Check for -ljpeg
3151 #
3152 ###############################################################################
3153
3154 have_jpeg=no
3155 with_jpeg_req=unspecified
3156 jpeg_halfassed=no
3157 AC_ARG_WITH(jpeg,
3158 [  --with-jpeg             Include support for the JPEG library.],
3159   [with_jpeg="$withval"; with_jpeg_req="$withval"],
3160   [with_jpeg=yes])
3161
3162 HANDLE_X_PATH_ARG(with_jpeg, --with-jpeg, JPEG)
3163
3164 if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then
3165   echo "error: must be yes or no: --with-jpeg=$with_jpeg"
3166   exit 1
3167 fi
3168
3169 if test "$with_jpeg" = yes; then
3170
3171   have_jpeg=no
3172   AC_CHECK_X_HEADER(jpeglib.h, [have_jpeg=yes])
3173
3174   if test "$have_jpeg" = yes; then
3175     # we have the header, now check for the library
3176     have_jpeg=no
3177     jpeg_halfassed=yes
3178     AC_CHECK_X_LIB(jpeg, jpeg_start_compress,
3179                    [have_jpeg=yes
3180                     jpeg_halfassed=no
3181                     JPEG_LIBS="-ljpeg"
3182                     AC_DEFINE(HAVE_JPEGLIB)])
3183   fi
3184 fi
3185
3186
3187 ###############################################################################
3188 #
3189 #       Check for pty support for 'phosphor'
3190 #
3191 ###############################################################################
3192
3193 PTY_LIBS=
3194 have_ptys=no
3195 AC_CHECK_X_HEADER(pty.h, [have_ptys=yes])
3196 if test "$have_ptys" = yes; then
3197   # we have the header, now check for the library
3198   have_ptys=no
3199   AC_CHECK_X_LIB(util, forkpty,
3200                  [have_ptys=yes
3201                   PTY_LIBS="-lutil"
3202                   AC_DEFINE(HAVE_FORKPTY)])
3203 fi
3204
3205
3206 ###############################################################################
3207 #
3208 #       Check for the XSHM server extension.
3209 #
3210 ###############################################################################
3211
3212 have_xshm=no
3213 with_xshm_req=unspecified
3214 AC_ARG_WITH(xshm-ext,
3215 [  --with-xshm-ext         Include support for the Shared Memory extension.],
3216   [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
3217
3218 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
3219
3220 if test "$with_xshm" = yes; then
3221
3222   # first check for Xshm.h.
3223   AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],,
3224                     [#include <X11/Xlib.h>])
3225
3226   # if that succeeded, then check for sys/ipc.h.
3227   if test "$have_xshm" = yes; then
3228     have_xshm=no
3229     AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
3230   fi
3231
3232   # if that succeeded, then check for sys/shm.h.
3233   if test "$have_xshm" = yes; then
3234     have_xshm=no
3235     AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
3236   fi
3237
3238   # AIX is pathological, as usual: apparently it's normal for the Xshm headers
3239   # to exist, but the library code to not exist.  And even better, the library
3240   # code is in its own library: libXextSam.a.  So, if we're on AIX, and that
3241   # lib doesn't exist, give up.  (This lib gets added to X_EXTRA_LIBS, and
3242   # that's not quite right, but close enough.)
3243   #
3244   case "$host" in
3245     *-aix*)
3246       if [ `uname -v` -eq 3 ]; then
3247         have_xshm=no
3248         AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
3249                        [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
3250                        [true], -lX11 -lXext -lm)
3251       fi
3252     ;;
3253   esac
3254
3255   # if that succeeded, then we've really got it.
3256   if test "$have_xshm" = yes; then
3257     AC_DEFINE(HAVE_XSHM_EXTENSION)
3258   fi
3259
3260 elif test "$with_xshm" != no; then
3261   echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
3262   exit 1
3263 fi
3264
3265
3266 ###############################################################################
3267 #
3268 #       Check for the DOUBLE-BUFFER server extension.
3269 #
3270 ###############################################################################
3271
3272 have_xdbe=no
3273 with_xdbe_req=unspecified
3274 AC_ARG_WITH(xdbe-ext,
3275 [  --with-xdbe-ext         Include support for the DOUBLE-BUFFER extension.],
3276   [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
3277
3278 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
3279
3280 if test "$with_xdbe" = yes; then
3281
3282   AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],,
3283                     [#include <X11/Xlib.h>])
3284   if test "$have_xdbe" = yes; then
3285     AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)    
3286   fi
3287
3288 elif test "$with_xdbe" != no; then
3289   echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
3290   exit 1
3291 fi
3292
3293
3294 ###############################################################################
3295 #
3296 #       Check for the SGI XReadDisplay server extension.
3297 #
3298 #       Note: this has to be down here, rather than up with the other server
3299 #       extension tests, so that the output of `configure --help' is in the
3300 #       right order.  Arrgh!
3301 #
3302 ###############################################################################
3303
3304 have_readdisplay=no
3305 with_readdisplay_req=unspecified
3306 AC_ARG_WITH(readdisplay,
3307 [  --with-readdisplay      Include support for the XReadDisplay extension.],
3308   [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
3309   [with_readdisplay=yes])
3310
3311 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
3312
3313 if test "$with_readdisplay" = yes; then
3314   AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
3315                     AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),,
3316                     [#include <X11/Xlib.h>])
3317 elif test "$with_readdisplay" != no; then
3318   echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
3319   exit 1
3320 fi
3321
3322
3323 ###############################################################################
3324 #
3325 #       Check for a program to generate random text.
3326 #
3327 #       Zippy is funnier than the idiocy generally spat out by `fortune',
3328 #       so first see if "fortune zippy" works.  Else, use plain "fortune".
3329 #
3330 #       We used to dig around in Emacs to look for the "yow" program, but
3331 #       most people who have Emacs also have "fortune zippy", so nevermind.
3332 #
3333 ###############################################################################
3334
3335 with_fortune_req=""
3336 AC_ARG_WITH(fortune,[
3337   --with-fortune=PROGRAM  Some demos are able to run an external program and
3338                           display its text; this names the program to use by
3339                           default (though it can be overridden with X
3340                           resources.)  Default is \"/usr/games/fortune\".],
3341   [with_fortune_req="$withval"; with_fortune="$withval"],[with_fortune=yes])
3342
3343 if test "$with_fortune" = no || test "$with_fortune" = yes ; then
3344   with_fortune=""
3345   with_fortune_req=""
3346 fi
3347
3348 if test -n "$with_fortune_req" ; then
3349   ac_cv_fortune_program=""
3350   case "$with_fortune_req" in
3351     /*)
3352
3353       set dummy $with_fortune_req ; fortune_tmp=$2
3354       AC_MSG_CHECKING([for $fortune_tmp])
3355       if test -x "$fortune_tmp" ; then
3356         AC_MSG_RESULT(yes)
3357       else
3358         AC_MSG_RESULT(no)
3359         with_fortune=""
3360       fi
3361     ;;
3362     *)
3363       set dummy $with_fortune_req ; fortune_tmp=$2
3364       # don't cache
3365       unset ac_cv_path_fortune_tmp
3366       AC_PATH_PROG(fortune_tmp, $fortune_tmp, [])
3367       if test -z "$fortune_tmp" ; then
3368         with_fortune=""
3369       fi
3370     ;;
3371   esac
3372   ac_cv_fortune_program="$with_fortune"
3373
3374 elif test -n "$ac_cv_fortune_program"; then
3375   AC_MSG_RESULT([checking for fortune... (cached) $ac_cv_fortune_program])
3376 fi
3377
3378 unset ac_cv_path_fortune_tmp
3379 unset fortune_tmp
3380
3381 if test -z "$ac_cv_fortune_program" ; then
3382
3383   # first look for fortune in /usr/games/ (and use absolute path)
3384   AC_PATH_PROGS(fortune_tmp, fortune,, "/usr/games")
3385
3386   # if it's not there, look on $PATH (and don't use absolute path)
3387   if test -z "$fortune_tmp" ; then
3388      AC_CHECK_PROGS(fortune_tmp, fortune)
3389   fi
3390
3391   # if we didn't find anything, then just assume /usr/games/
3392   if test -z "$fortune_tmp" ; then
3393      fortune_tmp="/usr/games/fortune"
3394   fi
3395
3396   ac_cv_fortune_program="$fortune_tmp"
3397
3398   # now check to see whether "fortune zippy" works.
3399   #
3400   fortune_tmp="$fortune_tmp zippy"
3401   AC_MSG_CHECKING([for zippy quotes])
3402   if ( $fortune_tmp >/dev/null 2>&1 ); then
3403     ac_cv_fortune_program="$fortune_tmp"
3404     AC_MSG_RESULT($fortune_tmp)
3405   else
3406     AC_MSG_RESULT(no)
3407   fi
3408
3409 fi
3410
3411 unset ac_cv_path_fortune_tmp
3412 unset fortune_tmp
3413
3414 AC_DEFINE_UNQUOTED(FORTUNE_PROGRAM, "$ac_cv_fortune_program")
3415
3416
3417 ###############################################################################
3418 #
3419 #       Check whether it's ok to install some hacks as setuid (e.g., "sonar")
3420 #       This should be safe, but let's give people the option.
3421 #
3422 ###############################################################################
3423
3424 setuid_hacks_default=no
3425 setuid_hacks="$setuid_hacks_default"
3426 AC_ARG_WITH(setuid-hacks,
3427 [  --with-setuid-hacks     Allow some demos to be installed \`setuid root'
3428                           (which is needed in order to ping other hosts.)
3429 ],
3430   [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
3431
3432 HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks)
3433
3434 if test "$setuid_hacks" = yes; then
3435   true
3436 elif test "$setuid_hacks" != no; then
3437   echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks"
3438   exit 1
3439 fi
3440
3441
3442 ###############################################################################
3443 #
3444 #       Done testing.  Now, set up the various -I and -L variables,
3445 #       and decide which GUI program to build by default.
3446 #
3447 ###############################################################################
3448
3449 DEPEND=makedepend
3450 DEPEND_FLAGS=
3451 DEPEND_DEFINES=
3452
3453
3454 if test \! -z "$includedir" ; then 
3455   INCLUDES="$INCLUDES -I$includedir"
3456 fi
3457
3458 if test \! -z "$libdir" ; then
3459   LDFLAGS="$LDFLAGS -L$libdir"
3460 fi
3461
3462
3463 PREFERRED_DEMO_PROGRAM=''
3464 ALL_DEMO_PROGRAMS=
3465 if test "$have_motif" = yes; then
3466   PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
3467   ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3468 fi
3469 if test "$have_gtk" = yes; then
3470   PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
3471   ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
3472 fi
3473
3474
3475 if test "$have_kerberos" = yes; then
3476   PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
3477   PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
3478 fi
3479 if test "$have_pam" = yes; then
3480   PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
3481   PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
3482   INSTALL_PAM="install-pam"
3483 fi
3484 if test "$have_passwd_helper" = yes; then
3485   PASSWD_SRCS="$PASSWD_SRCS \$(PWHELPER_SRCS)"
3486   PASSWD_OBJS="$PASSWD_OBJS \$(PWHELPER_OBJS)"
3487 fi
3488   PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
3489   PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
3490
3491
3492 if test "$enable_locking" = yes; then
3493   LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
3494   LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
3495 else
3496   LOCK_SRCS='$(NOLOCK_SRCS_1)'
3497   LOCK_OBJS='$(NOLOCK_OBJS_1)'
3498 fi
3499
3500 if test "$ac_macosx" = yes; then
3501   EXES_OSX='$(EXES_OSX)'
3502   SCRIPTS_OSX='$(SCRIPTS_OSX)'
3503   MEN_OSX='$(MEN_OSX)'
3504 else
3505   EXES_OSX=
3506   SCRIPTS_OSX=
3507   MEN_OSX=
3508 fi
3509
3510
3511 INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)'
3512
3513 if test "$need_setuid" = yes; then
3514   NEED_SETUID=yes
3515 else
3516   NEED_SETUID=no
3517 fi
3518
3519 if test "$setuid_hacks" = yes; then
3520   SETUID_HACKS=yes
3521 else
3522   SETUID_HACKS=no
3523 fi
3524
3525 tab='   '
3526 if test "$have_gl" = yes; then
3527   GL_EXES='$(GL_EXES)'
3528   GL_UTIL_EXES='$(GL_UTIL_EXES)'
3529   GL_MEN='$(GL_MEN)'
3530   GL_KLUDGE="${tab}  "
3531 else
3532   GL_KLUDGE="-${tab}  "
3533 fi
3534
3535 if test "$have_gle" = yes; then
3536   GLE_EXES='$(GLE_EXES)'
3537   GLE_KLUDGE="${tab}   "
3538 else
3539   GLE_KLUDGE="-${tab}   "
3540 fi
3541
3542 if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then
3543  JPEG_EXES='$(JPEG_EXES)'
3544 fi
3545
3546
3547 # Another substitution in the XScreenSaver.ad.in file:
3548 #
3549 if test "$have_gnome_help" = yes; then
3550   GNOMEHELP_Y=''
3551   GNOMEHELP_N='!    '
3552 else
3553   GNOMEHELP_Y='!    '
3554   GNOMEHELP_N=''
3555 fi
3556
3557
3558 # Now that we know whether we have Gnome, we can decide where the XML
3559 # config files get installed.
3560 #
3561 if test -z "$HACK_CONF_DIR" ; then
3562   if test -n "$GNOME_DATADIR" ; then
3563     HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers'
3564   else
3565     HACK_CONF_DIR='${prefix}/lib/xscreensaver/config'
3566   fi
3567 fi
3568
3569
3570
3571 # After computing $HACK_CONF_DIR, make sure $GLADE_DATADIR has a value
3572 # so that we know where to install the Gtk pixmaps.
3573 #
3574 # It should usually be "/usr/share/pixmaps/", but we can't just use
3575 # "$(prefix)/share/pixmaps" because that would usually result in
3576 # "/usr/X11R6/share/pixmaps/", which is wrong.  It needs to be the
3577 # Gnome/Gtk prefix, not the overall prefix.
3578 #
3579 if test -n "$GNOME_DATADIR" ; then
3580   GLADE_DATADIR='$(GNOME_DATADIR)/xscreensaver'
3581 elif test "$have_gtk" = yes; then
3582   if test -n "$pkg_config"; then
3583     if test "$have_gtk2" = yes; then
3584       GLADE_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3585     else
3586       GLADE_DATADIR=`$pkg_config --variable=prefix gtk+`
3587     fi
3588   else
3589     GLADE_DATADIR=`$gtk_config --prefix`
3590   fi
3591   GLADE_DATADIR="$GLADE_DATADIR/share/xscreensaver"
3592 else
3593   GLADE_DATADIR=''
3594 fi
3595
3596
3597 # Set PO_DATADIR to something sensible.
3598 #
3599 AC_MSG_CHECKING([for locale directory])
3600 if test -n "$GNOME_DATADIR" ; then
3601   PO_DATADIR="$GNOME_DATADIR"
3602 elif test "$have_gtk" = yes; then
3603   if test -n "$pkg_config"; then
3604     if test "$have_gtk2" = yes; then
3605       PO_DATADIR=`$pkg_config --variable=prefix gtk+-2.0`
3606     else
3607       PO_DATADIR=`$pkg_config --variable=prefix gtk+`
3608     fi
3609   else
3610     PO_DATADIR=`$gtk_config --prefix`
3611   fi
3612   PO_DATADIR="$PO_DATADIR/share"
3613 fi
3614
3615 if test -z "$PO_DATADIR" ; then
3616   #
3617   # #### Total fucking kludge --
3618   # Map /build/prefix/usr/X11R6/share/ to /build/prefix/usr/share/
3619   # but of course we need to expand all the nested variables to do that...
3620   #
3621   dd=$datadir
3622   eval dd=${dd}
3623   eval dd=${dd}
3624   eval dd=${dd}
3625   eval dd=${dd}
3626   eval dd=${dd}
3627   PO_DATADIR=`echo $dd | sed 's@/X11R6/@/@'`
3628 fi
3629
3630 AC_MSG_RESULT($PO_DATADIR/locale)
3631
3632
3633 # canonicalize slashes.
3634 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
3635
3636 # gcc 3.0 likes to issue this warning for every file:
3637 #
3638 # cc1: warning: changing search order for system directory "/usr/local/include"
3639 # cc1: warning:   as it has already been specified as a non-system directory
3640 #
3641 # Yay.  We can only avoid that by deleting "-I${prefix}/include" from the list.
3642 # Which *should* be totally redundant, and thus an ok thing to delete?
3643 #
3644 INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'`
3645
3646
3647 ###############################################################################
3648 #
3649 #       Perform substitutions and write Makefiles.
3650 #
3651 ###############################################################################
3652
3653 AC_SUBST(INCLUDES)
3654
3655 AC_SUBST(PREFERRED_DEMO_PROGRAM)
3656 AC_SUBST(ALL_DEMO_PROGRAMS)
3657 AC_SUBST(SAVER_LIBS)
3658 AC_SUBST(MOTIF_LIBS)
3659 AC_SUBST(GTK_LIBS)
3660 AC_SUBST(XML_LIBS)
3661 AC_SUBST(JPEG_LIBS)
3662 AC_SUBST(HACK_LIBS)
3663 AC_SUBST(XPM_LIBS)
3664 AC_SUBST(PTY_LIBS)
3665 AC_SUBST(GL_LIBS)
3666 AC_SUBST(GLE_LIBS)
3667 AC_SUBST(XDPMS_LIBS)
3668 AC_SUBST(PASSWD_LIBS)
3669 AC_SUBST(INSTALL_SETUID)
3670 AC_SUBST(SETUID_HACKS)
3671 AC_SUBST(INSTALL_DIRS)
3672 AC_SUBST(NEED_SETUID)
3673 AC_SUBST(INSTALL_PAM)
3674
3675 AC_SUBST(OBJCC)
3676 AC_SUBST(EXES_OSX)
3677 AC_SUBST(SCRIPTS_OSX)
3678 AC_SUBST(MEN_OSX)
3679
3680 AC_SUBST(PASSWD_SRCS)
3681 AC_SUBST(PASSWD_OBJS)
3682 AC_SUBST(XMU_SRCS)
3683 AC_SUBST(XMU_OBJS)
3684 AC_SUBST(XMU_LIBS)
3685 AC_SUBST(SAVER_GL_SRCS)
3686 AC_SUBST(SAVER_GL_OBJS)
3687 AC_SUBST(SAVER_GL_LIBS)
3688 AC_SUBST(LOCK_SRCS)
3689 AC_SUBST(LOCK_OBJS)
3690 AC_SUBST(JPEG_EXES)
3691 AC_SUBST(GL_EXES)
3692 AC_SUBST(GL_UTIL_EXES)
3693 AC_SUBST(GL_MEN)
3694 AC_SUBST(GL_KLUDGE)
3695 AC_SUBST(GLE_EXES)
3696 AC_SUBST(GLE_KLUDGE)
3697 AC_SUBST(GNOMEHELP_Y)
3698 AC_SUBST(GNOMEHELP_N)
3699 AC_SUBST(HACKDIR)
3700 AC_SUBST(GNOME_DATADIR)
3701 AC_SUBST(GLADE_DATADIR)
3702 AC_SUBST(PO_DATADIR)
3703 AC_SUBST(GNOME_PANELDIR)
3704 AC_SUBST(HACK_CONF_DIR)
3705 AC_SUBST(GTK_EXTRA_OBJS)
3706
3707 APPDEFAULTS=$ac_x_app_defaults
3708 AC_SUBST(APPDEFAULTS)
3709
3710 AC_SUBST(DEPEND)
3711 AC_SUBST(DEPEND_FLAGS)
3712 AC_SUBST(DEPEND_DEFINES)
3713 AC_SUBST(PERL)
3714
3715 AC_OUTPUT(Makefile
3716           utils/Makefile
3717           driver/Makefile
3718           hacks/Makefile
3719           hacks/glx/Makefile
3720           po/Makefile.in
3721           driver/XScreenSaver.ad
3722           driver/xscreensaver.kss)
3723
3724 ###############################################################################
3725 #
3726 #       Print some warnings at the end.
3727 #
3728 ###############################################################################
3729
3730 warn_prefix_1="    Warning:"
3731 warn_prefix_2="       Note:"
3732 warn_prefix="$warn_prefix_1"
3733
3734 warning=no
3735 warnsep='    #################################################################'
3736
3737 warnpre() {
3738   if test "$warning" = no ; then
3739     echo '' ; echo "$warnsep" ; echo ''
3740     warning=yes
3741   fi
3742 }
3743
3744 warn() {
3745   warnpre
3746   if test "$warning" = long ; then echo '' ; fi
3747   warning=yes
3748   rest="$@"
3749   echo "$warn_prefix $rest"
3750 }
3751
3752 warnL() {
3753   was=$warning
3754   warnpre
3755   warning=yes
3756   if test "$was" != no ; then echo '' ; fi
3757   rest="$@"
3758   echo "$warn_prefix $rest"
3759 }
3760
3761 warn2() {
3762   rest="$@"
3763   echo "             $rest"
3764   warning=long
3765 }
3766
3767 note() {
3768   warn_prefix="$warn_prefix_2"
3769   warn $@
3770   warn_prefix="$warn_prefix_1"
3771 }
3772
3773 noteL() {
3774   warn_prefix="$warn_prefix_2"
3775   warnL $@
3776   warn_prefix="$warn_prefix_1"
3777 }
3778
3779
3780 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
3781   warn 'The SGI saver extension was requested, but was not found.'
3782 fi
3783
3784 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
3785   warn 'The MIT saver extension was requested, but was not found.'
3786 fi
3787
3788 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
3789   warn 'The XIdle extension was requested, but was not found.'
3790 fi
3791
3792 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
3793   warn 'The XSHM extension was requested, but was not found.'
3794 fi
3795
3796 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
3797   warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
3798 fi
3799
3800 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
3801   warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
3802 fi
3803
3804 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
3805   warn 'The DPMS extension was requested, but was not found.'
3806 fi
3807
3808 if test "$with_xinerama_req" = yes -a "$have_xinerama" = no ; then
3809   warn 'The Xinerama extension was requested, but was not found.'
3810 fi
3811
3812 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
3813   warn 'The XF86VMODE extension was requested, but was not found.'
3814 fi
3815
3816 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
3817   warn "Checking of /proc/interrupts was requested, but it's bogus."
3818 fi
3819
3820 motif_warn2() {
3821   warn2 'Though the Motif front-end to xscreensaver is still'
3822   warn2 'maintained, it is no longer being updated with new'
3823   warn2 'features: all new development on the xscreensaver-demo'
3824   warn2 'program is happening in the GTK version, and not in the'
3825   warn2 'Motif version.  It is recommended that you build against'
3826   warn2 'GTK instead of Motif.  See <http://www.gtk.org/>.'
3827 }
3828
3829 if test "$have_motif" = no -a "$have_gtk" = no; then
3830
3831   if test "$with_motif" = yes; then
3832     warnL "Neither the GTK nor Motif libraries were found; the"
3833     warn2 "\`xscreensaver-demo' program requires one of these."
3834     echo ''
3835     motif_warn2
3836   else
3837     warnL "The GTK libraries do not seem to be available; the"
3838     warn2 "\`xscreensaver-demo' program requires them."
3839     echo ''
3840     warn2 'You can use Motif or Lesstif instead of GTK (use the'
3841     warn2 "\`--with-motif' option) but that is NOT recommended."
3842     motif_warn2
3843   fi
3844
3845 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
3846   warnL "Use of Motif was requested, but it wasn't found;"
3847   warn2 "Gtk will be used instead."
3848
3849 elif test "$jurassic_gtk" = yes ; then
3850
3851   pref_gtk=1.2
3852
3853   v="$ac_gtk_version_string"
3854   if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
3855     warnL "Use of Gtk was requested, but its version number is unknown;"
3856   elif test "$with_gtk_req" = yes ; then
3857     warnL "Use of Gtk was requested, but it is version $v;"
3858   else
3859     warnL "Gtk was found on this system, but it is version $v;"
3860   fi
3861
3862   warn2 "Gtk $pref_gtk or newer is required."
3863
3864 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
3865   warnL "Use of Gtk was requested, but it wasn't found."
3866 fi
3867
3868 if test "$gtk2_halfassed" != no ; then
3869   warnL "GTK version $gtk2_halfassed was found, but at least one supporting"
3870   warn2 "library ($gtk2_halfassed_lib) was not, so GTK 2.x can't be used."
3871   if test "$have_gtk" = yes ; then
3872     v="$ac_gtk_version_string"
3873     warn2 "GTK $v is also installed, so it will be used instead."
3874     warn2 "Please read the above output and the \`config.log' file"
3875     warn2 "for more details."
3876   fi
3877 fi
3878
3879
3880 if test "$with_gnome_req" = yes -a "$have_gnome" = no \
3881         -a "$have_gtk2" = no; then
3882   # don't issue this warning if we have GTK2 -- in that case, the
3883   # Gnome-specific code isn't needed.
3884   warn  'Use of the Gnome Control Panel was requested, but the necessary'
3885   warn2 'headers and/or libraries were not found.'
3886 fi
3887
3888 if test "$have_gtk" = yes ; then
3889   if test "$have_xml" = no ; then
3890     if test "$with_xml_req" = yes ; then
3891       warn  'Use of the XML library was requested, but the necessary'
3892       warn2 'headers and/or libraries were not found.'
3893     else
3894       warn  'GTK is being used, but the XML library was not found.'
3895     fi
3896
3897     if test "$xml_halfassed" = yes ; then
3898
3899       if test "$have_zlib" = yes ; then
3900         which="XML libraries"
3901       else
3902         which="\`zlib' library"
3903       fi
3904
3905       echo ''
3906       warn2 'More specifically, we found the headers, but not the'
3907       warn2 "$which; so either XML is half-installed on this"
3908       warn2 "system, or something else went wrong.  The \`config.log'"
3909       warn2 'file might contain some clues.'
3910     fi
3911
3912     echo ''
3913     warn2 "Without XML, the per-display-mode \`Settings' dialogs"
3914     warn2 'will not be available.  Specify the location of the XML'
3915     warn2 'library through the --with-xml option to configure.'
3916   fi
3917 fi
3918
3919 if test "$have_gtk" = yes -a "$have_gdk_pixbuf" = no ; then
3920   warn  "GTK is being used, but the GDK-Pixbuf library and/or"
3921   warn2 "headers were not found.  That can't be good.  Please"
3922   warn2 "install the GDK-Pixbuf development kit and re-configure."
3923 fi
3924
3925 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
3926
3927   preferred_lesstif=0.92
3928
3929   if test "$lesstif_version" = unknown; then
3930     warnL "Unable to determine the LessTif version number!"
3931     warn2 "Make sure you are using version $preferred_lesstif or newer."
3932     warn2 "See <http://www.lesstif.org/>."
3933
3934   elif test \! $lesstif_version -gt 82; then
3935     warnL "LessTif version $lesstif_version_string is being used."
3936     warn2 "LessTif versions 0.82 and earlier are too buggy to"
3937     warn2 "use with XScreenSaver; it is strongly recommended"
3938     warn2 "that you upgrade to at least version $preferred_lesstif!"
3939     warn2 "See <http://www.lesstif.org/>."
3940   fi
3941 fi
3942
3943
3944 if test "$have_motif" = yes -a "$have_gtk" = no ; then
3945   warn  'Motif is being used, and GTK is not.'
3946   echo  ''
3947   motif_warn2
3948 fi
3949
3950
3951 if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
3952   warnL 'Use of XPM was requested, but it was not found.'
3953 fi
3954
3955 if test "$with_gdk_pixbuf_req" = yes  -a "$have_gdk_pixbuf" = no; then
3956   warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
3957 fi
3958
3959 if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no || \
3960    test "$gdk_pixbuf_halfassed" = yes; then
3961
3962   if test "$with_xpm_req" = yes -o "$have_xpm" = yes ; then
3963     true
3964   elif test "$with_xpm_req" = no ; then
3965     warnL 'The XPM library is not being used.'
3966   else
3967     warnL 'The XPM library was not found.'
3968   fi
3969
3970   if test "$with_gdk_pixbuf_req" = yes ; then
3971     true
3972   elif test "$with_gdk_pixbuf_req" = no ; then
3973     warnL 'The GDK-Pixbuf library is not being used.'
3974   else
3975     warnL 'The GDK-Pixbuf library was not found.'
3976   fi
3977
3978   if test "$gdk_pixbuf_halfassed" = yes ; then
3979     echo ''
3980     warn2 'More specifically, we found the headers, but not the'
3981     warn2 'libraries; so either GDK-Pixbuf is half-installed on this'
3982     warn2 "system, or something else went wrong.  The \`config.log'"
3983     warn2 'file might contain some clues.'
3984   fi
3985
3986   echo ''
3987   warn2 'Some of the demos will not be as colorful as they'
3988   warn2 'could be.  You should consider installing Pixbuf or'
3989   warn2 'XPM and re-running configure.  The Pixbuf library is'
3990   warn2 'a part of GNOME.  The XPM library comes with most'
3991   warn2 'X11 installations; you can also find it at the X11'
3992   warn2 'archive sites, such as <http://sunsite.unc.edu/>.'
3993   echo  ''
3994   warn2 'GDK-Pixbuf is recommended over XPM, as it provides'
3995   warn2 'support for more image formats.'
3996 fi
3997
3998
3999 if test "$have_jpeg" = no ; then
4000   if test "$with_jpeg_req" = yes ; then
4001     warnL 'Use of libjpeg was requested, but it was not found.'
4002   elif test "$with_jpeg_req" = no ; then
4003     noteL 'The JPEG library is not being used.'
4004   else
4005     noteL 'The JPEG library was not found.'
4006   fi
4007
4008   if test "$jpeg_halfassed" = yes ; then
4009     echo ''
4010     warn2 'More specifically, we found the headers, but not the'
4011     warn2 'library; so either JPEG is half-installed on this'
4012     warn2 "system, or something else went wrong.  The \`config.log'"
4013     warn2 'file might contain some clues.'
4014     echo ''
4015   fi
4016
4017   if test "$have_gdk_pixbuf" = no ; then
4018     warn2 "This means that it won't be possible for the image-manipulating"
4019     warn2 "display modes to load files from disk; and it also means that"
4020     warn2 "the \`webcollage' program will be much slower."
4021   else
4022     warn2 "This means the \`webcollage' program will be much slower."
4023   fi
4024 fi
4025
4026
4027 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
4028   preferred_mesagl=3.4
4029   mgv="$ac_mesagl_version_string"
4030   pgl="$preferred_mesagl"
4031
4032   if test "$ac_mesagl_version" = unknown; then
4033     warnL "Unable to determine the MesaGL version number!"
4034     warn2 "Make sure you are using version $preferred_mesagl or newer."
4035
4036   elif test \! "$ac_mesagl_version" -gt 2006; then
4037     warnL "MesaGL version number is $mgv --"
4038     warn2 "MesaGL 2.6 and earlier have a security bug.  It is strongly"
4039     warn2 "recommended that you upgrade to at least version $preferred_mesagl."
4040
4041   elif test \! "$ac_mesagl_version" -gt 3003; then
4042     warnL "MesaGL version number is $mgv --"
4043     warn2 "MesaGL 3.3 and earlier have some bugs; it is recommended"
4044     warn2 "that you upgrade to $pgl or newer."
4045   fi
4046 fi
4047
4048 if test "$have_gl" = no ; then
4049   if test "$with_gl_req" = yes ; then
4050     warnL 'Use of GL was requested, but it was not found.'
4051   elif test "$with_gl_req" = no ; then
4052     noteL 'The OpenGL 3D library is not being used.'
4053   else
4054     noteL 'The OpenGL 3D library was not found.'
4055   fi
4056
4057   if test "$gl_halfassed" = yes ; then
4058     echo ''
4059     warn2 'More specifically, we found the headers, but not the'
4060     warn2 'libraries; so either GL is half-installed on this'
4061     warn2 "system, or something else went wrong.  The \`config.log'"
4062     warn2 'file might contain some clues.'
4063   fi
4064
4065   echo ''
4066   warn2 'Those demos which use 3D will not be built or installed.'
4067   warn2 'You might want to consider installing OpenGL and'
4068   warn2 "re-running configure.  If your vendor doesn't ship"
4069   warn2 'their own implementation of OpenGL, you can get a free'
4070   warn2 'version at <http://www.mesa3d.org/>.  For general OpenGL'
4071   warn2 'info, see <http://www.opengl.org/>.'
4072
4073 fi
4074
4075
4076 if test "$have_gl" = yes -a "$have_gle" = no ; then
4077
4078  # nobody cares about this; don't print the warning unless it was
4079  # requested and not found, or halfway-found.
4080  if test "$with_gle_req" = yes -o "$gle_halfassed" = yes ; then
4081
4082   if test "$with_gle_req" = yes ; then
4083     noteL 'Use of the GLE (GL Extrusion) library was requested, but'
4084     warn2 'it was not found (though the OpenGL library was found, and'
4085     warn2 'is being used.)'
4086   elif test "$with_gle_req" = no ; then
4087     noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
4088     warn2 'library is not.'
4089   else
4090     noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
4091     warn2 'was not.'
4092   fi
4093
4094   if test "$gle_halfassed" = yes ; then
4095     echo ''
4096     warn2 'More specifically, we found the headers, but not the'
4097     warn2 'libraries; so either GLE is half-installed on this'
4098     warn2 "system, or something else went wrong.  The \`config.log'"
4099     warn2 'file might contain some clues.'
4100   fi
4101
4102   echo ''
4103   warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
4104   warn2 'will not be built or installed.  You might want to consider'
4105   warn2 'installing GLE and re-running configure.  You can find the'
4106   warn2 'GLE library at <http://www.linas.org/gle/>.  For general'
4107   warn2 'OpenGL info, see <http://www.opengl.org/>.'
4108
4109  fi
4110 fi
4111
4112
4113 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
4114   warn 'Use of XReadDisplay was requested, but it was not found.'
4115 fi
4116
4117 if test -n "$with_fortune_req"; then
4118   if test "$with_fortune_req" != "$ac_cv_fortune_program" ; then
4119     warnL "$with_fortune_req was requested as the Fortune program,"
4120     warn2 "but was not found.  The default will be used instead."
4121   fi
4122 fi
4123
4124 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
4125   warn 'Use of Kerberos was requested, but it was not found.'
4126 fi
4127
4128 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
4129   warn 'Use of PAM was requested, but it was not found.'
4130 fi
4131
4132 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
4133   warn 'Use of shadow passwords was requested, but they were not found.'
4134 fi
4135
4136
4137 # You are in a twisty maze of namespaces and syntaxes, all alike.
4138 # Fuck the skull of Unix.
4139 #
4140 eval bindir=${bindir}
4141 eval bindir=${bindir}
4142 eval bindir=${bindir}
4143 eval bindir=${bindir}
4144 eval bindir=${bindir}
4145 eval bindir=${bindir}
4146 eval HACKDIR=${HACKDIR}
4147 eval HACKDIR=${HACKDIR}
4148 eval HACKDIR=${HACKDIR}
4149 eval HACKDIR=${HACKDIR}
4150 eval HACKDIR=${HACKDIR}
4151 eval HACKDIR=${HACKDIR}
4152 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4153 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4154 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4155 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4156 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4157 eval HACK_CONF_DIR=${HACK_CONF_DIR}
4158
4159 # canonicalize slashes.
4160 bindir=`echo  "${bindir}"              | sed 's@/$@@;s@//*@/@g'`
4161 HACKDIR=`echo "${HACKDIR}"             | sed 's@/$@@;s@//*@/@g'`
4162 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
4163
4164
4165 # Sanity check the hackdir
4166 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
4167   if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
4168     echo ""
4169     AC_MSG_ERROR([\"--with-hackdir=${bindir}/${bad_choice}\" won't work.
4170                    There will be an executable installed with that name, so
4171                    that can't be the name of a directory as well.  Please
4172                    re-configure with a different directory name.])
4173   fi
4174 done
4175
4176
4177 do_dir_warning=no
4178
4179 # Now let's see if there's a previous RPM version already installed.  Blargh!
4180
4181 # M4 sucks!!
4182 changequote(X,Y)
4183 rpmv=`(rpm -qv xscreensaver) 2>/dev/null | \
4184       sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'`
4185 changequote([,])
4186
4187 if test \! -z "$rpmv" ; then
4188   rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
4189   rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
4190
4191   warning=no
4192   warnL "There is already an installed RPM of xscreensaver $rpmv"
4193   warn2 "on this system.  You might want to remove it (with"
4194   warn2 '"rpm -ve xscreensaver") before running "make install"'
4195   warn2 "from this directory."
4196   echo ""
4197   warn2 "Alternately, you could build this version of xscreensaver"
4198   warn2 'as an RPM, and then install that.  An "xscreensaver.spec"'
4199   warn2 "file is included.  See the RPM documentation for more info."
4200   echo ""
4201
4202   if test "$rpmbdir" = "$rpmhdir" ; then
4203     warn2 "The RPM version was installed in $rpmbdir/."
4204   else
4205     warn2 "The RPM version was installed in $rpmbdir/,"
4206     warn2 "with demos in $rpmhdir/."
4207   fi
4208
4209   do_dir_warning=yes
4210 fi
4211
4212
4213 if test "${bindir}" = "${HACKDIR}" ; then
4214   do_dir_warning=yes
4215 fi
4216
4217 if test "$do_dir_warning" = yes; then
4218   echo ""
4219   echo "$warnsep"
4220   echo ""
4221   echo '      When you run "make install", the "xscreensaver",'
4222   echo '      "xscreensaver-demo", and "xscreensaver-command" executables'
4223   echo "      will be installed in ${bindir}/."
4224   echo ""
4225   echo "      The various graphics demos (175+ different executables) will"
4226   echo "      be installed in ${HACKDIR}/."
4227   echo ""
4228   echo "      If you would prefer the demos to be installed elsewhere,"
4229   echo "      you should re-run configure with the --with-hackdir=DIR"
4230   echo "      option.  For more information, run \`./configure --help'."
4231   warning=yes
4232 fi
4233
4234 if test "$warning" != no; then
4235   echo '' ; echo "$warnsep" ; echo ''
4236 fi
4237
4238 if test "$do_dir_warning" = no; then
4239   if test "$warning" = no; then
4240     echo ''
4241   fi
4242   echo "User programs will be installed in ${bindir}/"
4243   echo "Screen savers will be installed in ${HACKDIR}/"
4244   echo "Configuration will be installed in ${HACK_CONF_DIR}/"
4245   echo ''
4246 fi