http://packetstormsecurity.org/UNIX/admin/xscreensaver-4.03.tar.gz
[xscreensaver] / configure.in
1 # configure.in --- xscreensaver, Copyright (c) 1997-2000 Jamie Zawinski.
2 #
3
4 AC_PREREQ(2.53)
5 AC_INIT(driver/subprocs.c)
6 AC_CONFIG_HEADER(config.h)
7
8 echo "current directory: `pwd`"
9 echo "command line was: $0 $@"
10
11
12 # After checking to see that --srcdir is correct (which AC_INIT does)
13 # check for some random other files that come later in the tar file,
14 # to make sure everything is here.
15 #
16 for d in driver utils hacks hacks/glx ; do
17   f=$srcdir/$d/Makefile.in
18   if test \! -r $f ; then
19     echo ""
20     echo "ERROR: The package is incomplete: $f does not exist."
21     echo "       This probably means that your download was truncated."
22     echo ""
23     exit 1
24   fi
25 done
26
27 ###############################################################################
28 #
29 #       Function to figure out how to run the compiler.
30 #
31 ###############################################################################
32
33 AC_DEFUN(AC_PROG_CC_ANSI,
34  [AC_PROG_CC
35
36   if test -z "$GCC"; then
37     AC_MSG_CHECKING(how to request ANSI compilation)
38     case "$host" in
39       *-hpux* )
40         AC_MSG_RESULT(HPUX: adding -Ae)
41         CC="$CC -Ae"
42       ;;
43       *-aix* )
44         AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e)
45         CC="$CC -qlanglvl=ansi -qhalt=e"
46       ;;
47
48       *-dec-* )
49         AC_MSG_RESULT(DEC: adding -std1 -ieee)
50         CC="$CC -std1"
51       ;;
52
53       *)
54         AC_MSG_RESULT(no idea)
55       ;;
56     esac
57   fi
58
59   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 >/dev/null 2>&1 | \
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 2>/dev/null
156        ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1
157        if test -d dir1/dir2/. ; then
158          ac_cv_install_d_creates_dirs=yes
159        fi
160        cd .. 2>/dev/null
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 2>/dev/null
172          mkdir -p dir1/dir2 >/dev/null 2>&1
173          if test -d dir1/dir2/. ; then
174            ac_cv_mkdir_p_creates_dirs=yes
175          fi
176          cd .. 2>/dev/null
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.checksum = 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 2>/dev/null
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>&1 && 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 .. 2>/dev/null
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/include/$version || test -d /usr/contrib/$version/include
520         then
521            # if contrib exists, use it...
522            if test -d /usr/contrib/$version/include ; then
523              X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include"
524              X_LIBS="$X_LIBS -L/usr/contrib/$version/lib"
525            fi
526            # if the "standard" one exists, use it.
527            if test -d /usr/include/$version ; then
528              X_CFLAGS="$X_CFLAGS -I/usr/include/$version"
529              X_LIBS="$X_LIBS -L/usr/lib/$version"
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/include/Motif2.1 ; then
540         X_CFLAGS="$X_CFLAGS -I/usr/include/Motif2.1"
541         X_LIBS="$X_LIBS -L/usr/lib/Motif2.1"
542       elif test -d /usr/include/Motif1.2 ; then
543         X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2"
544         X_LIBS="$X_LIBS -L/usr/lib/Motif1.2"
545       elif test -d /usr/include/Motif1.1 ; then
546         X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1"
547         X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
548       fi
549
550       # Now let's check for the pseudo-standard locations for OpenGL and XPM.
551       #
552       if test -d /opt/graphics/OpenGL/include ; then
553         # HP-UX 10.20 puts it here
554         X_CFLAGS="-I/opt/graphics/OpenGL/include $X_CFLAGS"
555         X_LIBS="-L/opt/graphics/OpenGL/lib $X_LIBS"
556       elif test -d /opt/Mesa/lib ; then
557         X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS"
558         X_LIBS="-L/opt/Mesa/lib $X_LIBS"
559       fi
560
561
562       if test -d /opt/xpm/lib/X11 ; then
563         X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
564         X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
565       fi
566
567       # On HPUX, default to installing in /opt/xscreensaver/ instead of
568       # in /usr/local/, unless there is already an xscreensaver in
569       # /usr/local/bin/.  This can be overridden with the --prefix arg
570       # to configure.  I'm not sure this is the right thing to do, but
571       # Richard Lloyd says so...
572       #
573       if test \! -x /usr/local/bin/xscreensaver ; then
574         ac_default_prefix=/opt/xscreensaver
575       fi
576
577     ;;
578     *-solaris*)
579
580       # Thanks for not making xmkmf find this by default, pinheads.
581       # And thanks for moving things around again, too.  Is this
582       # really the standard location now?  What happened to the
583       # joke that this kind of thing went in /opt?
584       # cthomp says "answer: CDE (Common Disorganized Environment)"
585       #
586       if test -f /usr/dt/include/Xm/Xm.h ; then
587         X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
588         X_LIBS="$X_LIBS -L/usr/dt/lib -R:/usr/dt/lib"
589
590         # Some versions of Slowlaris Motif require -lgen.  But not all.  Why?
591         AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"])
592       fi
593     ;;
594   esac])
595
596
597
598 ###############################################################################
599 #
600 #       Some utility functions to make checking for X things easier.
601 #
602 ###############################################################################
603
604 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
605 #
606 AC_DEFUN(AC_CHECK_X_HEADER, [
607   ac_save_CPPFLAGS="$CPPFLAGS"
608   if test \! -z "$includedir" ; then 
609     CPPFLAGS="$CPPFLAGS -I$includedir"
610   fi
611   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
612   AC_CHECK_HEADER([$1],[$2],[$3],[$4])
613   CPPFLAGS="$ac_save_CPPFLAGS"])
614
615 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
616 #
617 AC_DEFUN(AC_EGREP_X_HEADER, [
618   ac_save_CPPFLAGS="$CPPFLAGS"
619   if test \! -z "$includedir" ; then 
620     CPPFLAGS="$CPPFLAGS -I$includedir"
621   fi
622   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
623   AC_EGREP_HEADER([$1], [$2], [$3], [$4])
624   CPPFLAGS="$ac_save_CPPFLAGS"])
625
626 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
627 #
628 AC_DEFUN(AC_TRY_X_COMPILE, [
629   ac_save_CPPFLAGS="$CPPFLAGS"
630   if test \! -z "$includedir" ; then 
631     CPPFLAGS="$CPPFLAGS -I$includedir"
632   fi
633   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
634   AC_TRY_COMPILE([$1], [$2], [$3], [$4])
635   CPPFLAGS="$ac_save_CPPFLAGS"])
636
637
638 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
639 # Use this sparingly; it probably doesn't work very well on X programs.
640 #
641 AC_DEFUN(AC_CHECK_X_LIB, [
642   ac_save_CPPFLAGS="$CPPFLAGS"
643   ac_save_LDFLAGS="$LDFLAGS"
644 #  ac_save_LIBS="$LIBS"
645
646   if test \! -z "$includedir" ; then 
647     CPPFLAGS="$CPPFLAGS -I$includedir"
648   fi
649   # note: $X_CFLAGS includes $x_includes
650   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
651
652   if test \! -z "$libdir" ; then
653     LDFLAGS="$LDFLAGS -L$libdir"
654   fi
655   # note: $X_LIBS includes $x_libraries
656   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
657
658   AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
659   CPPFLAGS="$ac_save_CPPFLAGS"
660   LDFLAGS="$ac_save_LDFLAGS"
661 #  LIBS="$ac_save_LIBS"
662   ])
663
664 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
665 # (But not the -L directories!)
666 #
667 AC_DEFUN(AC_TRY_X_RUN, [
668   ac_save_CPPFLAGS="$CPPFLAGS"
669   if test \! -z "$includedir" ; then 
670     CPPFLAGS="$CPPFLAGS -I$includedir"
671   fi
672   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
673   AC_TRY_RUN([$1], [$2], [$3], [$4])
674   CPPFLAGS="$ac_save_CPPFLAGS"])
675
676
677
678 # Usage: HANDLE_X_PATH_ARG([variable_name],
679 #                          [--command-line-option],
680 #                          [descriptive string])
681 #
682 # All of the --with options take three forms:
683 #
684 #   --with-foo (or --with-foo=yes)
685 #   --without-foo (or --with-foo=no)
686 #   --with-foo=/DIR
687 #
688 # This function, HANDLE_X_PATH_ARG, deals with the /DIR case.  When it sees
689 # a directory (string beginning with a slash) it checks to see whether
690 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
691 # as appropriate.
692 #
693 AC_DEFUN(HANDLE_X_PATH_ARG, [
694    case "$[$1]" in
695     yes) ;;
696     no)  ;;
697
698     /*)
699      AC_MSG_CHECKING([for [$3] headers])
700      d=$[$1]/include
701      if test -d $d; then
702        X_CFLAGS="-I$d $X_CFLAGS"
703        AC_MSG_RESULT($d)
704      else
705        AC_MSG_RESULT(not found ($d: no such directory))
706      fi
707
708      AC_MSG_CHECKING([for [$3] libs])
709      d=$[$1]/lib
710      if test -d $d; then
711        X_LIBS="-L$d $X_LIBS"
712        AC_MSG_RESULT($d)
713      else
714        AC_MSG_RESULT(not found ($d: no such directory))
715      fi
716
717      # replace the directory string with "yes".
718      [$1]_req="yes"
719      [$1]=$[$1]_req
720      ;;
721
722     *)
723      echo ""
724      echo "error: argument to [$2] must be \"yes\", \"no\", or a directory."
725      echo "       If it is a directory, then \`DIR/include' will be added to"
726      echo "       the -I list, and \`DIR/lib' will be added to the -L list."
727      exit 1
728      ;;
729    esac
730   ])
731
732
733
734 ###############################################################################
735 ###############################################################################
736 #
737 #       End of function definitions.  Now start actually executing stuff.
738 #
739 ###############################################################################
740 ###############################################################################
741
742 # random compiler setup
743 AC_CANONICAL_HOST
744 AC_PROG_CC_ANSI
745 AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
746 AC_PROG_CPP
747 AC_C_CONST
748 AC_C_INLINE
749 AC_EXEEXT
750 AC_DEMAND_BC
751
752 # stuff for Makefiles
753 AC_PROG_INSTALL
754 AC_PROG_INSTALL_DIRS
755 AC_PROG_MAKE_SET
756
757 # By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'.
758 # That's wrong: it should be set to '${INSTALL}', so that one can
759 # implement the "install-strip" target properly (strip executables,
760 # but do not try to strip scripts.)
761 #
762 INSTALL_SCRIPT='${INSTALL}'
763
764 # random libc stuff
765 AC_HEADER_STDC
766 AC_CHECK_HEADERS(unistd.h)
767 AC_TYPE_MODE_T
768 AC_TYPE_PID_T
769 AC_TYPE_SIZE_T
770 AC_TYPE_SIGNAL
771 AC_HEADER_TIME
772 AC_HEADER_SYS_WAIT
773 AC_HEADER_DIRENT
774 AC_GETTIMEOFDAY_ARGS
775 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk)
776
777 AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
778 AC_CHECK_ICMP
779 AC_CHECK_ICMPHDR
780 AC_CHECK_HEADERS(crypt.h sys/select.h)
781 AC_PROG_PERL
782
783 if test -z "$PERL" ; then
784   # don't let it be blank...
785   PERL=/usr/bin/perl
786 fi
787
788 AC_PATH_XTRA
789
790 if test "$have_x" != yes; then
791   AC_MSG_ERROR(Couldn't find X11 headers/libs.  Try \`$0 --help'.)
792 fi
793
794 AC_PATH_X_APP_DEFAULTS
795 AC_X_RANDOM_PATHS
796 AC_XPOINTER
797
798
799 ###############################################################################
800 #
801 #       Gettext support
802 #
803 ###############################################################################
804
805 AC_PROG_INTLTOOL
806 GETTEXT_PACKAGE=xscreensaver
807 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE")
808 AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE")
809 AC_SUBST(GETTEXT_PACKAGE)
810
811 ALL_LINGUAS="ca de et fr it ko pl pt sv da es fi hu ja no pt pt_BR ru wa"
812 AM_GLIB_GNU_GETTEXT
813
814
815 ###############################################################################
816 #
817 #       Check for -lXmu (some fucked up vendors don't ship it...)
818 #
819 ###############################################################################
820
821 have_xmu=no
822 AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes],,
823                   [#include <stdlib.h>
824                    #include <stdio.h>
825                    #include <X11/Intrinsic.h>])
826 if test "$have_xmu" = no ; then
827   XMU_SRCS='$(UTILS_SRC)/xmu.c'
828   XMU_OBJS='$(UTILS_BIN)/xmu.o'
829   XMU_LIBS=''
830 else
831   XMU_SRCS=''
832   XMU_OBJS=''
833   XMU_LIBS='-lXmu'
834   AC_DEFINE(HAVE_XMU)
835 fi
836
837
838 ###############################################################################
839 #
840 #       Check for the SunOS 4.1.x _get_wmShellWidgetClass bug.
841 #       See comp.windows.x FAQ question 124.  The right fix is to
842 #       get OpenWindows 3.0 patches 100512-02 and 100573-03.
843 #
844 ###############################################################################
845
846 if test "$have_xmu" = yes ; then
847   case "$host" in
848     *-sunos4*)
849     AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
850                    ac_cv_sunos_xmu_bug,
851                    [ac_save_LDFLAGS="$LDFLAGS"
852                     if test \! -z "$x_libraries" ; then
853                       LDFLAGS="$LDFLAGS -L$x_libraries"
854                     fi
855                     # Note: this trick never works!  (Generally.)
856                     # We're only getting away with using AC_TRY_LINK
857                     # with X libraries because we know it's SunOS.
858                     LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
859                     AC_TRY_LINK(,,
860                                 [ac_cv_sunos_xmu_bug=no],
861                                 [ac_cv_sunos_xmu_bug=yes])
862                     LDFLAGS="$ac_save_LDFLAGS"])
863     if test "$ac_cv_sunos_xmu_bug" = yes ; then
864       AC_CACHE_CHECK([whether the compiler understands -static], 
865                      ac_cv_ld_static,
866                      [ac_save_LDFLAGS="$LDFLAGS"
867                       LDFLAGS="$LDFLAGS -static"
868                       AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
869                     LDFLAGS="$ac_save_LDFLAGS"])
870       if test "$ac_cv_ld_static" = yes ; then
871         LDFLAGS="$LDFLAGS -static"
872       else
873         LDFLAGS="$LDFLAGS -Bstatic"
874       fi
875     fi
876     ;;
877   esac
878 fi
879
880
881 ###############################################################################
882 #
883 #       Handle the --with-hackdir option
884 #
885 ###############################################################################
886
887 have_hackdir=yes
888 with_hackdir_req=unspecified
889 AC_ARG_WITH(hackdir,[
890 Installation options:
891
892   --with-hackdir=DIR      Where to install the hundreds of demo executables.
893                           Default: \`PREFIX/lib/xscreensaver/'],
894   [with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes])
895
896 if test x"$with_hackdir" = xyes; then
897   HACKDIR='${exec_prefix}/lib/xscreensaver'
898 elif test x"$with_hackdir" = xno; then
899   HACKDIR='${bindir}'
900 else
901   # there must be a better way than this...
902   if test -z "`echo $with_hackdir | sed 's@^/.*@@'`" ; then
903     # absolute path
904     HACKDIR=$with_hackdir
905   else
906     # relative path
907     HACKDIR="\${exec_prefix}$with_hackdir"
908   fi
909 fi
910
911 # canonicalize slashes.
912 HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'`
913
914 # This option used to be called --enable-subdir; make sure that is no longer
915 # used, since configure brain-damagedly ignores unknown --enable options.
916
917 obsolete_enable=
918 AC_ARG_ENABLE(subdir,,[obsolete_enable=yes])
919 if test -n "$obsolete_enable"; then
920   echo "error: the --enable-subdir option has been replaced with"
921   echo "       the new --with-hackdir option; see \`configure --help'"
922   echo "       for more information."
923   exit 1
924 fi
925
926
927 ###############################################################################
928 #
929 #       Handle the --with-configdir option
930 #
931 ###############################################################################
932
933 have_configdir=yes
934 with_configdir_req=unspecified
935 AC_ARG_WITH(configdir,
936 [  --with-configdir=DIR    Where to install the data files that describe each
937                           of the display modes to the GUI.
938                           Default: \`GNOMEPREFIX/control-center/screensavers/'
939                           or \`PREFIX/lib/xscreensaver/config/', depending on
940                           whether GNOME is available.
941 ],
942   [with_configdir="$withval"; with_configdir_req="$withval"],
943   [with_configdir=yes])
944
945 if test x"$with_configdir" = xyes; then
946   # filled in later...
947   HACK_CONF_DIR=''
948 elif test x"$with_configdir" = xno; then
949   echo "error: must be yes, or a pathname: --with-configdir=$with_configdir"
950   exit 1
951 else
952   # there must be a better way than this...
953   if test -z "`echo $with_configdir | sed 's@^/.*@@'`" ; then
954     # absolute path
955     HACK_CONF_DIR=$with_configdir
956   else
957     # relative path
958     HACK_CONF_DIR="\${exec_prefix}$with_configdir"
959   fi
960 fi
961
962
963
964
965 ###############################################################################
966 #
967 #       Check for the SGI SCREEN_SAVER server extension.
968 #
969 ###############################################################################
970
971 have_sgi=no
972 with_sgi_req=unspecified
973 AC_ARG_WITH(sgi-ext,
974 [Except where noted, all of the --with options below can also take a
975 directory argument: for example, \`--with-motif=/opt/Motif'.  That would
976 cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/
977 to be added to the -L list, assuming those directories exist.  
978
979 By default, support for each of these options will be built in, if the
980 relevant library routines exist.  At run time, they will then be used
981 only if the X server being used supports them.  Each --with option has
982 a corresponding --without option, to override building support for them
983 at all.
984
985 Screen blanking and idle-detection options:
986
987   --with-sgi-ext          Include support for the SGI SCREEN_SAVER extension.],
988   [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
989
990 HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
991
992 if test "$with_sgi" = yes; then
993   AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
994                     [have_sgi=yes
995                      AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],,
996                     [#include <X11/Xlib.h>])
997
998 elif test "$with_sgi" != no; then
999   echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
1000   exit 1
1001 fi
1002
1003
1004 ###############################################################################
1005 #
1006 #       Check for the MIT-SCREEN-SAVER server extension.
1007 #
1008 ###############################################################################
1009
1010 have_mit=no
1011 with_mit_req=unspecified
1012 AC_ARG_WITH(mit-ext,
1013 [  --with-mit-ext          Include support for the MIT-SCREEN-SAVER extension.],
1014   [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
1015
1016 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
1017
1018 if test "$with_mit" = yes; then
1019   AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes],,
1020                     [#include <X11/Xlib.h>])
1021
1022   # Now check to see if it's really in the library; XF86Free-3.3 ships
1023   # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
1024   #
1025   if test "$have_mit" = yes; then
1026     AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [true], [have_mit=no], -lm)
1027
1028     if test "$have_mit" = no; then
1029       # Fuck!  Looks like XF86Free-3.3 actually puts it in XExExt instead
1030       # of in Xext.  Thank you master, may I have another.
1031       AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
1032                      [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
1033                      [true], -lX11 -lXext -lm)
1034     fi
1035
1036     if test "$have_mit" = no; then
1037       # Double fuck!  Looks like some versions of XFree86 (whichever version
1038       # it is that comes with RedHat Linux 2.0 -- I can't find a version 
1039       # number) put this garbage in Xss instead of Xext.  Thank you master,
1040       #  may I have another.
1041       AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
1042                      [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
1043                      [true], -lX11 -lXext -lm)
1044     fi
1045
1046   if test "$have_mit" = yes; then
1047     AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
1048   fi
1049
1050   fi
1051
1052 elif test "$with_mit" != no; then
1053   echo "error: must be yes or no: --with-mit-ext=$with_mit"
1054   exit 1
1055 fi
1056
1057
1058 ###############################################################################
1059 #
1060 #       Check for the XIDLE server extension.
1061 #
1062 ###############################################################################
1063
1064 have_xidle=no
1065 with_xidle_req=unspecified
1066 AC_ARG_WITH(xidle-ext,
1067 [  --with-xidle-ext        Include support for the XIDLE extension.],
1068   [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
1069
1070 HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
1071
1072 if test "$with_xidle" = yes; then
1073   AC_CHECK_X_HEADER(X11/extensions/xidle.h,
1074                     [have_xidle=yes
1075                      AC_DEFINE(HAVE_XIDLE_EXTENSION)],,
1076                     [#include <X11/Xlib.h>])
1077 elif test "$with_xidle" != no; then
1078   echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
1079   exit 1
1080 fi
1081
1082
1083 ###############################################################################
1084 #
1085 #       Check for the SGI-VIDEO-CONTROL server extension.
1086 #
1087 ###############################################################################
1088
1089 have_sgivc=no
1090 with_sgivc_req=unspecified
1091 AC_ARG_WITH(sgivc-ext,
1092 [  --with-sgivc-ext        Include support for the SGI-VIDEO-CONTROL extension.],
1093   [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
1094
1095 HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
1096
1097 if test "$with_sgivc" = yes; then
1098
1099   # first check for XSGIvc.h
1100   AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],,
1101                     [#include <X11/Xlib.h>])
1102
1103   # if that succeeded, then check for the -lXsgivc
1104   if test "$have_sgivc" = yes; then
1105     have_sgivc=no
1106     AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
1107                   [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true],
1108                   -lXext -lX11)
1109   fi
1110
1111   # if that succeeded, then we've really got it.
1112   if test "$have_sgivc" = yes; then
1113     AC_DEFINE(HAVE_SGI_VC_EXTENSION)
1114   fi
1115
1116 elif test "$with_sgivc" != no; then
1117   echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
1118   exit 1
1119 fi
1120
1121
1122 ###############################################################################
1123 #
1124 #       Check for the DPMS server extension.
1125 #
1126 ###############################################################################
1127
1128 have_dpms=no
1129 with_dpms_req=unspecified
1130 AC_ARG_WITH(dpms-ext,
1131 [  --with-dpms-ext         Include support for the DPMS extension.],
1132   [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes])
1133
1134 HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
1135
1136 if test "$with_dpms" = yes; then
1137
1138   # first check for dpms.h
1139   AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes],,
1140                     [#include <X11/Xlib.h>])
1141
1142   # if that succeeded, then check for the DPMS code in the libraries
1143   if test "$have_dpms" = yes; then
1144
1145     # first look in -lXext (this is where it is with XFree86 4.0)
1146     have_dpms=no
1147     AC_CHECK_X_LIB(Xext, DPMSInfo, [have_dpms=yes], [true], -lXext -lX11)
1148
1149     # if that failed, look in -lXdpms (this is where it was in XFree86 3.x)
1150     if test "$have_dpms" = no; then
1151       AC_CHECK_X_LIB(Xdpms, DPMSInfo,
1152                     [have_dpms=yes; XDPMS_LIBS="-lXdpms"], [true],
1153                     -lXext -lX11)
1154     fi
1155   fi
1156
1157
1158   # if that succeeded, then we've really got it.
1159   if test "$have_dpms" = yes; then
1160     AC_DEFINE(HAVE_DPMS_EXTENSION)
1161   fi
1162
1163 elif test "$with_dpms" != no; then
1164   echo "error: must be yes or no: --with-dpms-ext=$with_dpms"
1165   exit 1
1166 fi
1167
1168
1169 ###############################################################################
1170 #
1171 #       Check for the XINERAMA server extension.
1172 #
1173 ###############################################################################
1174
1175 have_xinerama=no
1176 with_xinerama_req=unspecified
1177 AC_ARG_WITH(xinerama-ext,
1178 [  --with-xinerama-ext     Include support for the XINERAMA extension.],
1179   [with_xinerama="$withval"; with_xinerama_req="$withval"],[with_xinerama=yes])
1180
1181 HANDLE_X_PATH_ARG(with_xinerama, --with-xinerama-ext, XINERAMA)
1182
1183 if test "$with_xinerama" = yes; then
1184
1185   # first check for Xinerama.h
1186   AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes],,
1187                     [#include <X11/Xlib.h>])
1188
1189   # if that succeeded, then check for the XINERAMA code in the libraries
1190   if test "$have_xinerama" = yes; then
1191
1192     # first look in -lXext
1193     have_xinerama=no
1194     AC_CHECK_X_LIB(Xext, XineramaQueryExtension, [have_xinerama=yes], [true],
1195                   -lXext -lX11)
1196
1197     # if that failed, look in -lXinerama (this is where it is in XFree86 4.1.)
1198     if test "$have_xinerama" = no; then
1199       AC_CHECK_X_LIB(Xinerama, XineramaQueryExtension,
1200                      [have_xinerama=yes; SAVER_LIBS="$SAVER_LIBS -lXinerama"],
1201                      [true], -lXext -lX11)
1202     fi
1203   fi
1204
1205   # if that succeeded, then we've really got it.
1206   if test "$have_xinerama" = yes; then
1207     AC_DEFINE(HAVE_XINERAMA)
1208   fi
1209
1210 elif test "$with_xinerama" != no; then
1211   echo "error: must be yes or no: --with-xinerama-ext=$with_xinerama"
1212   exit 1
1213 fi
1214
1215
1216 ###############################################################################
1217 #
1218 #       Check for the XF86VMODE server extension (for virtual screens.)
1219 #
1220 ###############################################################################
1221
1222 have_xf86vmode=no
1223 with_xf86vmode_req=unspecified
1224 AC_ARG_WITH(xf86vmode-ext,
1225 [  --with-xf86vmode-ext    Include support for XFree86 virtual screens.],
1226   [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"],
1227   [with_xf86vmode=yes])
1228
1229 HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
1230
1231 if test "$with_xf86vmode" = yes; then
1232
1233   # first check for xf86vmode.h
1234   AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],,
1235                     [#include <X11/Xlib.h>])
1236
1237   # if that succeeded, then check for the -lXxf86vm
1238   if test "$have_xf86vmode" = yes; then
1239     have_xf86vmode=no
1240     AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
1241                   [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
1242                    [true], -lXext -lX11)
1243   fi
1244
1245   # if that succeeded, then we've really got it.
1246   if test "$have_xf86vmode" = yes; then
1247     AC_DEFINE(HAVE_XF86VMODE)
1248   fi
1249
1250 elif test "$with_xf86vmode" != no; then
1251   echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode"
1252   exit 1
1253 fi
1254
1255
1256 ###############################################################################
1257 #
1258 #       Check for the XF86VMODE server extension (for gamma fading.)
1259 #
1260 ###############################################################################
1261
1262 have_xf86gamma=no
1263 have_xf86gamma_ramp=no
1264 with_xf86gamma_req=unspecified
1265 AC_ARG_WITH(xf86gamma-ext,
1266 [  --with-xf86gamma-ext    Include support for XFree86 gamma fading.],
1267   [with_xf86gamma="$withval"; with_xf86gamma_req="$withval"],
1268   [with_xf86gamma=yes])
1269
1270 HANDLE_X_PATH_ARG(with_xf86gamma, --with-xf86gamma-ext, xf86gamma)
1271
1272 if test "$with_xf86gamma" = yes; then
1273
1274   # first check for xf86vmode.h, if we haven't already
1275   if test "$have_xf86vmode" = yes; then
1276     have_xf86gamma=yes
1277   else
1278     AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],,
1279                       [#include <X11/Xlib.h>])
1280   fi
1281
1282   # if that succeeded, then check for the -lXxf86vm
1283   if test "$have_xf86gamma" = yes; then
1284     have_xf86gamma=no
1285     AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGamma,
1286                   [have_xf86gamma=yes],
1287                    [true], -lXext -lX11)
1288   fi
1289
1290   # check for the Ramp versions of the functions too.
1291   if test "$have_xf86gamma" = yes; then
1292     have_xf86gamma_ramp=no
1293     AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGammaRamp,
1294                   [have_xf86gamma_ramp=yes],
1295                    [true], -lXext -lX11)
1296   fi
1297
1298   # if those tests succeeded, then we've really got the functions.
1299   if test "$have_xf86gamma" = yes; then
1300     AC_DEFINE(HAVE_XF86VMODE_GAMMA)
1301   fi
1302
1303   if test "$have_xf86gamma_ramp" = yes; then
1304     AC_DEFINE(HAVE_XF86VMODE_GAMMA_RAMP)
1305   fi
1306
1307   # pull in the lib, if we haven't already
1308   if test "$have_xf86gamma" = yes -a "$have_xf86vmode" = no; then
1309     SAVER_LIBS="$SAVER_LIBS -lXxf86vm"
1310   fi
1311
1312 elif test "$with_xf86gamma" != no; then
1313   echo "error: must be yes or no: --with-xf86gamma-ext=$with_xf86vmode"
1314   exit 1
1315 fi
1316
1317
1318 ###############################################################################
1319 #
1320 #       Check for HP XHPDisableReset and XHPEnableReset.
1321 #
1322 ###############################################################################
1323
1324 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
1325                   [AC_DEFINE(HAVE_XHPDISABLERESET)
1326                    SAVER_LIBS="-lXhp11 $SAVER_LIBS"])
1327
1328
1329 ###############################################################################
1330 #
1331 #       Check for /proc/interrupts.
1332 #
1333 ###############################################################################
1334
1335 have_proc_interrupts=no
1336 with_proc_interrupts_req=unspecified
1337 AC_ARG_WITH(proc-interrupts,
1338 [  --with-proc-interrupts  Include support for consulting the /proc/interrupts
1339                           file to notice keyboard activity.],
1340   [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"],
1341   [with_proc_interrupts=yes])
1342
1343 if test "$with_proc_interrupts" = yes; then
1344
1345    AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data],
1346     ac_cv_have_proc_interrupts,
1347     [ac_cv_have_proc_interrupts=no
1348      if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then
1349        ac_cv_have_proc_interrupts=yes
1350      fi
1351     ])
1352    have_proc_interrupts=$ac_cv_have_proc_interrupts
1353
1354   if test "$have_proc_interrupts" = yes; then
1355     AC_DEFINE(HAVE_PROC_INTERRUPTS)
1356   fi
1357
1358 elif test "$with_proc_interrupts" != no; then
1359   echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts"
1360   exit 1
1361 fi
1362
1363
1364 ###############################################################################
1365 #
1366 #       The --enable-locking option
1367 #
1368 ###############################################################################
1369
1370 AC_ARG_ENABLE(locking,[
1371 Screen locking options:
1372
1373   --enable-locking        Compile in support for locking the display.
1374   --disable-locking       Do not allow locking at all.
1375 ],
1376   [enable_locking="$enableval"],[enable_locking=yes])
1377 if test "$enable_locking" = yes; then
1378   true
1379 elif test "$enable_locking" = no; then
1380   AC_DEFINE(NO_LOCKING)
1381 else
1382   echo "error: must be yes or no: --enable-locking=$enable_locking"
1383   exit 1
1384 fi
1385
1386
1387
1388 ###############################################################################
1389 #
1390 #       The --enable-vt-locking option
1391 #
1392 ###############################################################################
1393
1394 #ac_vt_lockswitch=no
1395 #AC_ARG_ENABLE(vt-locking,[
1396 #  --enable-vt-locking     Compile in support for locking Virtual Terminals.
1397 #                          This is the default if the system supports it, and
1398 #                          if locking support is included (--enable-locking.)
1399 #  --disable-vt-locking    Do not allow locking of VTs, even if locking is
1400 #                          enabled.],
1401 #  [enable_vt_locking="$enableval"],[enable_vt_locking=yes])
1402 #if test "$enable_vt_locking" = yes; then
1403 #
1404 #  AC_CACHE_CHECK([for the VT_LOCKSWITCH ioctl], ac_cv_vt_lockswitch,
1405 #   [AC_TRY_COMPILE([#include <fcntl.h>
1406 #                   #include <sys/ioctl.h>
1407 #                   #include <sys/vt.h>],
1408 #                  [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;],
1409 #                  [ac_cv_vt_lockswitch=yes],
1410 #                  [ac_cv_vt_lockswitch=no])])
1411 #  ac_vt_lockswitch=$ac_cv_vt_lockswitch
1412 #
1413 #elif test "$enable_vt_locking" = no; then
1414 #  true
1415 #else
1416 #  echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking"
1417 #  exit 1
1418 #fi
1419 #
1420 #if test "$ac_vt_lockswitch" = yes; then
1421 #  AC_DEFINE(HAVE_VT_LOCKSWITCH)
1422 #  # the VT_LOCKSWITCH ioctl can only be used when running as root.
1423 #  # #### but it doesn't work yet, so don't worry about that for now.
1424 ##  need_setuid=yes
1425 #fi
1426
1427
1428
1429 ###############################################################################
1430 #
1431 #       Check for PAM.
1432 #
1433 ###############################################################################
1434
1435 case "$host" in
1436   *-solaris*)
1437    # Solaris systems tend to come with PAM misconfigured.
1438    #  Don't build it by default, even if the headers exist.
1439    with_pam_default=no
1440    ;;
1441   *)
1442    # Default to building PAM support on all other systems, if it exists.
1443    with_pam_default=yes
1444   ;;
1445 esac
1446
1447 have_pam=no
1448 with_pam_req=unspecified
1449
1450 AC_ARG_WITH(pam,
1451 [  --with-pam              Include support for PAM (Pluggable Auth Modules.)],
1452   [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default])
1453
1454 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
1455
1456 if test "$enable_locking" = yes -a "$with_pam" = yes; then
1457   AC_CACHE_CHECK([for PAM], ac_cv_pam,
1458                  [AC_TRY_X_COMPILE([#include <security/pam_appl.h>],,
1459                                    [ac_cv_pam=yes],
1460                                    [ac_cv_pam=no])])
1461   if test "$ac_cv_pam" = yes ; then
1462     have_pam=yes
1463     AC_DEFINE(HAVE_PAM)
1464     PASSWD_LIBS="${PASSWD_LIBS} -lpam"
1465
1466     # libpam typically requires dlopen and dlsym.  On FreeBSD,
1467     # those are in libc.  On Linux and Solaris, they're in libdl.
1468     AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"])
1469
1470     AC_MSG_CHECKING(how to call pam_strerror)
1471     AC_CACHE_VAL(ac_cv_pam_strerror_args,
1472      [AC_TRY_COMPILE([#include <stdio.h>
1473                       #include <stdlib.h>
1474                       #include <security/pam_appl.h>],
1475                      [pam_handle_t *pamh = 0;
1476                       char *s = pam_strerror(pamh, PAM_SUCCESS);],
1477                      [ac_pam_strerror_args=2],
1478                      [AC_TRY_COMPILE([#include <stdio.h>
1479                                       #include <stdlib.h>
1480                                       #include <security/pam_appl.h>],
1481                                      [char *s =
1482                                        pam_strerror(PAM_SUCCESS);],
1483                                      [ac_pam_strerror_args=1],
1484                                      [ac_pam_strerror_args=0])])
1485       ac_cv_pam_strerror_args=$ac_pam_strerror_args])
1486     ac_pam_strerror_args=$ac_cv_pam_strerror_args
1487     if test "$ac_pam_strerror_args" = 1 ; then
1488       AC_MSG_RESULT(one argument)
1489     elif test "$ac_pam_strerror_args" = 2 ; then
1490       AC_DEFINE(PAM_STRERROR_TWO_ARGS)
1491       AC_MSG_RESULT(two arguments)
1492     else
1493       AC_MSG_RESULT(unknown)
1494     fi
1495   fi
1496 fi
1497
1498
1499 ###############################################################################
1500 #
1501 #       Check for Kerberos.
1502 #
1503 ###############################################################################
1504
1505 have_kerberos=no
1506 have_kerberos5=no
1507 with_kerberos_req=unspecified
1508
1509 AC_ARG_WITH(kerberos, 
1510 [  --with-kerberos         Include support for Kerberos authentication.],
1511   [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
1512
1513 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
1514
1515 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
1516   AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
1517                  [AC_TRY_X_COMPILE([#include <krb.h>],,
1518                                    [ac_cv_kerberos=yes],
1519                                    [ac_cv_kerberos=no])])
1520   AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
1521                  [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
1522                                    [ac_cv_kerberos5=yes],
1523                                    [ac_cv_kerberos5=no])])
1524
1525   if test "$ac_cv_kerberos" = yes ; then
1526     have_kerberos=yes
1527     AC_DEFINE(HAVE_KERBEROS)
1528   fi
1529
1530   if test "$ac_cv_kerberos5" = yes ; then
1531     have_kerberos=yes
1532     have_kerberos5=yes
1533     AC_DEFINE(HAVE_KERBEROS)
1534     AC_DEFINE(HAVE_KERBEROS5)
1535   fi
1536
1537   if test "$have_kerberos5" = yes ; then
1538     # from Matt Knopp <mhat@infocalypse.netlag.com>
1539     # (who got it from amu@mit.edu)
1540     PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcrypt -lcom_err"
1541   elif test "$have_kerberos" = yes ; then
1542     # from Tim Showalter <tjs@psaux.com> for FreeBSD 4.2
1543     PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err"
1544   fi
1545
1546   if test "$have_kerberos" = yes ; then
1547     AC_CHECK_FUNC(res_search,,
1548       AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
1549         AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
1550       ))
1551   fi
1552 fi
1553
1554
1555 ###############################################################################
1556 #
1557 #       Check for the nine billion variants of shadow passwords...
1558 #
1559 ###############################################################################
1560
1561 need_setuid=no
1562
1563 have_shadow=no
1564 with_shadow_req=unspecified
1565
1566 AC_ARG_WITH(shadow,
1567 [  --with-shadow           Include support for shadow password authentication.],
1568   [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
1569
1570 HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password)
1571
1572 if test "$enable_locking" = no ; then
1573   with_shadow_req=no
1574   with_shadow=no
1575 fi
1576
1577
1578 ###############################################################################
1579 #
1580 #       Check for Sun "adjunct" passwords.
1581 #
1582 ###############################################################################
1583
1584 if test "$with_shadow" = yes ; then
1585   AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
1586                  [AC_TRY_X_COMPILE([#include <stdlib.h>
1587                                     #include <unistd.h>
1588                                     #include <sys/types.h>
1589                                     #include <sys/label.h>
1590                                     #include <sys/audit.h>
1591                                     #include <pwdadj.h>],
1592                       [struct passwd_adjunct *p = getpwanam("nobody");
1593                        const char *pw = p->pwa_passwd;],
1594                       [ac_cv_sun_adjunct=yes],
1595                       [ac_cv_sun_adjunct=no])])
1596   if test "$ac_cv_sun_adjunct" = yes; then
1597     have_shadow_adjunct=yes
1598     have_shadow=yes
1599     need_setuid=yes
1600   fi
1601 fi
1602
1603
1604 ###############################################################################
1605 #
1606 #       Check for DEC and SCO so-called "enhanced" security.
1607 #
1608 ###############################################################################
1609
1610 if test "$with_shadow" = yes ; then
1611   AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
1612                  [AC_TRY_X_COMPILE([#include <stdlib.h>
1613                                     #include <unistd.h>
1614                                     #include <sys/types.h>
1615                                     #include <pwd.h>
1616                                     #include <sys/security.h>
1617                                     #include <prot.h>],
1618                       [struct pr_passwd *p;
1619                        const char *pw;
1620                        set_auth_parameters(0, 0);
1621                        check_auth_parameters();
1622                        p = getprpwnam("nobody");
1623                        pw = p->ufld.fd_encrypt;],
1624                       [ac_cv_enhanced_passwd=yes],
1625                       [ac_cv_enhanced_passwd=no])])
1626   if test $ac_cv_enhanced_passwd = yes; then
1627     have_shadow_enhanced=yes
1628     have_shadow=yes
1629     need_setuid=yes
1630
1631     # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
1632     # (I'm told it needs -lcurses too, but I don't understand why.)
1633     # But on DEC, it's in -lsecurity.
1634     #
1635     AC_CHECK_LIB(prot, getprpwnam, 
1636                  [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
1637                  [AC_CHECK_LIB(security, getprpwnam, 
1638                                [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
1639                  [-lx])
1640   fi
1641 fi
1642
1643 ###############################################################################
1644 #
1645 #       Check for HP's entry in the "Not Invented Here" Sweepstakes.
1646 #
1647 ###############################################################################
1648
1649 if test "$with_shadow" = yes ; then
1650   AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
1651                  [AC_TRY_X_COMPILE([#include <stdlib.h>
1652                                     #include <unistd.h>
1653                                     #include <sys/types.h>
1654                                     #include <pwd.h>
1655                                     #include <hpsecurity.h>
1656                                     #include <prot.h>],
1657                       [struct s_passwd *p = getspwnam("nobody");
1658                        const char *pw = p->pw_passwd;],
1659                       [ac_cv_hpux_passwd=yes],
1660                       [ac_cv_hpux_passwd=no])])
1661   if test "$ac_cv_hpux_passwd" = yes; then
1662     have_shadow_hpux=yes
1663     have_shadow=yes
1664     need_setuid=yes
1665
1666     # on HPUX, bigcrypt is in -lsec
1667     AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
1668   fi
1669 fi
1670
1671
1672 ###############################################################################
1673 #
1674 #       Check for FreeBSD-style shadow passwords.
1675 #
1676 #       On FreeBSD, getpwnam() and friends work just like on non-shadow-
1677 #       password systems -- except you only get stuff in the pw_passwd field
1678 #       if the running program is setuid.  So, guess that we've got this
1679 #       lossage to contend with if /etc/master.passwd exists, and default to
1680 #       a setuid installation.
1681 #
1682 ###############################################################################
1683
1684 if test "$with_shadow" = yes ; then
1685   AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd,
1686                  [if test -f /etc/master.passwd ; then
1687                     ac_cv_master_passwd=yes
1688                   else
1689                     ac_cv_master_passwd=no
1690                   fi])
1691   if test "$ac_cv_master_passwd" = yes; then
1692     need_setuid=yes
1693   fi
1694 fi
1695
1696
1697 ###############################################################################
1698 #
1699 #       Check for traditional (ha!) shadow passwords.
1700 #
1701 ###############################################################################
1702
1703 if test "$with_shadow" = yes ; then
1704   AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
1705                  [AC_TRY_X_COMPILE([#include <stdlib.h>
1706                                     #include <unistd.h>
1707                                     #include <sys/types.h>
1708                                     #include <pwd.h>
1709                                     #include <shadow.h>],
1710                       [struct spwd *p = getspnam("nobody");
1711                        const char *pw = p->sp_pwdp;],
1712                       [ac_cv_shadow=yes],
1713                       [ac_cv_shadow=no])])
1714   if test "$ac_cv_shadow" = yes; then
1715     have_shadow=yes
1716     need_setuid=yes
1717
1718     # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
1719     have_getspnam=no
1720     AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
1721     if test "$have_getspnam" = no ; then
1722       AC_CHECK_LIB(gen, getspnam,
1723                    [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
1724     fi
1725   fi
1726 fi
1727
1728
1729 ###############################################################################
1730 #
1731 #       Check for other libraries needed for non-shadow passwords.
1732 #
1733 ###############################################################################
1734
1735 if test "$enable_locking" = yes ; then
1736
1737   # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
1738   have_crypt=no
1739   AC_CHECK_LIB(c, crypt, [have_crypt=yes])
1740   if test "$have_crypt" = no ; then
1741     AC_CHECK_LIB(crypt, crypt,
1742                  [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
1743   fi
1744 fi
1745
1746
1747 # Most of the above shadow mechanisms will have set need_setuid to yes,
1748 # if they were found.  But, on some systems, we need setuid even when
1749 # using plain old vanilla passwords.
1750 #
1751 if test "$enable_locking" = yes ; then
1752   case "$host" in
1753     *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
1754       need_setuid=yes
1755     ;;
1756   esac
1757 fi
1758
1759
1760 if test "$have_shadow_adjunct" = yes ; then
1761   AC_DEFINE(HAVE_ADJUNCT_PASSWD)
1762 elif test "$have_shadow_enhanced" = yes ; then
1763   AC_DEFINE(HAVE_ENHANCED_PASSWD)
1764 elif test "$have_shadow_hpux" = yes ; then
1765   AC_DEFINE(HAVE_HPUX_PASSWD)
1766 elif test "$have_shadow" = yes ; then
1767   AC_DEFINE(HAVE_SHADOW_PASSWD)
1768 fi
1769
1770
1771 ###############################################################################
1772 #
1773 #       Check for -lXm.
1774 #
1775 ###############################################################################
1776
1777 have_motif=no
1778 with_motif_req=unspecified
1779 AC_ARG_WITH(motif,[
1780 User interface options:
1781
1782   --with-motif            Use the Motif toolkit for the user interface.],
1783   [with_motif="$withval"; with_motif_req="$withval"],[with_motif=yes])
1784
1785 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
1786
1787 if test "$with_motif" != yes -a "$with_motif" != no ; then
1788   echo "error: must be yes or no: --with-motif=$with_motif"
1789   exit 1
1790 fi
1791
1792 if test "$with_motif" = yes; then
1793   have_motif=no
1794   AC_CHECK_X_HEADER(Xm/Xm.h,
1795                     [have_motif=yes
1796                      AC_DEFINE(HAVE_MOTIF)
1797                      MOTIF_LIBS="$MOTIF_LIBS -lXm"],,
1798                     [#include <stdlib.h>
1799                      #include <stdio.h>
1800                      #include <X11/Intrinsic.h>])
1801 fi
1802
1803
1804 if test "$have_motif" = yes; then
1805   AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],,
1806                     [#include <stdlib.h>
1807                      #include <stdio.h>
1808                      #include <X11/Intrinsic.h>])
1809 fi
1810
1811
1812 ###############################################################################
1813 #
1814 #       Check for -lgtk (and Gnome stuff)
1815 #
1816 ###############################################################################
1817
1818 have_gtk=no
1819 with_gtk_req=unspecified
1820 AC_ARG_WITH(gtk,
1821 [  --with-gtk              Use the Gtk toolkit for the user interface.],
1822   [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes])
1823
1824 # if --with-gtk=/directory/ was specified, remember that directory so that
1825 # we can also look for the `gtk-config' program in that directory.
1826 case "$with_gtk" in
1827   /*)
1828     gtk_dir="$with_gtk"
1829     ;;
1830   *)
1831     gtk_dir=""
1832     ;;
1833 esac
1834
1835 HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk)
1836
1837 if test "$with_gtk" != yes -a "$with_gtk" != no ; then
1838   echo "error: must be yes or no: --with-gtk=$with_gtk"
1839   exit 1
1840 fi
1841
1842 have_gnome=no
1843 with_gnome_req=unspecified
1844 AC_ARG_WITH(gnome,
1845 [  --with-gnome            Include support for the Gnome Control Center.],
1846   [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
1847
1848 # if --with-gnome=/directory/ was specified, remember that directory so that
1849 # we can also look for the `gnome-config' program in that directory.
1850 case "$with_gnome" in
1851   /*)
1852     gnome_dir="$with_gnome"
1853     ;;
1854   *)
1855     gnome_dir=""
1856     ;;
1857 esac
1858
1859 HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome)
1860
1861 if test "$with_gnome" != yes -a "$with_gnome" != no ; then
1862   echo "error: must be yes or no: --with-gnome=$with_gnome"
1863   exit 1
1864 fi
1865
1866
1867 jurassic_gtk=no
1868 if test "$with_gtk" = yes; then
1869   have_gtk=no
1870   
1871   # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
1872   # look in /foo/bin/ for glib-config, gtk-config, and gnome-config.
1873   #
1874   gtk_path="$PATH"
1875
1876   if test ! -z "$gtk_dir"; then
1877     # canonicalize slashes.
1878     foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
1879     gtk_path="$foo:$gtk_path"
1880   fi
1881
1882   if test ! -z "$gnome_dir"; then
1883     # canonicalize slashes.
1884     foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
1885     gtk_path="$foo:$gtk_path"
1886   fi
1887
1888   AC_PATH_PROGS(glib_config,  glib12-config glib-config,,  $gtk_path)
1889   AC_PATH_PROGS(gtk_config,   gtk12-config  gtk-config,,   $gtk_path)
1890
1891   if test "$with_gnome" = yes; then
1892     AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
1893   fi
1894
1895   if test -n "$glib_config" -a  -n "$gtk_config" ; then
1896     have_gtk=yes
1897     if test "$with_gnome" = yes -a -n "$gnome_config" ; then
1898       have_gnome=yes
1899     fi
1900   fi
1901
1902   if test "$have_gtk" = yes; then
1903     AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
1904                    [ac_cv_gtk_version_string=`$gtk_config --version`])
1905     ac_gtk_version_string=$ac_cv_gtk_version_string
1906     # M4 sucks!!
1907     changequote(X,Y)
1908     maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
1909     min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
1910     changequote([,])
1911     ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
1912     if test -z "$ac_gtk_version"; then
1913       ac_gtk_version=unknown
1914       ac_gtk_version_string=unknown
1915     fi
1916     if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
1917     then
1918       have_gtk=no
1919       have_gnome=no
1920       jurassic_gtk=yes
1921     fi
1922   fi
1923
1924   if test "$have_gtk" = yes; then
1925     AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
1926                    [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
1927     AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
1928                    [ac_cv_gtk_config_libs=`$gtk_config --libs`])
1929   fi
1930   ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
1931   ac_gtk_config_libs=$ac_cv_gtk_config_libs
1932
1933   # Check for Gnome Capplet support.
1934   #
1935   if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1936     gnome_config_libs="gtk capplet gnomeui gdk_pixbuf"
1937     AC_MSG_CHECKING(for Gnome capplet includes)
1938     AC_CACHE_VAL(ac_cv_gnome_config_cflags,
1939       [if ( $gnome_config --cflags $gnome_config_libs >/dev/null 2>&1 | \
1940             grep Unknown >/dev/null ) ; then
1941          ac_cv_gnome_config_cflags=''
1942        else
1943          ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
1944        fi])
1945     ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
1946     if test "$ac_gnome_config_cflags" = "" ; then
1947       have_gnome=no
1948       AC_MSG_RESULT(no)
1949     else
1950       AC_MSG_RESULT($ac_gnome_config_cflags)
1951     fi
1952   fi
1953
1954   if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1955     AC_MSG_CHECKING(for Gnome capplet libs)
1956     AC_CACHE_VAL(ac_cv_gnome_config_libs,
1957       [if ( $gnome_config --libs $gnome_config_libs >/dev/null 2>&1 |
1958             grep Unknown >/dev/null ) ; then
1959          ac_cv_gnome_config_libs=''
1960        else
1961          ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
1962        fi])
1963     ac_gnome_config_libs=$ac_cv_gnome_config_libs
1964     if test "$ac_gnome_config_libs" = "" ; then
1965       have_gnome=no
1966       AC_MSG_RESULT(no)
1967     else
1968       AC_MSG_RESULT($ac_gnome_config_libs)
1969     fi
1970   fi
1971
1972   GNOME_DATADIR=""
1973   if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1974     GNOME_DATADIR=`$gnome_config --datadir`
1975   fi
1976
1977
1978   # If we have Gnome, then override the gtk-config values with 
1979   # the gnome-config values.
1980   #
1981   if test "$have_gnome" = yes -a "$have_gtk" = yes; then
1982     ac_gtk_config_cflags=$ac_gnome_config_cflags
1983     ac_gtk_config_libs=$ac_gnome_config_libs
1984     AC_DEFINE(HAVE_CRAPPLET)
1985
1986     # check for this function that was not in libcapplet 1.2.
1987     AC_CHECK_X_LIB(capplet, capplet_widget_changes_are_immediate,
1988                    [AC_DEFINE(HAVE_CRAPPLET_IMMEDIATE)], [true],
1989                    $ac_gnome_config_libs)
1990   fi
1991
1992
1993   if test "$have_gtk" = yes; then
1994     INCLUDES="$INCLUDES $ac_gtk_config_cflags"
1995     GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
1996     AC_DEFINE(HAVE_GTK)
1997   fi
1998
1999 fi
2000
2001
2002 # Check for the Gnome Help Browser.
2003 #
2004 if test "$have_gnome" = yes; then
2005   AC_CHECK_PROG(have_gnome_help, gnome-help-browser, yes, no)
2006 else
2007   have_gnome_help=no
2008 fi
2009
2010
2011 ###############################################################################
2012 #
2013 #       Check for -lxml
2014 #
2015 ###############################################################################
2016
2017 have_xml=no
2018 with_xml_req=unspecified
2019 xml_halfassed=no
2020 AC_ARG_WITH(xml,
2021 [  --with-xml              The XML toolkit is needed for some parts of
2022                           the Gtk interface.],
2023 [with_xml="$withval"; with_xml_req="$withval"],[with_xml=yes])
2024
2025 # if --with-xml=/directory/ was specified, remember that directory so that
2026 # we can also look for the `xml-config' program in that directory.
2027 case "$with_xml" in
2028   /*)
2029     xml_dir="$with_xml"
2030     ;;
2031   *)
2032     xml_dir=""
2033     ;;
2034 esac
2035
2036 HANDLE_X_PATH_ARG(with_xml, --with-xml, XML)
2037
2038 if test "$with_xml" != yes -a "$with_xml" != no ; then
2039   echo "error: must be yes or no: --with-xml=$with_xml"
2040   exit 1
2041 fi
2042
2043 if test "$with_xml" = yes; then
2044   have_xml=no
2045   have_old_xml=no
2046
2047   # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2048   # look in /foo/bin/ for for xml-config.
2049   #
2050   xml_path="$PATH"
2051
2052   if test ! -z "$gtk_dir"; then
2053     # canonicalize slashes.
2054     foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2055     xml_path="$foo:$xml_path"
2056   fi
2057
2058   if test ! -z "$gnome_dir"; then
2059     # canonicalize slashes.
2060     foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2061     xml_path="$foo:$xml_path"
2062   fi
2063
2064   AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path)
2065
2066   # If we found the xml-config program, run it to get flags.
2067   #
2068   if test -n "$xml_config" ; then
2069     AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
2070                    [ac_cv_xml_config_cflags=`$xml_config --cflags`])
2071     AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
2072                    [ac_cv_xml_config_libs=`$xml_config --libs`])
2073     ac_xml_config_cflags=$ac_cv_xml_config_cflags
2074     ac_xml_config_libs=$ac_cv_xml_config_libs
2075   fi
2076
2077   ac_save_xml_CPPFLAGS="$CPPFLAGS"
2078   CPPFLAGS="$CPPFLAGS $ac_xml_config_cflags"
2079
2080   # first try <libxml/parser.h> which is the new way...
2081   #
2082   AC_CHECK_X_HEADER(libxml/xmlIO.h, [have_xml=yes],,
2083                     [#include <libxml/parser.h>])
2084
2085   # if that didn't work, then try just <parser.h> which is the old way...
2086   #
2087   if test "$have_xml" = no; then
2088     AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes; have_old_xml=yes],,
2089                       [#include <parser.h>])
2090   fi
2091
2092   CPPFLAGS="$ac_save_xml_CPPFLAGS"
2093
2094   have_zlib=no
2095   if test "$have_xml" = yes; then
2096     # we have the XML headers; now make sure zlib is around.
2097     # yes, it's stupid we have to do this too, but there is
2098     # dependency screwage in Gnome.
2099     AC_CHECK_X_LIB(z, zlibVersion, [have_zlib=yes])
2100     if test "$have_zlib" = no; then
2101       xml_halfassed=yes
2102       have_xml=no
2103     fi
2104   fi
2105
2106   if test "$have_xml" = yes; then
2107     # we have the header, now check for the library
2108     have_xml=no
2109     xml_halfassed=yes
2110     AC_CHECK_X_LIB(xml, xmlParseChunk,
2111                    [have_xml=yes
2112                     xml_halfassed=no
2113                     XML_LIBS="$ac_xml_config_libs"
2114                     AC_DEFINE(HAVE_XML)],
2115                    [true],
2116                    $ac_xml_config_libs)
2117   fi
2118
2119   if test "$have_xml" = yes; then
2120     INCLUDES="$INCLUDES $ac_xml_config_cflags"
2121     GTK_LIBS="$GTK_LIBS $ac_xml_config_libs"
2122     AC_DEFINE(HAVE_XML)
2123     if test "$have_old_xml" = yes; then
2124       AC_DEFINE(HAVE_OLD_XML_HEADERS)
2125     fi
2126   fi
2127
2128 fi
2129
2130
2131 ###############################################################################
2132 #
2133 #       Checking whether Motif is really Lesstif.
2134 #
2135 ###############################################################################
2136
2137 have_lesstif=no
2138 if test "$have_motif" = yes ; then
2139   AC_CACHE_CHECK([whether Motif is really LessTif], 
2140                  ac_cv_have_lesstif,
2141                  [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
2142                                    [long vers = LesstifVersion;],
2143                                    [ac_cv_have_lesstif=yes],
2144                                    [ac_cv_have_lesstif=no])])
2145   have_lesstif=$ac_cv_have_lesstif
2146 fi
2147
2148
2149 lesstif_version=unknown
2150 lesstif_version_string=unknown
2151
2152 if test "$have_lesstif" = yes ; then
2153   ltv=unknown
2154   echo unknown > conftest-lt
2155   AC_CACHE_CHECK([LessTif version number],
2156                  ac_cv_lesstif_version_string,
2157       [AC_TRY_X_RUN([#include <stdio.h>
2158                      #include <Xm/Xm.h>
2159                      int main() {
2160                        FILE *f = fopen("conftest-lt", "w");
2161                        if (!f) exit(1);
2162                        fprintf(f, "%d %d.%d\n", LesstifVersion,
2163                           LESSTIF_VERSION, LESSTIF_REVISION);
2164                        fclose(f);
2165                        exit(0);
2166                      }],
2167                     [ltv=`cat conftest-lt`
2168                      ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
2169                      ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`],
2170                     [ac_cv_lesstif_version=unknown
2171                      ac_cv_lesstif_version_string=unknown],
2172                     [ac_cv_lesstif_version=unknown
2173                      ac_cv_lesstif_version_string=unknown])])
2174   rm -f conftest-lt
2175   lesstif_version=$ac_cv_lesstif_version
2176   lesstif_version_string=$ac_cv_lesstif_version_string
2177
2178 fi
2179
2180
2181 if test "$have_motif" = yes ; then
2182   mtv=unknown
2183   echo unknown > conftest-mt
2184   AC_CACHE_CHECK([Motif version number],
2185                  ac_cv_motif_version_string,
2186       [AC_TRY_X_RUN([#include <stdio.h>
2187                      #include <Xm/Xm.h>
2188                      int main() {
2189                        FILE *f = fopen("conftest-mt", "w");
2190                        if (!f) exit(1);
2191                        fprintf(f, "%d %d.%d\n", XmVersion,
2192                           XmVERSION, XmREVISION);
2193                        fclose(f);
2194                        exit(0);
2195                      }],
2196                     [mtv=`cat conftest-mt`
2197                      ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
2198                      ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`],
2199                     [ac_cv_motif_version=unknown
2200                      ac_cv_motif_version_string=unknown],
2201                     [ac_cv_motif_version=unknown
2202                      ac_cv_motif_version_string=unknown])])
2203   rm -f conftest-mt
2204   motif_version=$ac_cv_motif_version
2205   motif_version_string=$ac_cv_motif_version_string
2206
2207 fi
2208
2209
2210 ###############################################################################
2211 #
2212 #       Checking whether Motif requires -lXpm.
2213 #
2214 #       If this is Motif 2.x, and we have XPM, then link against XPM as well.
2215 #       The deal is, Motif 2.x requires XPM -- but it's a compilation option
2216 #       of the library whether to build the XPM code into libXm, or whether
2217 #       to rely on an external libXm.  So the only way to tell whether XPM is
2218 #       a link-time requirement is to examine libXm.a, which is very
2219 #       difficult to do in an autoconf script.  So... if it's Motif 2.x, we
2220 #       always link against XPM if the XPM lib exists (and this will be a
2221 #       no-op if libXm happens to already have the XPM code in it.)
2222 #
2223 ###############################################################################
2224
2225 motif_requires_xpm=no
2226 if test "$have_motif" = yes ; then
2227    AC_MSG_CHECKING(whether Motif requires XPM)
2228    if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
2229    then
2230      motif_requires_xpm=yes
2231      AC_MSG_RESULT(maybe)
2232    else
2233      AC_MSG_RESULT(no)
2234    fi
2235 fi
2236
2237
2238 ###############################################################################
2239 #
2240 #       Checking whether Motif requires -lXp.
2241 #
2242 #       Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing
2243 #       Extension".   Why this extension isn't in -lXext with all the others,
2244 #       I have no idea.
2245 #
2246 ###############################################################################
2247
2248 have_xp_ext=no
2249 if test "$have_motif" = yes ; then
2250    have_xp_ext=no
2251    AC_CHECK_X_LIB(Xp, XpQueryExtension,
2252                   [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"],
2253                   [true], -lX11 -lXext -lm)
2254 fi
2255
2256
2257 ###############################################################################
2258 #
2259 #       Checking whether Motif requires -lXintl (for _Xsetlocale.)
2260 #
2261 ###############################################################################
2262
2263 have_xintl=no
2264 if test "$have_motif" = yes ; then
2265   AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no],
2266                  -lX11 -lXext -lm)
2267   if test "$have_xintl" = yes; then
2268     MOTIF_LIBS="$MOTIF_LIBS -lXintl"
2269   fi
2270 fi
2271
2272
2273 ###############################################################################
2274 #
2275 #       Check for -lGL or -lMesaGL.
2276 #
2277 ###############################################################################
2278
2279 have_gl=no
2280 ac_have_mesa_gl=no
2281 with_gl_req=unspecified
2282 gl_halfassed=no
2283 AC_ARG_WITH(gl,[
2284 Graphics options:
2285
2286   --with-gl               Build those demos which depend on OpenGL.],
2287   [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])
2288
2289 HANDLE_X_PATH_ARG(with_gl, --with-gl, GL)
2290
2291 ac_mesagl_version=unknown
2292 ac_mesagl_version_string=unknown
2293
2294 if test "$with_gl" = yes; then
2295   AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
2296   if test "$have_gl" = yes ; then
2297     AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no,
2298                       [#include <GL/gl.h>])
2299   fi
2300
2301   # If we have the headers, try and figure out which vendor it's from.
2302   #
2303   if test "$have_gl" = yes ; then
2304
2305     # We need to know whether it's MesaGL so that we know which libraries
2306     # to link against.
2307     #
2308     AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
2309       [ac_cv_have_mesa_gl=no
2310        AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
2311       ])
2312     ac_have_mesa_gl=$ac_cv_have_mesa_gl
2313  
2314
2315     gl_lib_1=""
2316     GL_LIBS=""
2317
2318
2319     # Some versions of MesaGL are compiled to require -lpthread.
2320     # So if the Mesa headers exist, and -lpthread exists, then always
2321     # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
2322     #
2323     if test "$ac_have_mesa_gl" = yes; then
2324       AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
2325     fi
2326
2327
2328     # If we have Mesa headers, check to see if we can link against -lMesaGL.
2329     # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
2330     # Else, warn that GL is busted.  (We have the headers, but no libs.)
2331     #
2332
2333     if test "$ac_have_mesa_gl" = yes ; then
2334       AC_CHECK_X_LIB(MesaGL, glXCreateContext, 
2335                      [gl_lib_1="MesaGL"
2336                       GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
2337                      [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
2338     fi
2339
2340     if test "$gl_lib_1" = "" ; then
2341       AC_CHECK_X_LIB(GL, glXCreateContext, 
2342                      [gl_lib_1="GL"
2343                       GL_LIBS="-lGL -lGLU $GL_LIBS"],
2344                      [], -lGLU $GL_LIBS -lX11 -lXext -lm)
2345     fi
2346
2347     if test "$gl_lib_1" = "" ; then
2348       # we have headers, but no libs -- bail.
2349       have_gl=no
2350       ac_have_mesa_gl=no
2351       gl_halfassed=yes
2352     else
2353       # linking works -- we can build the GL hacks.
2354       AC_DEFINE(HAVE_GL)
2355       if test "$ac_have_mesa_gl" = yes ; then
2356         AC_DEFINE(HAVE_MESA_GL)
2357       fi
2358     fi
2359   fi
2360
2361
2362   # Now that we know we have GL headers and libs, do some more GL testing.
2363   #
2364
2365   if test "$have_gl" = yes ; then
2366     # If it's MesaGL, we'd like to issue a warning if the version number
2367     # is less than or equal to 2.6, because that version had a security bug.
2368     #
2369     if test "$ac_have_mesa_gl" = yes; then
2370
2371       AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string,
2372         [cat > conftest.$ac_ext <<EOF
2373 #line __oline__ "configure"
2374 #include "confdefs.h"
2375 #include <GL/gl.h>
2376 #ifndef MESA_MAJOR_VERSION
2377 # include <GL/xmesa.h>
2378 # define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
2379 # define MESA_MINOR_VERSION XMESA_MINOR_VERSION
2380 #endif
2381 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
2382 EOF
2383
2384          ac_save_CPPFLAGS="$CPPFLAGS"
2385          if test \! -z "$includedir" ; then 
2386            CPPFLAGS="$CPPFLAGS -I$includedir"
2387          fi
2388          CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2389
2390 # With autoconf 2.13 we could do this:
2391 #
2392 #        changequote(X,Y)
2393 #        mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \
2394 #             's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
2395 #        changequote([,])
2396 #
2397 # but with autoconf 2.52+ (m4 1.4) that causes an error:
2398 #   m4: ERROR: Recursion limit of 1024 exceeded, use -L<N> to change it
2399 #
2400 # So, we need to use the autoconf line-noise macros @<:@ for [ and @:>@ for ]
2401 #
2402          mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \
2403               's/^configure:.*\(@<:@0-9@:>@@<:@0-9@:>@*\).*\(@<:@0-9@:>@@<:@0-9@:>@*\).*$/\1.\2/p'`
2404
2405
2406          rm -f conftest.$ac_ext
2407
2408          CPPFLAGS="$ac_save_CPPFLAGS"
2409
2410          if test "$mglv" = ""; then
2411            ac_mesagl_version=unknown
2412            ac_mesagl_version_string=unknown
2413          else
2414            ac_mesagl_version_string=$mglv
2415            maj=`echo $mglv | sed -n 's/\..*//p'`
2416            min=`echo $mglv | sed -n 's/.*\.//p'`
2417            ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
2418            if test -z "$ac_mesagl_version"; then
2419              ac_mesagl_version=unknown
2420              ac_mesagl_version_string=unknown
2421            fi
2422          fi
2423          ac_cv_mesagl_version=$ac_mesagl_version
2424          ac_cv_mesagl_version_string=$ac_mesagl_version_string
2425       ])
2426       ac_mesagl_version=$ac_cv_mesagl_version
2427       ac_mesagl_version_string=$ac_cv_mesagl_version_string
2428     fi
2429
2430
2431     # Check for OpenGL 1.1 features.
2432     #
2433     AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
2434                    [true], $GL_LIBS -lX11 -lXext -lm)
2435   fi
2436
2437 elif test "$with_gl" != no; then
2438   echo "error: must be yes or no: --with-gl=$with_gl"
2439   exit 1
2440 fi
2441
2442
2443 ###############################################################################
2444 #
2445 #       Check for -lgle.
2446 #
2447 ###############################################################################
2448
2449 have_gle=no
2450 with_gle_req=unspecified
2451 gle_halfassed=no
2452 AC_ARG_WITH(gle,
2453 [  --with-gle              Build those demos which depend on GLE
2454                           (the OpenGL "extrusion" library.)],
2455   [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
2456
2457 HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
2458
2459 GLE_LIBS=""
2460
2461 if test "$with_gle" = yes; then
2462
2463   AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no,
2464                     [#include <GL/gl.h>])
2465   if test "$have_gle3" = yes ; then
2466     have_gle=yes;
2467   else
2468     AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no,
2469                     [#include <GL/gl.h>])
2470     if test "$have_gle" = yes ; then
2471       AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no,
2472                         [#include <GL/gl.h>])
2473     fi
2474   fi
2475
2476   if test "$have_gle" = yes ; then
2477     have_gle=no
2478     gle_halfassed=yes
2479     AC_CHECK_X_LIB(gle, gleCreateGC, 
2480                    [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
2481                    [], $GL_LIBS -lX11 -lXext -lm)
2482   fi
2483   if test "$have_gle" = yes ; then
2484     have_gle=no
2485     gle_halfassed=yes
2486
2487     # sometimes the libmatrix stuff is included in libgle.  look there first.
2488 #
2489 # I don't get it.  For some reason, this test passes on SGI, as if
2490 # uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
2491 # Yet the link is succeeding.  Why???
2492 #
2493 #    AC_CHECK_X_LIB(gle, uview_direction_d, 
2494 #                   [have_gle=yes; gle_halfassed=no],
2495 #                   [], $GL_LIBS -lX11 -lXext -lm)
2496
2497     # As of GLE 3 this is in libgle, and has changed name to uview_direction!
2498     # *sigh*
2499     if test "$have_gle3" = yes ; then
2500       AC_CHECK_X_LIB(gle, uview_direction, 
2501                      [have_gle=yes; gle_halfassed=no],
2502                     [], $GL_LIBS -lX11 -lXext -lm)
2503     fi
2504     # if it wasn't in libgle, then look in libmatrix.
2505     if test "$have_gle" = no ; then
2506       AC_CHECK_X_LIB(matrix, uview_direction_d, 
2507                      [have_gle=yes; gle_halfassed=no;
2508                       GLE_LIBS="$GLE_LIBS -lmatrix"],
2509                     [], $GL_LIBS -lX11 -lXext -lm)
2510     fi
2511   fi
2512
2513   if test "$have_gle" = yes ; then
2514     AC_DEFINE(HAVE_GLE)
2515     if test "$have_gle3" = yes ; then
2516       AC_DEFINE(HAVE_GLE3)
2517     fi
2518   fi
2519
2520 elif test "$with_gle" != no; then
2521   echo "error: must be yes or no: --with-gle=$with_gle"
2522   exit 1
2523
2524 fi
2525
2526
2527
2528 ###############################################################################
2529 #
2530 #       Check for -lXpm.
2531 #
2532 ###############################################################################
2533
2534 have_xpm=no
2535 with_xpm_req=unspecified
2536 AC_ARG_WITH(xpm,
2537 [  --with-xpm              Include support for XPM files in some demos.],
2538   [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
2539
2540 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
2541
2542 if test "$with_xpm" = yes; then
2543   AC_CHECK_X_HEADER(X11/xpm.h,
2544                    [have_xpm=yes
2545                     AC_DEFINE(HAVE_XPM)
2546                     XPM_LIBS="-lXpm"],,
2547                     [#include <X11/Xlib.h>])
2548 elif test "$with_xpm" != no; then
2549   echo "error: must be yes or no: --with-xpm=$with_xpm"
2550   exit 1
2551 fi
2552
2553 # See comment near $motif_requires_xpm, above.
2554 # Need to do this here, after both Motif and XPM have been checked for.
2555 #
2556 if test "$have_motif" = yes -a "$have_xpm" = yes ; then
2557   if test "$motif_requires_xpm" = yes ; then
2558     MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
2559   fi
2560 fi
2561
2562
2563 ###############################################################################
2564 #
2565 #       Check for -lgdk_pixbuf.
2566 #
2567 ###############################################################################
2568
2569 have_gdk_pixbuf=no
2570 with_gdk_pixbuf_req=unspecified
2571 AC_ARG_WITH(pixbuf,
2572 [  --with-pixbuf           Include support for the GDK-Pixbuf library in some
2573                           demos, which will make it possible for them to read
2574                           GIF, JPEG, and PNG files as well.],
2575   [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
2576   [with_gdk_pixbuf=yes])
2577
2578 # if --with-pixbuf=/directory/ was specified, remember that directory so that
2579 # we can also look for the `gdk-pixbuf-config' program in that directory.
2580 case "$with_gdk_pixbuf" in
2581   /*)
2582     gdk_pixbuf_dir="$with_gdk_pixbuf"
2583     ;;
2584   *)
2585     gdk_pixbuf_dir=""
2586     ;;
2587 esac
2588
2589 HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF)
2590
2591 if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then
2592   echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
2593   exit 1
2594 fi
2595
2596 if test "$with_gdk_pixbuf" = yes; then
2597   have_gdk_pixbuf=no
2598
2599   # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
2600   # look in /foo/bin/ for for gdk-pixbuf-config.
2601   #
2602   gdk_pixbuf_path="$PATH"
2603
2604   if test ! -z "$gtk_dir"; then
2605     # canonicalize slashes.
2606     foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
2607     gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
2608   fi
2609
2610   if test ! -z "$gnome_dir"; then
2611     # canonicalize slashes.
2612     foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
2613     gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
2614   fi
2615
2616   AC_PATH_PROGS(gdk_pixbuf_config, gdk-pixbuf-config,, $gdk_pixbuf_path)
2617
2618   # If we found the gdk-pixbuf-config program, run it to get flags.
2619   #
2620   if test -n "$gdk_pixbuf_config" ; then
2621     AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
2622                [ac_cv_gdk_pixbuf_config_cflags=`$gdk_pixbuf_config --cflags`])
2623     AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
2624                [ac_cv_gdk_pixbuf_config_libs=`$gdk_pixbuf_config --libs`])
2625     ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
2626     ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
2627   fi
2628
2629   ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
2630   CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
2631
2632   # check for header 1...
2633   AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
2634
2635   # if that worked, check for header 2...
2636   if test "$have_gdk_pixbuf" = yes; then
2637     have_gdk_pixbuf=no
2638     AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h, [have_gdk_pixbuf=yes])
2639   fi
2640
2641   CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
2642
2643   if test "$have_gdk_pixbuf" = yes; then
2644     # we have the headers, now check for the libraries
2645     have_gdk_pixbuf=no
2646     gdk_pixbuf_halfassed=yes
2647     # library 1...
2648     AC_CHECK_X_LIB(gdk_pixbuf, gdk_pixbuf_new_from_file,
2649                    [have_gdk_pixbuf=yes], [true],
2650                    $ac_gdk_pixbuf_config_libs)
2651     # library 2...
2652     if test "$have_gdk_pixbuf" = yes; then
2653       AC_CHECK_X_LIB(gdk_pixbuf_xlib, gdk_pixbuf_xlib_init,
2654                      [have_gdk_pixbuf=yes
2655                       gdk_pixbuf_halfassed=no],
2656                      [true],
2657                      $ac_gdk_pixbuf_config_libs)
2658     fi
2659   fi
2660
2661   if test "$have_gdk_pixbuf" = yes; then
2662     INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
2663     XPM_LIBS="$ac_gdk_pixbuf_config_libs -lgdk_pixbuf -lgdk_pixbuf_xlib"
2664     AC_DEFINE(HAVE_GDK_PIXBUF)
2665   fi
2666 fi
2667
2668
2669 ###############################################################################
2670 #
2671 #       Check for -ljpeg
2672 #
2673 ###############################################################################
2674
2675 have_jpeg=no
2676 with_jpeg_req=unspecified
2677 jpeg_halfassed=no
2678 AC_ARG_WITH(jpeg,
2679 [  --with-jpeg             Include support for the JPEG library in some demos,
2680                           which will make it possible for them to read JPEG
2681                           files as well.],
2682   [with_jpeg="$withval"; with_jpeg_req="$withval"],
2683   [with_jpeg=yes])
2684
2685 HANDLE_X_PATH_ARG(with_jpeg, --with-jpeg, JPEG)
2686
2687 if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then
2688   echo "error: must be yes or no: --with-jpeg=$with_jpeg"
2689   exit 1
2690 fi
2691
2692 if test "$with_jpeg" = yes; then
2693
2694   have_jpeg=no
2695   AC_CHECK_X_HEADER(jpeglib.h, [have_jpeg=yes])
2696
2697   if test "$have_jpeg" = yes; then
2698     # we have the header, now check for the library
2699     have_jpeg=no
2700     jpeg_halfassed=yes
2701     AC_CHECK_X_LIB(jpeg, jpeg_start_compress,
2702                    [have_jpeg=yes
2703                     jpeg_halfassed=no
2704                     JPEG_LIBS="-ljpeg"
2705                     AC_DEFINE(HAVE_JPEGLIB)])
2706   fi
2707 fi
2708
2709
2710 ###############################################################################
2711 #
2712 #       Check for the XSHM server extension.
2713 #
2714 ###############################################################################
2715
2716 have_xshm=no
2717 with_xshm_req=unspecified
2718 AC_ARG_WITH(xshm-ext,
2719 [  --with-xshm-ext         Include support for the Shared Memory extension.],
2720   [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
2721
2722 HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
2723
2724 if test "$with_xshm" = yes; then
2725
2726   # first check for Xshm.h.
2727   AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],,
2728                     [#include <X11/Xlib.h>])
2729
2730   # if that succeeded, then check for sys/ipc.h.
2731   if test "$have_xshm" = yes; then
2732     have_xshm=no
2733     AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
2734   fi
2735
2736   # if that succeeded, then check for sys/shm.h.
2737   if test "$have_xshm" = yes; then
2738     have_xshm=no
2739     AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
2740   fi
2741
2742   # AIX is pathological, as usual: apparently it's normal for the Xshm headers
2743   # to exist, but the library code to not exist.  And even better, the library
2744   # code is in its own library: libXextSam.a.  So, if we're on AIX, and that
2745   # lib doesn't exist, give up.  (This lib gets added to X_EXTRA_LIBS, and
2746   # that's not quite right, but close enough.)
2747   #
2748   case "$host" in
2749     *-aix*)
2750       if [ `uname -v` -eq 3 ]; then
2751         have_xshm=no
2752         AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
2753                        [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
2754                        [true], -lX11 -lXext -lm)
2755       fi
2756     ;;
2757   esac
2758
2759   # if that succeeded, then we've really got it.
2760   if test "$have_xshm" = yes; then
2761     AC_DEFINE(HAVE_XSHM_EXTENSION)
2762   fi
2763
2764 elif test "$with_xshm" != no; then
2765   echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
2766   exit 1
2767 fi
2768
2769
2770 ###############################################################################
2771 #
2772 #       Check for the DOUBLE-BUFFER server extension.
2773 #
2774 ###############################################################################
2775
2776 have_xdbe=no
2777 with_xdbe_req=unspecified
2778 AC_ARG_WITH(xdbe-ext,
2779 [  --with-xdbe-ext         Include support for the DOUBLE-BUFFER extension.],
2780   [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes])
2781
2782 HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
2783
2784 if test "$with_xdbe" = yes; then
2785
2786   AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],,
2787                     [#include <X11/Xlib.h>])
2788   if test "$have_xdbe" = yes; then
2789     AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)    
2790   fi
2791
2792 elif test "$with_xdbe" != no; then
2793   echo "error: must be yes or no: --with-xdbe-ext=$with_xshm"
2794   exit 1
2795 fi
2796
2797
2798 ###############################################################################
2799 #
2800 #       Check for the SGI XReadDisplay server extension.
2801 #
2802 #       Note: this has to be down here, rather than up with the other server
2803 #       extension tests, so that the output of `configure --help' is in the
2804 #       right order.  Arrgh!
2805 #
2806 ###############################################################################
2807
2808 have_readdisplay=no
2809 with_readdisplay_req=unspecified
2810 AC_ARG_WITH(readdisplay,
2811 [  --with-readdisplay      Include support for the XReadDisplay extension.],
2812   [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
2813   [with_readdisplay=yes])
2814
2815 HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
2816
2817 if test "$with_readdisplay" = yes; then
2818   AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
2819                     AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),,
2820                     [#include <X11/Xlib.h>])
2821 elif test "$with_readdisplay" != no; then
2822   echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
2823   exit 1
2824 fi
2825
2826
2827 ###############################################################################
2828 #
2829 #       Check for a program to generate random text.
2830 #
2831 #       Zippy is funnier than the idiocy generally spat out by `fortune',
2832 #       so first see if "fortune zippy" works.  Else, use plain "fortune".
2833 #
2834 #       We used to dig around in Emacs to look for the "yow" program, but
2835 #       most people who have Emacs also have "fortune zippy", so nevermind.
2836 #
2837 ###############################################################################
2838
2839 with_fortune_req=""
2840 AC_ARG_WITH(fortune,[
2841   --with-fortune=PROGRAM  Some demos are able to run an external program and
2842                           display its text; this names the program to use by
2843                           default (though it can be overridden with X
2844                           resources.)  Default is \"/usr/games/fortune\".],
2845   [with_fortune_req="$withval"; with_fortune="$withval"],[with_fortune=yes])
2846
2847 if test "$with_fortune" = no || test "$with_fortune" = yes ; then
2848   with_fortune=""
2849   with_fortune_req=""
2850 fi
2851
2852 if test -n "$with_fortune_req" ; then
2853   ac_cv_fortune_program=""
2854   case "$with_fortune_req" in
2855     /*)
2856
2857       set dummy $with_fortune_req ; fortune_tmp=$2
2858       AC_MSG_CHECKING([for $fortune_tmp])
2859       if test -x "$fortune_tmp" ; then
2860         AC_MSG_RESULT(yes)
2861       else
2862         AC_MSG_RESULT(no)
2863         with_fortune=""
2864       fi
2865     ;;
2866     *)
2867       set dummy $with_fortune_req ; fortune_tmp=$2
2868       # don't cache
2869       unset ac_cv_path_fortune_tmp
2870       AC_PATH_PROG(fortune_tmp, $fortune_tmp, [])
2871       if test -z "$fortune_tmp" ; then
2872         with_fortune=""
2873       fi
2874     ;;
2875   esac
2876   ac_cv_fortune_program="$with_fortune"
2877
2878 elif test -n "$ac_cv_fortune_program"; then
2879   AC_MSG_RESULT([checking for fortune... (cached) $ac_cv_fortune_program])
2880 fi
2881
2882 unset ac_cv_path_fortune_tmp
2883 unset fortune_tmp
2884
2885 if test -z "$ac_cv_fortune_program" ; then
2886
2887   # first look for fortune in /usr/games/ (and use absolute path)
2888   AC_PATH_PROGS(fortune_tmp, fortune,, "/usr/games")
2889
2890   # if it's not there, look on $PATH (and don't use absolute path)
2891   if test -z "$fortune_tmp" ; then
2892      AC_CHECK_PROGS(fortune_tmp, fortune)
2893   fi
2894
2895   # if we didn't find anything, then just assume /usr/games/
2896   if test -z "$fortune_tmp" ; then
2897      fortune_tmp="/usr/games/fortune"
2898   fi
2899
2900   ac_cv_fortune_program="$fortune_tmp"
2901
2902   # now check to see whether "fortune zippy" works.
2903   #
2904   fortune_tmp="$fortune_tmp zippy"
2905   AC_MSG_CHECKING([for zippy quotes])
2906   if ( $fortune_tmp >/dev/null 2>&1 ); then
2907     ac_cv_fortune_program="$fortune_tmp"
2908     AC_MSG_RESULT($fortune_tmp)
2909   else
2910     AC_MSG_RESULT(no)
2911   fi
2912
2913 fi
2914
2915 unset ac_cv_path_fortune_tmp
2916 unset fortune_tmp
2917
2918 AC_DEFINE_UNQUOTED(FORTUNE_PROGRAM, "$ac_cv_fortune_program")
2919
2920
2921 ###############################################################################
2922 #
2923 #       Check whether it's ok to install some hacks as setuid (e.g., "sonar")
2924 #       This should be safe, but let's give people the option.
2925 #
2926 ###############################################################################
2927
2928 setuid_hacks_default=no
2929 setuid_hacks="$setuid_hacks_default"
2930 AC_ARG_WITH(setuid-hacks,
2931 [  --with-setuid-hacks     Allow some demos to be installed \`setuid root'
2932                           (which is needed in order to ping other hosts.)
2933 ],
2934   [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
2935
2936 HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks)
2937
2938 if test "$setuid_hacks" = yes; then
2939   true
2940 elif test "$setuid_hacks" != no; then
2941   echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks"
2942   exit 1
2943 fi
2944
2945
2946 ###############################################################################
2947 #
2948 #       Done testing.  Now, set up the various -I and -L variables,
2949 #       and decide which GUI program to build by default.
2950 #
2951 ###############################################################################
2952
2953 DEPEND=makedepend
2954 DEPEND_FLAGS=
2955 DEPEND_DEFINES=
2956
2957
2958 if test \! -z "$includedir" ; then 
2959   INCLUDES="$INCLUDES -I$includedir"
2960 fi
2961
2962 if test \! -z "$libdir" ; then
2963   LDFLAGS="$LDFLAGS -L$libdir"
2964 fi
2965
2966
2967 PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2968 ALL_DEMO_PROGRAMS=
2969 if test "$have_motif" = yes; then
2970   PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
2971   ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2972 fi
2973 if test "$have_gtk" = yes; then
2974   PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
2975   ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
2976 fi
2977
2978
2979 if test "$have_kerberos" = yes; then
2980   PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
2981   PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)"
2982 fi
2983 if test "$have_pam" = yes; then
2984   PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)"
2985   PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
2986   INSTALL_PAM="install-pam"
2987 fi
2988   PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)"
2989   PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)"
2990
2991
2992 if test "$enable_locking" = yes; then
2993   LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
2994   LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
2995 else
2996   LOCK_SRCS='$(NOLOCK_SRCS_1)'
2997   LOCK_OBJS='$(NOLOCK_OBJS_1)'
2998 fi
2999
3000 INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)'
3001
3002 if test "$need_setuid" = yes; then
3003   NEED_SETUID=yes
3004 else
3005   NEED_SETUID=no
3006 fi
3007
3008 if test "$setuid_hacks" = yes; then
3009   SETUID_HACKS=yes
3010 else
3011   SETUID_HACKS=no
3012 fi
3013
3014 tab='   '
3015 if test "$have_gl" = yes; then
3016   GL_EXES='$(GL_EXES)'
3017   GL_UTIL_EXES='$(GL_UTIL_EXES)'
3018   GL_MEN='$(GL_MEN)'
3019   GL_KLUDGE="${tab}  "
3020 else
3021   GL_KLUDGE="-${tab}  "
3022 fi
3023
3024 if test "$have_gle" = yes; then
3025   GLE_EXES='$(GLE_EXES)'
3026   GLE_MEN='$(GLE_MEN)'
3027   GLE_KLUDGE="${tab}   "
3028 else
3029   GLE_KLUDGE="-${tab}   "
3030 fi
3031
3032 if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then
3033  JPEG_EXES='$(JPEG_EXES)'
3034 fi
3035
3036
3037 # Another substitution in the XScreenSaver.ad.in file:
3038 #
3039 if test "$have_gnome_help" = yes; then
3040   GNOMEHELP_Y=''
3041   GNOMEHELP_N='!    '
3042 else
3043   GNOMEHELP_Y='!    '
3044   GNOMEHELP_N=''
3045 fi
3046
3047
3048 # Now that we know whether we have Gnome, we can decide where the XML
3049 # config files get installed.
3050 #
3051 if test -z "$HACK_CONF_DIR" ; then
3052   if test -n "$GNOME_DATADIR" ; then
3053     HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers'
3054   else
3055     HACK_CONF_DIR='${prefix}/lib/xscreensaver/config'
3056   fi
3057 fi
3058
3059
3060
3061 # After computing $HACK_CONF_DIR, make sure $GTK_ICONDIR has a value
3062 # so that we know where to install the Gtk pixmaps.
3063 #
3064 if test -n "$GNOME_DATADIR" ; then
3065   GTK_ICONDIR='$(GNOME_DATADIR)/pixmaps'
3066 elif test "$have_gtk" = yes; then
3067   # should this be "$(prefix)/share/pixmaps"? But /usr/X11R6/share/ is wrong...
3068   GTK_ICONDIR='/usr/share/pixmaps'
3069 else
3070   GTK_ICONDIR=''
3071 fi
3072
3073
3074 # canonicalize slashes.
3075 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
3076
3077
3078
3079 ###############################################################################
3080 #
3081 #       Perform substitutions and write Makefiles.
3082 #
3083 ###############################################################################
3084
3085 AC_SUBST(INCLUDES)
3086
3087 AC_SUBST(PREFERRED_DEMO_PROGRAM)
3088 AC_SUBST(ALL_DEMO_PROGRAMS)
3089 AC_SUBST(SAVER_LIBS)
3090 AC_SUBST(MOTIF_LIBS)
3091 AC_SUBST(GTK_LIBS)
3092 AC_SUBST(XML_LIBS)
3093 AC_SUBST(JPEG_LIBS)
3094 AC_SUBST(HACK_LIBS)
3095 AC_SUBST(XPM_LIBS)
3096 AC_SUBST(GL_LIBS)
3097 AC_SUBST(GLE_LIBS)
3098 AC_SUBST(XDPMS_LIBS)
3099 AC_SUBST(PASSWD_LIBS)
3100 AC_SUBST(INSTALL_SETUID)
3101 AC_SUBST(SETUID_HACKS)
3102 AC_SUBST(INSTALL_DIRS)
3103 AC_SUBST(NEED_SETUID)
3104 AC_SUBST(INSTALL_PAM)
3105
3106 AC_SUBST(PASSWD_SRCS)
3107 AC_SUBST(PASSWD_OBJS)
3108 AC_SUBST(XMU_SRCS)
3109 AC_SUBST(XMU_OBJS)
3110 AC_SUBST(XMU_LIBS)
3111 AC_SUBST(SAVER_GL_SRCS)
3112 AC_SUBST(SAVER_GL_OBJS)
3113 AC_SUBST(SAVER_GL_LIBS)
3114 AC_SUBST(LOCK_SRCS)
3115 AC_SUBST(LOCK_OBJS)
3116 AC_SUBST(JPEG_EXES)
3117 AC_SUBST(GL_EXES)
3118 AC_SUBST(GL_UTIL_EXES)
3119 AC_SUBST(GL_MEN)
3120 AC_SUBST(GL_KLUDGE)
3121 AC_SUBST(GLE_EXES)
3122 AC_SUBST(GLE_MEN)
3123 AC_SUBST(GLE_KLUDGE)
3124 AC_SUBST(GNOMEHELP_Y)
3125 AC_SUBST(GNOMEHELP_N)
3126 AC_SUBST(HACKDIR)
3127 AC_SUBST(GNOME_DATADIR)
3128 AC_SUBST(GTK_ICONDIR)
3129 AC_SUBST(HACK_CONF_DIR)
3130
3131 APPDEFAULTS=$ac_x_app_defaults
3132 AC_SUBST(APPDEFAULTS)
3133
3134 AC_SUBST(DEPEND)
3135 AC_SUBST(DEPEND_FLAGS)
3136 AC_SUBST(DEPEND_DEFINES)
3137 AC_SUBST(PERL)
3138
3139 AC_OUTPUT(Makefile
3140           utils/Makefile
3141           driver/Makefile
3142           hacks/Makefile
3143           hacks/glx/Makefile
3144           po/Makefile.in
3145           driver/XScreenSaver.ad)
3146
3147 ###############################################################################
3148 #
3149 #       Print some warnings at the end.
3150 #
3151 ###############################################################################
3152
3153 warn_prefix_1="    Warning:"
3154 warn_prefix_2="       Note:"
3155 warn_prefix="$warn_prefix_1"
3156
3157 warning=no
3158 warnsep='    #################################################################'
3159
3160 warnpre() {
3161   if test "$warning" = no ; then
3162     echo '' ; echo "$warnsep" ; echo ''
3163     warning=yes
3164   fi
3165 }
3166
3167 warn() {
3168   warnpre
3169   if test "$warning" = long ; then echo '' ; fi
3170   warning=yes
3171   rest="$@"
3172   echo "$warn_prefix $rest"
3173 }
3174
3175 warnL() {
3176   was=$warning
3177   warnpre
3178   warning=yes
3179   if test "$was" != no ; then echo '' ; fi
3180   rest="$@"
3181   echo "$warn_prefix $rest"
3182 }
3183
3184 warn2() {
3185   rest="$@"
3186   echo "             $rest"
3187   warning=long
3188 }
3189
3190 note() {
3191   warn_prefix="$warn_prefix_2"
3192   warn $@
3193   warn_prefix="$warn_prefix_1"
3194 }
3195
3196 noteL() {
3197   warn_prefix="$warn_prefix_2"
3198   warnL $@
3199   warn_prefix="$warn_prefix_1"
3200 }
3201
3202
3203 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
3204   warn 'The SGI saver extension was requested, but was not found.'
3205 fi
3206
3207 if test "$with_mit_req" = yes -a "$have_mit" = no ; then
3208   warn 'The MIT saver extension was requested, but was not found.'
3209 fi
3210
3211 if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then
3212   warn 'The XIdle extension was requested, but was not found.'
3213 fi
3214
3215 if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then
3216   warn 'The XSHM extension was requested, but was not found.'
3217 fi
3218
3219 if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then
3220   warn 'The DOUBLE-BUFFER extension was requested, but was not found.'
3221 fi
3222
3223 if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then
3224   warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
3225 fi
3226
3227 if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then
3228   warn 'The DPMS extension was requested, but was not found.'
3229 fi
3230
3231 if test "$with_xinerama_req" = yes -a "$have_xinerama" = no ; then
3232   warn 'The Xinerama extension was requested, but was not found.'
3233 fi
3234
3235 if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then
3236   warn 'The XF86VMODE extension was requested, but was not found.'
3237 fi
3238
3239 if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
3240   warn "Checking of /proc/interrupts was requested, but it's bogus."
3241 fi
3242
3243
3244 if test "$have_motif" = no -a "$have_gtk" = no; then
3245   warnL "Neither Motif nor Gtk seem to be available;"
3246   warn2 "the \`xscreensaver-demo' program requires one of these."
3247
3248 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
3249   warnL "Use of Motif was requested, but it wasn't found;"
3250   warn2 "Gtk will be used instead."
3251
3252 elif test "$jurassic_gtk" = yes ; then
3253
3254   pref_gtk=1.2
3255
3256   v="$ac_gtk_version_string"
3257   if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then
3258     warnL "Use of Gtk was requested, but its version number is unknown;"
3259   elif test "$with_gtk_req" = yes ; then
3260     warnL "Use of Gtk was requested, but it is version $v;"
3261   else
3262     warnL "Gtk was found on this system, but it is version $v;"
3263   fi
3264
3265   warn2 "Gtk $pref_gtk or newer is required.  Motif will be used instead."
3266
3267 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
3268   warnL "Use of Gtk was requested, but it wasn't found;"
3269   warn2 "Motif will be used instead."
3270
3271 fi
3272
3273
3274 if test "$with_gnome_req" = yes -a "$have_gnome" = no ; then
3275   warn  'Use of the Gnome Control Panel was requested, but the necessary'
3276   warn2 'headers and/or libraries were not found.'
3277 fi
3278
3279 if test "$have_gtk" = yes ; then
3280   if test "$have_xml" = no ; then
3281     if test "$with_xml_req" = yes ; then
3282       warn  'Use of the XML library was requested, but the necessary'
3283       warn2 'headers and/or libraries were not found.'
3284     else
3285       warn  'GTK is being used, but the XML library was not found.'
3286     fi
3287
3288     if test "$xml_halfassed" = yes ; then
3289
3290       if test "$have_zlib" = yes ; then
3291         which="XML libraries"
3292       else
3293         which="\`zlib' library"
3294       fi
3295
3296       echo ''
3297       warn2 'More specifically, we found the headers, but not the'
3298       warn2 "$which; so either XML is half-installed on this"
3299       warn2 "system, or something else went wrong.  The \`config.log'"
3300       warn2 'file might contain some clues.'
3301     fi
3302
3303     echo ''
3304     warn2 "Without XML, the per-display-mode \`Settings' dialogs"
3305     warn2 'will not be available.  Specify the location of the XML'
3306     warn2 'library through the --with-xml option to configure.'
3307   fi
3308 fi
3309
3310 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
3311
3312   preferred_lesstif=0.92
3313
3314   if test "$lesstif_version" = unknown; then
3315     warnL "Unable to determine the LessTif version number!"
3316     warn2 "Make sure you are using version $preferred_lesstif or newer."
3317     warn2 "See <http://www.lesstif.org/>."
3318
3319   elif test \! $lesstif_version -gt 82; then
3320     warnL "LessTif version $lesstif_version_string is being used."
3321     warn2 "LessTif versions 0.82 and earlier are too buggy to"
3322     warn2 "use with XScreenSaver; it is strongly recommended"
3323     warn2 "that you upgrade to at least version $preferred_lesstif!"
3324     warn2 "See <http://www.lesstif.org/>."
3325   fi
3326 fi
3327
3328
3329 if test "$have_motif" = yes -a "$have_gtk" = no ; then
3330   warn  'Motif is being used, and GTK is not.'
3331   echo  ''
3332   warn2 'Though the Motif front-end to xscreensaver is still'
3333   warn2 'maintained, it is no longer being updated with new'
3334   warn2 'features: all new development on the xscreensaver-demo'
3335   warn2 'program is happening in the GTK version, and not in the'
3336   warn2 'Motif version.  It is recommended that you build against'
3337   warn2 'GTK instead of Motif.  See <http://www.gtk.org/>.'
3338 fi
3339
3340
3341 if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
3342   warnL 'Use of XPM was requested, but it was not found.'
3343 fi
3344
3345 if test "$with_gdk_pixbuf_req" = yes  -a "$have_gdk_pixbuf" = no; then
3346   warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
3347 fi
3348
3349 if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no; then
3350
3351   if test "$with_xpm_req" = yes ; then
3352     true
3353   elif test "$with_xpm_req" = no ; then
3354     warnL 'The XPM library is not being used.'
3355   else
3356     warnL 'The XPM library was not found.'
3357   fi
3358
3359   if test "$with_gdk_pixbuf_req" = yes ; then
3360     true
3361   elif test "$with_gdk_pixbuf_req" = no ; then
3362     warnL 'The GDK-Pixbuf library is not being used.'
3363   else
3364     warnL 'The GDK-Pixbuf library was not found.'
3365   fi
3366
3367   if test "$gdk_pixbuf_halfassed" = yes ; then
3368     echo ''
3369     warn2 'More specifically, we found the headers, but not the'
3370     warn2 'libraries; so either GDK-Pixbuf is half-installed on this'
3371     warn2 "system, or something else went wrong.  The \`config.log'"
3372     warn2 'file might contain some clues.'
3373   fi
3374
3375   echo ''
3376   warn2 'Some of the demos will not be as colorful as they'
3377   warn2 'could be.  You should consider installing Pixbuf or'
3378   warn2 'XPM and re-running configure.  (Remember to delete'
3379   warn2 'the config.cache file first.)  The Pixbuf library is'
3380   warn2 'a part of GNOME.  The XPM library comes with most'
3381   warn2 'X11 installations; you can also find it at the X11'
3382   warn2 'archive sites, such as <http://sunsite.unc.edu/>.'
3383   echo  ''
3384   warn2 'GDK-Pixbuf is recommended over XPM, as it provides'
3385   warn2 'support for more image formats.'
3386 fi
3387
3388
3389 if test "$have_jpeg" = no ; then
3390   if test "$with_jpeg_req" = yes ; then
3391     warnL 'Use of libjpeg was requested, but it was not found.'
3392   elif test "$with_jpeg_req" = no ; then
3393     noteL 'The JPEG library is not being used.'
3394   else
3395     noteL 'The JPEG library was not found.'
3396   fi
3397
3398   if test "$jpeg_halfassed" = yes ; then
3399     echo ''
3400     warn2 'More specifically, we found the headers, but not the'
3401     warn2 'library; so either JPEG is half-installed on this'
3402     warn2 "system, or something else went wrong.  The \`config.log'"
3403     warn2 'file might contain some clues.'
3404     echo ''
3405   fi
3406
3407   warn2 "This means the \`webcollage' program will be much slower."
3408 fi
3409
3410
3411 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
3412   preferred_mesagl=3.4
3413   mgv="$ac_mesagl_version_string"
3414   pgl="$preferred_mesagl"
3415
3416   if test "$ac_mesagl_version" = unknown; then
3417     warnL "Unable to determine the MesaGL version number!"
3418     warn2 "Make sure you are using version $preferred_mesagl or newer."
3419
3420   elif test \! "$ac_mesagl_version" -gt 2006; then
3421     warnL "MesaGL version $mgv is being used.  MesaGL 2.6 and earlier"
3422     warn2 "have a security bug.  It is strongly recommended that you"
3423     warn2 "upgrade to at least version $preferred_mesagl."
3424
3425   elif test \! "$ac_mesagl_version" -gt 3003; then
3426     warnL "MesaGL version $mgv is being used.  That version has some"
3427     warn2 "bugs; it is recommended that you upgrade to $pgl or newer."
3428   fi
3429 fi
3430
3431 if test "$have_gl" = no ; then
3432   if test "$with_gl_req" = yes ; then
3433     warnL 'Use of GL was requested, but it was not found.'
3434   elif test "$with_gl_req" = no ; then
3435     noteL 'The OpenGL 3D library is not being used.'
3436   else
3437     noteL 'The OpenGL 3D library was not found.'
3438   fi
3439
3440   if test "$gl_halfassed" = yes ; then
3441     echo ''
3442     warn2 'More specifically, we found the headers, but not the'
3443     warn2 'libraries; so either GL is half-installed on this'
3444     warn2 "system, or something else went wrong.  The \`config.log'"
3445     warn2 'file might contain some clues.'
3446   fi
3447
3448   echo ''
3449   warn2 'Those demos which use 3D will not be built or installed.'
3450   warn2 'You might want to consider installing OpenGL and'
3451   warn2 're-running configure.  (Remember to delete the'
3452   warn2 "config.cache file first.)  If your vendor doesn't ship"
3453   warn2 'their own implementation of OpenGL, you can get a free'
3454   warn2 'version at <http://www.mesa3d.org/>.  For general OpenGL'
3455   warn2 'info, see <http://www.opengl.org/>.'
3456
3457 fi
3458
3459
3460 if test "$have_gl" = yes -a "$have_gle" = no ; then
3461   if test "$with_gle_req" = yes ; then
3462     noteL 'Use of the GLE (GL Extrusion) library was requested, but'
3463     warn2 'it was not found (though the OpenGL library was found, and'
3464     warn2 'is being used.)'
3465   elif test "$with_gle_req" = no ; then
3466     noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
3467     warn2 'library is not.'
3468   else
3469     noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
3470     warn2 'was not.'
3471   fi
3472
3473   if test "$gle_halfassed" = yes ; then
3474     echo ''
3475     warn2 'More specifically, we found the headers, but not the'
3476     warn2 'libraries; so either GLE is half-installed on this'
3477     warn2 "system, or something else went wrong.  The \`config.log'"
3478     warn2 'file might contain some clues.'
3479   fi
3480
3481   echo ''
3482   warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
3483   warn2 'will not be built or installed.  You might want to consider'
3484   warn2 'installing GLE and re-running configure.  (Remember to delete'
3485   warn2 'the config.cache file first.)  You can find the GLE library'
3486   warn2 'at <http://www.linas.org/gle/>.  For general OpenGL info,'
3487   warn2 'see <http://www.opengl.org/>.'
3488
3489 fi
3490
3491
3492 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
3493   warn 'Use of XReadDisplay was requested, but it was not found.'
3494 fi
3495
3496 if test -n "$with_fortune_req"; then
3497   if test "$with_fortune_req" != "$ac_cv_fortune_program" ; then
3498     warnL "$with_fortune_req was requested as the Fortune program,"
3499     warn2 "but was not found.  The default will be used instead."
3500   fi
3501 fi
3502
3503 if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then
3504   warn 'Use of Kerberos was requested, but it was not found.'
3505 fi
3506
3507 if test "$with_pam_req" = yes -a "$have_pam" = no ; then
3508   warn 'Use of PAM was requested, but it was not found.'
3509 fi
3510
3511 if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
3512   warn 'Use of shadow passwords was requested, but they were not found.'
3513 fi
3514
3515
3516 # You are in a twisty maze of namespaces and syntaxes, all alike.
3517 # Fuck the skull of Unix.
3518 #
3519 eval bindir=${bindir}
3520 eval bindir=${bindir}
3521 eval bindir=${bindir}
3522 eval bindir=${bindir}
3523 eval bindir=${bindir}
3524 eval bindir=${bindir}
3525 eval HACKDIR=${HACKDIR}
3526 eval HACKDIR=${HACKDIR}
3527 eval HACKDIR=${HACKDIR}
3528 eval HACKDIR=${HACKDIR}
3529 eval HACKDIR=${HACKDIR}
3530 eval HACKDIR=${HACKDIR}
3531 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3532 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3533 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3534 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3535 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3536 eval HACK_CONF_DIR=${HACK_CONF_DIR}
3537
3538 # canonicalize slashes.
3539 bindir=`echo  "${bindir}"              | sed 's@/$@@;s@//*@/@g'`
3540 HACKDIR=`echo "${HACKDIR}"             | sed 's@/$@@;s@//*@/@g'`
3541 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
3542
3543
3544 # Sanity check the hackdir
3545 for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
3546   if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
3547     echo ""
3548     AC_MSG_ERROR([\"--with-hackdir=${bindir}/${bad_choice}\" won't work.
3549                    There will be an executable installed with that name, so
3550                    that can't be the name of a directory as well.  Please
3551                    re-configure with a different directory name.])
3552   fi
3553 done
3554
3555
3556 do_dir_warning=no
3557
3558 # Now let's see if there's a previous RPM version already installed.  Blargh!
3559
3560 # M4 sucks!!
3561 changequote(X,Y)
3562 rpmv=`(rpm -qv xscreensaver) 2>/dev/null | \
3563       sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'`
3564 changequote([,])
3565
3566 if test \! -z "$rpmv" ; then
3567   rpmbdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'`
3568   rpmhdir=`rpm -ql xscreensaver | sed -n 's@^\(.*\)/attraction$@\1@p'`
3569
3570   warning=no
3571   warnL "There is already an installed RPM of xscreensaver $rpmv"
3572   warn2 "on this system.  You might want to remove it (with"
3573   warn2 '"rpm -ve xscreensaver") before running "make install"'
3574   warn2 "from this directory."
3575   echo ""
3576   warn2 "Alternately, you could build this version of xscreensaver"
3577   warn2 'as an RPM, and then install that.  An "xscreensaver.spec"'
3578   warn2 "file is included.  See the RPM documentation for more info."
3579   echo ""
3580
3581   if test "$rpmbdir" = "$rpmhdir" ; then
3582     warn2 "The RPM version was installed in $rpmbdir/."
3583   else
3584     warn2 "The RPM version was installed in $rpmbdir/,"
3585     warn2 "with demos in $rpmhdir/."
3586   fi
3587
3588   do_dir_warning=yes
3589 fi
3590
3591
3592 if test "${bindir}" = "${HACKDIR}" ; then
3593   do_dir_warning=yes
3594 fi
3595
3596 if test "$do_dir_warning" = yes; then
3597   echo ""
3598   echo "$warnsep"
3599   echo ""
3600   echo '      When you run "make install", the "xscreensaver",'
3601   echo '      "xscreensaver-demo", and "xscreensaver-command" executables'
3602   echo "      will be installed in ${bindir}/."
3603   echo ""
3604   echo "      The various graphics demos (140+ different executables) will"
3605   echo "      be installed in ${HACKDIR}/."
3606   echo ""
3607   echo "      If you would prefer the demos to be installed elsewhere,"
3608   echo "      you should re-run configure with the --with-hackdir=DIR"
3609   echo "      option.  For more information, run \`./configure --help'."
3610   warning=yes
3611 fi
3612
3613 if test "$warning" != no; then
3614   echo '' ; echo "$warnsep" ; echo ''
3615 fi
3616
3617 if test "$do_dir_warning" = no; then
3618   if test "$warning" = no; then
3619     echo ''
3620   fi
3621   echo "User programs will be installed in ${bindir}/"
3622   echo "Screen savers will be installed in ${HACKDIR}/"
3623   echo "Configuration will be installed in ${HACK_CONF_DIR}/"
3624   echo ''
3625 fi