ftp://updates.redhat.com/enterprise/2.1AS/en/os/SRPMS/xscreensaver-3.33-4.rhel21...
[xscreensaver] / configure.in
1 # configure.in --- xscreensaver, Copyright (c) 1997-2000 Jamie Zawinski.
2 #
3
4 AC_INIT(driver/subprocs.c)
5 AC_CONFIG_HEADER(config.h)
6
7 echo "current directory: `pwd`"
8 echo "command line was: $0 $@"
9
10
11 # After checking to see that --srcdir is correct (which AC_INIT does)
12 # check for some random other files that come later in the tar file,
13 # to make sure everything is here.
14 #
15 for d in driver utils hacks hacks/glx ; do
16   f=$srcdir/$d/Makefile.in
17   if test \! -r $f ; then
18     echo ""
19     echo "ERROR: The package is incomplete: $f does not exist."
20     echo "       This probably means that your download was truncated."
21     echo ""
22     exit 1
23   fi
24 done
25
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   AC_MSG_CHECKING([whether the compiler works on ANSI C])
60   AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
61      AC_MSG_RESULT(yes),
62      AC_MSG_RESULT(no)
63      AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
64      AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
65
66   if test -n "$GCC"; then
67     AC_MSG_RESULT(Turning on gcc compiler warnings.)
68     CC="$CC -Wall -Wstrict-prototypes -Wnested-externs -Wno-format"
69   else
70     case "$host" in
71       *-irix5* |*-irix6.[0-3]* )
72         AC_MSG_RESULT(Turning on SGI compiler warnings.)
73         CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
74       ;;
75 #     *-dec-osf* )
76 #       if test -z "$GCC"; then
77 #         AC_MSG_RESULT(Turning on DEC C compiler warnings.)
78 #         CC="$CC -migrate -w0 -verbose -warnprotos"
79 #       fi
80 #     ;;
81     esac
82   fi
83 ])
84
85
86 ###############################################################################
87 #
88 #       Functions to figure out how to disable // comments in ANSI C code.
89 #
90 #       (With recent gcc, this is done with "-std=c89".  With older gcc, this
91 #       is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to
92 #       gcc.  Old gcc doesn't support -std, and new gcc doesn't support -lang.
93 #       so much for compatibility!)
94 #
95 ###############################################################################
96
97 AC_DEFUN(AC_GCC_ACCEPTS_STD,
98  [if test -n "$GCC"; then
99    AC_CACHE_CHECK([whether gcc accepts -std],
100      ac_cv_gcc_accepts_std,
101     [if ( gcc -E -std=c89 - </dev/null 2>&1 >/dev/null | \
102           grep unrecognized >/dev/null ); then
103        ac_cv_gcc_accepts_std=no
104      else
105        ac_cv_gcc_accepts_std=yes
106      fi])
107    ac_gcc_accepts_std="$ac_cv_gcc_accepts_std"
108   fi
109 ])
110
111 AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE,
112  [if test -n "$GCC"; then
113    AC_GCC_ACCEPTS_STD
114    AC_MSG_RESULT(Disabling C++ comments in ANSI C code.)
115    #
116    # The reason that // comments are banned from xscreensaver is that gcc is
117    # basically the only compiler in the world that supports them in C code.
118    # All other vendors support them only in their C++ compilers, not in their
119    # ANSI C compilers.  This means that it's a portability problem: every time
120    # these comments have snuck into the xscreensaver source code, I've gotten
121    # complaints about it the next day.  So we turn off support for them in gcc
122    # as well to prevent them from accidentially slipping in.
123    #
124    if test "$ac_gcc_accepts_std" = yes ; then
125      #
126      # -std=c89 defines __STRICT_ANSI__, which we don't want.
127      # (That appears to be the only additional preprocessor symbol
128      # it defines, in addition to the syntax changes it makes.)
129      #
130      # -std=gnu89 is no good, because // comments were a GNU extension
131      # before they were in the ANSI C 99 spec...  (gcc 2.96 permits //
132      # with -std=gnu89 but not with -std=c89.)
133      #
134      CC="$CC -std=c89 -U__STRICT_ANSI__"
135    else
136      # The old way:
137      CC="$CC -Wp,-lang-c89"
138    fi
139   fi
140 ])
141
142
143 ###############################################################################
144 #
145 #       Function to figure out how to create directory trees.
146 #
147 ###############################################################################
148
149 AC_DEFUN(AC_PROG_INSTALL_DIRS,
150  [AC_CACHE_CHECK([whether \"\${INSTALL} -d\" creates intermediate directories],
151     ac_cv_install_d_creates_dirs,
152     [ac_cv_install_d_creates_dirs=no
153      rm -rf conftestdir
154      if mkdir conftestdir; then
155        cd conftestdir >&-
156        ${INSTALL} -d `pwd`/dir1/dir2 >&- 2>&-
157        if test -d dir1/dir2/. ; then
158          ac_cv_install_d_creates_dirs=yes
159        fi
160        cd .. >&-
161        rm -rf conftestdir
162      fi
163     ])
164
165   if test "$ac_cv_install_d_creates_dirs" = no ; then
166     AC_CACHE_CHECK([whether \"mkdir -p\" creates intermediate directories],
167       ac_cv_mkdir_p_creates_dirs,
168       [ac_cv_mkdir_p_creates_dirs=no
169        rm -rf conftestdir
170        if mkdir conftestdir; then
171          cd conftestdir >&-
172          mkdir -p dir1/dir2 >&- 2>&-
173          if test -d dir1/dir2/. ; then
174            ac_cv_mkdir_p_creates_dirs=yes
175          fi
176          cd .. >&-
177          rm -rf conftestdir
178        fi
179       ])
180   fi
181
182   if test "$ac_cv_install_d_creates_dirs" = yes ; then
183     INSTALL_DIRS='${INSTALL} -d'
184   elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then
185     INSTALL_DIRS='mkdir -p'
186   else
187     # any other ideas?
188     INSTALL_DIRS='${INSTALL} -d'
189   fi
190 ])
191
192
193 ###############################################################################
194 #
195 #       Function to check whether gettimeofday() exists, and how to call it.
196 #       This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS.
197 #
198 ###############################################################################
199
200 AC_DEFUN(AC_GETTIMEOFDAY_ARGS,
201  [AC_MSG_CHECKING(how to call gettimeofday)
202   AC_CACHE_VAL(ac_cv_gettimeofday_args,
203    [AC_TRY_COMPILE([#include <stdlib.h>
204                     #include <sys/time.h>],
205                    [struct timeval tv; struct timezone tzp;
206                     gettimeofday(&tv, &tzp);],
207                    [ac_gettimeofday_args=2],
208                    [AC_TRY_COMPILE([#include <stdlib.h>
209                                     #include <sys/time.h>],
210                                    [struct timeval tv; gettimeofday(&tv);],
211                                    [ac_gettimeofday_args=1],
212                                    [ac_gettimeofday_args=0])])
213     ac_cv_gettimeofday_args=$ac_gettimeofday_args])
214   ac_gettimeofday_args=$ac_cv_gettimeofday_args
215   if test "$ac_gettimeofday_args" = 1 ; then
216     AC_DEFINE(HAVE_GETTIMEOFDAY)
217     AC_MSG_RESULT(one argument)
218   elif test "$ac_gettimeofday_args" = 2 ; then
219     AC_DEFINE(HAVE_GETTIMEOFDAY)
220     AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
221     AC_MSG_RESULT(two arguments)
222   else
223     AC_MSG_RESULT(unknown)
224   fi
225 ])
226
227
228 ###############################################################################
229 #
230 #       Function to find perl5 (defines PERL and PERL_VERSION.)
231 #
232 ###############################################################################
233
234 # M4 sucks!!  perl sucks too!!
235 changequote(X,Y)
236 perl_version_cmd='print $]'
237 changequote([,])
238
239 AC_DEFUN(AC_PROG_PERL,
240  [AC_PATH_PROGS(PERL, [perl5 perl],,)
241   if test -z "$PERL" ; then
242     PERL_VERSION=0
243   else
244     AC_CACHE_CHECK([perl version], ac_cv_perl_version,
245                    [ac_cv_perl_version=`$PERL -e "$perl_version_cmd"`])
246     PERL_VERSION=$ac_cv_perl_version
247   fi
248  ])
249
250
251 ###############################################################################
252 #
253 #       Function to demand "bc".  Losers.
254 #
255 ###############################################################################
256
257 AC_DEFUN(AC_DEMAND_BC,
258  [ac_bc_result=`echo 6+9 | bc 2>/dev/null`
259   AC_MSG_CHECKING([for bc])
260   if test "$ac_bc_result" = "15" ; then
261     AC_MSG_RESULT(yes)
262   else
263     AC_MSG_RESULT(no)
264     echo ''
265     AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard
266                   part of Unix since the 1970s.  Come back when your vendor
267                   has grown a clue.])
268   fi
269  ])
270
271 ###############################################################################
272 #
273 #       Functions to check how to do ICMP PING requests.
274 #
275 ###############################################################################
276
277 AC_DEFUN(AC_CHECK_ICMP,
278  [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp,
279   [AC_TRY_COMPILE([#include <stdlib.h>
280                    #include <stdio.h>
281                    #include <math.h>
282                    #include <unistd.h>
283                    #include <limits.h>
284                    #include <signal.h>
285                    #include <fcntl.h>
286                    #include <sys/types.h>
287                    #include <sys/time.h>
288                    #include <sys/ipc.h>
289                    #include <sys/shm.h>
290                    #include <sys/socket.h>
291                    #include <netinet/in_systm.h>
292                    #include <netinet/in.h>
293                    #include <netinet/ip.h>
294                    #include <netinet/ip_icmp.h>
295                    #include <netinet/udp.h>
296                    #include <arpa/inet.h>
297                    #include <netdb.h>],
298                   [struct icmp i;
299                    struct sockaddr s;
300                    struct sockaddr_in si;
301                    struct ip ip;
302                    i.icmp_type = ICMP_ECHO;
303                    i.icmp_code = 0;
304                    i.icmp_cksum = 0;
305                    i.icmp_id = 0;
306                    i.icmp_seq = 0;
307                    si.sin_family = AF_INET;
308                    #if defined(__DECC) || defined(_IP_VHL)
309                    ip.ip_vhl = 0;
310                    #else
311                    ip.ip_hl = 0;
312                    #endif
313                    ],
314                   [ac_cv_have_icmp=yes],
315                   [ac_cv_have_icmp=no])])
316  if test "$ac_cv_have_icmp" = yes ; then
317    AC_DEFINE(HAVE_ICMP)
318  fi])
319
320 AC_DEFUN(AC_CHECK_ICMPHDR,
321  [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr,
322   [AC_TRY_COMPILE([#include <stdlib.h>
323                    #include <stdio.h>
324                    #include <math.h>
325                    #include <unistd.h>
326                    #include <limits.h>
327                    #include <signal.h>
328                    #include <fcntl.h>
329                    #include <sys/types.h>
330                    #include <sys/time.h>
331                    #include <sys/ipc.h>
332                    #include <sys/shm.h>
333                    #include <sys/socket.h>
334                    #include <netinet/in_systm.h>
335                    #include <netinet/in.h>
336                    #include <netinet/ip.h>
337                    #include <netinet/ip_icmp.h>
338                    #include <netinet/udp.h>
339                    #include <arpa/inet.h>
340                    #include <netdb.h>],
341                   [struct icmphdr i;
342                    struct sockaddr s;
343                    struct sockaddr_in si;
344                    struct ip ip;
345                    i.type = ICMP_ECHO;
346                    i.code = 0;
347                    i.cksum = 0;
348                    i.un.echo.id = 0;
349                    i.un.echo.sequence = 0;
350                    si.sin_family = AF_INET;
351                    ip.ip_hl = 0;],
352                   [ac_cv_have_icmphdr=yes],
353                   [ac_cv_have_icmphdr=no])])
354  if test "$ac_cv_have_icmphdr" = yes ; then
355    AC_DEFINE(HAVE_ICMPHDR)
356  fi])
357
358
359 ###############################################################################
360 #
361 #       Functions to check for various X11 crap.
362 #
363 ###############################################################################
364
365 # Try and find the app-defaults directory.
366 # It sucks that autoconf doesn't do this already...
367 #
368 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
369   rm -fr conftestdir
370   if mkdir conftestdir; then
371     cd conftestdir >&-
372     # Make sure to not put "make" in the Imakefile rules, since we grep it out.
373     cat > Imakefile <<'EOF'
374 acfindx:
375         @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
376 EOF
377     if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
378       # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
379       eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
380     fi
381     cd .. >&-
382     rm -fr conftestdir
383   fi])
384
385 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
386   # Look for the directory under a standard set of common directories.
387   # Check X11 before X11Rn because it's often a symlink to the current release.
388   for ac_dir in                                 \
389     /usr/X11/lib/app-defaults                   \
390     /usr/X11R6/lib/app-defaults                 \
391     /usr/X11R6/lib/X11/app-defaults             \
392     /usr/X11R5/lib/app-defaults                 \
393     /usr/X11R5/lib/X11/app-defaults             \
394     /usr/X11R4/lib/app-defaults                 \
395     /usr/X11R4/lib/X11/app-defaults             \
396                                                 \
397     /usr/lib/X11/app-defaults                   \
398     /usr/lib/X11R6/app-defaults                 \
399     /usr/lib/X11R5/app-defaults                 \
400     /usr/lib/X11R4/app-defaults                 \
401                                                 \
402     /usr/local/X11/lib/app-defaults             \
403     /usr/local/X11R6/lib/app-defaults           \
404     /usr/local/X11R5/lib/app-defaults           \
405     /usr/local/X11R4/lib/app-defaults           \
406                                                 \
407     /usr/local/lib/X11/app-defaults             \
408     /usr/local/lib/X11R6/app-defaults           \
409     /usr/local/lib/X11R6/X11/app-defaults       \
410     /usr/local/lib/X11R5/app-defaults           \
411     /usr/local/lib/X11R5/X11/app-defaults       \
412     /usr/local/lib/X11R4/app-defaults           \
413     /usr/local/lib/X11R4/X11/app-defaults       \
414                                                 \
415     /usr/X386/lib/X11/app-defaults              \
416     /usr/x386/lib/X11/app-defaults              \
417     /usr/XFree86/lib/X11/app-defaults           \
418                                                 \
419     /usr/lib/X11/app-defaults                   \
420     /usr/local/lib/X11/app-defaults             \
421     /usr/unsupported/lib/X11/app-defaults       \
422     /usr/athena/lib/X11/app-defaults            \
423     /usr/local/x11r5/lib/X11/app-defaults       \
424     /usr/lpp/Xamples/lib/X11/app-defaults       \
425     /lib/usr/lib/X11/app-defaults               \
426                                                 \
427     /usr/openwin/lib/app-defaults               \
428     /usr/openwin/lib/X11/app-defaults           \
429     /usr/openwin/share/lib/app-defaults         \
430     /usr/openwin/share/lib/X11/app-defaults     \
431                                                 \
432     /X11R6/lib/app-defaults                     \
433     /X11R5/lib/app-defaults                     \
434     /X11R4/lib/app-defaults                     \
435     ; \
436   do
437     if test -d "$ac_dir"; then
438       ac_x_app_defaults=$ac_dir
439       break
440     fi
441   done
442 ])
443
444 AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
445   [AC_REQUIRE_CPP()
446     AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
447      [AC_PATH_X_APP_DEFAULTS_XMKMF
448       if test x"$ac_x_app_defaults" = x; then
449         AC_PATH_X_APP_DEFAULTS_DIRECT
450       fi
451       if test x"$ac_x_app_defaults" = x; then
452         ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
453       else
454         # Record where we found app-defaults for the cache.
455         ac_cv_x_app_defaults="$ac_x_app_defaults"
456       fi])
457     eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
458
459
460 AC_DEFUN(AC_XPOINTER,
461  [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
462                  [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
463                                    [XPointer foo = (XPointer) 0;],
464                                    [ac_cv_xpointer=yes],
465                                    [ac_cv_xpointer=no])])
466   if test "$ac_cv_xpointer" != yes; then
467    AC_DEFINE(XPointer,[char*])
468   fi])
469
470
471 # Random special-cases for X on certain pathological OSes.
472 # You know who you are.
473 #
474 AC_DEFUN(AC_X_RANDOM_PATHS,
475  [case "$host" in
476     *-hpux*)
477
478       # The following arcana was gleaned from conversations with
479       # Eric Schwartz <erics@col.hp.com>:
480       #
481       # On HPUX 10.x, the parts of X that HP considers "standard" live in
482       # /usr/{include,lib}/X11R6/.  The parts that HP doesn't consider
483       # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/.
484       # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems.
485       # Also, there are symlinks from /usr/include/ and /usr/lib/ into
486       # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all)
487       # you don't need any -I or -L arguments.
488       #
489       # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/
490       # are the same division as 10.x.  However, there are no symlinks to
491       # the X stuff from /usr/include/ and /usr/lib/, so -I and -L
492       # arguments are always necessary.
493       #
494       # However, X11R6 was available on HPUX 9.x as a patch: if that
495       # patch was installed, then all of X11R6 went in to
496       # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.)
497       #
498       # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know
499       # whether R5 was available as a patch; R6 undoubtedly was not.)
500       #
501       # So.  We try and use the highest numbered pair of
502       # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/
503       # that are available.  We do not mix and match different versions
504       # of X.
505       #
506       # Question I still don't know the answer to: (do you?)
507       #
508       #   * On HPUX 9.x, where /usr/include/X11R5/ was standard, and
509       #     /usr/contrib/X11R6/ could be installed as a patch, what was in
510       #     that contrib directory?  Did it contain so-called "standard"
511       #     X11R6, or did it include Xaw and Xmu as well?  If the former,
512       #     where did one find Xaw and Xmu on 9.x R6 systems?  Would this
513       #     be a situation where one had to reach into the R5 headers and
514       #     libs to find Xmu?  That is, must both R6 and R5 directories
515       #     be on the -I and -L lists in that case?
516       #
517       for version in X11R6 X11R5 X11R4 ; do
518         # if either pair of directories exists...
519         if test -d /usr/lib/$version || test -d /usr/contrib/$version/lib
520         then
521            # if contrib exists, use it...
522            if test -d /usr/contrib/$version/lib ; then
523              X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
524              X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
525            fi
526            # if the "standard" one exists, use it.
527            if test -d /usr/lib/$version ; then
528              X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
529              X_LIBS="$X_LIBS -L/usr/lib/$version"
530            fi
531            # since at least one of the pair exists, go no farther.
532            break
533         fi
534       done
535
536       # Now find Motif.  Thanks for not making xmkmf find this by
537       # default, you losers.
538       #
539       if test -d /usr/lib/Motif1.2 ; then
540         X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
541         X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
542       elif test -d /usr/lib/Motif1.1 ; then
543         X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
544         X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
545       fi
546
547       # Now let's check for the pseudo-standard locations for OpenGL and XPM.
548       #
549       if test -d /opt/Mesa/lib ; then
550         X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
551         X_LIBS="-L/opt/Mesa/lib $X_LIBS"
552       fi
553
554       if test -d /opt/xpm/lib/X11 ; then
555         X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
556         X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
557       fi
558
559       # On HPUX, default to installing in /opt/xscreensaver/ instead of
560       # in /usr/local/, unless there is already an xscreensaver in
561       # /usr/local/bin/.  This can be overridden with the --prefix arg
562       # to configure.  I'm not sure this is the right thing to do, but
563       # Richard Lloyd says so...
564       #
565       if test \! -x /usr/local/bin/xscreensaver ; then
566         ac_default_prefix=/opt/xscreensaver
567       fi
568
569     ;;
570     *-solaris*)
571
572       # Thanks for not making xmkmf find this by default, pinheads.
573       # And thanks for moving things around again, too.  Is this
574       # really the standard location now?  What happened to the
575       # joke that this kind of thing went in /opt?
576       # cthomp says "answer: CDE (Common Disorganized Environment)"
577       #
578       if test -f /usr/dt/include/Xm/Xm.h ; then
579         X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
580         X_LIBS="$X_LIBS -L/usr/dt/lib -R:/usr/dt/lib"
581
582         # Some versions of Slowlaris Motif require -lgen.  But not all.  Why?
583         AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"])
584       fi
585     ;;
586   esac])
587
588
589
590 ###############################################################################
591 #
592 #       Some utility functions to make checking for X things easier.
593 #
594 ###############################################################################
595
596 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
597 #
598 AC_DEFUN(AC_CHECK_X_HEADER, [
599   ac_save_CPPFLAGS="$CPPFLAGS"
600   if test \! -z "$includedir" ; then 
601     CPPFLAGS="$CPPFLAGS -I$includedir"
602   fi
603   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
604   AC_CHECK_HEADER([$1], [$2])
605   CPPFLAGS="$ac_save_CPPFLAGS"])
606
607 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
608 #
609 AC_DEFUN(AC_EGREP_X_HEADER, [
610   ac_save_CPPFLAGS="$CPPFLAGS"
611   if test \! -z "$includedir" ; then 
612     CPPFLAGS="$CPPFLAGS -I$includedir"
613   fi
614   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
615   AC_EGREP_HEADER([$1], [$2], [$3], [$4])
616   CPPFLAGS="$ac_save_CPPFLAGS"])
617
618 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
619 #
620 AC_DEFUN(AC_TRY_X_COMPILE, [
621   ac_save_CPPFLAGS="$CPPFLAGS"
622   if test \! -z "$includedir" ; then 
623     CPPFLAGS="$CPPFLAGS -I$includedir"
624   fi
625   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
626   AC_TRY_COMPILE([$1], [$2], [$3], [$4])
627   CPPFLAGS="$ac_save_CPPFLAGS"])
628
629
630 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
631 # Use this sparingly; it probably doesn't work very well on X programs.
632 #
633 AC_DEFUN(AC_CHECK_X_LIB, [
634   ac_save_CPPFLAGS="$CPPFLAGS"
635   ac_save_LDFLAGS="$LDFLAGS"
636 #  ac_save_LIBS="$LIBS"
637
638   if test \! -z "$includedir" ; then 
639     CPPFLAGS="$CPPFLAGS -I$includedir"
640   fi
641   # note: $X_CFLAGS includes $x_includes
642   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
643
644   if test \! -z "$libdir" ; then
645     LDFLAGS="$LDFLAGS -L$libdir"
646   fi
647   # note: $X_LIBS includes $x_libraries
648   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
649
650   AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
651   CPPFLAGS="$ac_save_CPPFLAGS"
652   LDFLAGS="$ac_save_LDFLAGS"
653 #  LIBS="$ac_save_LIBS"
654   ])
655
656 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
657 # (But not the -L directories!)
658 #
659 AC_DEFUN(AC_TRY_X_RUN, [
660   ac_save_CPPFLAGS="$CPPFLAGS"
661   if test \! -z "$includedir" ; then 
662     CPPFLAGS="$CPPFLAGS -I$includedir"
663   fi
664   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
665   AC_TRY_RUN([$1], [$2], [$3], [$4])
666   CPPFLAGS="$ac_save_CPPFLAGS"])
667
668
669
670 # Usage: HANDLE_X_PATH_ARG([variable_name],
671 #                          [--command-line-option],
672 #                          [descriptive string])
673 #
674 # All of the --with options take three forms:
675 #
676 #   --with-foo (or --with-foo=yes)
677 #   --without-foo (or --with-foo=no)
678 #   --with-foo=/DIR
679 #
680 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case.  When it sees
681 # a directory (string beginning with a slash) it checks to see whether
682 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
683 # as appropriate.
684 #
685 AC_DEFUN(HANDLE_X_PATH_ARG, [
686    case "$[$1]" in
687     yes) ;;
688     no)  ;;
689
690     /*)
691      AC_MSG_CHECKING([for [$3] headers])
692      d=$[$1]/include
693      if test -d $d; then
694        X_CFLAGS="-I$d $X_CFLAGS"
695        AC_MSG_RESULT($d)
696      else
697        AC_MSG_RESULT(not found ($d: no such directory))
698      fi
699
700      AC_MSG_CHECKING([for [$3] libs])
701      d=$[$1]/lib
702      if test -d $d; then
703        X_LIBS="-L$d $X_LIBS"
704        AC_MSG_RESULT($d)
705      else
706        AC_MSG_RESULT(not found ($d: no such directory))
707      fi
708
709      # replace the directory string with "yes".
710      [$1]_req="yes"
711      [$1]=$[$1]_req
712      ;;
713
714     *)
715      echo ""
716      echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
717      echo "       If it is a directory, then \`DIR/include' will be added to"
718      echo "       the -I list, and \`DIR/lib' will be added to the -L list."
719      exit 1
720      ;;
721    esac
722   ])
723
724
725
726 ###############################################################################
727 ###############################################################################
728 #
729 #       End of function definitions.  Now start actually executing stuff.
730 #
731 ###############################################################################
732 ###############################################################################
733
734 # random compiler setup
735 AC_CANONICAL_HOST
736 AC_PROG_CC_ANSI
737 AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
738 AC_PROG_CPP
739 AC_C_CONST
740 AC_C_INLINE
741 AC_DEMAND_BC
742
743 # stuff for Makefiles
744 AC_PROG_INSTALL
745 AC_PROG_INSTALL_DIRS
746 AC_PROG_MAKE_SET
747
748 # By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'.
749 # That's wrong: it should be set to '${INSTALL}', so that one can
750 # implement the "install-strip" target properly (strip executables,
751 # but do not try to strip scripts.)
752 #
753 INSTALL_SCRIPT='${INSTALL}'
754
755 # random libc stuff
756 AC_HEADER_STDC
757 AC_CHECK_HEADERS(unistd.h)
758 AC_TYPE_MODE_T
759 AC_TYPE_PID_T
760 AC_TYPE_SIZE_T
761 AC_TYPE_SIGNAL
762 AC_HEADER_TIME
763 AC_HEADER_SYS_WAIT
764 AC_HEADER_DIRENT
765 AC_GETTIMEOFDAY_ARGS
766 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv)
767
768 AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
769 AC_CHECK_ICMP
770 AC_CHECK_ICMPHDR
771 AC_CHECK_HEADERS(crypt.h sys/select.h)
772 AC_PROG_PERL
773
774 if test -z "$PERL" ; then
775   # don't let it be blank...
776   PERL=/usr/bin/perl
777 fi
778
779 AC_PATH_XTRA
780
781 if test "$have_x" != yes; then
782   AC_MSG_ERROR(Couldn't find X11 headers/libs.  Try \`$0 --help'.)
783 fi
784
785 AC_PATH_X_APP_DEFAULTS
786 AC_X_RANDOM_PATHS
787 AC_XPOINTER
788
789
790
791 ###############################################################################
792 #
793 #       Check for -lXmu (some fucked up vendors don't ship it...)
794 #
795 ###############################################################################
796
797 have_xmu=no
798 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes])
799 if test "$have_xmu" = no ; then
800   XMU_SRCS='$(UTILS_SRC)/xmu.c'
801   XMU_OBJS='$(UTILS_BIN)/xmu.o'
802   XMU_LIBS=''
803 else
804   XMU_SRCS=''
805   XMU_OBJS=''
806   XMU_LIBS='-lXmu'
807   AC_DEFINE(HAVE_XMU)
808 fi
809
810
811 ###############################################################################
812 #
813 #       Check for the SunOS 4.1.x _get_wmShellWidgetClass bug.
814 #       See comp.windows.x FAQ question 124.  The right fix is to
815 #       get OpenWindows 3.0 patches 100512-02 and 100573-03.
816 #
817 ###############################################################################
818
819 if test "$have_xmu" = yes ; then
820   case "$host" in
821     *-sunos4*)
822     AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
823                    ac_cv_sunos_xmu_bug,
824                    [ac_save_LDFLAGS="$LDFLAGS"
825                     if test \! -z "$x_libraries" ; then
826                       LDFLAGS="$LDFLAGS -L$x_libraries"
827                     fi
828                     # Note: this trick never works!  (Generally.)
829                     # We're only getting away with using AC_TRY_LINK
830                     # with X libraries because we know it's SunOS.
831                     LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
832                     AC_TRY_LINK(,,
833                                 [ac_cv_sunos_xmu_bug=no],
834                                 [ac_cv_sunos_xmu_bug=yes])
835                     LDFLAGS="$ac_save_LDFLAGS"])
836     if test "$ac_cv_sunos_xmu_bug" = yes ; then
837       AC_CACHE_CHECK([whether the compiler understands -static], 
838                      ac_cv_ld_static,
839                      [ac_save_LDFLAGS="$LDFLAGS"
840                       LDFLAGS="$LDFLAGS -static"
841                       AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
842                     LDFLAGS="$ac_save_LDFLAGS"])
843       if test "$ac_cv_ld_static" = yes ; then
844         LDFLAGS="$LDFLAGS -static"
845       else
846         LDFLAGS="$LDFLAGS -Bstatic"
847       fi
848     fi
849     ;;
850   esac
851 fi
852
853
854 ###############################################################################
855 #
856 #       Handle the --enable-subdir option
857 #
858 ###############################################################################
859
860 AC_ARG_ENABLE(subdir,[
861 Installation options:
862
863   --enable-subdir=DIR     Put the demo programs in a subdirectory of \`bindir',
864                           instead of putting them in bindir itself.  You can
865                           specify the name of the subdirectory.  For example,
866                           \`--exec-prefix=/usr/local --enable-subdir=demos'
867                           would put xscreensaver in /usr/local/bin/, and would
868                           put the demos in /usr/local/bin/demos/.  (If DIR
869                           begins with /, then bindir will not be prepended.)
870
871   --disable-subdir        Just put the demos in \`bindir' (this is the default.)
872 ],
873   [enable_subdir="$enableval"],[enable_subdir=no])
874 if test x"$enable_subdir" = xno; then
875   HACKDIR='${bindir}'
876 elif test x"$enable_subdir" = xyes -o x"$enable_subdir" = x ; then
877   echo "error: must be a subdirectory name: --enable-subdir=$enable_subdir"
878   exit 1
879 else
880   # there must be a better way than this...
881   if test -z "`echo $enable_subdir | sed 's@^/.*@@'`" ; then
882     # absolute path
883     HACKDIR=$enable_subdir
884   else
885     # relative path
886     HACKDIR='${bindir}/'$enable_subdir
887   fi
888 fi
889
890 # canonicalize slashes.
891 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
892
893
894 ###############################################################################
895 #
896 #       Check for the SGI SCREEN_SAVER server extension.
897 #
898 ###############################################################################
899
900 have_sgi=no
901 with_sgi_req=unspecified
902 AC_ARG_WITH(sgi-ext,
903 [Except where noted, all of the --with options below can also take a
904 directory argument: for example, \`--with-motif=/opt/Motif'.  That would
905 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
906 to be added to the -L list, assuming those directories exist.  
907
908 By default, support for each of these options will be built in, if the
909 relevant library routines exist.  At run time, they will then be used
910 only if the X server being used supports them.  Each --with option has
911 a corresponding --without option, to override building support for them
912 at all.
913
914 Screen blanking and idle-detection options:
915
916   --with-sgi-ext          Include support for the SGI SCREEN_SAVER extension.],
917   [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
918
919 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
920
921 if test "$with_sgi" = yes; then
922   AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
923                     [have_sgi=yes
924                      AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)])
925
926 elif test "$with_sgi" != no; then
927   echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
928   exit 1
929 fi
930
931
932 ###############################################################################
933 #
934 #       Check for the MIT-SCREEN-SAVER server extension.
935 #
936 ###############################################################################
937
938 have_mit=no
939 with_mit_req=unspecified
940 AC_ARG_WITH(mit-ext,
941 [  --with-mit-ext          Include support for the MIT-SCREEN-SAVER extension.],
942   [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
943
944 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
945
946 if test "$with_mit" = yes; then
947   AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes])
948
949   # Now check to see if it's really in the library; XF86Free-3.3 ships
950   # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
951   #
952   if test "$have_mit" = yes; then
953     AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [true], [have_mit=no], -lm)
954
955     if test "$have_mit" = no; then
956       # Fuck!  Looks like XF86Free-3.3 actually puts it in XExExt instead
957       # of in Xext.  Thank you master, may I have another.
958       AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
959                      [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
960                      [true], -lX11 -lXext -lm)
961     fi
962
963     if test "$have_mit" = no; then
964       # Double fuck!  Looks like some versions of XFree86 (whichever version
965       # it is that comes with RedHat Linux 2.0 -- I can't find a version 
966       # number) put this garbage in Xss instead of Xext.  Thank you master,
967       #  may I have another.
968       AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
969                      [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
970                      [true], -lX11 -lXext -lm)
971     fi
972
973   if test "$have_mit" = yes; then
974     AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
975   fi
976
977   fi
978
979 elif test "$with_mit" != no; then
980   echo "error: must be yes or no: --with-mit-ext=$with_mit"
981   exit 1
982 fi
983
984
985 ###############################################################################
986 #
987 #       Check for the XIDLE server extension.
988 #
989 ###############################################################################
990
991 have_xidle=no
992 with_xidle_req=unspecified
993 AC_ARG_WITH(xidle-ext,
994 [  --with-xidle-ext        Include support for the XIDLE extension.],
995   [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
996
997 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
998
999 if test "$with_xidle" = yes; then
1000   AC_CHECK_X_HEADER(X11/extensions/xidle.h,
1001                     [have_xidle=yes
1002                      AC_DEFINE(HAVE_XIDLE_EXTENSION)])
1003 elif test "$with_xidle" != no; then
1004   echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
1005   exit 1
1006 fi
1007
1008
1009 ###############################################################################
1010 #
1011 #       Check for the SGI-VIDEO-CONTROL server extension.
1012 #
1013 ###############################################################################
1014
1015 have_sgivc=no
1016 with_sgivc_req=unspecified
1017 AC_ARG_WITH(sgivc-ext,
1018 [  --with-sgivc-ext        Include support for the SGI-VIDEO-CONTROL extension.],
1019   [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
1020
1021 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
1022
1023 if test "$with_sgivc" = yes; then
1024
1025   # first check for XSGIvc.h
1026   AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes])
1027
1028   # if that succeeded, then check for the -lXsgivc
1029   if test "$have_sgivc" = yes; then
1030     have_sgivc=no
1031     AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
1032                   [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
1033                   -lXext -lX11)
1034   fi
1035
1036   # if that succeeded, then we've really got it.
1037   if test "$have_sgivc" = yes; then
1038     AC_DEFINE(HAVE_SGI_VC_EXTENSION)
1039   fi
1040
1041 elif test "$with_sgivc" != no; then
1042   echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
1043   exit 1
1044 fi
1045
1046
1047 ###############################################################################
1048 #
1049 #       Check for the DPMS server extension.
1050 #
1051 ###############################################################################
1052
1053 have_dpms=no
1054 with_dpms_req=unspecified
1055 AC_ARG_WITH(dpms-ext,
1056 [  --with-dpms-ext         Include support for the DPMS extension.],
1057   [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
1058
1059 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
1060
1061 if test "$with_dpms" = yes; then
1062
1063   # first check for dpms.h
1064   AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes])
1065
1066   # if that succeeded, then check for the DPMS code in the libraries
1067   if test "$have_dpms" = yes; then
1068
1069     # first look in -lXext (this is where it is with XFree86 4.0)
1070     have_dpms=no
1071     AC_CHECK_X_LIB(Xext, DPMSInfo, [have_dpms=yes], [true], -lXext -lX11)
1072
1073     # if that failed, look in -lXdpms (this is where it was in XFree86 3.x)
1074     if test "$have_dpms" = no; then
1075       AC_CHECK_X_LIB(Xdpms, DPMSInfo,
1076                     [have_dpms=yes; XDPMS_LIBS="-lXdpms"], [true],
1077                     -lXext -lX11)
1078     fi
1079   fi
1080
1081
1082   # if that succeeded, then we've really got it.
1083   if test "$have_dpms" = yes; then
1084     AC_DEFINE(HAVE_DPMS_EXTENSION)
1085   fi
1086
1087 elif test "$with_dpms" != no; then
1088   echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
1089   exit 1
1090 fi
1091
1092
1093 ###############################################################################
1094 #
1095 #       Check for the XF86VMODE server extension (for virtual screens.)
1096 #
1097 ###############################################################################
1098
1099 have_xf86vmode=no
1100 with_xf86vmode_req=unspecified
1101 AC_ARG_WITH(xf86vmode-ext,
1102 [  --with-xf86vmode-ext    Include support for XFree86 virtual screens.],
1103   [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"],
1104   [with_xf86vmode=yes])
1105
1106 HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
1107
1108 if test "$with_xf86vmode" = yes; then
1109
1110   # first check for xf86vmode.h
1111   AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes])
1112
1113   # if that succeeded, then check for the -lXxf86vm
1114   if test "$have_xf86vmode" = yes; then
1115     have_xf86vmode=no
1116     AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
1117                   [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
1118                    [true], -lXext -lX11)
1119   fi
1120
1121   # if that succeeded, then we've really got it.
1122   if test "$have_xf86vmode" = yes; then
1123     AC_DEFINE(HAVE_XF86VMODE)
1124   fi
1125
1126 elif test "$with_xf86vmode" != no; then
1127   echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
1128   exit 1
1129 fi
1130
1131
1132 ###############################################################################
1133 #
1134 #       Check for the XF86VMODE server extension (for gamma fading.)
1135 #
1136 ###############################################################################
1137
1138 have_xf86gamma=no
1139 with_xf86gamma_req=unspecified
1140 AC_ARG_WITH(xf86gamma-ext,
1141 [  --with-xf86gamma-ext    Include support for XFree86 gamma fading.],
1142   [with_xf86gamma="$withval"; with_xf86gamma_req="$withval"],
1143   [with_xf86gamma=yes])
1144
1145 HANDLE_X_PATH_ARG(with_xf86gamma, --with-xf86gamma-ext, xf86gamma)
1146
1147 if test "$with_xf86gamma" = yes; then
1148
1149   # first check for xf86vmode.h, if we haven't already
1150   if test "$have_xf86vmode" = yes; then
1151     have_xf86gamma=yes
1152   else
1153     AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes])
1154   fi
1155
1156   # if that succeeded, then check for the -lXxf86vm
1157   if test "$have_xf86gamma" = yes; then
1158     have_xf86gamma=no
1159     AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGamma,
1160                   [have_xf86gamma=yes],
1161                    [true], -lXext -lX11)
1162   fi
1163
1164   # pull in the lib, if we haven't already
1165   if test "$have_xf86gamma" = yes -a "$have_xf86vmode" = no; then
1166     SAVER_LIBS="$SAVER_LIBS -lXxf86vm"
1167   fi
1168
1169   # if that succeeded, then we've really got it.
1170   if test "$have_xf86gamma" = yes; then
1171     AC_DEFINE(HAVE_XF86VMODE_GAMMA)
1172   fi
1173
1174 elif test "$with_xf86gamma" != no; then
1175   echo "error: must be yes or no: --with-xf86gamma-ext=$with_xf86vmode"
1176   exit 1
1177 fi
1178
1179
1180 ###############################################################################
1181 #
1182 #       Check for HP XHPDisableReset and XHPEnableReset.
1183 #
1184 ###############################################################################
1185
1186 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
1187                   [AC_DEFINE(HAVE_XHPDISABLERESET)
1188                    SAVER_LIBS="-lXhp11 $SAVER_LIBS"])
1189
1190
1191 ###############################################################################
1192 #
1193 #       Check for /proc/interrupts.
1194 #
1195 ###############################################################################
1196
1197 have_proc_interrupts=no
1198 with_proc_interrupts_req=unspecified
1199 AC_ARG_WITH(proc-interrupts,
1200 [  --with-proc-interrupts  Include support for consulting the /proc/interrupts
1201                           file to notice keyboard activity.],
1202   [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
1203   [with_proc_interrupts=yes])
1204
1205 if test "$with_proc_interrupts" = yes; then
1206
1207    AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
1208     ac_cv_have_proc_interrupts,
1209     [ac_cv_have_proc_interrupts=no
1210      if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
1211        ac_cv_have_proc_interrupts=yes
1212      fi
1213     ])
1214    have_proc_interrupts=$ac_cv_have_proc_interrupts
1215
1216   if test "$have_proc_interrupts" = yes; then
1217     AC_DEFINE(HAVE_PROC_INTERRUPTS)
1218   fi
1219
1220 elif test "$with_proc_interrupts" != no; then
1221   echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
1222   exit 1
1223 fi
1224
1225
1226 ###############################################################################
1227 #
1228 #       The --enable-locking option
1229 #
1230 ###############################################################################
1231
1232 AC_ARG_ENABLE(locking,[
1233 Screen locking options:
1234
1235   --enable-locking        Compile in support for locking the display.
1236   --disable-locking       Do not allow locking at all.
1237 ],
1238   [enable_locking="$enableval"],[enable_locking=yes])
1239 if test "$enable_locking" = yes; then
1240   true
1241 elif test "$enable_locking" = no; then
1242   AC_DEFINE(NO_LOCKING)
1243 else
1244   echo "error: must be yes or no: --enable-locking=$enable_locking"
1245   exit 1
1246 fi
1247
1248
1249
1250 ###############################################################################
1251 #
1252 #       The --enable-vt-locking option
1253 #
1254 ###############################################################################
1255
1256 #ac_vt_lockswitch=no
1257 #AC_ARG_ENABLE(vt-locking,[
1258 #  --enable-vt-locking     Compile in support for locking Virtual Terminals.
1259 #                          This is the default if the system supports it, and
1260 #                          if locking support is included (--enable-locking.)
1261 #  --disable-vt-locking    Do not allow locking of VTs, even if locking is
1262 #                          enabled.],
1263 #  [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1264 #if test "$enable_vt_locking" = yes; then
1265 #
1266 #  AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1267 #   [AC_TRY_COMPILE([#include <fcntl.h>
1268 #                   #include <sys/ioctl.h>
1269 #                   #include <sys/vt.h>],
1270 #                  [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1271 #                  [ac_cv_vt_lockswitch=yes],
1272 #                  [ac_cv_vt_lockswitch=no])])
1273 #  ac_vt_lockswitch=$ac_cv_vt_lockswitch
1274 #
1275 #elif test "$enable_vt_locking" = no; then
1276 #  true
1277 #else
1278 #  echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1279 #  exit 1
1280 #fi
1281 #
1282 #if test "$ac_vt_lockswitch" = yes; then
1283 #  AC_DEFINE(HAVE_VT_LOCKSWITCH)
1284 #  # the VT_LOCKSWITCH ioctl can only be used when running as root.
1285 #  # #### but it doesn't work yet, so don't worry about that for now.
1286 ##  need_setuid=yes
1287 #fi
1288
1289
1290
1291 ###############################################################################
1292 #
1293 #       Check for PAM.
1294 #
1295 ###############################################################################
1296
1297 case "$host" in
1298   *-solaris*)
1299    # Solaris systems tend to come with PAM misconfigured.
1300    #  Don't build it by default, even if the headers exist.
1301    with_pam_default=no
1302    ;;
1303   *)
1304    # Default to building PAM support on all other systems, if it exists.
1305    with_pam_default=yes
1306   ;;
1307 esac
1308
1309 have_pam=no
1310 with_pam_req=unspecified
1311
1312 AC_ARG_WITH(pam,
1313 [  --with-pam              Include support for PAM (Pluggable Auth Modules.)],
1314   [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1315
1316 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1317
1318 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1319   AC_CACHE_CHECK([for PAM], ac_cv_pam,
1320                  [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1321                                    [ac_cv_pam=yes],
1322                                    [ac_cv_pam=no])])
1323   if test "$ac_cv_pam" = yes ; then
1324     have_pam=yes
1325     AC_DEFINE(HAVE_PAM)
1326     PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1327
1328     # libpam typically requires dlopen and dlsym.  On FreeBSD,
1329     # those are in libc.  On Linux and Solaris, they're in libdl.
1330     AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1331
1332     AC_MSG_CHECKING(how to call pam_strerror)
1333     AC_CACHE_VAL(ac_cv_pam_strerror_args,
1334      [AC_TRY_COMPILE([#include <stdio.h>
1335                       #include <stdlib.h>
1336                       #include <security/pam_appl.h>],
1337                      [pam_handle_t *pamh = 0;
1338                       char *s = pam_strerror(pamh, PAM_SUCCESS);],
1339                      [ac_pam_strerror_args=2],
1340                      [AC_TRY_COMPILE([#include <stdio.h>
1341                                       #include <stdlib.h>
1342                                       #include <security/pam_appl.h>],
1343                                      [char *s =
1344                                        pam_strerror(PAM_SUCCESS);],
1345                                      [ac_pam_strerror_args=1],
1346                                      [ac_pam_strerror_args=0])])
1347       ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1348     ac_pam_strerror_args=$ac_cv_pam_strerror_args
1349     if test "$ac_pam_strerror_args" = 1 ; then
1350       AC_MSG_RESULT(one argument)
1351     elif test "$ac_pam_strerror_args" = 2 ; then
1352       AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1353       AC_MSG_RESULT(two arguments)
1354     else
1355       AC_MSG_RESULT(unknown)
1356     fi
1357   fi
1358 fi
1359
1360
1361 ###############################################################################
1362 #
1363 #       Check for Kerberos.
1364 #
1365 ###############################################################################
1366
1367 have_kerberos=no
1368 have_kerberos5=no
1369 with_kerberos_req=unspecified
1370
1371 AC_ARG_WITH(kerberos, 
1372 [  --with-kerberos         Include support for Kerberos authentication.],
1373   [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1374
1375 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1376
1377 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1378   AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
1379                  [AC_TRY_X_COMPILE([#include <krb.h>],,
1380                                    [ac_cv_kerberos=yes],
1381                                    [ac_cv_kerberos=no])])
1382   AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
1383                  [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
1384                                    [ac_cv_kerberos5=yes],
1385                                    [ac_cv_kerberos5=no])])
1386
1387   if test "$ac_cv_kerberos" = yes ; then
1388     have_kerberos=yes
1389     AC_DEFINE(HAVE_KERBEROS)
1390   fi
1391
1392   if test "$ac_cv_kerberos5" = yes ; then
1393     have_kerberos=yes
1394     have_kerberos5=yes
1395     AC_DEFINE(HAVE_KERBEROS)
1396     AC_DEFINE(HAVE_KERBEROS5)
1397   fi
1398
1399   if test "$have_kerberos5" = yes ; then
1400     # from Matt Knopp <mhat@infocalypse.netlag.com>
1401     # (who got it from amu@mit.edu)
1402     PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcrypt -lcom_err"
1403   elif test "$have_kerberos" = yes ; then
1404     # from Tim Showalter <tjs+@andrew.cmu.edu>
1405     PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes"
1406   fi
1407
1408   if test "$have_kerberos" = yes ; then
1409     AC_CHECK_FUNC(res_search,,
1410       AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1411         AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1412       ))
1413   fi
1414 fi
1415
1416
1417 ###############################################################################
1418 #
1419 #       Check for the nine billion variants of shadow passwords...
1420 #
1421 ###############################################################################
1422
1423 need_setuid=no
1424
1425 have_shadow=no
1426 with_shadow_req=unspecified
1427
1428 AC_ARG_WITH(shadow,
1429 [  --with-shadow           Include support for shadow password authentication.],
1430   [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1431
1432 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1433
1434 if test "$enable_locking" = no ; then
1435   with_shadow_req=no
1436   with_shadow=no
1437 fi
1438
1439
1440 ###############################################################################
1441 #
1442 #       Check for Sun "adjunct" passwords.
1443 #
1444 ###############################################################################
1445
1446 if test "$with_shadow" = yes ; then
1447   AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1448                  [AC_TRY_X_COMPILE([#include <stdlib.h>
1449                                     #include <unistd.h>
1450                                     #include <sys/types.h>
1451                                     #include <sys/label.h>
1452                                     #include <sys/audit.h>
1453                                     #include <pwdadj.h>],
1454                       [struct passwd_adjunct *p = getpwanam("nobody");
1455                        const char *pw = p->pwa_passwd;],
1456                       [ac_cv_sun_adjunct=yes],
1457                       [ac_cv_sun_adjunct=no])])
1458   if test "$ac_cv_sun_adjunct" = yes; then
1459     have_shadow_adjunct=yes
1460     have_shadow=yes
1461     need_setuid=yes
1462   fi
1463 fi
1464
1465
1466 ###############################################################################
1467 #
1468 #       Check for DEC and SCO so-called "enhanced" security.
1469 #
1470 ###############################################################################
1471
1472 if test "$with_shadow" = yes ; then
1473   AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1474                  [AC_TRY_X_COMPILE([#include <stdlib.h>
1475                                     #include <unistd.h>
1476                                     #include <sys/types.h>
1477                                     #include <pwd.h>
1478                                     #include <sys/security.h>
1479                                     #include <prot.h>],
1480                       [struct pr_passwd *p;
1481                        const char *pw;
1482                        set_auth_parameters(0, 0);
1483                        check_auth_parameters();
1484                        p = getprpwnam("nobody");
1485                        pw = p->ufld.fd_encrypt;],
1486                       [ac_cv_enhanced_passwd=yes],
1487                       [ac_cv_enhanced_passwd=no])])
1488   if test $ac_cv_enhanced_passwd = yes; then
1489     have_shadow_enhanced=yes
1490     have_shadow=yes
1491     need_setuid=yes
1492
1493     # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1494     # (I'm told it needs -lcurses too, but I don't understand why.)
1495     # But on DEC, it's in -lsecurity.
1496     #
1497     AC_CHECK_LIB(prot, getprpwnam, 
1498                  [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1499                  [AC_CHECK_LIB(security, getprpwnam, 
1500                                [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1501                  [-lx])
1502   fi
1503 fi
1504
1505 ###############################################################################
1506 #
1507 #       Check for HP's entry in the "Not Invented Here" Sweepstakes.
1508 #
1509 ###############################################################################
1510
1511 if test "$with_shadow" = yes ; then
1512   AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1513                  [AC_TRY_X_COMPILE([#include <stdlib.h>
1514                                     #include <unistd.h>
1515                                     #include <sys/types.h>
1516                                     #include <pwd.h>
1517                                     #include <hpsecurity.h>
1518                                     #include <prot.h>],
1519                       [struct s_passwd *p = getspwnam("nobody");
1520                        const char *pw = p->pw_passwd;],
1521                       [ac_cv_hpux_passwd=yes],
1522                       [ac_cv_hpux_passwd=no])])
1523   if test "$ac_cv_hpux_passwd" = yes; then
1524     have_shadow_hpux=yes
1525     have_shadow=yes
1526     need_setuid=yes
1527
1528     # on HPUX, bigcrypt is in -lsec
1529     AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1530   fi
1531 fi
1532
1533
1534 ###############################################################################
1535 #
1536 #       Check for FreeBSD-style shadow passwords.
1537 #
1538 #       On FreeBSD, getpwnam() and friends work just like on non-shadow-
1539 #       password systems -- except you only get stuff in the pw_passwd field
1540 #       if the running program is setuid.  So, guess that we've got this
1541 #       lossage to contend with if /etc/master.passwd exists, and default to
1542 #       a setuid installation.
1543 #
1544 ###############################################################################
1545
1546 if test "$with_shadow" = yes ; then
1547   AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1548                  [if test -f /etc/master.passwd ; then
1549                     ac_cv_master_passwd=yes
1550                   else
1551                     ac_cv_master_passwd=no
1552                   fi])
1553   if test "$ac_cv_master_passwd" = yes; then
1554     need_setuid=yes
1555   fi
1556 fi
1557
1558
1559 ###############################################################################
1560 #
1561 #       Check for traditional (ha!) shadow passwords.
1562 #
1563 ###############################################################################
1564
1565 if test "$with_shadow" = yes ; then
1566   AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1567                  [AC_TRY_X_COMPILE([#include <stdlib.h>
1568                                     #include <unistd.h>
1569                                     #include <sys/types.h>
1570                                     #include <pwd.h>
1571                                     #include <shadow.h>],
1572                       [struct spwd *p = getspnam("nobody");
1573                        const char *pw = p->sp_pwdp;],
1574                       [ac_cv_shadow=yes],
1575                       [ac_cv_shadow=no])])
1576   if test "$ac_cv_shadow" = yes; then
1577     have_shadow=yes
1578     need_setuid=yes
1579
1580     # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1581     have_getspnam=no
1582     AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1583     if test "$have_getspnam" = no ; then
1584       AC_CHECK_LIB(gen, getspnam,
1585                    [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1586     fi
1587   fi
1588 fi
1589
1590
1591 ###############################################################################
1592 #
1593 #       Check for other libraries needed for non-shadow passwords.
1594 #
1595 ###############################################################################
1596
1597 if test "$enable_locking" = yes ; then
1598
1599   # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1600   have_crypt=no
1601   AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1602   if test "$have_crypt" = no ; then
1603     AC_CHECK_LIB(crypt, crypt,
1604                  [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1605   fi
1606 fi
1607
1608
1609 # Most of the above shadow mechanisms will have set need_setuid to yes,
1610 # if they were found.  But, on some systems, we need setuid even when
1611 # using plain old vanilla passwords.
1612 #
1613 if test "$enable_locking" = yes ; then
1614   case "$host" in
1615     *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1616       need_setuid=yes
1617     ;;
1618   esac
1619 fi
1620
1621
1622 if test "$have_shadow_adjunct" = yes ; then
1623   AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1624 elif test "$have_shadow_enhanced" = yes ; then
1625   AC_DEFINE(HAVE_ENHANCED_PASSWD)
1626 elif test "$have_shadow_hpux" = yes ; then
1627   AC_DEFINE(HAVE_HPUX_PASSWD)
1628 elif test "$have_shadow" = yes ; then
1629   AC_DEFINE(HAVE_SHADOW_PASSWD)
1630 fi
1631
1632
1633 ###############################################################################
1634 #
1635 #       Check for -lXm.
1636 #
1637 ###############################################################################
1638
1639 have_motif=no
1640 with_motif_req=unspecified
1641 AC_ARG_WITH(motif,[
1642 User interface options:
1643
1644   --with-motif            Use the Motif toolkit for the user interface.],
1645   [with_motif="$withval"; with_motif_req="$withval"],[with_motif=yes])
1646
1647 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
1648
1649 if test "$with_motif" != yes -a "$with_motif" != no ; then
1650   echo "error: must be yes or no: --with-motif=$with_motif"
1651   exit 1
1652 fi
1653
1654 if test "$with_motif" = yes; then
1655   have_motif=no
1656   AC_CHECK_X_HEADER(Xm/Xm.h,
1657                     [have_motif=yes
1658                      AC_DEFINE(HAVE_MOTIF)
1659                      MOTIF_LIBS="$MOTIF_LIBS -lXm"])
1660 fi
1661
1662
1663 if test "$have_motif" = yes; then
1664   AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)])
1665 fi
1666
1667
1668 ###############################################################################
1669 #
1670 #       Check for -lgtk (and Gnome stuff)
1671 #
1672 ###############################################################################
1673
1674 have_gtk=no
1675 with_gtk_req=unspecified
1676 AC_ARG_WITH(gtk,
1677 [  --with-gtk              Use the Gtk toolkit for the user interface.],
1678   [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
1679
1680 # if --with-gtk=/directory/ was specified, remember that directory so that
1681 # we can also look for the `gtk-config' program in that directory.
1682 case "$with_gtk" in
1683   /*)
1684     gtk_dir="$with_gtk"
1685     ;;
1686   *)
1687     gtk_dir=""
1688     ;;
1689 esac
1690
1691 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
1692
1693 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
1694   echo "error: must be yes or no: --with-gtk=$with_gtk"
1695   exit 1
1696 fi
1697
1698 have_gnome=no
1699 with_gnome_req=unspecified
1700 AC_ARG_WITH(gnome,
1701 [  --with-gnome            Include support for the Gnome Control Center.],
1702   [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
1703
1704 # if --with-gnome=/directory/ was specified, remember that directory so that
1705 # we can also look for the `gnome-config' program in that directory.
1706 case "$with_gnome" in
1707   /*)
1708     gnome_dir="$with_gnome"
1709     ;;
1710   *)
1711     gnome_dir=""
1712     ;;
1713 esac
1714
1715 HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome)
1716
1717 if test "$with_gnome" != yes -a "$with_gnome" != no ; then
1718   echo "error: must be yes or no: --with-gnome=$with_gnome"
1719   exit 1
1720 fi
1721
1722
1723 jurassic_gtk=no
1724 if test "$with_gtk" = yes; then
1725   have_gtk=no
1726   
1727   # if the user specified --with-gtk=/foo/ then look in /foo/bin/
1728   # for glib-config and gtk-config.
1729   #
1730   gtk_path="$PATH"
1731
1732   if test ! -z "$gtk_dir"; then
1733     # canonicalize slashes.
1734     gtk_dir=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
1735     gtk_path="$gtk_dir:$gtk_path"
1736   fi
1737
1738   if test ! -z "gnome_dir"; then
1739     # canonicalize slashes.
1740     gnome_dir=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
1741     gtk_path="$gnome_dir:$gtk_path"
1742   fi
1743
1744   AC_PATH_PROGS(glib_config,  glib12-config glib-config,,  $gtk_path)
1745   AC_PATH_PROGS(gtk_config,   gtk12-config  gtk-config,,   $gtk_path)
1746
1747   if test "$with_gnome" = yes; then
1748     AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
1749   fi
1750
1751   if test -n "$glib_config" -a  -n "gtk_config" ; then
1752     have_gtk=yes
1753     if test "$with_gnome" = yes -a -n "$gnome_config" ; then
1754       have_gnome=yes
1755     fi
1756   fi
1757
1758   if test "$have_gtk" = yes; then
1759     AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
1760                    [ac_cv_gtk_version_string=`$gtk_config --version`])
1761     ac_gtk_version_string=$ac_cv_gtk_version_string
1762     # M4 sucks!!
1763     changequote(X,Y)
1764     maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
1765     min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
1766     changequote([,])
1767     ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
1768     if test -z "$ac_gtk_version"; then
1769       ac_gtk_version=unknown
1770       ac_gtk_version_string=unknown
1771     fi
1772     if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
1773     then
1774       have_gtk=no
1775       have_gnome=no
1776       jurassic_gtk=yes
1777     fi
1778   fi
1779
1780   if test "$have_gtk" = yes; then
1781     AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
1782                    [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
1783     AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
1784                    [ac_cv_gtk_config_libs=`$gtk_config --libs`])
1785   fi
1786   ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
1787   ac_gtk_config_libs=$ac_cv_gtk_config_libs
1788
1789   # Check for Gnome Capplet support.
1790   #
1791   if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1792     gnome_config_libs="capplet gnomeui"
1793     AC_MSG_CHECKING(for Gnome capplet includes)
1794     AC_CACHE_VAL(ac_cv_gnome_config_cflags,
1795       [if ( $gnome_config --cflags $gnome_config_libs 2>&1 >/dev/null | \
1796             grep Unknown >/dev/null ) ; then
1797          ac_cv_gnome_config_cflags=''
1798        else
1799          ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
1800        fi])
1801     ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
1802     if test "$ac_gnome_config_cflags" = "" ; then
1803       have_gnome=no
1804       AC_MSG_RESULT(no)
1805     else
1806       AC_MSG_RESULT($ac_gnome_config_cflags)
1807     fi
1808   fi
1809
1810   if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1811     AC_MSG_CHECKING(for Gnome capplet libs)
1812     AC_CACHE_VAL(ac_cv_gnome_config_libs,
1813       [if ( $gnome_config --libs $gnome_config_libs 2>&1 >/dev/null |
1814             grep Unknown >/dev/null ) ; then
1815          ac_cv_gnome_config_libs=''
1816        else
1817          ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
1818        fi])
1819     ac_gnome_config_libs=$ac_cv_gnome_config_libs
1820     if test "$ac_gnome_config_libs" = "" ; then
1821       have_gnome=no
1822       AC_MSG_RESULT(no)
1823     else
1824       AC_MSG_RESULT($ac_gnome_config_libs)
1825     fi
1826   fi
1827
1828   GNOME_DATADIR=""
1829   if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1830     GNOME_DATADIR=`$gnome_config --datadir`
1831   fi
1832
1833
1834   # If we have Gnome, then override the gtk-config values with 
1835   # the gnome-config values.
1836   #
1837   if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1838     ac_gtk_config_cflags=$ac_gnome_config_cflags
1839     ac_gtk_config_libs=$ac_gnome_config_libs
1840     AC_DEFINE(HAVE_CRAPPLET)
1841   fi
1842
1843
1844   if test "$have_gtk" = yes; then
1845     INCLUDES="$INCLUDES $ac_gtk_config_cflags"
1846     GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
1847     AC_DEFINE(HAVE_GTK)
1848   fi
1849
1850 fi
1851
1852
1853 # Check for the Gnome Help Browser.
1854 #
1855 if test "$have_gnome" = yes; then
1856   AC_CHECK_PROG(have_gnome_help, gnome-help-browser, yes, no)
1857 else
1858   have_gnome_help=no
1859 fi
1860
1861
1862 ###############################################################################
1863 #
1864 #       Checking whether Motif is really Lesstif.
1865 #
1866 ###############################################################################
1867
1868 have_lesstif=no
1869 if test "$have_motif" = yes ; then
1870   AC_CACHE_CHECK([whether Motif is really LessTif], 
1871                  ac_cv_have_lesstif,
1872                  [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
1873                                    [long vers = LesstifVersion;],
1874                                    [ac_cv_have_lesstif=yes],
1875                                    [ac_cv_have_lesstif=no])])
1876   have_lesstif=$ac_cv_have_lesstif
1877 fi
1878
1879
1880 lesstif_version=unknown
1881 lesstif_version_string=unknown
1882
1883 if test "$have_lesstif" = yes ; then
1884   ltv=unknown
1885   echo unknown > conftest-lt
1886   AC_CACHE_CHECK([LessTif version number],
1887                  ac_cv_lesstif_version_string,
1888       [AC_TRY_X_RUN([#include <stdio.h>
1889                      #include <Xm/Xm.h>
1890                      int main() {
1891                        FILE *f = fopen("conftest-lt", "w");
1892                        if (!f) exit(1);
1893                        fprintf(f, "%d %d.%d\n", LesstifVersion,
1894                           LESSTIF_VERSION, LESSTIF_REVISION);
1895                        fclose(f);
1896                        exit(0);
1897                      }],
1898                     [ltv=`cat conftest-lt`
1899                      ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
1900                      ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
1901                     [ac_cv_lesstif_version=unknown
1902                      ac_cv_lesstif_version_string=unknown],
1903                     [ac_cv_lesstif_version=unknown
1904                      ac_cv_lesstif_version_string=unknown])])
1905   rm -f conftest-lt
1906   lesstif_version=$ac_cv_lesstif_version
1907   lesstif_version_string=$ac_cv_lesstif_version_string
1908
1909 fi
1910
1911
1912 if test "$have_motif" = yes ; then
1913   mtv=unknown
1914   echo unknown > conftest-mt
1915   AC_CACHE_CHECK([Motif version number],
1916                  ac_cv_motif_version_string,
1917       [AC_TRY_X_RUN([#include <stdio.h>
1918                      #include <Xm/Xm.h>
1919                      int main() {
1920                        FILE *f = fopen("conftest-mt", "w");
1921                        if (!f) exit(1);
1922                        fprintf(f, "%d %d.%d\n", XmVersion,
1923                           XmVERSION, XmREVISION);
1924                        fclose(f);
1925                        exit(0);
1926                      }],
1927                     [mtv=`cat conftest-mt`
1928                      ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
1929                      ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
1930                     [ac_cv_motif_version=unknown
1931                      ac_cv_motif_version_string=unknown],
1932                     [ac_cv_motif_version=unknown
1933                      ac_cv_motif_version_string=unknown])])
1934   rm -f conftest-mt
1935   motif_version=$ac_cv_motif_version
1936   motif_version_string=$ac_cv_motif_version_string
1937
1938 fi
1939
1940
1941 ###############################################################################
1942 #
1943 #       Checking whether Motif requires -lXpm.
1944 #
1945 #       If this is Motif 2.x, and we have XPM, then link against XPM as well.
1946 #       The deal is, Motif 2.x requires XPM -- but it's a compilation option
1947 #       of the library whether to build the XPM code into libXm, or whether
1948 #       to rely on an external libXm.  So the only way to tell whether XPM is
1949 #       a link-time requirement is to examine libXm.a, which is very
1950 #       difficult to do in an autoconf script.  So... if it's Motif 2.x, we
1951 #       always link against XPM if the XPM lib exists (and this will be a
1952 #       no-op if libXm happens to already have the XPM code in it.)
1953 #
1954 ###############################################################################
1955
1956 motif_requires_xpm=no
1957 if test "$have_motif" = yes ; then
1958    AC_MSG_CHECKING(whether Motif requires XPM)
1959    if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
1960    then
1961      motif_requires_xpm=yes
1962      AC_MSG_RESULT(maybe)
1963    else
1964      AC_MSG_RESULT(no)
1965    fi
1966 fi
1967
1968
1969 ###############################################################################
1970 #
1971 #       Checking whether Motif requires -lXp.
1972 #
1973 #       Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
1974 #       Extension".   Why this extension isn't in -lXext with all the others,
1975 #       I have no idea.
1976 #
1977 ###############################################################################
1978
1979 have_xp_ext=no
1980 if test "$have_motif" = yes ; then
1981    have_xp_ext=no
1982    AC_CHECK_X_LIB(Xp, XpQueryExtension,
1983                   [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
1984                   [true], -lX11 -lXext -lm)
1985 fi
1986
1987
1988 ###############################################################################
1989 #
1990 #       Checking whether Motif requires -lXintl (for _Xsetlocale.)
1991 #
1992 ###############################################################################
1993
1994 have_xintl=no
1995 if test "$have_motif" = yes ; then
1996   AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
1997                  -lX11 -lXext -lm)
1998   if test "$have_xintl" = yes; then
1999     MOTIF_LIBS="$MOTIF_LIBS -lXintl"
2000   fi
2001 fi
2002
2003
2004 ###############################################################################
2005 #
2006 #       Check for -lGL or -lMesaGL.
2007 #
2008 ###############################################################################
2009
2010 have_gl=no
2011 ac_have_mesa_gl=no
2012 with_gl_req=unspecified
2013 gl_halfassed=no
2014 AC_ARG_WITH(gl,[
2015 Graphics options:
2016
2017   --with-gl               Build those demos which depend on OpenGL.],
2018   [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
2019
2020 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
2021
2022 ac_mesagl_version=unknown
2023 ac_mesagl_version_string=unknown
2024
2025 if test "$with_gl" = yes; then
2026   AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
2027   if test "$have_gl" = yes ; then
2028     AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no)
2029   fi
2030
2031   # If we have the headers, try and figure out which vendor it's from.
2032   #
2033   if test "$have_gl" = yes ; then
2034
2035     # We need to know whether it's MesaGL so that we know which libraries
2036     # to link against.
2037     #
2038     AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
2039       [ac_cv_have_mesa_gl=no
2040        AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
2041       ])
2042     ac_have_mesa_gl=$ac_cv_have_mesa_gl
2043  
2044
2045     gl_lib_1=""
2046     GL_LIBS=""
2047
2048
2049     # Some versions of MesaGL are compiled to require -lpthread.
2050     # So if the Mesa headers exist, and -lpthread exists, then always
2051     # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
2052     #
2053     if test "$ac_have_mesa_gl" = yes; then
2054       AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
2055     fi
2056
2057
2058     # If we have Mesa headers, check to see if we can link against -lMesaGL.
2059     # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
2060     # Else, warn that GL is busted.  (We have the headers, but no libs.)
2061     #
2062
2063     if test "$ac_have_mesa_gl" = yes ; then
2064       AC_CHECK_X_LIB(MesaGL, glXCreateContext, 
2065                      [gl_lib_1="MesaGL"
2066                       GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
2067                      [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
2068     fi
2069
2070     if test "$gl_lib_1" = "" ; then
2071       AC_CHECK_X_LIB(GL, glXCreateContext, 
2072                      [gl_lib_1="GL"
2073                       GL_LIBS="-lGL -lGLU $GL_LIBS"],
2074                      [], -lGLU $GL_LIBS -lX11 -lXext -lm)
2075     fi
2076
2077     if test "$gl_lib_1" = "" ; then
2078       # we have headers, but no libs -- bail.
2079       have_gl=no
2080       ac_have_mesa_gl=no
2081       gl_halfassed=yes
2082     else
2083       # linking works -- we can build the GL hacks.
2084       AC_DEFINE(HAVE_GL)
2085       if test "$ac_have_mesa_gl" = yes ; then
2086         AC_DEFINE(HAVE_MESA_GL)
2087       fi
2088     fi
2089   fi
2090
2091
2092   # Now that we know we have GL headers and libs, do some more GL testing.
2093   #
2094
2095   if test "$have_gl" = yes ; then
2096     # If it's MesaGL, we'd like to issue a warning if the version number
2097     # is less than or equal to 2.6, because that version had a security bug.
2098     #
2099     if test "$ac_have_mesa_gl" = yes; then
2100
2101       AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
2102         [cat > conftest.$ac_ext <<EOF
2103 #line __oline__ "configure"
2104 #include "confdefs.h"
2105 #include <GL/gl.h>
2106 #ifndef MESA_MAJOR_VERSION
2107 # include <GL/xmesa.h>
2108 # define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
2109 # define MESA_MINOR_VERSION XMESA_MINOR_VERSION
2110 #endif
2111 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
2112 EOF
2113
2114          ac_save_CPPFLAGS="$CPPFLAGS"
2115          if test \! -z "$includedir" ; then 
2116            CPPFLAGS="$CPPFLAGS -I$includedir"
2117          fi
2118          CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2119
2120           # M4 sucks!!
2121          changequote(X,Y)
2122          mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \
2123               's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
2124          changequote([,])
2125
2126          rm -f conftest.$ac_ext
2127
2128          CPPFLAGS="$ac_save_CPPFLAGS"
2129
2130          if test "$mglv" = ""; then
2131            ac_mesagl_version=unknown
2132            ac_mesagl_version_string=unknown
2133          else
2134            ac_mesagl_version_string=$mglv
2135            maj=`echo $mglv | sed -n 's/\..*//p'`
2136            min=`echo $mglv | sed -n 's/.*\.//p'`
2137            ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
2138            if test -z "$ac_mesagl_version"; then
2139              ac_mesagl_version=unknown
2140              ac_mesagl_version_string=unknown
2141            fi
2142          fi
2143          ac_cv_mesagl_version=$ac_mesagl_version
2144          ac_cv_mesagl_version_string=$ac_mesagl_version_string
2145       ])
2146       ac_mesagl_version=$ac_cv_mesagl_version
2147       ac_mesagl_version_string=$ac_cv_mesagl_version_string
2148     fi
2149
2150
2151     # Check for OpenGL 1.1 features.
2152     #
2153     AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
2154                    [true], $GL_LIBS -lX11 -lXext -lm)
2155   fi
2156
2157 elif test "$with_gl" != no; then
2158   echo "error: must be yes or no: --with-gl=$with_gl"
2159   exit 1
2160 fi
2161
2162
2163 ###############################################################################
2164 #
2165 #       Check for -lgle.
2166 #
2167 ###############################################################################
2168
2169 have_gle=no
2170 with_gle_req=unspecified
2171 gle_halfassed=no
2172 AC_ARG_WITH(gle,
2173 [  --with-gle              Build those demos which depend on GLE
2174                           (the OpenGL "extrusion" library.)],
2175   [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
2176
2177 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
2178
2179 GLE_LIBS=""
2180
2181 if test "$with_gle" = yes; then
2182
2183   AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no)
2184   if test "$have_gle3" = yes ; then
2185     have_gle=yes;
2186   else
2187     AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no)
2188     if test "$have_gle" = yes ; then
2189       AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no)
2190     fi
2191   fi
2192
2193   if test "$have_gle" = yes ; then
2194     have_gle=no
2195     gle_halfassed=yes
2196     AC_CHECK_X_LIB(gle, gleCreateGC, 
2197                    [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
2198                    [], $GL_LIBS -lX11 -lXext -lm)
2199   fi
2200   if test "$have_gle" = yes ; then
2201     have_gle=no
2202     gle_halfassed=yes
2203
2204     # sometimes the libmatrix stuff is included in libgle.  look there first.
2205 #
2206 # I don't get it.  For some reason, this test passes on SGI, as if
2207 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
2208 # Yet the link is succeeding.  Why???
2209 #
2210 #    AC_CHECK_X_LIB(gle, uview_direction_d, 
2211 #                   [have_gle=yes; gle_halfassed=no],
2212 #                   [], $GL_LIBS -lX11 -lXext -lm)
2213
2214     # As of GLE 3 this is in libgle, and has changed name to uview_direction!
2215     # *sigh*
2216     if test "$have_gle3" = yes ; then
2217       AC_CHECK_X_LIB(gle, uview_direction, 
2218                      [have_gle=yes; gle_halfassed=no],
2219                     [], $GL_LIBS -lX11 -lXext -lm)
2220     fi
2221     # if it wasn't in libgle, then look in libmatrix.
2222     if test "$have_gle" = no ; then
2223       AC_CHECK_X_LIB(matrix, uview_direction_d, 
2224                      [have_gle=yes; gle_halfassed=no;
2225                       GLE_LIBS="$GLE_LIBS -lmatrix"],
2226                     [], $GL_LIBS -lX11 -lXext -lm)
2227     fi
2228   fi
2229
2230   if test "$have_gle" = yes ; then
2231     AC_DEFINE(HAVE_GLE)
2232     if test "$have_gle3" = yes ; then
2233       AC_DEFINE(HAVE_GLE3)
2234     fi
2235   fi
2236
2237 elif test "$with_gle" != no; then
2238   echo "error: must be yes or no: --with-gle=$with_gle"
2239   exit 1
2240
2241 fi
2242
2243
2244
2245 ###############################################################################
2246 #
2247 #       Check for -lXpm.
2248 #
2249 ###############################################################################
2250
2251 have_xpm=no
2252 with_xpm_req=unspecified
2253 AC_ARG_WITH(xpm,
2254 [  --with-xpm              Include support for XPM files in some demos.],
2255   [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2256
2257 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2258
2259 if test "$with_xpm" = yes; then
2260   AC_CHECK_X_HEADER(X11/xpm.h,
2261                    [have_xpm=yes
2262                     AC_DEFINE(HAVE_XPM)
2263                     XPM_LIBS="-lXpm"])
2264 elif test "$with_xpm" != no; then
2265   echo "error: must be yes or no: --with-xpm=$with_xpm"
2266   exit 1
2267 fi
2268
2269 # See comment near $motif_requires_xpm, above.
2270 # Need to do this here, after both Motif and XPM have been checked for.
2271 #
2272 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2273   if test "$motif_requires_xpm" = yes ; then
2274     MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
2275   fi
2276 fi
2277
2278
2279 ###############################################################################
2280 #
2281 #       Check for the XSHM server extension.
2282 #
2283 ###############################################################################
2284
2285 have_xshm=no
2286 with_xshm_req=unspecified
2287 AC_ARG_WITH(xshm-ext,
2288 [  --with-xshm-ext         Include support for the XSHM extension.],
2289   [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
2290
2291 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
2292
2293 if test "$with_xshm" = yes; then
2294
2295   # first check for Xshm.h.
2296   AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes])
2297
2298   # if that succeeded, then check for sys/ipc.h.
2299   if test "$have_xshm" = yes; then
2300     have_xshm=no
2301     AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
2302   fi
2303
2304   # if that succeeded, then check for sys/shm.h.
2305   if test "$have_xshm" = yes; then
2306     have_xshm=no
2307     AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
2308   fi
2309
2310   # AIX is pathological, as usual: apparently it's normal for the Xshm headers
2311   # to exist, but the library code to not exist.  And even better, the library
2312   # code is in its own library: libXextSam.a.  So, if we're on AIX, and that
2313   # lib doesn't exist, give up.  (This lib gets added to X_EXTRA_LIBS, and
2314   # that's not quite right, but close enough.)
2315   #
2316   case "$host" in
2317     *-aix*)
2318       if [ `uname -v` -eq 3 ]; then
2319         have_xshm=no
2320         AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
2321                        [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
2322                        [true], -lX11 -lXext -lm)
2323       fi
2324     ;;
2325   esac
2326
2327   # if that succeeded, then we've really got it.
2328   if test "$have_xshm" = yes; then
2329     AC_DEFINE(HAVE_XSHM_EXTENSION)
2330   fi
2331
2332 elif test "$with_xshm" != no; then
2333   echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
2334   exit 1
2335 fi
2336
2337
2338 ###############################################################################
2339 #
2340 #       Check for the DOUBLE-BUFFER server extension.
2341 #
2342 ###############################################################################
2343
2344 have_xdbe=no
2345 with_xdbe_req=unspecified
2346 AC_ARG_WITH(xdbe-ext,
2347 [  --with-xdbe-ext         Include support for the DOUBLE-BUFFER extension.],
2348   [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
2349
2350 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
2351
2352 if test "$with_xdbe" = yes; then
2353
2354   AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes])
2355   if test "$have_xdbe" = yes; then
2356     AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)    
2357   fi
2358
2359 elif test "$with_xdbe" != no; then
2360   echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
2361   exit 1
2362 fi
2363
2364
2365 ###############################################################################
2366 #
2367 #       Check for the SGI XReadDisplay server extension.
2368 #
2369 #       Note: this has to be down here, rather than up with the other server
2370 #       extension tests, so that the output of `configure --help' is in the
2371 #       right order.  Arrgh!
2372 #
2373 ###############################################################################
2374
2375 have_readdisplay=no
2376 with_readdisplay_req=unspecified
2377 AC_ARG_WITH(readdisplay,
2378 [  --with-readdisplay      Include support for the XReadDisplay extension.],
2379   [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
2380   [with_readdisplay=yes])
2381
2382 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
2383
2384 if test "$with_readdisplay" = yes; then
2385   AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
2386                     AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION))
2387 elif test "$with_readdisplay" != no; then
2388   echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
2389   exit 1
2390 fi
2391
2392
2393 ###############################################################################
2394 #
2395 #       Check for a program to generate random text.
2396 #
2397 #       Zippy is funnier than the idiocy generally spat out by `fortune',
2398 #       so try to find that, by invoking Emacs and asking it where its 
2399 #       libexec directory is ("yow" lives in there.)
2400 #
2401 #       If that doesn't work, see if fortune, zippy, or yow are on $PATH,
2402 #       and if so, use them.
2403 #
2404 #       If that doesn't work, look in /usr/games, and if it's there, use
2405 #       the full pathname.
2406 #
2407 ###############################################################################
2408
2409 with_zippy_req=""
2410 AC_ARG_WITH(zippy,[
2411   --with-zippy=PROGRAM    Some demos are able to run an external program and
2412                           display its text; this names the program to use by
2413                           default (though it can be overridden with X
2414                           resources.)  If you don't specify this, the default
2415                           is to use \"yow\" from the Emacs distribution (if you
2416                           have it) or else to use \"fortune\".],
2417   [with_zippy_req="$withval"; with_zippy="$withval"],[with_zippy=yes])
2418
2419 if test "$with_zippy" = no || test "$with_zippy" = yes ; then
2420   with_zippy=""
2421   with_zippy_req=""
2422 fi
2423
2424 if test -n "$with_zippy_req" ; then
2425   ac_cv_zippy_program=""
2426   case "$with_zippy_req" in
2427     /*)
2428       AC_MSG_CHECKING([for $with_zippy_req])
2429       if test -x "$with_zippy_req" ; then
2430         AC_MSG_RESULT(yes)
2431       else
2432         AC_MSG_RESULT(no)
2433         with_zippy=""
2434       fi
2435     ;;
2436     *)
2437       # don't cache
2438       unset ac_cv_path_zip2
2439       AC_PATH_PROG(zip2, $with_zippy_req, [])
2440       if test "$zip2" = ""; then
2441         with_zippy=""
2442       fi
2443     ;;
2444   esac
2445   ac_cv_zippy_program="$with_zippy"
2446
2447 elif test -n "$ac_cv_zippy_program"; then
2448   AC_MSG_RESULT([checking for zippy... (cached) $ac_cv_zippy_program])
2449 fi
2450
2451 if test ! -n "$ac_cv_zippy_program"; then
2452
2453   AC_CHECK_PROGS(emacs_exe, emacs)
2454   AC_CHECK_PROGS(xemacs_exe, xemacs)
2455
2456   ac_cv_zippy_program=""
2457   eargs='-batch -q -nw --eval'
2458
2459   if test -n "$emacs_exe" ; then
2460     AC_MSG_CHECKING([for emacs yow])
2461     #
2462     # get emacs to tell us where the libexec directory is.
2463     #
2464     dir=`$emacs_exe $eargs '(princ (concat exec-directory "\n"))' \
2465          2>/dev/null | tail -1`
2466     dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
2467     #
2468     # try running libexec/yow and see if it exits without error.
2469     #
2470     if test x"$dir" != x -a -x "$dir/yow" ; then
2471       if $dir/yow >&- 2>&- ; then
2472         ac_cv_zippy_program="$dir/yow"
2473         AC_MSG_RESULT($ac_cv_zippy_program)
2474       else
2475         AC_MSG_RESULT(no)
2476       fi
2477     fi
2478   fi
2479
2480   if test -z "$ac_cv_zippy_program" ; then
2481     AC_MSG_CHECKING([for xemacs yow])
2482     if test -n "$xemacs_exe" ; then
2483       #
2484       # get xemacs to tell us where the libexec directory is.
2485       #
2486       dir=`$xemacs_exe $eargs '(princ (concat exec-directory "\n"))' \
2487            2>/dev/null | tail -1`
2488       dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
2489       #
2490       # try running libexec/yow and see if it exits without error.
2491       #
2492       if test x"$dir" != x -a -x "$dir/yow" ; then
2493         if $dir/yow >&- 2>&- ; then
2494           ac_cv_zippy_program="$dir/yow"
2495           AC_MSG_RESULT($ac_cv_zippy_program)
2496         else
2497           #
2498           # in some xemacs installations, the pathname of the yow.lines file
2499           # isn't hardcoded into the yow executable, and must be passed on 
2500           # the command line.  See if it's in libexec/../etc/.
2501
2502           # M4 sucks!!
2503           changequote(X,Y)
2504           dir_up=`echo "$dir" | sed 's@/[^/]*$@@'`
2505           changequote([,])
2506
2507           yowlines="$dir_up/etc/yow.lines"
2508           if $dir/yow -f $yowlines >&- 2>&- ; then
2509             ac_cv_zippy_program="$dir/yow -f $yowlines"
2510             AC_MSG_RESULT($ac_cv_zippy_program)
2511           else
2512             #
2513             # In newer XEmacs releases, yow.lines is in a different place,
2514             # and the easiest way to get it is by calling the new function
2515             # `locate-data-file'.
2516             #
2517             yowlines=`$xemacs_exe $eargs \
2518               '(princ (concat (locate-data-file "yow.lines") "\n"))' \
2519               2>/dev/null | tail -1`
2520             if $dir/yow -f $yowlines >&- 2>&- ; then
2521               ac_cv_zippy_program="$dir/yow -f $yowlines"
2522               AC_MSG_RESULT($ac_cv_zippy_program)
2523             else
2524               AC_MSG_RESULT(no)
2525             fi
2526           fi
2527         fi
2528       fi
2529     fi
2530   fi
2531
2532   # if that didn't work, try for some other programs...
2533   if test -z "$ac_cv_zippy_program" ; then
2534     fortune=''
2535     AC_CHECK_PROGS(fortune, [fortune zippy yow])
2536     # if that didn't work, try for those programs in /usr/games...
2537     if test -z "$fortune" ; then
2538       AC_PATH_PROGS(fortune, [fortune zippy yow], fortune,
2539                     /usr/games:/usr/local/games:$PATH)
2540     fi
2541   fi
2542 fi
2543
2544 if test -z "$ac_cv_zippy_program" ; then
2545   ac_cv_zippy_program=fortune
2546 fi
2547
2548 AC_DEFINE_UNQUOTED(ZIPPY_PROGRAM, "$ac_cv_zippy_program")
2549
2550
2551 ###############################################################################
2552 #
2553 #       Check whether it's ok to install some hacks as setuid (e.g., "sonar")
2554 #       This should be safe, but let's give people the option.
2555 #
2556 ###############################################################################
2557
2558 setuid_hacks_default=no
2559 setuid_hacks="$setuid_hacks_default"
2560 AC_ARG_WITH(setuid-hacks,
2561 [  --with-setuid-hacks     Allow some demos to be installed \`setuid root'
2562                           (which is needed in order to ping other hosts.)
2563 ],
2564   [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
2565
2566 HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks)
2567
2568 if test "$setuid_hacks" = yes; then
2569   true
2570 elif test "$setuid_hacks" != no; then
2571   echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks"
2572   exit 1
2573 fi
2574
2575
2576 ###############################################################################
2577 #
2578 #       Done testing.  Now, set up the various -I and -L variables,
2579 #       and decide which GUI program to build by default.
2580 #
2581 ###############################################################################
2582
2583 DEPEND=makedepend
2584 DEPEND_FLAGS=
2585 DEPEND_DEFINES=
2586
2587
2588 if test \! -z "$includedir" ; then 
2589   INCLUDES="$INCLUDES -I$includedir"
2590 fi
2591
2592 if test \! -z "$libdir" ; then
2593   LDFLAGS="$LDFLAGS -L$libdir"
2594 fi
2595
2596
2597 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2598 ALL_DEMO_PROGRAMS=
2599 if test "$have_motif" = yes; then
2600   PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2601   ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2602 fi
2603 if test "$have_gtk" = yes; then
2604   PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
2605   ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2606 fi
2607
2608
2609 if test "$have_kerberos" = yes; then
2610   PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
2611   PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
2612 fi
2613 if test "$have_pam" = yes; then
2614   PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
2615   PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
2616   INSTALL_PAM="install-pam"
2617 fi
2618   PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
2619   PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
2620
2621
2622 if test "$enable_locking" = yes; then
2623   LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
2624   LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
2625 else
2626   LOCK_SRCS='$(NOLOCK_SRCS_1)'
2627   LOCK_OBJS='$(NOLOCK_OBJS_1)'
2628 fi
2629
2630 INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)'
2631
2632 if test "$need_setuid" = yes; then
2633   NEED_SETUID=yes
2634 else
2635   NEED_SETUID=no
2636 fi
2637
2638 if test "$setuid_hacks" = yes; then
2639   SETUID_HACKS=yes
2640 else
2641   SETUID_HACKS=no
2642 fi
2643
2644 tab='   '
2645 if test "$have_gl" = yes; then
2646   GL_EXES='$(GL_EXES)'
2647   GL_UTIL_EXES='$(GL_UTIL_EXES)'
2648   GL_MEN='$(GL_MEN)'
2649   GL_KLUDGE="${tab}  "
2650 else
2651   GL_KLUDGE="-${tab}  "
2652 fi
2653
2654 if test "$have_gle" = yes; then
2655   GLE_EXES='$(GLE_EXES)'
2656   GLE_MEN='$(GLE_MEN)'
2657   GLE_KLUDGE="${tab}   "
2658 else
2659   GLE_KLUDGE="-${tab}   "
2660 fi
2661
2662
2663 # Another substitution in the XScreenSaver.ad.in file:
2664 #
2665 if test "$have_gnome_help" = yes; then
2666   GNOMEHELP_Y=''
2667   GNOMEHELP_N='!    '
2668 else
2669   GNOMEHELP_Y='!    '
2670   GNOMEHELP_N=''
2671 fi
2672
2673
2674 ###############################################################################
2675 #
2676 #       Perform substitutions and write Makefiles.
2677 #
2678 ###############################################################################
2679
2680 AC_SUBST(INCLUDES)
2681
2682 AC_SUBST(PREFERRED_DEMO_PROGRAM)
2683 AC_SUBST(ALL_DEMO_PROGRAMS)
2684 AC_SUBST(SAVER_LIBS)
2685 AC_SUBST(MOTIF_LIBS)
2686 AC_SUBST(GTK_LIBS)
2687 AC_SUBST(HACK_LIBS)
2688 AC_SUBST(XPM_LIBS)
2689 AC_SUBST(GL_LIBS)
2690 AC_SUBST(GLE_LIBS)
2691 AC_SUBST(XDPMS_LIBS)
2692 AC_SUBST(PASSWD_LIBS)
2693 AC_SUBST(INSTALL_SETUID)
2694 AC_SUBST(SETUID_HACKS)
2695 AC_SUBST(INSTALL_DIRS)
2696 AC_SUBST(NEED_SETUID)
2697 AC_SUBST(INSTALL_PAM)
2698
2699 AC_SUBST(PASSWD_SRCS)
2700 AC_SUBST(PASSWD_OBJS)
2701 AC_SUBST(XMU_SRCS)
2702 AC_SUBST(XMU_OBJS)
2703 AC_SUBST(XMU_LIBS)
2704 AC_SUBST(SAVER_GL_SRCS)
2705 AC_SUBST(SAVER_GL_OBJS)
2706 AC_SUBST(SAVER_GL_LIBS)
2707 AC_SUBST(LOCK_SRCS)
2708 AC_SUBST(LOCK_OBJS)
2709 AC_SUBST(GL_EXES)
2710 AC_SUBST(GL_UTIL_EXES)
2711 AC_SUBST(GL_MEN)
2712 AC_SUBST(GL_KLUDGE)
2713 AC_SUBST(GLE_EXES)
2714 AC_SUBST(GLE_MEN)
2715 AC_SUBST(GLE_KLUDGE)
2716 AC_SUBST(GNOMEHELP_Y)
2717 AC_SUBST(GNOMEHELP_N)
2718 AC_SUBST(HACKDIR)
2719 AC_SUBST(GNOME_DATADIR)
2720
2721 APPDEFAULTS=$ac_x_app_defaults
2722 AC_SUBST(APPDEFAULTS)
2723
2724 AC_SUBST(DEPEND)
2725 AC_SUBST(DEPEND_FLAGS)
2726 AC_SUBST(DEPEND_DEFINES)
2727 AC_SUBST(PERL)
2728
2729 AC_OUTPUT(Makefile
2730           utils/Makefile
2731           driver/Makefile
2732           hacks/Makefile
2733           hacks/glx/Makefile
2734           driver/XScreenSaver.ad)
2735
2736 ###############################################################################
2737 #
2738 #       Print some warnings at the end.
2739 #
2740 ###############################################################################
2741
2742 warn_prefix_1="    Warning:"
2743 warn_prefix_2="       Note:"
2744 warn_prefix="$warn_prefix_1"
2745
2746 warning=no
2747 warnsep='    #################################################################'
2748
2749 warnpre() {
2750   if test "$warning" = no ; then
2751     echo '' ; echo "$warnsep" ; echo ''
2752     warning=yes
2753   fi
2754 }
2755
2756 warn() {
2757   warnpre
2758   if test "$warning" = long ; then echo '' ; fi
2759   warning=yes
2760   rest="$@"
2761   echo "$warn_prefix $rest"
2762 }
2763
2764 warnL() {
2765   was=$warning
2766   warnpre
2767   warning=yes
2768   if test "$was" != no ; then echo '' ; fi
2769   rest="$@"
2770   echo "$warn_prefix $rest"
2771 }
2772
2773 warn2() {
2774   rest="$@"
2775   echo "             $rest"
2776   warning=long
2777 }
2778
2779 note() {
2780   warn_prefix="$warn_prefix_2"
2781   warn $@
2782   warn_prefix="$warn_prefix_1"
2783 }
2784
2785 noteL() {
2786   warn_prefix="$warn_prefix_2"
2787   warnL $@
2788   warn_prefix="$warn_prefix_1"
2789 }
2790
2791
2792 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
2793   warn 'The SGI saver extension was requested, but was not found.'
2794 fi
2795
2796 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
2797   warn 'The MIT saver extension was requested, but was not found.'
2798 fi
2799
2800 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
2801   warn 'The XIdle extension was requested, but was not found.'
2802 fi
2803
2804 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
2805   warn 'The XSHM extension was requested, but was not found.'
2806 fi
2807
2808 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
2809   warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
2810 fi
2811
2812 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
2813   warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
2814 fi
2815
2816 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
2817   warn 'The DPMS extension was requested, but was not found.'
2818 fi
2819
2820 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
2821   warn 'The XF86VMODE extension was requested, but was not found.'
2822 fi
2823
2824 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
2825   warn "Checking of /proc/interrupts was requested, but it's bogus."
2826 fi
2827
2828
2829 if test "$have_motif" = no -a "$have_gtk" = no; then
2830   warnL "Neither Motif nor Gtk seem to be available;"
2831   warn2 "the \`xscreensaver-demo' program requires one of these."
2832
2833 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
2834   warnL "Use of Motif was requested, but it wasn't found;"
2835   warn2 "Gtk will be used instead."
2836
2837 elif test "$jurassic_gtk" = yes ; then
2838
2839   pref_gtk=1.2
2840
2841   v="$ac_gtk_version_string"
2842   if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
2843     warnL "Use of Gtk was requested, but its version number is unknown;"
2844   elif test "$with_gtk_req" = yes ; then
2845     warnL "Use of Gtk was requested, but it is version $v;"
2846   else
2847     warnL "Gtk was found on this system, but it is version $v;"
2848   fi
2849
2850   warn2 "Gtk $pref_gtk or newer is required.  Motif will be used instead."
2851
2852 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
2853   warnL "Use of Gtk was requested, but it wasn't found;"
2854   warn2 "Motif will be used instead."
2855
2856 fi
2857
2858
2859 if test "$with_gnome_req" = yes -a "$have_gnome" = no ; then
2860   warn  'Use of the Gnome Control Panel was requested, but the necessary'
2861   warn2 'headers and/or libraries were not found.'
2862 fi
2863
2864
2865 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
2866
2867   preferred_lesstif=0.86
2868
2869   if test "$lesstif_version" = unknown; then
2870     warnL "Unable to determine the LessTif version number!"
2871     warn2 "Make sure you are using version $preferred_lesstif or newer."
2872     warn2 "See <http://www.lesstif.org/>."
2873
2874   elif test \! $lesstif_version -gt 82; then
2875     warnL "LessTif version $lesstif_version_string is being used."
2876     warn2 "LessTif versions 0.82 and earlier are too buggy to"
2877     warn2 "use with XScreenSaver; it is strongly recommended"
2878     warn2 "that you upgrade to at least version $preferred_lesstif!"
2879     warn2 "See <http://www.lesstif.org/>."
2880   fi
2881 fi
2882
2883
2884
2885 if test "$have_xpm" = no ; then
2886   if test "$with_xpm_req" = yes ; then
2887     warnL 'Use of XPM was requested, but it was not found.'
2888   elif test "$with_xpm_req" = no ; then
2889     noteL 'The XPM library is not being used.'
2890   else
2891     noteL 'The XPM library was not found.'
2892   fi
2893
2894   echo ''
2895   warn2 'Some of the demos will not be as colorful as they'
2896   warn2 'could be.  You might want to consider installing XPM'
2897   warn2 'and re-running configure.  (Remember to delete the'
2898   warn2 'config.cache file first.)  You can find XPM at most'
2899   warn2 'X11 archive sites, such as <http://sunsite.unc.edu/>.'
2900 fi
2901
2902
2903 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
2904   preferred_mesagl=3.4
2905   mgv="$ac_mesagl_version_string"
2906   pgl="$preferred_mesagl"
2907
2908   if test "$ac_mesagl_version" = unknown; then
2909     warnL "Unable to determine the MesaGL version number!"
2910     warn2 "Make sure you are using version $preferred_mesagl or newer."
2911
2912   elif test \! "$ac_mesagl_version" -gt 2006; then
2913     warnL "MesaGL version $mgv is being used.  MesaGL 2.6 and earlier"
2914     warn2 "have a security bug.  It is strongly recommended that you"
2915     warn2 "upgrade to at least version $preferred_mesagl."
2916
2917   elif test \! "$ac_mesagl_version" -gt 3003; then
2918     warnL "MesaGL version $mgv is being used.  That version has some"
2919     warn2 "bugs; it is recommended that you upgrade to $pgl or newer."
2920   fi
2921 fi
2922
2923 if test "$have_gl" = no ; then
2924   if test "$with_gl_req" = yes ; then
2925     warnL 'Use of GL was requested, but it was not found.'
2926   elif test "$with_gl_req" = no ; then
2927     noteL 'The OpenGL 3D library is not being used.'
2928   else
2929     noteL 'The OpenGL 3D library was not found.'
2930   fi
2931
2932   if test "$gl_halfassed" = yes ; then
2933     echo ''
2934     warn2 'More specifically, we found the headers, but not the'
2935     warn2 'libraries; so either GL is half-installed on this'
2936     warn2 "system, or something else went wrong.  The \`config.log'"
2937     warn2 'file might contain some clues.'
2938   fi
2939
2940   echo ''
2941   warn2 'Those demos which use 3D will not be built or installed.'
2942   warn2 'You might want to consider installing OpenGL and'
2943   warn2 're-running configure.  (Remember to delete the'
2944   warn2 "config.cache file first.)  If your vendor doesn't ship"
2945   warn2 'their own implementation of OpenGL, you can get a free'
2946   warn2 'version at <http://www.mesa3d.org/>.  For general OpenGL'
2947   warn2 'info, see <http://www.opengl.org/>.'
2948
2949 fi
2950
2951
2952 if test "$have_gl" = yes -a "$have_gle" = no ; then
2953   if test "$with_gle_req" = yes ; then
2954     noteL 'Use of the GLE (GL Extrusion) library was requested, but'
2955     warn2 'it was not found (though the OpenGL library was found, and'
2956     warn2 'is being used.)'
2957   elif test "$with_gle_req" = no ; then
2958     noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
2959     warn2 'library is not.'
2960   else
2961     noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
2962     warn2 'was not.'
2963   fi
2964
2965   if test "$gle_halfassed" = yes ; then
2966     echo ''
2967     warn2 'More specifically, we found the headers, but not the'
2968     warn2 'libraries; so either GLE is half-installed on this'
2969     warn2 "system, or something else went wrong.  The \`config.log'"
2970     warn2 'file might contain some clues.'
2971   fi
2972
2973   echo ''
2974   warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
2975   warn2 'will not be built or installed.  You might want to consider'
2976   warn2 'installing GLE and re-running configure.  (Remember to delete'
2977   warn2 'the config.cache file first.)  You can find the GLE library'
2978   warn2 'at <http://www.linas.org/gle/>.  For general OpenGL info,'
2979   warn2 'see <http://www.opengl.org/>.'
2980
2981 fi
2982
2983
2984 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
2985   warn 'Use of XReadDisplay was requested, but it was not found.'
2986 fi
2987
2988 if test -n "$with_zippy_req"; then
2989   if test "$with_zippy_req" != "$ac_cv_zippy_program" ; then
2990     warnL "$with_zippy_req was requested as the Zippy program,"
2991     warn2 "but was not found.  The default will be used instead."
2992   fi
2993 fi
2994
2995 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
2996   warn 'Use of Kerberos was requested, but it was not found.'
2997 fi
2998
2999 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
3000   warn 'Use of PAM was requested, but it was not found.'
3001 fi
3002
3003 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
3004   warn 'Use of shadow passwords was requested, but they were not found.'
3005 fi
3006
3007
3008 # You are in a twisty maze of namespaces and syntaxes, all alike.
3009 # Fuck the skull of Unix.
3010 #
3011 eval bindir=${bindir}
3012 eval bindir=${bindir}
3013 eval bindir=${bindir}
3014 eval bindir=${bindir}
3015 eval bindir=${bindir}
3016 eval bindir=${bindir}
3017 eval HACKDIR=${HACKDIR}
3018 eval HACKDIR=${HACKDIR}
3019 eval HACKDIR=${HACKDIR}
3020 eval HACKDIR=${HACKDIR}
3021 eval HACKDIR=${HACKDIR}
3022 eval HACKDIR=${HACKDIR}
3023
3024 # canonicalize slashes.
3025 bindir=`echo  "${bindir}"  | sed 's@/$@@;s@//*@/@g'`
3026 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
3027
3028
3029 # Sanity check the subdir
3030 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
3031   if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
3032     echo ""
3033     AC_MSG_ERROR([\"--enable-subdir=${bindir}/${bad_choice}\" won't work.
3034                    There will be an executable installed with that name, so
3035                    that can't be the name of a directory as well.  Please
3036                    re-configure with a different directory name.])
3037   fi
3038 done
3039
3040
3041 do_dir_warning=no
3042
3043 # Now let's see if there's a previous RPM version already installed.  Blargh!
3044
3045 # M4 sucks!!
3046 changequote(X,Y)
3047 rpmv=`(rpm -qv xscreensaver) 2>&- | \
3048       sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'`
3049 changequote([,])
3050
3051 if test \! -z "$rpmv" ; then
3052   rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
3053   rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
3054
3055   warning=no
3056   warnL "There is already an installed RPM of xscreensaver $rpmv"
3057   warn2 "on this system.  You might want to remove it (with"
3058   warn2 '"rpm -ve xscreensaver") before running "make install"'
3059   warn2 "from this directory."
3060   echo ""
3061   warn2 "Alternately, you could build this version of xscreensaver"
3062   warn2 'as an RPM, and then install that.  An "xscreensaver.spec"'
3063   warn2 "file is included.  See the RPM documentation for more info."
3064   echo ""
3065
3066   if test "$rpmbdir" = "$rpmhdir" ; then
3067     warn2 "The RPM version was installed in $rpmbdir."
3068   else
3069     warn2 "The RPM version was installed in $rpmbdir,"
3070     warn2 "with demos in $rpmhdir."
3071   fi
3072
3073   do_dir_warning=yes
3074 fi
3075
3076
3077 # Warn about egregious GNOME bogosity.
3078 #
3079 #if (rpm -qv control-center) >&- 2>&- ; then
3080 #  warning=no
3081 #  warnL "The Gnome Control Center seems to be installed."
3082 #  echo  ""
3083 #  warn2 "Note that simply installing this version of xscreensaver"
3084 #  warn2 "will not cause GNOME to know about the newly-added display"
3085 #  warn2 "modes -- GNOME is just lame that way.  Instead of using the"
3086 #  warn2 "Control Center, try using the \`xscreensaver-demo' command."
3087 #fi
3088
3089
3090 if test "${bindir}" = "${HACKDIR}" ; then
3091   do_dir_warning=yes
3092 fi
3093
3094 if test "$do_dir_warning" = yes; then
3095   echo ""
3096   echo "$warnsep"
3097   echo ""
3098   echo '      When you run "make install", the "xscreensaver",'
3099   echo '      "xscreensaver-demo", and "xscreensaver-command" executables'
3100   echo "      will be installed in ${bindir}."
3101   echo ""
3102   echo "      The various graphics demos (120+ different executables) will"
3103   echo "      also be installed in ${HACKDIR}."
3104   echo ""
3105   echo "      If you would prefer the demos to be installed elsewhere"
3106   echo "      (for example, in a dedicated directory) you should re-run"
3107   echo "      configure with the --enable-subdir=DIR option.  For more"
3108   echo "      information, run $0 --help."
3109   warning=yes
3110 fi
3111
3112 if test "$warning" != no; then
3113   echo '' ; echo "$warnsep" ; echo ''
3114 fi