4d845bf0df8070b444d2593c1d545be83ac34c0d
[chise/xemacs-chise.git.1] / configure.in
1 dnl Define our own header notice with own copyright
2 define([AC_INIT_NOTICE],
3 [#### Configuration script for XEmacs.  Largely divergent from FSF.
4 #### Guess values for system-dependent variables and create Makefiles.
5 #### Generated automatically using autoconf version] AC_ACVERSION [
6 #### Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
7 #### Copyright (C) 1993-1995 Board of Trustees, University of Illinois.
8 #### Copyright (C) 1996, 1997 Sun Microsystems, Inc.
9 #### Copyright (C) 1995, 1996 Ben Wing.
10 #### Copyright (C) 2000, 2001 Martin Buchholz.
11 #### Copyright (C) 1998, 1999 J. Kean Johnston.
12
13 ### Don't edit this script!
14 ### This script was automatically generated by the `autoconf' program
15 ### from the file `./configure.in'.
16 ### To rebuild it, execute the command
17 ###     autoconf
18 ### in the this directory.  You must have autoconf version 2.13 or later.
19
20 ### This file is part of XEmacs.
21
22 ### XEmacs is free software; you can redistribute it and/or modify it
23 ### under the terms of the GNU General Public License as published by
24 ### the Free Software Foundation; either version 2, or (at your
25 ### option) any later version.
26
27 ### XEmacs is distributed in the hope that it will be useful, but
28 ### WITHOUT ANY WARRANTY; without even the implied warranty of
29 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
30 ### General Public License for more details.
31
32 ### You should have received a copy of the GNU General Public License
33 ### along with XEmacs; see the file COPYING.  If not, write to the Free
34 ### Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
35 ### 02111-1307, USA.
36
37 ### For usage, run `./configure --help'
38 ### For more detailed information on building and installing XEmacs,
39 ### read the file `INSTALL'.
40 ###
41 ### If configure succeeds, it leaves its status in config.status.
42 ### A log of configuration tests can be found in config.log.
43 ### If configure fails after disturbing the status quo,
44 ###     config.status is removed.
45 ])
46
47 dnl Since XEmacs has configuration requirements that autoconf cannot
48 dnl meet, this file is an unholy marriage of custom-baked
49 dnl configuration code and autoconf macros.
50
51 dnl We use the m4 quoting characters [ ] (as established by the
52 dnl autoconf system), so quote them like this: [[foo]]
53
54 AC_PREREQ(2.13)dnl
55 dnl Redefine some standard autoconf macros
56 dnl here is how XEmacs is different:
57 dnl - no cache file
58 dnl - non-standard options
59 dnl - suport for extra-verbosity
60 dnl - ordinary libs are handled separately from X libs (might be a mistake)
61 dnl - various random kludges (e.g. -with-dnet=no)
62
63 dnl PRINT_VAR(var var ...)  prints values of shell variables
64 define([PRINT_VAR],[for var in patsubst([$1],[[
65 ]+],[ ]); do eval "echo \"$var = '\$$var'\""; done])
66
67 dnl Disable cache files:
68 dnl This is controversial, but I am convinced this is the right way to go,
69 dnl at least by default.  Otherwise there are too many surprises.
70 define([AC_CACHE_LOAD], )dnl
71 define([AC_CACHE_SAVE], )dnl
72 define([AC_CACHE_VAL], [
73 $2
74 ])dnl
75
76 dnl Redefine AC_TRY_RUN_NATIVE to not throw away stderr while running
77 dnl AC_TRY_RUN_NATIVE(PROGRAM, [ACTION-IF-TRUE [, ACTION-IF-FALSE]])
78 define([AC_TRY_RUN_NATIVE],
79 [cat > conftest.$ac_ext <<EOF
80 [#]line __oline__ "configure"
81 #include "confdefs.h"
82 [$1]
83 EOF
84 if AC_TRY_EVAL(ac_link) && test -s conftest && (./conftest; exit $?) 2>&AC_FD_CC
85 then
86 dnl Do not remove the temporary files here, so they can be examined.
87   ifelse([$2], , :, [$2])
88 else
89   conftest_rc="$?"
90   echo "configure: failed program was:" >&AC_FD_CC
91   cat conftest.$ac_ext >&AC_FD_CC
92 ifelse([$3], , , [  rm -fr conftest*
93   $3
94 ])dnl
95 fi
96 rm -fr conftest*])dnl AC_TRY_RUN_NATIVE
97
98
99 dnl Avoid spurious cross-compiling warnings from AC_TRY_RUN
100 dnl XEmacs is unlikely to ever cross-compile
101 define([AC_TRY_RUN],[AC_TRY_RUN_NATIVE([$1], [$2], [$3])])dnl
102
103 dnl Redefine AC_DEFINE* to provide more output if extra_verbose
104 dnl Set VARIABLE to VALUE, verbatim, or 1.
105 dnl AC_DEFINE(VARIABLE [, VALUE])
106 define([AC_DEFINE],
107 [{ test "$extra_verbose" = "yes" && cat << \EOF
108     Defining $1[]ifelse($#, 2, [ = $2],)
109 EOF
110 cat >> confdefs.h <<\EOF
111 [#define] $1 ifelse($#, 2, [$2], 1)
112 EOF
113 }
114 ])dnl AC_DEFINE
115
116 define([AC_DEFINE_UNQUOTED],
117 [{ test "$extra_verbose" = "yes" && cat << EOF
118     Defining $1[]ifelse($#, 2, [ = $2],)
119 EOF
120 cat >> confdefs.h <<EOF
121 [#define] $1 ifelse($#, 2, [$2], 1)
122 EOF
123 }
124 ])dnl AC_DEFINE_UNQUOTED
125
126 dnl redefine AC_CHECK_LIB in accordance with our own value of ac_link
127 dnl Add in extra kludgy check to support with_dnet=no
128 dnl Add in extra LDFLAGS arg, which PRECEDE libs
129 dnl Support --with-dnet=no
130
131 dnl AC_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
132 dnl             [, OTHER-LIBRARIES] [, LDFLAGS]]]])
133 define([AC_CHECK_LIB],
134 [ifelse([$1],dnet, [if test "$with_dnet" = "no" ; then
135 ac_cv_lib_dnet_dnet_ntoa=no
136 ifelse([$4], , , [$4]
137 )dnl
138 else
139 ])]
140 AC_CHECK_LIB_ORIG_HACKED([$1],[$2],[$3],[$4],[$5], [$6])
141 [ifelse([$1],dnet,[fi
142 ])]dnl
143 )dnl AC_CHECK_LIB
144
145 define([AC_CHECK_LIB_ORIG_HACKED],
146 [ifelse([$5],,AC_MSG_CHECKING([for $2 in -l$1]),
147 xe_msg_checking="for [$2] in -l[$1]"
148 test -n "[$5]" && xe_msg_checking="$xe_msg_checking using extra libs [$5]"
149 AC_MSG_CHECKING("$xe_msg_checking"))
150 dnl Use a cache variable name containing both the library and function name,
151 dnl because the test really is for library $1 defining function $2, not
152 dnl just for library $1.  Separate tests with the same $1 and different $2s
153 dnl may have different results.
154 ac_lib_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
155 AC_CACHE_VAL(ac_cv_lib_$ac_lib_var,
156 [xe_check_libs="$6 -l$1 $5"
157 AC_TRY_LINK(dnl
158 ifelse([$2], [main], , dnl Avoid conflicting decl of main.
159 [/* Override any gcc2 internal prototype to avoid an error.  */
160 ]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
161 extern "C"
162 #endif
163 ])dnl
164 [/* We use char because int might match the return type of a gcc2
165     builtin and then its argument prototype would still apply.  */
166 char $2();
167 ]),
168             [$2()],
169             eval "ac_cv_lib_$ac_lib_var=yes",
170             eval "ac_cv_lib_$ac_lib_var=no")
171 xe_check_libs=""
172 ])dnl
173 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
174   AC_MSG_RESULT(yes)
175   ifelse([$3], ,
176 [changequote(, )dnl
177   ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \
178     -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
179 changequote([, ])dnl
180   AC_DEFINE_UNQUOTED($ac_tr_lib)
181   XE_PREPEND([-l$1], LIBS)
182 ], [$3])
183 else
184   AC_MSG_RESULT(no)
185 ifelse([$4], , , [$4
186 ])dnl
187 fi
188 ])dnl AC_CHECK_LIB_ORIG_HACKED
189
190
191 dnl AC_LANG_C()
192 define([AC_LANG_C],
193 [define([AC_LANG], [C])dnl
194 ac_ext=c
195 dnl CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
196 dnl ac_cpp='$CPP $CPPFLAGS'
197 dnl ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&AC_FD_CC'
198 dnl ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
199 xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
200 xe_ldflags='$LDFLAGS $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_x_site $ld_switch_run'
201 xe_libs='$ld_call_shared $xe_check_libs $X_EXTRA_LIBS $libs_x $libs_gtk $X_PRE_LIBS $LIBS $libs_machine $libs_system $libs_standard'
202 ac_cpp='$CPP '"$xe_cppflags"
203 ac_compile='${CC-cc} -c $CFLAGS '"$xe_cppflags"' conftest.$ac_ext 1>&AC_FD_CC'
204 ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&AC_FD_CC'
205 cross_compiling=no
206 ]) dnl AC_LANG_C
207
208 dnl The construct foo=`echo $w1 $w2 $w3` fails on some systems if $w1 = -e or -n
209 dnl So we use the following instead.
210 dnl XE_SPACE(var, words)
211 define([XE_SPACE],[
212 T=""
213 for W in $2; do if test -z "$T"; then T="$W"; else T="$T $W"; fi; done
214 $1="$T"
215 ])dnl XE_SPACE
216
217 dnl XE_ADD_OBJS(foo.o ...)
218 define([XE_ADD_OBJS],
219 [extra_objs="$extra_objs [$1]" && dnl
220  if test "$extra_verbose" = "yes"; then
221    echo "    xemacs will be linked with \"[$1]\""
222  fi])dnl XE_ADD_OBJS
223
224 dnl XE_APPEND(value, varname)
225 define([XE_APPEND],
226 [[$2]="$[$2] [$1]" && dnl
227  if test "$extra_verbose" = "yes"; then echo "    Appending \"[$1]\" to \$[$2]"; fi])
228
229 dnl XE_PREPEND(value, varname)
230 define([XE_PREPEND],
231 [[$2]="[$1] $[$2]" && dnl
232  if test "$extra_verbose" = "yes"; then echo "    Prepending \"[$1]\" to \$[$2]"; fi])
233
234 dnl XE_DIE(message)
235 define([XE_DIE], [{ echo "Error:" $1 >&2; exit 1; }])
236
237 dnl XE_STRIP_4TH_COMPONENT(var)
238 dnl Changes i986-pc-linux-gnu to i986-pc-linux, as God (not RMS) intended.
239 define([XE_STRIP_4TH_COMPONENT],
240 [$1=`echo "$$1" | sed '[s/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/]'`])
241
242 dnl Initialize some variables set by options.
243 dnl The variables have the same names as the options, with
244 dnl dashes changed to underlines.
245
246 define([AC_INIT_PARSE_ARGS],[
247
248 dnl Get sane consistent behavior from various shells
249 dnl Avoid losing with weird user CDPATHs
250
251 if test -n "$ZSH_VERSION"; then
252   dnl zsh's Bourne shell emulation options
253   setopt NO_BAD_PATTERN NO_BANG_HIST NO_BG_NICE NO_EQUALS NO_FUNCTION_ARGZERO
254   setopt GLOB_SUBST NO_HUP INTERACTIVE_COMMENTS KSH_ARRAYS NO_MULTIOS NO_NOMATCH
255   setopt RM_STAR_SILENT POSIX_BUILTINS SH_FILE_EXPANSION SH_GLOB SH_OPTION_LETTERS
256   setopt SH_WORD_SPLIT BSD_ECHO IGNORE_BRACES
257   dnl zsh-3.1-beta drops core on the following
258   dnl unset CDPATH
259   if test -n "$CDPATH"; then CDPATH="."; export CDPATH; fi
260 elif test -n "$BASH_VERSION"; then
261   dnl Use Posix mode with bash
262   set -o posix
263   unset CDPATH
264 else
265   if test -n "$CDPATH"; then CDPATH="."; export CDPATH; fi
266 fi
267
268 dnl Initialize some variables set by options.
269 dnl The variables have the same names as the options, with
270 dnl dashes changed to underlines.
271 exec_prefix=NONE
272 host=NONE
273 no_create=
274 nonopt=NONE
275 no_recursion=
276 prefix=NONE
277 program_prefix=NONE
278 program_suffix=NONE
279 program_transform_name=s,x,x,
280 silent=
281 site=
282 srcdir=
283 target=NONE
284 verbose=
285 x_includes=NONE
286 x_libraries=NONE
287
288 dnl Initialize some other variables.
289 subdirs=
290 MFLAGS= MAKEFLAGS=
291 SHELL=${CONFIG_SHELL-/bin/sh}
292 dnl Maximum number of lines to put in a shell here document.
293 ac_max_here_lines=12
294 ])dnl AC_INIT_PARSE_ARGS
295
296 AC_INIT(src/lisp.h)dnl
297 AC_CONFIG_HEADER(src/config.h lwlib/config.h)
298 dnl Remove any more than one leading "." element from the path name.
299 dnl If we do not remove them, then another "./" will be prepended to
300 dnl the file name each time we use config.status, and the program name
301 dnl will get larger and larger.  This would not be a problem, except
302 dnl that since progname gets recorded in all the Makefiles this script
303 dnl produces, move-if-change thinks they're different when they're
304 dnl not.
305 dnl
306 dnl It would be nice if we could put the ./ in a \( \) group and then
307 dnl apply the * operator to that, so we remove as many leading './././'s
308 dnl as are present, but some seds (like Ultrix's sed) don't allow you to
309 dnl apply * to a \( \) group.  Bleah.
310 progname="`echo $0 | sed 's:^\./\./:\./:'`"
311
312 dnl -----------------------------
313 dnl Establish some default values
314 dnl -----------------------------
315
316 XE_APPEND(lib-src, MAKE_SUBDIR)
317 XE_APPEND(lib-src, INSTALL_ARCH_DEP_SUBDIR)
318
319 prefix='/usr/local'
320 exec_prefix='${prefix}'
321 bindir='${exec_prefix}/bin'
322 dnl FSF 19.29 changes to:
323 dnl datadir='${prefix}/share'
324 dnl sharedstatedir='${prefix}/com'
325 dnl libexecdir='${exec_prefix}/libexec'
326 datadir='${prefix}/lib'
327 statedir='${prefix}/lib'
328 libdir='${exec_prefix}/lib'
329 mandir='${prefix}/man/man1'
330 inststaticdir='${PROGNAME}'
331 instvardir='${PROGNAME}-${version}'
332 infodir='${datadir}/${instvardir}/info'
333 infopath=''
334 install_pp=''
335 lispdir='${datadir}/${instvardir}/lisp'
336 moduledir='${datadir}/${instvardir}/${configuration}/modules'
337 sitelispdir='${datadir}/${inststaticdir}/site-lisp'
338 sitemoduledir='${datadir}/${inststaticdir}/site-modules'
339 pkgdir='${datadir}/${instvardir}/lisp'
340 package_path=''
341 etcdir='${datadir}/${instvardir}/etc'
342 archlibdir='${datadir}/${instvardir}/${configuration}'
343 docdir='${archlibdir}'
344 with_netinstall="no"
345 with_prefix='yes'
346 with_site_lisp='no'
347 with_site_modules='yes'
348 with_menubars=''
349 with_scrollbars=''
350 with_widgets=''
351 with_dialogs=''
352 with_file_coding=''
353 cpp='' cppflags='' libs='' ldflags=''
354 extra_includes=''
355 dynamic=''
356 with_x11=''
357 with_msw=''
358 rel_alloc='default'
359 with_system_malloc='default'
360 with_dlmalloc='default'
361 native_sound_lib=''
362 dnl These should be set to the empty string when we want gtk / gnome to
363 dnl be auto-detected instead of manually specified.
364 with_gtk='no'
365 with_gnome='no'
366 dnl use_assertions should be 'yes' by default.  Too many people in this
367 dnl world have core dumps turned off by default or \"cannot find where the
368 dnl core file went\".  At least we should get some useful output ...
369 use_assertions="yes"
370 dnl the following is set to yes or no later.
371 with_toolbars=""
372 with_tty=""
373 use_union_type="no"
374 with_dnet=""
375 pdump="no"
376 dnl dragndrop is still experimental.  When it is stable, comment out the following line:
377 with_dragndrop="no"
378
379 dnl ------------------
380 dnl Options Processing
381 dnl ------------------
382
383 define([USAGE_ERROR],
384 [(echo "$progname: Usage error:"
385 echo " " $1
386 echo "  Use \`$progname --help' to show usage.") >&2 && exit 1])
387
388 dnl Record all the arguments, so we can save them in config.status.
389 arguments="$@"
390
391 dnl Shell Magic: Quote the quoted arguments in ARGUMENTS.  At a later date,
392 dnl in order to get the arguments back in $@, we have to do an
393 dnl 'eval set x "$quoted_arguments"; shift'
394 dnl # We use sed to turn embedded ' into '"'"'.  I truly hate sh quoting.
395 quoted_sed_magic=s/"'"/"'"'"'"'"'"'"'"/g
396 quoted_arguments=
397 for i in "$@"; do
398    case "$i" in
399    -no-create | --no-create | --no-creat | --no-crea | --no-cre \
400    | --no-cr | --no-c) ;;
401    -no-recursion | --no-recursion | --no-recursio | --no-recursi \
402    | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
403    *)
404    quoted_i="`echo '' $i | sed -e 's:^ ::' -e $quoted_sed_magic`"
405    quoted_arguments="$quoted_arguments '$quoted_i'" ;;
406    esac
407 done
408
409 dnl Do not use shift -- that destroys the argument list, which autoconf needs
410 dnl to produce config.status.  It turns out that "set - $arguments" does not
411 dnl work portably.
412 dnl However, it also turns out that many shells cannot expand ${10} at all.
413 dnl So using an index variable does not work either.  It is possible to use
414 dnl some shell magic to make 'set x "$arguments"; shift' work portably.
415 while test $# != 0; do
416   arg="$1"; shift
417   case "$arg" in
418     --no-create|--no-recursion) ;;
419     dnl Anything starting with a hyphen we assume is an option.
420     -* )
421       dnl Separate the switch name from the value it is being given.
422       case "$arg" in
423         -*=*)
424           opt=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*\([[^=]]*\)=.*$:\1:'`
425           val=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*[[^=]]*=\(.*\)$:\1:'`
426           valomitted=no
427         ;;
428            dnl special case these strings since echo may silently eat them:
429            dnl --help ) opt=help val=yes valomitted=yes ;;
430            dnl --version ) opt=version val=yes valomitted=yes ;;
431            dnl -e ) opt=e val=yes valomitted=yes ;;
432            dnl -E ) opt=E val=yes valomitted=yes ;;
433            dnl -n ) opt=n val=yes valomitted=yes ;;
434         -*)
435            dnl If FOO is a boolean argument, --FOO is equivalent to
436            dnl --FOO=yes.  Otherwise, the value comes from the next
437            dnl argument - see below.
438           opt=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*\(.*\)$:\1:'`
439           val="yes" valomitted=yes
440         ;;
441       esac
442
443       dnl translate "-" in option string to "_"
444       optname="$opt"
445       opt="`echo '' $opt | sed -e 's:^ ::' | tr - _`"
446
447       dnl Support --without-FOO as a synonym for --with-FOO=no
448       case "${valomitted}-${opt}" in yes-without_* )
449         opt=`echo $opt | sed 's/without/with/'`
450         valomitted="no" val="no" ;;
451       esac
452
453       dnl Process the option.
454       case "$opt" in
455
456       dnl Process (many) boolean options
457         with_site_lisp  | \
458         with_prefix     | \
459         with_site_modules | \
460         with_x          | \
461         with_x11        | \
462         with_gtk        | \
463         with_gnome      | \
464         with_msw        | \
465         with_gcc        | \
466         dynamic         | \
467         with_ncurses    | \
468         with_dnet       | \
469         with_socks      | \
470         with_dragndrop  | \
471         with_cde        | \
472         with_offix      | \
473         with_gpm        | \
474         with_xpm        | \
475         with_xface      | \
476         with_gif        | \
477         with_jpeg       | \
478         with_png        | \
479         with_tiff       | \
480         with_wmcommand  | \
481         with_xmu        | \
482         with_purify     | \
483         with_quantify   | \
484         with_toolbars   | \
485         with_tty        | \
486         with_xfs        | \
487         with_i18n3      | \
488         with_mule       | \
489         with_file_coding| \
490         with_canna      | \
491         with_wnn        | \
492         with_wnn6       | \
493         with_workshop   | \
494         with_sparcworks | \
495         with_tooltalk   | \
496         with_ldap       | \
497         with_postgresql | \
498         with_pop        | \
499         with_kerberos   | \
500         with_hesiod     | \
501         with_dnet       | \
502         with_infodock   | \
503         with_netinstall   | \
504         external_widget | \
505         verbose         | \
506         extra_verbose   | \
507         usage_tracking  | \
508         use_union_type  | \
509         pdump           | \
510         debug           | \
511         use_assertions  | \
512         memory_usage_stats | \
513         with_clash_detection | \
514         with_modules | \
515         quick_build )
516           dnl Make sure the value given was either "yes" or "no".
517           case "$val" in
518             y | ye | yes )      val=yes ;;
519             n | no )            val=no  ;;
520             * ) USAGE_ERROR("The \`--$optname' option requires a boolean value: \`yes' or \`no'.") ;;
521           esac
522           eval "$opt=\"$val\"" ;;
523
524
525         dnl Options that take a user-supplied value, as in --x-includes=/usr/X11R6/include
526         dnl The cache-file option is ignored (for compatibility with other configures)
527         srcdir          | \
528         compiler        | \
529         cflags          | \
530         cpp             | \
531         cppflags        | \
532         libs            | \
533         ldflags         | \
534         cache_file      | \
535         native_sound_lib| \
536         site_lisp       | \
537         x_includes      | \
538         x_libraries     | \
539         site_includes   | \
540         site_libraries  | \
541         site_prefixes   | \
542         site_runtime_libraries )
543           dnl If the value was omitted, get it from the next argument.
544           if test "$valomitted" = "yes" ; then
545             dnl Get the next argument from the argument list, if there is one.
546             if test "$#" = 0 ; then
547               USAGE_ERROR("The \`--$optname' option requires a value.");
548             fi
549             val="$1"; shift
550           fi
551           eval "$opt=\"$val\""
552         ;;
553
554         dnl Options that take "yes", "no", or "default" values
555         rel_alloc | \
556         with_dlmalloc | \
557         with_debug_malloc  | use_debug_malloc | \
558         with_system_malloc | use_system_malloc )
559           case "$val" in
560             y | ye | yes )      val=yes ;;
561             n | no )            val=no  ;;
562             d | de | def | defa | defau | defaul | default ) val=default ;;
563             * ) USAGE_ERROR(["The \`--$optname' option requires one of these values:
564   \`yes', \`no', or \`default'."]) ;;
565           esac
566           case "$opt" in use_* ) opt="`echo $opt | sed s/use/with/`" ;; esac
567           eval "$opt=\"$val\""
568         ;;
569
570         dnl Has the user requested database support?
571         "with_database" )
572           with_database_berkdb=no
573           with_database_dbm=no
574           with_database_gdbm=no
575           for x in `echo "$val" | sed -e 's/,/ /g'` ; do
576             case "$x" in
577               no ) ;;
578               b | be | ber | berk | berkd | berkdb )       with_database_berkdb=yes ;;
579               d | db | dbm )                               with_database_dbm=yes    ;;
580               g | gn | gnu | gnud | gnudb | gnudbm | gdbm) with_database_gdbm=yes   ;;
581               * ) USAGE_ERROR(["The \`--$optname' option value
582   must be either \`no' or a comma-separated list
583   of one or more of \`berkdb' and either \`dbm' or \`gnudbm'."]) ;;
584             esac
585           done
586           if test "$with_database_dbm"  = "yes" -a \
587                   "$with_database_gdbm" = "yes"; then
588           USAGE_ERROR("Only one of \`dbm' and \`gnudbm' may be specified
589   with the \`--$optname' option.")
590           fi
591         ;;
592
593         dnl Has the user requested sound support?
594         "with_sound" )
595         dnl values is a subset of all,native,nas,esd
596         dnl or their negatives: none,nonative,nonas,noesd
597           for x in `echo "$val" | sed -e 's/,/ /g'` ; do
598             case "$x" in
599               dnl all and none are only permitted as the first in the list.
600               n | no | non | none ) new_sdefault=no ;;
601               a | al | all | both ) new_sdefault=yes ;;
602
603               native )       with_native_sound=yes ;;
604               nonative )     with_native_sound=no ;;
605
606               nas )          with_nas_sound=yes ;;
607               nonas )        with_nas_sound=no ;;
608
609               esd )          with_esd_sound=yes ;;
610               noesd )        with_esd_sound=no ;;
611
612               * ) bogus_sound=yes ;;
613             esac
614             if test "$bogus_sound" -o \
615                  \( -n "$new_sdefault" -a -n "$sound_notfirst" \) ; then
616                 types="\`all', \`none', \`(no)native', \`no(nas)', \`(no)esd'."
617                 USAGE_ERROR(["Valid types for the \`--$optname' option are:
618   $types.
619 The default is to autodetect all sound support."])
620             elif test -n "$new_sdefault" ; then
621                 with_native_sound=$new_sdefault
622                 with_nas_sound=$new_sdefault
623                 with_esd_sound=$new_sdefault
624                 new_sdefault=   # reset this
625             fi
626             sound_notfirst=true
627           done
628         ;;
629
630         dnl Has the user specified a preferred Athena widget set?
631         dnl This bit expands any alias names out for us...
632         "with_athena" )
633           case "$val" in
634             xa | xaw )                    val=xaw    ;;
635             3 | 3d | xaw3d )              val=3d     ;;
636             dnl No `n' for next, someone may try `no'
637             ne | nex | next | naxtaw)     val=next   ;;
638             dnl Have not tested the next two...
639             9 | 95 | xaw95 )              val=95     ;;
640             xp | xpm | xawxpm )           val=xpm    ;;
641             * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
642   \`xaw', \`3d', \`next', \`95', or \`xpm'."]) ;;
643           esac
644           eval "$opt=\"$val\""
645         ;;
646
647         dnl Has the user requested XIM support?
648         "with_xim" )
649           case "$val" in
650             y | ye | yes )                val=yes   ;;
651             n | no | non | none )         val=no    ;;
652             x | xl | xli | xlib )         val=xlib  ;;
653             m | mo | mot | moti | motif ) val=motif ;;
654             * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
655   \`motif', \`xlib', \`yes', or \`no'."]) ;;
656           esac
657           eval "$opt=\"$val\""
658         ;;
659
660         dnl Mail locking specification
661         "mail_locking" )
662           case "$val" in
663             lockf )     val=lockf ;;
664             flock )     val=flock ;;
665             file | dot ) val=file  ;;
666             locking )   val=locking  ;;
667             * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
668   \`lockf', \`flock', \`file', \`locking', or \`mmdf'."]) ;;
669           esac
670           eval "$opt=\"$val\""
671         ;;
672
673         dnl Has the user requested error-checking?
674         "error_checking" )
675           dnl value can be all, none, and/or a list of categories to check.
676           dnl Example: --error-checking=all,noextents,nobufpos
677           dnl Example: --error-checking=none,malloc,gc
678
679           for x in `echo "$val" | sed -e 's/,/ /g'` ; do
680             case "$x" in
681               dnl all and none are only permitted as the first in the list.
682               n | no | non | none ) new_default=no ;;
683               a | al | all )        new_default=yes ;;
684
685               extents )       error_check_extents=yes ;;
686               noextents )     error_check_extents=no ;;
687
688               typecheck )     error_check_typecheck=yes ;;
689               notypecheck )   error_check_typecheck=no ;;
690
691               bufpos )        error_check_bufpos=yes ;;
692               nobufpos )      error_check_bufpos=no ;;
693
694               gc )            error_check_gc=yes ;;
695               nogc )          error_check_gc=no ;;
696
697               malloc )        error_check_malloc=yes ;;
698               nomalloc )      error_check_malloc=no ;;
699
700               byte_code )     error_check_byte_code=yes ;;
701               nobyte_code )   error_check_byte_code=no ;;
702
703               glyphs )     error_check_glyphs=yes ;;
704               noglyphs )   error_check_glyphs=no ;;
705
706               * ) bogus_error_check=yes ;;
707             esac
708             if test "$bogus_error_check" -o \
709                  \( -n "$new_default" -a -n "$echeck_notfirst" \) ; then
710                 if test "$error_check_default" = yes ; then
711                   types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nobufpos', \`nogc', \`nomalloc', \`noglyphs' and \`nobyte-code'."
712                 else
713                   types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', \`malloc', \`glyphs' and \`byte-code'."
714                 fi
715                 USAGE_ERROR(["Valid types for the \`--$optname' option are:
716   $types."])
717             elif test -n "$new_default" ; then
718                 error_check_extents=$new_default
719                 error_check_typecheck=$new_default
720                 error_check_bufpos=$new_default
721                 error_check_gc=$new_default
722                 error_check_malloc=$new_default
723                 error_check_byte_code=$new_default
724                 error_check_glyphs=$new_default
725                 new_default=    # reset this
726             fi
727             echeck_notfirst=true
728           done
729         ;;
730
731         dnl Has the user tried to tell us where the X files are?
732         dnl I think these are dopey, but no less than three alpha
733         dnl testers, at large sites, have said they have their X files
734         dnl installed in odd places.
735
736         dnl Has the user specified one of the path options?
737         prefix | exec_prefix | bindir | datadir | statedir | libdir | \
738         mandir | infodir | infopath | lispdir | etcdir | pkgdir | \
739         archlibdir | docdir | package_path )
740            dnl If the value was omitted, get it from the next argument.
741            if test "$valomitted" = "yes"; then
742              if test "$#" = 0; then
743                  USAGE_ERROR("The \`--$optname' option requires a value.");
744              fi
745              val="$1"; shift
746            fi
747            eval "$opt=\"$val\""
748
749            dnl You need to synchronize this with the way the
750            dnl default values are built.
751            case "$opt" in
752              dnl prefix is taken care of by --with-prefix
753              exec_prefix ) AC_DEFINE(EXEC_PREFIX_USER_DEFINED) ;;
754              lispdir ) AC_DEFINE(LISPDIR_USER_DEFINED) ;;
755              sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
756              moduledir ) AC_DEFINE(MODULEDIR_USER_DEFINED) ;;
757              etcdir  )  AC_DEFINE(ETCDIR_USER_DEFINED) ;;
758              infodir ) AC_DEFINE(INFODIR_USER_DEFINED) ;;
759              infopath ) AC_DEFINE(INFOPATH_USER_DEFINED) ;;
760              package_path ) AC_DEFINE(PACKAGE_PATH_USER_DEFINED) ;;
761              datadir )
762                 AC_DEFINE(INFODIR_USER_DEFINED)
763                 AC_DEFINE(LISPDIR_USER_DEFINED)
764                 AC_DEFINE(MODULEDIR_USER_DEFINED)
765                 AC_DEFINE(ETCDIR_USER_DEFINED)
766                 AC_DEFINE(DOCDIR_USER_DEFINED)
767                 AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;;
768              docdir ) AC_DEFINE(DOCDIR_USER_DEFINED) ;;
769              exec_prefix | libdir | archlibdir ) AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;;
770            esac
771         ;;
772
773         dnl --no-create added by autoconf for use by config.status
774         "no_create" ) ;;
775
776         dnl Has the user asked for some help?
777         "usage" | "help" ) ${PAGER-more} ${srcdir}/configure.usage; exit 0 ;;
778
779         dnl Has the user specified the toolkit(s) to use for GUI elements?
780         "with_menubars"   | \
781         "with_scrollbars" | \
782         "with_dialogs"    | \
783         "with_widgets" )
784           case "$val" in
785             l | lu | luc | luci | lucid )               val=lucid  ;;
786             m | mo | mot | moti | motif )               val=motif  ;;
787             a | at | ath | athe | athen | athena )      val=athena ;;
788             n | no | non | none )                       val=no     ;;
789             y | ye | yes )                              val=yes    ;;
790             g | gt | gtk )                              val=gtk    ;;
791             m | ms | msw )                              val=msw    ;;
792             * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
793   \`gtk\', \`lucid', \`motif', \`athena', \`yes', or \`no'."]) ;;
794           esac
795           eval "$opt=\"$val\""
796         ;;
797
798         dnl Obsolete legacy argument?  Warn, but otherwise ignore.
799         "use_minimal_tagbits" | \
800         "use_indexed_lrecord_implementation" | \
801         "run_in_place"  | \
802         "const_is_losing" | \
803         "with_gnu_make" )
804           AC_MSG_WARN([Obsolete option \`--$optname' ignored.])
805         ;;
806
807         dnl Unrecognized option?  No mercy for user errors.
808         * ) USAGE_ERROR("Unrecognized option: $arg") ;;
809
810       esac
811     ;;
812
813     dnl Assume anything with multiple hyphens is a configuration name.
814     *-*-*) configuration="$arg" ;;
815
816     dnl Unrecognized argument?  No mercy for user errors.
817     *) USAGE_ERROR("Unrecognized argument: $arg") ;;
818
819   esac
820 done
821
822 dnl -------------------------
823 dnl Finish options processing
824 dnl -------------------------
825
826 dnl Several options are equivalent to, and override, environment variables.
827 test -n "$cpp"      && CPP="$cpp"
828 test -n "$cppflags" && CPPFLAGS="$cppflags"
829 test -n "$libs"     && LIBS="$libs"
830 test -n "$ldflags"  && LDFLAGS="$ldflags"
831
832 dnl Get the arguments back.  See the diatribe on Shell Magic above.
833 eval set x "$quoted_arguments"; shift
834
835 dnl --extra-verbose implies --verbose
836 test "$extra_verbose" = "yes" && verbose=yes
837
838 dnl with_x is an obsolete synonym for with_x11
839 test -n "$with_x" && with_x11="$with_x"
840
841 dnl --with-quantify or --with-purify imply --use-system-malloc
842 if test "$with_purify" = "yes" -o "$with_quantify" = "yes"; then
843   test "$with_system_malloc" = "default" && with_system_malloc=yes
844 fi
845
846 dnl XE_CHECK_FEATURE_DEPENDENCY(feature1, feature2)
847 define([XE_CHECK_FEATURE_DEPENDENCY],
848 [if test "$with_$1 $with_$2" = "yes no"; then
849   USAGE_ERROR("--with-$1 requires --with-$2")
850 elif test "$with_$2" = "no" ; then with_$1=no
851 elif test "$with_$1" = "yes"; then with_$2=yes
852 fi
853 ])
854
855 dnl CDE requires tooltalk
856 XE_CHECK_FEATURE_DEPENDENCY(cde, tooltalk)
857
858 dnl Find the source directory.
859 case "$srcdir" in
860
861   dnl If srcdir is not specified, see if  "." or ".." might work.
862   "" )
863     for dir in "`echo $0 | sed 's|//|/|' | sed 's|/[[^/]]*$||'`" "." ".." ; do
864       if test -f "$dir/src/lisp.h" -a \
865               -f "$dir/lisp/version.el" ; then
866         srcdir="$dir"
867         break
868       fi
869     done
870     if test -z "$srcdir" ; then
871       USAGE_ERROR(["Neither the current directory nor its parent seem to
872   contain the XEmacs sources.  If you do not want to build XEmacs in its
873   source tree, you should run \`$progname' in the directory in which
874   you wish to build XEmacs, using the \`--srcdir' option to say where the
875   sources may be found."])
876     fi
877   ;;
878
879   dnl Otherwise, check if the directory they specified is okay.
880   * )
881     if test ! -f "$srcdir/src/lisp.h" -o \
882             ! -f "$srcdir/lisp/version.el" ; then
883       USAGE_ERROR(["The directory specified with the \`--srcdir' option,
884   \`$srcdir', doesn't seem to contain the XEmacs sources.  You should
885   either run the \`$progname' script at the top of the XEmacs source
886   tree, or use the \`--srcdir' option to specify the XEmacs source directory."])
887     fi
888   ;;
889 esac
890
891 dnl ###########################################################################
892 if test -z "$configuration"; then
893   dnl Guess the configuration
894   configuration=`${CONFIG_SHELL-/bin/sh} $srcdir/config.guess`
895   if test -z "$configuration"; then
896     USAGE_ERROR(["XEmacs has not been ported to this host type.
897 Try explicitly specifying the CONFIGURATION when rerunning configure."])
898   fi
899 fi
900
901 AC_PROG_LN_S
902
903 dnl Make symlinks for etc, lisp, and info directories while the path
904 dnl is still relative.  We do not symlink lock because someone may
905 dnl have stuck the source on a read-only partition.  Instead we
906 dnl create it as an actual directory later on if it does not already
907 dnl exist.
908 for dir in lisp etc man info tests; do
909   if test ! -d "$dir" ; then
910     echo Making symbolic link to "$srcdir/$dir"
911     ${LN_S} "$srcdir/$dir" "$dir"
912   fi
913 done
914
915 dnl Do our best to deal with automounter brokenness
916 dnl CANONICALIZE_PATH(varname)
917 define([CANONICALIZE_PATH],
918 [if test -d "/net"; then
919   if test -d "/tmp_mnt/net"; then tdir="tmp_mnt/net"; else tdir="tmp_mnt"; fi
920   $1=`echo "[$]$1" | \
921    sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
922 fi])dnl
923
924 dnl Calculate canonical name for blddir (i.e. current directory).
925 dnl PWD may already be the preferable absolute name for ".",
926 dnl but we can't trust it - it is sometimes inaccurate.
927 absolute_pwd="`pwd`";
928 if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd"
929 then blddir="$PWD"
930 else blddir="$absolute_pwd"; CANONICALIZE_PATH(blddir)
931 fi
932 AC_SUBST(blddir)
933
934 dnl Make srcdir absolute, if not already.  It is important to
935 dnl avoid running the path through pwd unnecessary, since pwd can
936 dnl give you automounter prefixes, which can go away.
937 case "$srcdir" in
938   /* ) ;;
939   .  ) srcdir="$blddir" ;;
940   *  ) srcdir="`cd $srcdir && pwd`"; CANONICALIZE_PATH(srcdir) ;;
941 esac
942
943 dnl Check if the source directory already has a configured system in it.
944 if test `pwd` != `sh -c cd $srcdir && pwd`  \
945    && test -f "$srcdir/src/config.h"; then
946   (echo "$progname: WARNING: The directory tree \`$srcdir' is being used"
947    echo "   as a build directory right now; it has been configured in its own"
948    echo "   right.  To configure in another directory as well, you MUST"
949    echo "   use GNU make.  If you do not have GNU make, then you must"
950    echo "   now do \`make distclean' in $srcdir,"
951    echo "   and then run $progname again.") >&2
952   extrasub='/^VPATH[[    ]]*=/c\
953 vpath %.c $(srcdir)\
954 vpath %.h $(srcdir)\
955 vpath %.y $(srcdir)\
956 vpath %.l $(srcdir)\
957 vpath %.s $(srcdir)\
958 vpath %.in $(srcdir)'
959 fi
960
961 dnl ----------------------------------------
962 dnl Find out which version of XEmacs this is
963 dnl ----------------------------------------
964 . "$srcdir/version.sh" || exit 1;
965 dnl Must do the following first to determine verbosity for AC_DEFINE
966 if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi
967 : "${extra_verbose=$beta}"
968 version="${emacs_major_version}.${emacs_minor_version}"
969 AC_DEFINE_UNQUOTED(EMACS_MAJOR_VERSION, $emacs_major_version)
970 AC_DEFINE_UNQUOTED(EMACS_MINOR_VERSION, $emacs_minor_version)
971 if test -n "$emacs_beta_version" ; then
972   if test "$beta" = "yes"; then
973         version="${version}-b${emacs_beta_version}"
974         AC_DEFINE_UNQUOTED(EMACS_BETA_VERSION, $emacs_beta_version)
975   else
976         version="${version}.${emacs_beta_version}"
977         AC_DEFINE_UNQUOTED(EMACS_PATCH_LEVEL, $emacs_beta_version)
978   fi
979 fi
980 AC_DEFINE_UNQUOTED(XEMACS_CODENAME, "$xemacs_codename")
981 AC_DEFINE_UNQUOTED(EMACS_VERSION, "$version")
982
983 if test "$with_infodock" = "yes"; then
984   if test ! -f ../../ID-INSTALL; then
985     echo "Cannot build InfoDock without InfoDock sources"
986     with_infodock=no
987   fi
988 fi
989
990 if test "$with_infodock" = "yes"; then
991   dnl InfoDock version numbers.  XEmacs will use the same style of numbering
992   dnl after the release of XEmacs 21.0.
993   AC_DEFINE_UNQUOTED(INFODOCK_MAJOR_VERSION, $infodock_major_version)
994   AC_DEFINE_UNQUOTED(INFODOCK_MINOR_VERSION, $infodock_minor_version)
995   AC_DEFINE_UNQUOTED(INFODOCK_BUILD_VERSION, $infodock_build_version)
996   version=${infodock_major_version}.${infodock_minor_version}.${infodock_build_version}
997   PROGNAME=infodock
998   CPPFLAGS="$CPPFLAGS -DINFODOCK"
999 else
1000   PROGNAME=xemacs
1001 fi
1002
1003 AC_DEFINE_UNQUOTED(EMACS_PROGNAME, "$PROGNAME")
1004
1005 dnl ----------------------------------
1006 dnl Error checking and debugging flags
1007 dnl ----------------------------------
1008 dnl Error checking default to "yes" in beta versions, to "no" in releases.
1009 dnl Same goes for --debug and --extra-verbosity.
1010 if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi
1011 test "${error_check_extents=$beta}"   = yes && AC_DEFINE(ERROR_CHECK_EXTENTS)
1012 test "${error_check_typecheck=$beta}" = yes && AC_DEFINE(ERROR_CHECK_TYPECHECK)
1013 test "${error_check_bufpos=$beta}"    = yes && AC_DEFINE(ERROR_CHECK_BUFPOS)
1014 test "${error_check_gc=$beta}"        = yes && AC_DEFINE(ERROR_CHECK_GC)
1015 test "${error_check_malloc=$beta}"    = yes && AC_DEFINE(ERROR_CHECK_MALLOC)
1016 test "${error_check_byte_code=$beta}" = yes && AC_DEFINE(ERROR_CHECK_BYTE_CODE)
1017 test "${error_check_glyphs=$beta}" = yes && AC_DEFINE(ERROR_CHECK_GLYPHS)
1018 dnl debug=yes must be set when error checking is present.  This should be
1019 dnl fixed up.
1020 dnl debug implies other options
1021 if test "${debug:=$beta}" = "yes"; then
1022   use_assertions=yes memory_usage_stats=yes
1023   XE_ADD_OBJS(debug.o)
1024   XE_ADD_OBJS(tests.o)
1025   AC_DEFINE(DEBUG_XEMACS)
1026 fi
1027 test "$use_assertions"     = "yes" && AC_DEFINE(USE_ASSERTIONS)
1028 test "$memory_usage_stats" = "yes" && AC_DEFINE(MEMORY_USAGE_STATS)
1029
1030 dnl ------------------------------
1031 dnl Determine the s&m files to use
1032 dnl ------------------------------
1033 dnl Given the configuration name, set machfile and opsysfile to the
1034 dnl names of the m/*.h and s/*.h files we should use.
1035
1036 dnl Canonicalize the configuration name.
1037 AC_MSG_CHECKING("host system type")
1038 dnl allow -workshop suffix on configuration name
1039 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'`
1040 canonical=`${CONFIG_SHELL-/bin/sh} $srcdir/config.sub "$internal_configuration"`
1041 XE_STRIP_4TH_COMPONENT(configuration)
1042 XE_STRIP_4TH_COMPONENT(canonical)
1043 AC_MSG_RESULT($configuration)
1044
1045 dnl If you add support for a new configuration, add code to this
1046 dnl switch statement to recognize your configuration name and select
1047 dnl the appropriate operating system and machine description files.
1048
1049 dnl You would hope that you could choose an m/*.h file pretty much
1050 dnl based on the machine portion of the configuration name, and an s-
1051 dnl file based on the operating system portion.  However, it turns out
1052 dnl that each m/*.h file is pretty manufacturer-specific - for
1053 dnl example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are
1054 dnl all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
1055 dnl machines.  So we basically have to have a special case for each
1056 dnl configuration name.
1057
1058 dnl As far as handling version numbers on operating systems is
1059 dnl concerned, make sure things will fail in a fixable way.  If
1060 dnl /etc/MACHINES says nothing about version numbers, be
1061 dnl prepared to handle anything reasonably.  If version numbers
1062 dnl matter, be sure /etc/MACHINES says something about it.
1063
1064 dnl Eric Raymond says we should accept strings like "sysvr4" to mean
1065 dnl "System V Release 4"; he writes, "The old convention encouraged"
1066 dnl "confusion between `system' and `release' levels'."
1067
1068 machine='' opsys=''
1069
1070 dnl Straightforward machine determination
1071 case "$canonical" in
1072   sparc-*-*        ) machine=sparc ;;
1073   alpha*-*-*       ) machine=alpha ;;
1074   vax-*-*          ) machine=vax ;;
1075   mips-dec-*       ) machine=pmax ;;
1076   mips-sgi-irix6*  ) machine=iris6d ;;
1077   mips-sgi-*       ) machine=iris4d ;;
1078   mips*-linux      ) machine=mips ;;
1079   romp-ibm-*       ) machine=ibmrt ;;
1080   rs6000-ibm-aix*  ) machine=ibmrs6000 ;;
1081   powerpc-ibm-aix* ) machine=ibmrs6000 ;;
1082   powerpc*-*       ) machine=powerpc ;;
1083   hppa-*-*         ) machine=hp800 ;;
1084   m88k-dg-*        ) machine=aviion ;;
1085   m68*-sony-*      ) machine=news ;;
1086   mips-sony-*      ) machine=news-risc ;;
1087   clipper-*        ) machine=clipper ;;
1088   arm*             ) machine=arm ;;
1089   ns32k-*          ) machine=ns32000 ;;
1090 esac
1091
1092 dnl Straightforward OS determination
1093 case "$canonical" in
1094   *-*-linux*    ) opsys=linux ;;
1095   *-*-netbsd*   ) opsys=netbsd ;;
1096   *-*-openbsd*  ) opsys=openbsd ;;
1097   *-*-nextstep* ) opsys=nextstep ;;
1098   *-*-vms       ) opsys=vms ;;
1099
1100   dnl DEC OSF
1101   *-dec-osf1.3 | *-dec-osf2* ) opsys=decosf1-3 ;;
1102   *-dec-osf1.2 | *-dec-osf1* ) opsys=decosf1-2 ;;
1103   *-dec-osf3.[[2-9]]         ) opsys=decosf3-2 ;;
1104   *-dec-osf3*                ) opsys=decosf3-1 ;;
1105   *-dec-osf[[4-9]]*          ) opsys=decosf4-0 ;;
1106
1107   dnl DEC Ultrix
1108   *-*-ultrix[[0-3]].* | *-*-ultrix4.0* ) opsys=bsd4-2 ;;
1109   *-*-ultrix4.[[12]]* ) opsys=bsd4-3 ;;
1110   *-*-ultrix* )         opsys=ultrix4-3 ;;
1111
1112   dnl AIX
1113   *-*-aix3.1*  ) opsys=aix3-1   ;;
1114   *-*-aix3.2.5 ) opsys=aix3-2-5 ;;
1115   *-*-aix3*    ) opsys=aix3-2   ;;
1116   *-*-aix4.0*  ) opsys=aix4     ;;
1117   *-*-aix4.1*  ) opsys=aix4-1   ;;
1118   *-*-aix4*    ) opsys=aix4-2   ;;
1119
1120   dnl Other generic OSes
1121   *-gnu* )                      opsys=gnu    ;;
1122   *-*-bsd4.[[01]] )             opsys=bsd4-1 ;;
1123   *-*-bsd4.2 )                  opsys=bsd4-2 ;;
1124   *-*-bsd4.3 )                  opsys=bsd4-3 ;;
1125   *-*-aos4.2 )                  opsys=bsd4-2 ;;
1126   *-*-aos*   )                  opsys=bsd4-3 ;;
1127   *-*-sysv0    | *-*-sysvr0 )   opsys=usg5-0 ;;
1128   *-*-sysv2    | *-*-sysvr2 )   opsys=usg5-2 ;;
1129   *-*-sysv2.2  | *-*-sysvr2.2 ) opsys=usg5-2-2 ;;
1130   *-*-sysv3*   | *-*-sysvr3* )  opsys=usg5-3 ;;
1131   *-*-sysv4.1* | *-*-sysvr4.1* )opsys=usg5-4 NON_GNU_CPP=/usr/lib/cpp ;;
1132   *-*-sysv4.[[2-9]]* | *-sysvr4.[[2-9]]* )
1133         if test -z "$NON_GNU_CPP" ; then
1134           for prog in "/usr/ccs/lib/cpp" "/lib/cpp"; do
1135             if test -f "$prog"; then NON_GNU_CPP="$prog"; break; fi
1136           done
1137         fi
1138         opsys=usg5-4-2 ;;
1139     *-sysv4* | *-sysvr4* )      opsys=usg5-4 ;;
1140     *-*-mach_bsd4.3* )          opsys=mach-bsd4-3 ;;
1141 esac
1142
1143 case "$canonical" in
1144
1145   dnl NetBSD ports
1146   *-*-netbsd* )
1147     case "$canonical" in
1148       i[[3-9]]86-*-netbsd*) machine=intel386 ;;
1149       hp300-*-netbsd* | amiga-*-netbsd* | sun3-*-netbsd* | mac68k-*-netbsd* | da30-*-netbsd* | m68k-*-netbsd* )
1150                       dnl Yes, this is somewhat bogus.
1151                       machine=hp9000s300 ;;
1152       pc532-*-netbsd* | ns32k-*-netbsd* )  machine=ns32000 ;;
1153       pmax-*-netbsd*  | mips-*-netbsd*  )  machine=pmax ;;
1154     esac
1155   ;;
1156
1157   dnl OpenBSD ports
1158   *-*-openbsd* )
1159     case "${canonical}" in
1160       i386-*-openbsd*)          machine=intel386 ;;
1161       m68k-*-openbsd*)          machine=hp9000s300 ;;
1162       mipsel-*-openbsd*)        machine=pmax ;;
1163      esac
1164    ;;
1165
1166   dnl Acorn RISCiX:
1167   arm-acorn-riscix1.1* ) machine=acorn opsys=riscix1-1 ;;
1168   arm-acorn-riscix1.2* | arm-acorn-riscix ) machine=acorn opsys=riscix1-2 ;;
1169
1170   dnl Alliant machines
1171   fx80-alliant-* ) machine=alliant4     opsys=bsd4-2 ;;
1172   i860-alliant-* ) machine=alliant-2800 opsys=bsd4-3 ;;
1173
1174   dnl Altos 3068
1175   m68*-altos-sysv* ) machine=altos opsys=usg5-2 ;;
1176
1177   dnl Amdahl UTS
1178   580-amdahl-sysv* ) machine=amdahl opsys=usg5-2-2 ;;
1179
1180   dnl Apollo, Domain/OS
1181   m68*-apollo-* ) machine=apollo opsys=bsd4-3 ;;
1182
1183   dnl AT&T 3b2, 3b5, 3b15, 3b20
1184   we32k-att-sysv* ) machine=att3b opsys=usg5-2-2 ;;
1185
1186   dnl AT&T 3b1 - The Mighty Unix PC!
1187   m68*-att-sysv* ) machine=7300 opsys=usg5-2-2 ;;
1188
1189   dnl Bull machines
1190   rs6000-bull-bosx* ) machine=ibmrs6000 opsys=aix3-2 ;; # dpx20
1191   m68*-bull-sysv3*  ) machine=dpx2      opsys=usg5-3 ;; # dpx2
1192   m68*-bull-sysv2*  ) machine=sps7      opsys=usg5-2 ;; # sps7
1193
1194   dnl CCI 5/32, 6/32 -- see "Tahoe".
1195
1196   dnl Celerity
1197   celerity-celerity-bsd* ) machine=celerity opsys=bsd4-2 ;;
1198
1199   dnl Convex
1200   *-convex-bsd* | *-convex-convexos* )
1201     machine=convex opsys=bsd4-3
1202     NON_GNU_CPP="cc -E -P"
1203   ;;
1204
1205   dnl Cubix QBx/386
1206   i[[3-9]]86-cubix-sysv* ) machine=intel386 opsys=usg5-3 ;;
1207
1208   dnl Data General AViiON Machines
1209   i586-dg-dgux*R4*   | i586-dg-dgux5.4.4* ) machine=aviion opsys=dgux5-4r4 ;;
1210   m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* ) opsys=dgux5-4r3 ;;
1211   m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* ) opsys=dgux5-4r2 ;;
1212   m88k-dg-dgux*                           ) opsys=dgux     ;;
1213
1214   dnl Motorola Delta machines
1215   m68k-motorola-sysv* | m68000-motorola-sysv* ) machine=delta opsys=usg5-3 ;;
1216   m88k-motorola-sysv4* )
1217     dnl jbotte@bnr.ca says that UNIX_System_V <hostName> 4.0 R40V4.3 m88k mc88110
1218     dnl needs POSIX_SIGNALS and therefore needs usg5-4-2.
1219     dnl I hope there are not other 4.0 versions for this machine
1220     dnl which really need usg5-4 instead.
1221     machine=delta88k opsys=usg5-4-2
1222   ;;
1223   m88k-motorola-sysv* | m88k-motorola-m88kbcs* ) machine=delta88k opsys=usg5-3 ;;
1224
1225   dnl Dual machines
1226   m68*-dual-sysv*    ) machine=dual opsys=usg5-2   ;;
1227   m68*-dual-uniplus* ) machine=dual opsys=unipl5-2 ;;
1228
1229   dnl Encore machines
1230   ns16k-encore-bsd* ) machine=ns16000 opsys=umax ;;
1231
1232   dnl Gould Power Node and NP1
1233   pn-gould-bsd4.2* ) machine=gould     opsys=bsd4-2 ;;
1234   pn-gould-bsd4.3* ) machine=gould     opsys=bsd4-3 ;;
1235   np1-gould-bsd* )   machine=gould-np1 opsys=bsd4-3 ;;
1236
1237   dnl Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000
1238   dnl as far as XEmacs is concerned).
1239   m88k-harris-cxux* )
1240     dnl Build needs to be different on 7.0 and later releases
1241     case "`uname -r`" in
1242        [[56]].[[0-9]] ) machine=nh4000 opsys=cxux  ;;
1243        [[7]].[[0-9]]  ) machine=nh4000 opsys=cxux7 ;;
1244     esac
1245     NON_GNU_CPP="/lib/cpp"
1246   ;;
1247   dnl Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
1248   m68k-harris-cxux* ) machine=nh3000 opsys=cxux ;;
1249   dnl Harris power pc NightHawk running Power UNIX (Series 6000)
1250   powerpc-harris-powerunix ) machine=nh6000 opsys=powerunix NON_GNU_CPP="cc -Xo -E -P" ;;
1251
1252   dnl Honeywell XPS100
1253   xps*-honeywell-sysv* ) machine=xps100 opsys=usg5-2 ;;
1254
1255   dnl HP 9000 series 200 or 300
1256   m68*-hp-bsd* ) machine=hp9000s300 opsys=bsd4-3 ;;
1257
1258   dnl HP-UX
1259   *-hp-hpux* )
1260     dnl Figure out machine and opsys orthogonally
1261     case "$canonical" in
1262       m68*  ) machine=hp9000s300 ;;
1263       hppa* ) machine=hp800      ;;
1264     esac
1265
1266     case "$canonical" in
1267       *-hp-hpux7*  )  opsys=hpux   ;;
1268       *-hp-hpux8*  )  opsys=hpux8  ;;
1269       *-hp-hpux9*  )  opsys=hpux9  ;;
1270       *-hp-hpux10* )  opsys=hpux10 ;;
1271       *-hp-hpux11* )  opsys=hpux11 ;;
1272       *            )  opsys=hpux   ;;
1273     esac
1274
1275     dnl HP has a broken "strcat"
1276     case "$opsys" in hpux9 | hpux10 ) XE_ADD_OBJS(strcat.o) ;; esac
1277
1278     if test "$opsys" = "hpux10" -o "$opsys" = "hpux11"; then \
1279         ansi_flag="-Ae"; else ansi_flag="-Aa"; fi
1280     NON_GNU_CC="cc $ansi_flag" NON_GNU_CPP="cc $ansi_flag -E"
1281
1282     case "$canonical" in *-hp-hpux*shr* ) opsys="${opsys}-shr" ;; esac
1283   ;;
1284
1285   dnl Orion machines
1286   orion-orion-bsd*   ) machine=orion    opsys=bsd4-2 ;;
1287   clipper-orion-bsd* ) machine=orion105 opsys=bsd4-2 ;;
1288
1289   dnl IBM machines
1290   i[[3-9]]86-ibm-aix1.1* ) machine=ibmps2-aix opsys=usg5-2-2 ;;
1291   i[[3-9]]86-ibm-aix1.[[23]]* | i[[3-9]]86-ibm-aix* ) machine=ibmps2-aix opsys=usg5-3 ;;
1292   i370-ibm-aix*) machine=ibm370aix opsys=usg5-3 ;;
1293   romp-ibm-aos*    ) opsys=bsd4-3 ;;
1294   romp-ibm-bsd*    ) opsys=bsd4-3 ;;
1295   romp-ibm-mach*   ) opsys=mach-bsd4-3 ;;
1296
1297   dnl Integrated Solutions "Optimum V"
1298   m68*-isi-bsd4.2* ) machine=isi-ov opsys=bsd4-2 ;;
1299   m68*-isi-bsd4.3* ) machine=isi-ov opsys=bsd4-3 ;;
1300
1301   dnl Intel 386 machines where we do care about the manufacturer
1302   i[[3-9]]86-intsys-sysv* ) machine=is386 opsys=usg5-2-2 ;;
1303
1304   dnl Prime EXL
1305   i[[3-9]]86-prime-sysv* ) machine=i386 opsys=usg5-3 ;;
1306
1307   dnl Sequent Symmetry running Dynix
1308   i[[3-9]]86-sequent-bsd* ) machine=symmetry opsys=bsd4-3 ;;
1309
1310   dnl Sequent Symmetry running DYNIX/ptx
1311   i[[3-9]]86-sequent-ptx* ) machine=sequent-ptx opsys=ptx NON_GNU_CPP="/lib/cpp" ;;
1312
1313   dnl Unspecified sysv on an ncr machine defaults to svr4.2.
1314   dnl (Plain usg5-4 does not turn on POSIX signals, which we need.)
1315   i[[3-9]]86-ncr-sysv* ) machine=ncr386 opsys=usg5-4-2 ;;
1316
1317   dnl Intel Paragon OSF/1
1318   i860-intel-osf1* ) machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp ;;
1319
1320   dnl Intel 860
1321   i860-*-sysv4* ) machine=i860 opsys=usg5-4 NON_GNU_CC="/bin/cc" NON_GNU_CPP="/usr/ccs/lib/cpp" ;;
1322
1323   dnl Masscomp machines
1324   m68*-masscomp-rtu* ) machine=masscomp opsys=rtu ;;
1325
1326   dnl Megatest machines
1327   m68*-megatest-bsd* ) machine=mega68 opsys=bsd4-2 ;;
1328
1329   dnl Workstations sold by MIPS
1330   dnl This is not necessarily all workstations using the MIPS processor -
1331   dnl Irises are produced by SGI, and DECstations by DEC.
1332   mips-mips-usg* ) machine=mips4 ;;
1333   mips-mips-riscos4 )
1334     machine=mips4
1335     NON_GNU_CC="cc -systype bsd43"
1336     NON_GNU_CPP="cc -systype bsd43 -E"
1337     case "$canonical" in
1338       mips-mips-riscos4* ) opsys=bsd4-3  ;;
1339       mips-mips-riscos5* ) opsys=riscos5 ;;
1340     esac
1341   ;;
1342   mips-mips-bsd* ) machine=mips opsys=bsd4-3 ;;
1343   mips-mips-*    ) machine=mips opsys=usg5-2-2 ;;
1344
1345   dnl NeXT
1346   m68*-next-* | m68k-*-nextstep* ) machine=m68k opsys=nextstep ;;
1347
1348   dnl The complete machine from National Semiconductor
1349   ns32k-ns-genix* ) machine=ns32000 opsys=usg5-2 ;;
1350
1351   dnl NCR machines
1352   m68*-ncr-sysv2* | m68*-ncr-sysvr2* ) machine=tower32   opsys=usg5-2-2 ;;
1353   m68*-ncr-sysv3* | m68*-ncr-sysvr3* ) machine=tower32v3 opsys=usg5-3 ;;
1354
1355   dnl Nixdorf Targon 31
1356   m68*-nixdorf-sysv* ) machine=targon31 opsys=usg5-2-2 ;;
1357
1358   dnl Nu (TI or LMI)
1359   m68*-nu-sysv* ) machine=nu opsys=usg5-2 ;;
1360
1361   dnl Plexus
1362   m68*-plexus-sysv* ) machine=plexus opsys=usg5-2 ;;
1363
1364   dnl Pyramid machines
1365   pyramid-pyramid-bsd* ) machine=pyramid opsys=bsd4-2 ;;
1366
1367   dnl Sequent Balance
1368   ns32k-sequent-bsd4.2* ) machine=sequent opsys=bsd4-2 ;;
1369   ns32k-sequent-bsd4.3* ) machine=sequent opsys=bsd4-3 ;;
1370
1371   dnl Siemens Nixdorf
1372   mips-siemens-sysv* | mips-sni-sysv*)
1373     machine=mips-siemens opsys=usg5-4
1374     NON_GNU_CC=/usr/ccs/bin/cc
1375     NON_GNU_CPP=/usr/ccs/lib/cpp
1376   ;;
1377
1378   dnl NEC
1379   mips-nec-sysv*)
1380     machine=mips-nec
1381     NON_GNU_CC=/usr/ccs/bin/cc
1382     NON_GNU_CPP=/usr/ccs/lib/cpp
1383   ;;
1384
1385   dnl Silicon Graphics machines
1386   dnl Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
1387   m68*-sgi-iris3.5* ) machine=irist opsys=iris3-5 ;;
1388   m68*-sgi-iris3.6* | m68*-sgi-iris*) machine=irist opsys=iris3-6 ;;
1389   dnl Iris 4D
1390   mips-sgi-irix3.*    ) opsys=irix3-3 ;;
1391   mips-sgi-irix4.*    ) opsys=irix4-0 ;;
1392   mips-sgi-irix6*     ) opsys=irix6-0 ;;
1393   mips-sgi-irix5.1*   ) opsys=irix5-1 ;;
1394   mips-sgi-irix5.2*   ) opsys=irix5-2 ;;
1395   mips-sgi-irix5.*    ) opsys=irix5-3 ;;
1396   mips-sgi-irix*      ) opsys=irix5-0 ;;
1397
1398   dnl SONY machines
1399   *-sony-newsos[[34]]* | *-sony-news[[34]]* ) opsys=bsd4-3 ;;
1400   *-sony-news* ) opsys=newsos5 ;;
1401
1402   dnl Stride
1403   m68*-stride-sysv* ) machine=stride opsys=usg5-2 ;;
1404
1405   dnl Suns
1406   *-*-solaris* | *-*-sunos* | *-sun-mach* | *-sun-bsd* )
1407     dnl Hardware type
1408     case "$canonical" in
1409       m68*-sunos1* )             machine=sun1     ;;
1410       m68*-sunos2* )             machine=sun2     ;;
1411       m68* )                     machine=sun3     ;;
1412       i*86*-sun-sunos[[34]]* )   machine=sun386   ;;
1413       i*86-*-* )                 machine=intel386 ;;
1414       rs6000* )                  machine=rs6000   ;;
1415     esac
1416
1417     dnl Make $canonical even more so.
1418     case "$canonical" in *-sunos5*)
1419       canonical=`echo $canonical | sed -e s/sunos5/solaris2/`;;
1420     esac
1421
1422     dnl On SunOS 4, use /usr/lib/cpp, sans dynodump, /bin/ranlib
1423     dnl On SunOS 5, use cc -E,        need dynodump, RANLIB not needed
1424     dnl But, SunOS 5.6 no longer needs dynodump because it has a similar
1425     dnl function integrated.
1426     case "$canonical" in
1427       *-sunos4* )
1428         #test -f /usr/lib/cpp     && NON_GNU_CPP=/usr/lib/cpp ;;
1429         : ;;
1430       *-solaris2* )
1431         #test -f /usr/ccs/lib/cpp && NON_GNU_CPP=/usr/ccs/lib/cpp
1432         RANLIB=':' ;;
1433     esac
1434
1435     case "$canonical" in
1436       *-solaris*          )
1437         opsys=sol2
1438         os_release=`uname -r | sed -e 's/^\([[0-9]]\)\.\([[0-9]]\).*/\1\2/'`
1439         AC_DEFINE_UNQUOTED(OS_RELEASE, $os_release) ;;
1440
1441       dnl The last Sun386 ran 4.0.
1442       i*86-*-sunos4*      ) opsys=sunos4-0      ;;
1443       *-sunos4.0*         ) opsys=sunos4-0      ;;
1444       *-sunos4.1.2*       ) opsys=sunos4-1-2    ;;
1445       *-sunos4.1.3*       ) opsys=sunos4-1-3    ;;
1446       *-sunos4.1.[[4-9]]* ) opsys=sunos4-1-4    ;;
1447       *-sunos4* | *-sunos ) opsys=sunos4-1      ;;
1448       *-mach*             ) opsys=mach-bsd4-3   ;;
1449       *                   ) opsys=bsd4-2        ;;
1450     esac
1451
1452     case "$canonical" in *-sunos4*shr* ) opsys="${opsys}-shr" ;; esac
1453
1454     dnl Watch out for a compiler guaranteed not to work.
1455     test "$opsys $CC" = "sol2 /usr/ucb/cc" && CC=""
1456   ;;
1457
1458   dnl Tadpole 68k
1459   m68*-tadpole-sysv* ) machine=tad68k opsys=usg5-3 ;;
1460
1461   dnl Tahoe machines
1462   tahoe-tahoe-bsd4.2* ) machine=tahoe opsys=bsd4-2 ;;
1463   tahoe-tahoe-bsd4.3* ) machine=tahoe opsys=bsd4-3 ;;
1464
1465   dnl Tandem Integrity S2
1466   mips-tandem-sysv* ) machine=tandem-s2 opsys=usg5-3 ;;
1467
1468   dnl Tektronix XD88
1469   m88k-tektronix-sysv3* ) machine=tekxd88 opsys=usg5-3 ;;
1470
1471   dnl Tektronix 16000 box (6130?)
1472   ns16k-tektronix-bsd* ) machine=ns16000 opsys=bsd4-2 ;;
1473   dnl Tektronix 4300
1474   dnl src/m/tek4300.h hints that this is a m68k machine.
1475   m68*-tektronix-bsd* ) machine=tek4300 opsys=bsd4-3 ;;
1476
1477   dnl Titan P2 or P3
1478   titan-titan-sysv* ) machine=titan opsys=usg5-3 ;;
1479
1480   dnl Ustation E30 (SS5E)
1481   m68*-unisys-uniplus* ) machine=ustation opsystem=unipl5-2 ;;
1482
1483   dnl Vaxen.
1484   vax-dec-* )
1485     case "$canonical" in
1486       *-sysv[[01]]* | *-sysvr[[01]]* )  opsys=usg5-0 ;;
1487       *-sysv2* | *-sysvr2* )            opsys=usg5-2 ;;
1488       *-mach* )                         opsys=mach-bsd4-3 ;;
1489     esac
1490   ;;
1491
1492   dnl Whitechapel MG1
1493   ns16k-whitechapel-* ) machine=mg1 ;;
1494
1495   dnl Wicat
1496   m68*-wicat-sysv* ) machine=wicat opsys=usg5-2 ;;
1497
1498   dnl Intel 386 machines where we do not care about the manufacturer
1499   i[[3-9]]86-*-* )
1500     machine=intel386
1501     case "$canonical" in
1502       *-isc1.* | *-isc2.[[01]]* ) opsys=386-ix ;;
1503       *-isc2.2* )               opsys=isc2-2 ;;
1504       *-isc4.0* )               opsys=isc4-0 ;;
1505       *-isc4.* )                opsys=isc4-1
1506                                 GCC_TEST_OPTIONS=-posix
1507                                 NON_GCC_TEST_OPTIONS=-Xp
1508                                 ;;
1509       *-isc* )                  opsys=isc3-0 ;;
1510       *-esix5* )                opsys=esix5r4 NON_GNU_CPP=/usr/lib/cpp ;;
1511       *-esix* )                 opsys=esix ;;
1512       *-mach* )                 opsys=mach-bsd4-3 ;;
1513       *-xenix* )                opsys=xenix ;;
1514       *-sco3.2v4* )             opsys=sco4 NON_GNU_CPP=/lib/cpp  ;;
1515       *-bsd386* | *-bsdi1* )    opsys=bsd386 ;;
1516       *-bsdi4* )                opsys=bsdos4 ;;
1517       *-bsdi3* )                opsys=bsdos3 ;;
1518       *-bsdi2.1* )              opsys=bsdos2-1 ;;
1519       *-bsdi2* )                opsys=bsdos2 ;;
1520       *-sco3.2v5* )             opsys=sco5 ;;
1521       *-sysv5* )                opsys=sco7 ;;
1522       *-386bsd* )               opsys=386bsd ;;
1523       *-freebsd* )              opsys=freebsd ;;
1524       *-nextstep* )             opsys=nextstep ;;
1525       *-pc-cygwin* )            opsys=cygwin32 ;;
1526       *-pc-mingw* )             opsys=mingw32 ;
1527                                 test -z "$with_tty" && with_tty="no";;
1528       dnl Otherwise, we fall through to the generic opsys code at the bottom.
1529     esac
1530   ;;
1531
1532   dnl Linux/68k
1533   m68k-*-linux* ) machine=m68k opsys=linux ;;
1534
1535 esac
1536
1537 dnl Initialize machine and opsys from $canonical if not in our database above.
1538 test -z "$machine" && machine=`echo $canonical | sed 's/-.*$//'`
1539 test -z "$opsys"   && opsys=`echo $canonical | sed 's/^[^-]*-[^-]*-//'`
1540
1541 dnl Use configure-time autodetection if s&m not available
1542 if test -r "${srcdir}/src/m/${machine}.h"; then
1543   machfile="m/${machine}.h"
1544   AC_DEFINE_UNQUOTED(config_machfile, "$machfile")
1545 else
1546   echo "XEmacs has no builtin knowledge of \`$machine' machines."
1547   echo "Using configure-time autodetection only."
1548 fi
1549
1550 if test -r "${srcdir}/src/s/${opsys}.h"; then
1551   opsysfile="s/${opsys}.h"
1552   AC_DEFINE_UNQUOTED(config_opsysfile, "$opsysfile")
1553 else
1554   echo "XEmacs has no builtin knowledge of \`$opsys' operating systems."
1555   echo "Using configure-time autodetection only."
1556 fi
1557
1558
1559 if test -z "$dynamic"; then
1560   case "$opsys" in
1561     hpux* | sunos4* ) dynamic=no ;;
1562     *) dynamic=yes ;;
1563   esac
1564 fi
1565 if test "$dynamic" = "yes"; then
1566   case "$opsys" in
1567     hpux* | sunos4* | sco5 ) opsys="${opsys}-shr" ;;
1568     decosf* ) ld_call_shared="-call_shared" ;;
1569   esac
1570 else dnl "$dynamic" = "no"
1571   case "$opsys" in
1572     sol2 )
1573       echo "Static linking is not supported on Solaris 2."
1574       echo "Rerun configure without specifying --dynamic=no."
1575       exit 1 ;;
1576     linux   ) ld_call_shared="-Bstatic" ;;
1577     decosf* ) ld_call_shared="-non_shared" ;;
1578   esac
1579 fi
1580
1581 dnl Use xlc by default on AIX
1582 case "$opsys" in aix*) NON_GNU_CC=xlc ;; esac
1583
1584 stack_trace_eye_catcher=`echo ${PROGNAME}_${version}_${canonical} | sed 'y/.-/__/'`
1585 AC_DEFINE_UNQUOTED(STACK_TRACE_EYE_CATCHER, $stack_trace_eye_catcher)
1586
1587 dnl --------------------------------------------------
1588 dnl Determine the compiler, set up for feature testing
1589 dnl --------------------------------------------------
1590
1591 dnl Sun Development environment support
1592 test "$with_sparcworks" = "yes" && with_workshop=yes # compatibility alias
1593 XE_CHECK_FEATURE_DEPENDENCY(workshop, tooltalk)
1594 if test "$with_workshop" = "yes"; then
1595   AC_DEFINE(SUNPRO)
1596   XE_ADD_OBJS(sunpro.o)
1597 fi
1598
1599 if test "$with_clash_detection" != "no"; then
1600   AC_DEFINE(CLASH_DETECTION)
1601   XE_ADD_OBJS(filelock.o)
1602 fi
1603
1604 dnl Choose a compiler from (in order)
1605 dnl --compiler, env var CC, with_gcc=no && ${NON_GNU_CC:-cc}, AC_PROG_CC
1606 test -n "$compiler" && CC="$compiler"
1607 if test "$with_gcc" = "no"; then dnl Try to find a non-gcc compiler
1608   case "$CC" in "" | *gcc* ) CC="${NON_GNU_CC-cc}" ;; esac
1609 fi
1610
1611 dnl If we don't set CFLAGS here, AC_PROG_CC will set it.
1612 dnl But we know better what's good for us, so we do our own
1613 dnl computation of real CFLAGS later.
1614 dnl --cflags overrides environment variable CFLAGS
1615 test "${cflags-unset}" != unset && CFLAGS="$cflags"
1616 if test "${CFLAGS-unset}" != unset
1617   then cflags_specified=yes;
1618   else cflags_specified=no;
1619 fi
1620
1621 xe_save_CFLAGS="$CFLAGS"
1622
1623 AC_PROG_CC dnl Autoconf has its own magic for compiler autodetection
1624
1625 dnl Retry using random guesswork if AC_PROG_CC got it wrong...
1626 if   test "$with_gcc" = "no"  -a "$GCC" = "yes"; then
1627   CC=${NON_GNU_CC-cc}
1628   AC_PROG_CC
1629 elif test "$with_gcc" = "yes" -a "$GCC" != "yes" ; then
1630   CC=gcc
1631   AC_PROG_CC
1632 fi
1633 CFLAGS="$xe_save_CFLAGS"
1634
1635 dnl Figure out what C preprocessor to use.
1636
1637 dnl On Sun systems, people sometimes set up the variable CPP
1638 dnl with a value that is a directory, not an executable at all.
1639 dnl Detect that case, and ignore that value.
1640 test -n "$CPP" -a -d "$CPP" && CPP=
1641
1642 test -n "$NON_GNU_CPP" -a "$GCC" != "yes" -a -z "$CPP" && CPP="$NON_GNU_CPP"
1643
1644 AC_PROG_CPP
1645
1646 dnl --------------------------------------------------------------------
1647 dnl Compiler feature macros
1648 dnl --------------------------------------------------------------------
1649
1650 AC_AIX dnl Defines _ALL_SOURCE on AIX.
1651
1652 dnl We want feature macros defined here *and* in config.h.in, so that
1653 dnl the compilation environment at configure time and compile time agree.
1654
1655 AC_MSG_CHECKING(for GNU libc)
1656 AC_TRY_COMPILE([#include <features.h>],[
1657 #if ! (defined __GLIBC__ || defined __GNU_LIBRARY__)
1658 #error Not a GNU libc system :-(
1659 ******* ======= ******** &&&&&&&&
1660 #endif
1661 ], have_glibc=yes, have_glibc=no)
1662 AC_MSG_RESULT($have_glibc)
1663 dnl I'm tired of pop being broken with GLIBC -slb
1664 dnl Well. then why not fix fucking pop?
1665 test "$have_glibc" = "yes" && AC_DEFINE(_GNU_SOURCE)
1666
1667 dnl We'd like to use vendor extensions, where available.
1668 dnl We'd like to use functions from the latest Unix98 standards.
1669 dnl See http://www.opengroup.org/onlinepubs/007908799/xsh/compilation.html
1670 case "$opsys" in
1671   sol2)
1672    AC_DEFINE(__EXTENSIONS__)
1673    dnl Solaris 2 before 2.5 had some bugs with feature test macro interaction.
1674    if test "$os_release" -ge 55; then
1675      AC_DEFINE(_XOPEN_SOURCE,500)
1676      AC_DEFINE(_XOPEN_SOURCE_EXTENDED)
1677    fi ;;
1678   linux)
1679     AC_DEFINE(_POSIX_C_SOURCE,199506L)
1680     AC_DEFINE(_XOPEN_SOURCE,500)
1681     AC_DEFINE(_XOPEN_SOURCE_EXTENDED)
1682     ;;
1683 esac
1684
1685 dnl Identify compilers to enable compiler-specific hacks.
1686 dnl Add support for other compilers HERE!
1687 dnl GCC is already identified elsewhere.
1688 AC_TRY_RUN([int main () {
1689 #if defined __SUNPRO_C
1690 return 11;
1691 #elif defined __DECC
1692 return 12;
1693 #elif defined __USLC__ && defined __SCO_VERSION__
1694 return 13;
1695 #else
1696 return 0;
1697 #endif
1698 }], [],
1699 [case "$conftest_rc" in
1700   11) echo "You appear to be using the SunPro C compiler."; __SUNPRO_C=yes ;;
1701   12) echo "You appear to be using the DEC C compiler."   ; __DECC=yes ;;
1702   13) echo "You appear to be using the SCO C compiler."   ; __USLC__=yes ;;
1703 esac])
1704
1705
1706 dnl case "$canonical" in
1707 dnl   *-sun-sunos* ) test "$CPP" = "acc -E" && CPP="acc -E -Xs" ;;
1708 dnl esac
1709
1710 dnl --------------------------------------------------------------------
1711 dnl Extract some information from the operating system and machine files
1712 dnl --------------------------------------------------------------------
1713
1714 echo "Extracting information from the machine- and system-dependent headers..."
1715
1716 dnl It is not important that this name contain the PID; you cannot run
1717 dnl two configures in the same directory and have anything work
1718 dnl anyway.
1719 tempcname="conftest.c"
1720
1721 dnl CPP_to_sh(CPP_SYMBOL, SH_VAR, DEFAULT_VALUE)
1722 define([CPP_to_sh],
1723 [[#]ifndef [$1]
1724 [#]define [$1]ifelse([$3],,, [ "$3"])
1725 [#]endif
1726 configure___ [$2]=[$1]
1727 ])dnl CPP_to_sh
1728
1729 dnl CPP_boolean_to_sh(CPP_SYMBOL, SH_VAR)
1730 define([CPP_boolean_to_sh],
1731 [[#]ifdef [$1]
1732 configure___ [$2]=yes
1733 [#]else
1734 configure___ [$2]=no
1735 [#]endif
1736 ])dnl CPP_boolean_to_sh
1737
1738 cat > $tempcname < confdefs.h
1739 cat >> $tempcname <<EOF
1740 #define NOT_C_CODE
1741 #define C_SWITCH_SITE
1742 #define C_SWITCH_X_SITE
1743 #define LD_SWITCH_SITE
1744 #define LD_SWITCH_X_SITE
1745 #define LD_SWITCH_X_SITE_AUX
1746 #define OS_RELEASE $os_release
1747
1748 #ifdef config_opsysfile
1749 #include "$srcdir/src/$opsysfile"
1750 #endif
1751
1752 #ifdef config_machfile
1753 #include "$srcdir/src/$machfile"
1754 #endif
1755
1756 CPP_to_sh(LIBS_MACHINE, libs_machine)
1757 CPP_to_sh(LIBS_SYSTEM,  libs_system)
1758 CPP_to_sh(LIBS_TERMCAP, libs_termcap)
1759 CPP_to_sh(LIB_STANDARD, libs_standard)
1760
1761 CPP_to_sh(OBJECTS_MACHINE, objects_machine)
1762 CPP_to_sh(OBJECTS_SYSTEM,  objects_system)
1763
1764 CPP_to_sh(C_SWITCH_MACHINE,   c_switch_machine)
1765 CPP_to_sh(C_SWITCH_SYSTEM,    c_switch_system)
1766
1767 CPP_to_sh(LD_SWITCH_MACHINE,  ld_switch_machine)
1768 CPP_to_sh(LD_SWITCH_SYSTEM,   ld_switch_system)
1769
1770 CPP_to_sh(UNEXEC, unexec, unexec.o)
1771
1772 CPP_to_sh(LD_SWITCH_SHARED, ld_switch_shared, -c)
1773
1774 #define ORDINARY_LD "\$(CC) \$(CFLAGS)"
1775 configure___ ordinary_ld=ORDINARY_LD
1776
1777 #ifdef ORDINARY_LINK
1778 #define LD ORDINARY_LD
1779 #else /* no ORDINARY LINK */
1780 #ifdef COFF_ENCAPSULATE
1781 #define LD "\$(CC) -nostdlib"
1782 #else /* not COFF_ENCAPSULATE */
1783 #ifdef LINKER
1784 #define LD LINKER
1785 #else /* ! defined (LINKER) */
1786 #define LD "ld"
1787 #endif /* ! defined (LINKER) */
1788 #endif /* ! defined (COFF_ENCAPSULATE) */
1789 #endif /* not ORDINARY_LINK */
1790 configure___ ld=LD
1791
1792 CPP_to_sh(LIB_GCC, lib_gcc)
1793 CPP_to_sh(LD_TEXT_START_ADDR, ld_text_start_addr)
1794
1795 #if ! defined (ORDINARY_LINK) && !defined (START_FILES)
1796 #ifdef NO_REMAP
1797 #ifdef COFF_ENCAPSULATE
1798 #define START_FILES "pre-crt0.o /usr/local/lib/gcc-crt0.o"
1799 #else /* ! defined (COFF_ENCAPSULATE) */
1800 #define START_FILES "pre-crt0.o /lib/crt0.o"
1801 #endif /* ! defined (COFF_ENCAPSULATE) */
1802 #else /* ! defined (NO_REMAP) */
1803 #define START_FILES "ecrt0.o"
1804 #endif /* ! defined (NO_REMAP) */
1805 #endif /* no ORDINARY_LINK */
1806 #ifndef START_FILES
1807 #define START_FILES
1808 #endif
1809 configure___ start_files=START_FILES
1810
1811 CPP_boolean_to_sh(ORDINARY_LINK, ordinary_link)
1812 CPP_boolean_to_sh(SYSTEM_MALLOC, system_malloc)
1813 CPP_boolean_to_sh(TERMINFO, have_terminfo)
1814 dnl The MAIL_USE_xxx variables come from the s&m headers
1815 CPP_boolean_to_sh(MAIL_USE_FLOCK, mail_use_flock)
1816 CPP_boolean_to_sh(MAIL_USE_LOCKF, mail_use_lockf)
1817 CPP_boolean_to_sh(MAIL_USE_LOCKING, mail_use_locking)
1818 CPP_boolean_to_sh(HAVE_WIN32_PROCESSES, win32_processes)
1819 EOF
1820
1821 dnl The value of CPP is a quoted variable reference, so we need to do this
1822 dnl to get its actual value...
1823 CPP=`eval "echo $CPP $CPPFLAGS"`
1824 define(TAB, [   ])dnl
1825 changequote(, )dnl
1826 eval `$CPP -Isrc $tempcname \
1827         | sed -n -e "s/[ TAB]*=[ TAB\"]*/='/" -e "s/[ TAB\"]*\$/'/" -e "s/^configure___//p"`
1828 changequote([, ])dnl
1829
1830 rm $tempcname
1831
1832 if test "$pdump" = "yes"; then
1833   ordinary_link="yes"
1834   ld="${ordinary_ld}"
1835   start_files=
1836   libs_standard=
1837   unexec=
1838   lib_gcc=
1839 fi
1840
1841 dnl For debugging...
1842 test "$extra_verbose" = "yes" && \
1843   PRINT_VAR(libs_machine libs_system libs_termcap libs_standard
1844   objects_machine objects_system c_switch_machine c_switch_system
1845   ld_switch_machine ld_switch_system unexec ld_switch_shared
1846   ld lib_gcc ld_text_start_addr start_files ordinary_link
1847   have_terminfo mail_use_flock mail_use_lockf) && echo ""
1848
1849 dnl Pick up mingw include path
1850 dnl We only cope with headers in mingw, not mingw32: no previous version of
1851 dnl XEmacs supported mingw and cygnus have made this incompatible change
1852 dnl so we just go with the flow.
1853 case "$opsys" in mingw* | cygwin*)
1854   cygwin_include=`eval "gcc -print-file-name=libc.a"` ;
1855   cygwin_include=`eval "dirname $cygwin_include"` ;
1856   cygwin_include="-I$cygwin_include/../include" ;
1857   extra_includes="$cygwin_include/mingw $cygwin_include" ;
1858   case "$opsys" in mingw*)
1859     XE_APPEND($extra_includes, c_switch_system) ;;
1860   esac
1861   ;;
1862 esac
1863
1864 dnl Non-ordinary link usually requires -lc
1865 test "$ordinary_link" = "no" -a -z "$libs_standard" && libs_standard="-lc"
1866
1867 dnl -----------------------
1868 dnl Compiler-specific hacks
1869 dnl -----------------------
1870
1871 dnl DEC C `-std1' means ANSI C mode
1872 test "$__DECC" = "yes" && XE_APPEND(-std1, c_switch_site)
1873
1874 dnl Some versions of SCO native compiler need -Kalloca
1875 if test "$__USLC__" = yes; then
1876   AC_MSG_CHECKING(for whether the -Kalloca compiler flag is needed)
1877   need_kalloca=no
1878   AC_TRY_LINK([], [void *x = alloca(4);], [:], [
1879     xe_save_c_switch_system="$c_switch_system"
1880     c_switch_system="$c_switch_system -Kalloca"
1881     AC_TRY_LINK([], [void *x = alloca(4);], [ need_kalloca=yes ])
1882     c_switch_system="$xe_save_c_switch_system"])
1883   AC_MSG_RESULT($need_kalloca)
1884   test "$need_kalloca" = "yes" && XE_APPEND(-Kalloca,c_switch_system)
1885 fi
1886
1887 dnl Calculate value of CFLAGS:
1888 dnl Use either command line flag, environment var, or autodetection
1889 if test "$cflags_specified" = "no"; then
1890   dnl Following values of CFLAGS are known to work well.
1891   dnl Should we take debugging options into consideration?
1892   if   test "$GCC" = "yes"; then
1893     CFLAGS="-g -O3 -Wall -Wno-switch -Winline -Wmissing-prototypes -Wshadow"
1894     dnl Yuck, bad compares have been worth at least 3 crashes!
1895     CFLAGS="$CFLAGS -Wsign-compare"
1896     dnl glibc is intentionally not `-Wpointer-arith'-clean.
1897     dnl Ulrich Drepper has rejected patches to fix the glibc header files.
1898     test "$have_glibc" != "yes" && CFLAGS="$CFLAGS -Wpointer-arith"
1899     dnl I'm not convinced this is a good idea any more. -sb
1900     dnl test "$opsys $machine" = "linux intel386" && \
1901     dnl CFLAGS="$CFLAGS -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2"
1902   elif test "$__SUNPRO_C" = "yes"; then
1903     case "$opsys" in
1904       sol2    ) CFLAGS="-v -xO4" ;;
1905       sunos4* ) CFLAGS="-xO2";;
1906     esac
1907   elif test "$__DECC" = "yes"; then
1908     CFLAGS="-O3"
1909   elif test "$CC" = "xlc"; then
1910     CFLAGS="-g -O3 -qstrict -qnoansialias -qlibansi -qinfo -qro -qmaxmem=20000"
1911   dnl ### Add optimal CFLAGS support for other compilers HERE!
1912   else
1913     CFLAGS="-O" ;dnl The only POSIX-approved flag
1914   fi
1915 fi
1916
1917 dnl Search for GCC specific build problems we know about
1918 if test "$GCC" = "yes"; then
1919 AC_MSG_CHECKING(for buggy gcc versions)
1920 GCC_VERSION=`$CC --version`
1921 case `uname -s`:`uname -m`:$GCC_VERSION in
1922         dnl egcs 2.90.21 (egcs-1.00 release)
1923         dnl egcs 2.90.29 (egcs-1.0.3 release)
1924     *:sun4*:2.8.1|*:sun4*:egcs-2.90.*)
1925         dnl Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures
1926         dnl without also using `-fno-schedule-insns'.
1927         case "$CFLAGS" in
1928             *-O2*|*-O3*)
1929                 case "$CFLAGS" in
1930                     *-fno-schedule-insns*) ;;
1931                     *)
1932                         AC_MSG_RESULT(yes)
1933                         AC_MSG_WARN(Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures)
1934                         AC_MSG_WARN(without also using -fno-schedule-insns.)
1935                         AC_MSG_ERROR(Aborting due to known problem)
1936                         ;;
1937                 esac
1938                 ;;
1939         esac
1940         ;;
1941         dnl egcs-2.91.57 (egcs-1.1 release)
1942         dnl egcs-2.91.66 (egcs-1.1.2 release)
1943     Linux:alpha:egcs-2.91.*)
1944         AC_MSG_RESULT(yes)
1945         AC_MSG_WARN(There have been reports of egcs-1.1 not compiling XEmacs correctly on)
1946         AC_MSG_WARN(Alpha Linux.  There have also been reports that egcs-1.0.3a is O.K.)
1947         AC_MSG_ERROR(Aborting due to known problem)
1948         ;;
1949     *:i*86*:2.7.2*)
1950         case "$CFLAGS" in
1951             *-O2*|*-O3*)
1952                 case "$GCC_VERSION" in
1953                     2.7.2)
1954                         case "$CFLAGS" in
1955                             *-fno-strength-reduce*) ;;
1956                             *)
1957                                 AC_MSG_RESULT(yes)
1958                                 AC_MSG_WARN(Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using)
1959                                 AC_MSG_WARN(-fno-strength-reduce.)
1960                                 AC_MSG_ERROR(Aborting due to known problem)
1961                                 ;;
1962                         esac
1963                         ;;
1964                 esac
1965                 case "$CFLAGS" in
1966                  *-fno-caller-saves*) ;;
1967                  *)
1968                     AC_MSG_RESULT(yes)
1969                     AC_MSG_WARN(Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using)
1970                     AC_MSG_WARN(-fno-caller-saves.)
1971                     AC_MSG_ERROR(Aborting due to known problem)
1972                     ;;
1973                 esac
1974                 ;;
1975         esac
1976         ;;
1977 esac
1978 AC_MSG_RESULT(no)
1979 fi
1980
1981 dnl Inform compiler that certain flags are meant for the linker
1982 dnl XE_PROTECT_LINKER_FLAGS(shell_var)
1983 define([XE_PROTECT_LINKER_FLAGS], [
1984 if test "$GCC" = "yes"; then
1985   set x $[$1]; shift; [$1]=""
1986   while test -n "[$]1"; do
1987     case [$]1 in
1988       -L  | -l  | -u               ) [$1]="$[$1] [$]1 [$]2"; shift ;;
1989       -L* | -l* | -u* | -Wl* | -pg ) [$1]="$[$1] [$]1" ;;
1990       -Xlinker* ) ;;
1991       * ) [$1]="$[$1] -Xlinker [$]1" ;;
1992     esac
1993     shift
1994   done
1995 fi])dnl
1996 XE_PROTECT_LINKER_FLAGS(ld_switch_system)
1997 XE_PROTECT_LINKER_FLAGS(ld_switch_machine)
1998 XE_PROTECT_LINKER_FLAGS(LDFLAGS)
1999 XE_PROTECT_LINKER_FLAGS(ld_call_shared)
2000
2001 dnl Add s&m-determined objects (including unexec) to link line
2002 test -n "$objects_machine" && XE_ADD_OBJS($objects_machine)
2003 test -n "$objects_system"  && XE_ADD_OBJS($objects_system)
2004 test -n "$unexec"          && test ! "$pdump" = "yes" && XE_ADD_OBJS($unexec)
2005 test "$pdump" = "yes" && XE_ADD_OBJS(dumper.o)
2006
2007 dnl Dynodump (Solaris 2.x, x<6)
2008 AC_MSG_CHECKING(for dynodump)
2009 if test "$unexec" != "unexsol2.o"; then
2010   AC_MSG_RESULT(no)
2011 else
2012   AC_MSG_RESULT(yes)
2013   AC_DEFINE(DYNODUMP)
2014   XE_APPEND(dynodump, MAKE_SUBDIR)
2015   XE_APPEND(dynodump, SRC_SUBDIR_DEPS)
2016   case "$machine" in
2017     sparc   ) dynodump_arch=sparc ;;
2018     *86*    ) dynodump_arch=i386  ;;
2019     powerpc ) dynodump_arch=ppc   ;;
2020   esac
2021   dnl Dynodump requires the system linker
2022   test "$GCC" = "yes" && XE_APPEND(-fno-gnu-linker, ld_switch_site)
2023 fi
2024
2025 dnl Feed s&m crud to src/Makefile
2026
2027 dnl Linux/powerpc needs the following magic for some reason
2028 test "$machine$opsys" = "powerpclinux" && start_flags="-T $srcdir/src/ppc.ldscript"
2029
2030 if test "$unexec" = "unexaix.o"; then
2031 dnl AIX needs various hacks to make static linking work.
2032   if   test "$dynamic" = "no"; then
2033   start_flags="-Wl,-bnso,-bnodelcsect"
2034   test "$GCC" = "yes" && start_flags="-B/bin/ ${start_flags}"
2035   for f in "/lib/syscalls.exp" "/lib/threads.exp"; do
2036     if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; fi
2037   done
2038   for f in "/usr/lpp/X11/bin/smt.exp" "/usr/bin/X11/smt.exp"; do
2039     if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; break; fi
2040   done
2041   AC_CHECK_LIB(C, terminateAndUnload, XE_APPEND(-lC, libs_system))
2042   fi
2043 elif test -n "$ld_text_start_addr"; then
2044   start_flags="-T $ld_text_start_addr -e __start"
2045 fi
2046 AC_SUBST(start_flags)
2047
2048 AC_SUBST(ld_switch_shared)
2049 AC_SUBST(start_files)
2050 if test "$ordinary_link" = "no" -a "$GCC" = "yes"; then
2051  test -z "$linker" &&  linker='$(CC) -nostdlib'
2052  test -z "$lib_gcc" && lib_gcc='`$(CC) -print-libgcc-file-name`'
2053 fi
2054 test "$GCC" != "yes" && lib_gcc=
2055 AC_SUBST(ld)
2056 AC_SUBST(lib_gcc)
2057
2058 dnl ---------------------------------------------------------------
2059 dnl Add site and system specific flags to compile and link commands
2060 dnl ---------------------------------------------------------------
2061
2062 dnl Allow use of either ":" or spaces for lists of directories
2063 define(COLON_TO_SPACE,
2064   [case "$[$1]" in *:* [)] [$1]="`echo '' $[$1] | sed -e 's/^ //' -e 's/:/ /g'`";; esac])dnl
2065
2066 dnl --site-libraries (multiple dirs)
2067 COLON_TO_SPACE(site_libraries)
2068 if test -n "$site_libraries"; then
2069   for arg in $site_libraries; do
2070     case "$arg" in
2071      -* ) ;;
2072      * ) test -d "$arg" || \
2073            XE_DIE("Invalid site library \`$arg': no such directory")
2074        arg="-L${arg}" ;;
2075     esac
2076     XE_APPEND($arg, ld_switch_site)
2077   done
2078 fi
2079
2080 dnl --site-includes (multiple dirs)
2081 COLON_TO_SPACE(site_includes)
2082 if test -n "$site_includes"; then
2083   for arg in $site_includes; do
2084     case "$arg" in
2085       -* ) ;;
2086       * ) test -d "$arg" || \
2087            XE_DIE("Invalid site include \`$arg': no such directory")
2088       arg="-I${arg}" ;;
2089     esac
2090     XE_APPEND($arg, c_switch_site)
2091   done
2092 fi
2093
2094 dnl --site-prefixes (multiple dirs)
2095 dnl --site-prefixes=dir1:dir2 is a convenient shorthand for
2096 dnl --site-libraries=dir1/lib:dir2/lib --site-includes=dir1/include:dir2/include
2097 dnl Site prefixes take precedence over the standard places, but not over
2098 dnl site-includes and site-libraries.
2099 COLON_TO_SPACE(site_prefixes)
2100 if test -n "$site_prefixes"; then
2101   for dir in $site_prefixes; do
2102     lib_dir="${dir}/lib"
2103     inc_dir="${dir}/include"
2104     if test ! -d "$dir"; then
2105       XE_DIE("Invalid site prefix \`$dir': no such directory")
2106     elif test ! -d "$lib_dir"; then
2107       XE_DIE("Invalid site prefix \`$dir': no such directory \`$lib_dir'")
2108     else
2109       if test -d "$inc_dir"; then
2110         XE_APPEND("-I$inc_dir", c_switch_site)
2111       fi
2112       XE_APPEND("-L$lib_dir", ld_switch_site)
2113     fi
2114   done
2115 fi
2116
2117 dnl GNU software installs by default into /usr/local/{include,lib}
2118 dnl if test -d "/usr/local/include" -a -d "/usr/local/lib"; then
2119 dnl   XE_APPEND("-L/usr/local/lib",    ld_switch_site)
2120 dnl   XE_APPEND("-I/usr/local/include", c_switch_site)
2121 dnl fi
2122
2123 dnl Extra system-specific library directories - please add to list
2124 for dir in "/usr/ccs/lib"; do
2125   test -d "$dir" && XE_APPEND(-L${dir}, ld_switch_system)
2126 done
2127
2128 dnl --site-runtime-libraries (multiple dirs)
2129 COLON_TO_SPACE(site_runtime_libraries)
2130 if test -n "$site_runtime_libraries"; then
2131   LD_RUN_PATH="`echo $site_runtime_libraries | sed -e 's/  */:/g'`"
2132   export LD_RUN_PATH
2133 fi
2134
2135 dnl Linux systems have dynamic runtime library directories listed in
2136 dnl /etc/ld.so.conf.  Since those are used at run time, it seems pretty
2137 dnl safe to use them at link time, and less controversial than forcing
2138 dnl the run-time to use the link-time libraries.  This also helps avoid
2139 dnl mismatches between the link-time and run-time libraries.
2140
2141 dnl #### Unfortunately, there are horrible libc4 and libc5 libraries
2142 dnl listed in /etc/ld.so.conf on some systems, and including them on
2143 dnl the link path leads to linking in utterly broken libc's.
2144 dnl There are many clever ways of approaching this problem,
2145 dnl but finding out that actually works...
2146
2147 dnl if test -z "$LD_RUN_PATH" -a -r "/etc/ld.so.conf"; then
2148 dnl   for dir in `cat /etc/ld.so.conf`; do
2149 dnl     test -d "$dir" && XE_APPEND(-L${dir}, ld_switch_system)
2150 dnl   done
2151 dnl   add_runtime_path=no
2152 dnl fi
2153
2154 dnl -------------------------------------
2155 dnl Compute runtime library path
2156 dnl -------------------------------------
2157
2158 if test -n "$add_runtime_path"; then :;
2159 elif test "$dynamic" = "no"; then add_runtime_path=no
2160 elif test -n "$LD_RUN_PATH"; then add_runtime_path=yes
2161 else case "$opsys" in
2162        sol2 | irix* | *bsd* | decosf* ) add_runtime_path=yes ;;
2163        * ) add_runtime_path=no ;;
2164      esac
2165 fi
2166
2167 if test "$add_runtime_path" = "yes"; then
2168   dnl Try to autodetect runtime library flag (usually -R),
2169   dnl and whether it works (or at least does no harm)
2170   AC_MSG_CHECKING("for runtime libraries flag")
2171   case "$opsys" in
2172     sol2 ) dash_r="-R" ;;
2173     decosf* | linux* | irix*) dash_r="-rpath " ;;
2174     *)
2175       dash_r=""
2176       for try_dash_r in "-R" "-R " "-rpath "; do
2177         xe_check_libs="${try_dash_r}/no/such/file-or-directory"
2178         XE_PROTECT_LINKER_FLAGS(xe_check_libs)
2179         AC_TRY_LINK(, , dash_r="$try_dash_r")
2180         xe_check_libs=""
2181         test -n "$dash_r" && break
2182       done ;;
2183   esac
2184   if test -n "$dash_r";
2185     then AC_MSG_RESULT("\"${dash_r}\"")
2186     else AC_MSG_RESULT(NONE)
2187   fi
2188 fi
2189
2190 xe_add_unique_runpath_dir='
2191   xe_add_p=yes
2192   for xe_dir in $runpath_dirs; do   dnl Uniquify
2193     test "$xe_dir" = "$xe_runpath_dir" && xe_add_p=no
2194   done
2195   if test "$xe_add_p" = "yes"; then
2196     test -n "$runpath" && runpath="${runpath}:"
2197     runpath="${runpath}${xe_runpath_dir}"
2198     runpath_dirs="$runpath_dirs $xe_runpath_dir"
2199   fi'
2200
2201
2202 dnl XE_ADD_RUNPATH_DIR(directory)
2203 define([XE_ADD_RUNPATH_DIR],[{
2204 xe_runpath_dir=$1
2205 dnl PRINT_VAR(ld_switch_site ld_switch_x_site runpath xe_runpath_dir LD_RUN_PATH xe_ldflags)
2206   test "$xe_runpath_dir" != "/lib"     -a \
2207         "$xe_runpath_dir" != "/usr/lib" -a \
2208         -n "`ls ${xe_runpath_dir}/*.s[[ol]] 2>/dev/null`" && \
2209   eval "$xe_add_unique_runpath_dir"
2210 }])dnl
2211
2212 dnl XE_COMPUTE_RUNPATH()
2213 define([XE_COMPUTE_RUNPATH],[
2214 if test "$add_runtime_path" = "yes" -a -n "$dash_r"; then
2215   dnl Remove runtime paths from current ld switches
2216   ld_switch_site=`echo   '' $ld_switch_site   | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"`
2217   ld_switch_x_site=`echo '' $ld_switch_x_site | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"`
2218   dnl PRINT_VAR(ld_switch_site ld_switch_x_site)
2219
2220   dnl Fix up Runtime path
2221   dnl If LD_RUN_PATH is set in environment, use that.
2222   dnl In this case, assume user has set the right value.
2223   runpath="" runpath_dirs=""
2224   if test -n "$LD_RUN_PATH"; then
2225     runpath="$LD_RUN_PATH"
2226   elif test "$GCC" = "yes"; then
2227     dnl Compute runpath from gcc's -v output
2228     ld_switch_run_save="$ld_switch_run"; ld_switch_run=""
2229     echo "int main(int argc, char *argv[[]]) {return 0;}" > conftest.c
2230     xe_runpath_link='${CC-cc} -o conftest -v $CFLAGS '"$xe_ldflags"' conftest.$ac_ext 2>&1 1>/dev/null'
2231     for arg in `eval "$xe_runpath_link" | grep ' -L'`; do
2232       case "$arg" in P,* | -L* | -R* )
2233         for dir in `echo '' "$arg" | sed -e 's:^ ::' -e 's/^..//' -e 'y/:/ /'`; do
2234           XE_ADD_RUNPATH_DIR("$dir")
2235         done ;;
2236       esac
2237     done
2238     ld_switch_run="$ld_switch_run_save"
2239     rm -f conftest*
2240   else
2241     dnl Add all directories with .so files to runpath
2242     for arg in $ld_switch_site $ld_switch_x_site; do
2243       case "$arg" in -L*) XE_ADD_RUNPATH_DIR(`echo '' "$arg" | sed -e 's:^ ::' -e 's/^-L//'`);; esac
2244     done
2245     dnl Sometimes /opt/SUNWdt/lib is the only installed Motif available
2246     if test "$opsys $need_motif" = "sol2 yes"; then
2247       xe_runpath_dir="/opt/SUNWdt/lib";
2248       eval "$xe_add_unique_runpath_dir";
2249     fi
2250   fi dnl Compute $runpath
2251
2252   if test -n "$runpath"; then
2253     ld_switch_run="${dash_r}${runpath}"
2254     XE_PROTECT_LINKER_FLAGS(ld_switch_run)
2255     test "$extra_verbose" = "yes" && echo "Setting runpath to $runpath"
2256   fi
2257 fi
2258 ])dnl
2259 XE_COMPUTE_RUNPATH()
2260
2261 dnl -----------------------------------
2262 dnl Do some misc autoconf-special tests
2263 dnl -----------------------------------
2264
2265 dnl Do the opsystem or machine files prohibit the use of the GNU malloc?
2266 dnl Assume not, until told otherwise.
2267 GNU_MALLOC=yes
2268 if test "$with_dlmalloc" != "no"; then
2269         doug_lea_malloc=yes
2270 else
2271         doug_lea_malloc=no
2272 fi
2273 after_morecore_hook_exists=yes
2274 AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
2275 AC_MSG_CHECKING(whether __after_morecore_hook exists)
2276 AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
2277   [AC_MSG_RESULT(yes)],
2278   [AC_MSG_RESULT(no)
2279    after_morecore_hook_exists=no])
2280 if test "$system_malloc" = "yes" ; then
2281   GNU_MALLOC=no
2282   GNU_MALLOC_reason="
2283     - The GNU allocators don't work with this system configuration."
2284 elif test "$with_system_malloc" = "yes" ; then
2285   GNU_MALLOC=no
2286   GNU_MALLOC_reason="
2287     - User chose not to use GNU allocators."
2288 elif test "$with_debug_malloc" = "yes" ; then
2289   GNU_MALLOC=no
2290   GNU_MALLOC_reason="
2291     - User chose to use Debugging Malloc."
2292 fi
2293
2294 if test "$doug_lea_malloc" = "yes" -a "$GNU_MALLOC" = "yes" ; then
2295   GNU_MALLOC_reason="
2296     - Using Doug Lea's new malloc from the GNU C Library."
2297   AC_DEFINE(DOUG_LEA_MALLOC)
2298   if test "$after_morecore_hook_exists" = "no" ; then
2299     GNU_MALLOC_reason="
2300     - Using Doug Lea's new malloc from the Linux C Library."
2301     AC_DEFINE(_NO_MALLOC_WARNING_)
2302   fi
2303 fi
2304
2305 dnl #### mcheck is broken in all versions of Linux libc and glibc.
2306 dnl Try this again when 2.1 hits the streets.
2307 dnl Avoid using free-hook.c if support exists for malloc debugging in libc
2308 dnl have_libmcheck=no
2309 dnl if test "$error_check_malloc" = "yes" -a \
2310 dnl    "$have_glibc" = "yes" -a \
2311 dnl    "$doug_lea_malloc" = "yes"; then
2312 dnl   AC_CHECK_HEADERS(mcheck.h)
2313 dnl   AC_CHECK_LIB(mcheck, mcheck, have_libmcheck=yes, have_libmcheck=no)
2314 dnl fi
2315
2316 dnl if test "$have_libmcheck" = "yes"; then
2317 dnl   AC_DEFINE(HAVE_LIBMCHECK)
2318 dnl   libmcheck=-lmcheck
2319 dnl   AC_SUBST(libmcheck)
2320 dnl fi
2321
2322 dnl Some other nice autoconf tests.  If you add a test here which
2323 dnl should make an entry in src/config.h, do not forget to add an
2324 dnl #undef clause to src/config.h.in for autoconf to modify.
2325
2326 AC_PROG_RANLIB
2327 AC_PROG_INSTALL
2328 AC_PROG_YACC
2329
2330 dnl checks for header files
2331 AC_CHECK_HEADERS(dnl
2332   a.out.h dnl
2333   elf.h dnl
2334   cygwin/version.h dnl
2335   fcntl.h dnl
2336   inttypes.h dnl
2337   libgen.h dnl
2338   locale.h dnl
2339   mach/mach.h dnl
2340   sys/param.h dnl
2341   sys/pstat.h dnl
2342   sys/time.h dnl
2343   sys/timeb.h dnl
2344   sys/un.h dnl
2345   ulimit.h dnl
2346   unistd.h dnl
2347 )
2348 AC_HEADER_SYS_WAIT
2349 AC_HEADER_STDC
2350 AC_HEADER_TIME
2351 AC_DECL_SYS_SIGLIST
2352
2353
2354 dnl ----------------------------------------------------------------
2355 dnl Checking for utime() or utimes().
2356 dnl We prefer utime, since it is more standard.
2357 dnl Some systems have utime.h but do not declare the struct anyplace,
2358 dnl so we use a more sophisticated test for utime than AC_CHECK_FUNCS.
2359 dnl ----------------------------------------------------------------
2360 AC_MSG_CHECKING(for utime)
2361 AC_TRY_COMPILE([#include <sys/types.h>
2362 #include <utime.h>],
2363 [struct utimbuf x; x.actime = x.modtime = 0; utime ("/", &x);],
2364   [AC_MSG_RESULT(yes)
2365    AC_DEFINE(HAVE_UTIME)],
2366   [AC_MSG_RESULT(no)
2367    dnl We don't have utime(); how about utimes()?
2368    AC_CHECK_FUNCS(utimes)])
2369
2370
2371 dnl checks for typedefs
2372 AC_TYPE_SIGNAL
2373 AC_TYPE_SIZE_T
2374 AC_TYPE_PID_T
2375 AC_TYPE_UID_T
2376 AC_TYPE_MODE_T
2377 AC_TYPE_OFF_T
2378 AC_CHECK_TYPE(ssize_t, int)
2379
2380 dnl check for Unix98 socklen_t
2381 AC_MSG_CHECKING(for socklen_t)
2382 AC_TRY_COMPILE([#include <sys/socket.h>
2383 socklen_t x;
2384 ],[],[AC_MSG_RESULT(yes)],[
2385 AC_TRY_COMPILE([#include <sys/socket.h>
2386 int accept (int, struct sockaddr *, size_t *);
2387 ],[],[
2388 AC_MSG_RESULT(size_t)
2389 AC_DEFINE(socklen_t,size_t)], [
2390 AC_MSG_RESULT(int)
2391 AC_DEFINE(socklen_t,int)])])
2392
2393 AC_MSG_CHECKING(for struct timeval)
2394 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
2395 #include <sys/time.h>
2396 #include <time.h>
2397 #else
2398 #ifdef HAVE_SYS_TIME_H
2399 #include <sys/time.h>
2400 #else
2401 #include <time.h>
2402 #endif
2403 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
2404   [AC_MSG_RESULT(yes)
2405   HAVE_TIMEVAL=yes
2406   AC_DEFINE(HAVE_TIMEVAL)],
2407   [AC_MSG_RESULT(no)
2408    HAVE_TIMEVAL=no])
2409
2410 dnl checks for structure members
2411 AC_STRUCT_TM
2412 AC_STRUCT_TIMEZONE
2413
2414 dnl checks for compiler characteristics
2415 AC_C_CONST
2416
2417 dnl check for Make feature
2418 AC_PROG_MAKE_SET
2419
2420 dnl check byte order
2421 AC_C_BIGENDIAN
2422
2423 dnl define SIZEOF_TYPE
2424 AC_CHECK_SIZEOF(short)
2425 if test "$ac_cv_sizeof_short" = 0; then
2426   echo ""
2427   echo "*** PANIC *** Configure tests are not working - compiler is broken."
2428   echo "*** PANIC *** Please examine config.log for compilation errors."
2429   exit 1
2430 fi
2431 AC_CHECK_SIZEOF(int)
2432 AC_CHECK_SIZEOF(long)
2433 AC_CHECK_SIZEOF(long long)
2434 AC_CHECK_SIZEOF(void *)
2435
2436 dnl check for long file names
2437 AC_SYS_LONG_FILE_NAMES
2438
2439 dnl -lm is required by LISP_FLOAT_TYPE, among other things
2440 AC_CHECK_FUNC(sin, ,AC_CHECK_LIB(m, sin))
2441
2442 dnl Floating operation support is now unconditional
2443 AC_DEFINE(LISP_FLOAT_TYPE)
2444
2445 AC_TRY_LINK([#include <math.h>],
2446   [return atanh(1.0) + asinh(1.0) + acosh(1.0); ],
2447   AC_DEFINE(HAVE_INVERSE_HYPERBOLIC))
2448
2449 dnl Determine type of mail locking from configure args and s&m headers
2450 AC_CHECKING(type of mail spool file locking)
2451 AC_CHECK_FUNCS(lockf flock)
2452 dnl The mail_use_xxx variables are set according to the s&m headers.
2453 test -z "$mail_locking" -a "$mail_use_flock" = "yes" && mail_locking=flock
2454 test -z "$mail_locking" -a "$mail_use_lockf" = "yes" && mail_locking=lockf
2455 test -z "$mail_locking" -a "$mail_use_locking" = "yes" && mail_locking=locking
2456 if   test -z "$mail_locking"; then
2457   case "$opsys" in cygwin* | mingw*)
2458     mail_locking=pop ;;
2459   esac
2460 fi
2461
2462 if   test "$mail_locking" = "lockf"; then AC_DEFINE(MAIL_LOCK_LOCKF)
2463 elif test "$mail_locking" = "flock"; then AC_DEFINE(MAIL_LOCK_FLOCK)
2464 elif test "$mail_locking" = "locking"; then AC_DEFINE(MAIL_LOCK_LOCKING)
2465 elif test "$mail_locking" = "pop"; then
2466   with_pop=yes
2467   mail_locking=
2468 else mail_locking="dot-locking"; AC_DEFINE(MAIL_LOCK_DOT)
2469 fi
2470 test "$mail_locking" = "lockf" -a "$ac_cv_func_lockf" != "yes" && \
2471   XE_DIE("lockf mail locking requested but not available.")
2472 test "$mail_locking" = "flock" -a "$ac_cv_func_flock" != "yes" && \
2473   XE_DIE("flock mail locking requested but not available.")
2474 test "$mail_locking" = "locking" -a "$ac_cv_func_locking" != "yes" && \
2475   XE_DIE("locking mail locking requested but not available.")
2476
2477 case "$opsys" in decosf*)
2478   AC_CHECK_LIB(pthreads, cma_open)
2479   test "$ac_cv_lib_pthreads_cma_open" = "yes" && \
2480     c_switch_site="$c_switch_site -threads" ;;
2481 esac
2482
2483 AC_MSG_CHECKING(whether the -xildoff compiler flag is required)
2484 if   ${CC-cc} '-###' -xildon  no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then
2485   if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ;
2486     then AC_MSG_RESULT(no);
2487     else AC_MSG_RESULT(yes); XE_APPEND(-xildoff, ld_switch_site)
2488   fi
2489   else AC_MSG_RESULT(no)
2490 fi
2491
2492 dnl Link with "-z ignore" on Solaris if supported
2493 if test "$opsys" = "sol2"; then
2494   if test "$os_release" -ge 56; then
2495     AC_MSG_CHECKING(for \"-z ignore\" linker flag)
2496     case "`ld -h 2>&1`" in
2497       *-z\ ignore\|record* ) AC_MSG_RESULT(yes)
2498         XE_PREPEND(-z ignore, ld_switch_site) ;;
2499       *) AC_MSG_RESULT(no) ;;
2500     esac
2501   fi
2502 fi
2503
2504 dnl ----------------------
2505 dnl Choose a window system
2506 dnl ----------------------
2507
2508 AC_CHECKING("for specified window system")
2509
2510 dnl Autodetection of Gdk libraries and includes
2511 dnl -------------------------------------------
2512 dnl On some systems (FreeBSD springs to mind), they use
2513 dnl versions on the utility routines, so instead of gtk-config
2514 dnl you must use gtk12-config, etc, etc.
2515
2516 GNOME_CONFIG=no
2517 GTK_CONFIG=no
2518
2519 if test "$with_gnome" != "no"; then
2520    AC_MSG_CHECKING(for GNOME configuration script)
2521    for possible in gnome-config
2522    do
2523       possible_version=`${possible} --version 2> /dev/null`
2524       if test "x${possible_version}" != "x"; then
2525               GNOME_CONFIG="${possible}"
2526               with_gnome=yes
2527               with_gtk=yes
2528               break
2529       fi
2530    done
2531    AC_MSG_RESULT([${GNOME_CONFIG}])
2532 fi
2533
2534 if test "${GNOME_CONFIG}" != "no"; then
2535       GNOME_LIBS=`${GNOME_CONFIG} --libs gnomeui`
2536       GNOME_CFLAGS=`${GNOME_CONFIG} --cflags gnomeui`
2537       AC_DEFINE(HAVE_GNOME)
2538       XE_APPEND(${GNOME_LIBS}, libs_gtk)
2539       XE_APPEND(${GNOME_CFLAGS}, c_switch_gtk)
2540 fi
2541
2542 if test "$with_gtk" != "no";then
2543    AC_MSG_CHECKING(for GTK configuration script)
2544    for possible in gtk12-config gtk14-config gtk-config
2545    do
2546       possible_version=`${possible} --version 2> /dev/null`
2547       if test "x${possible_version}" != "x"; then
2548               GTK_CONFIG="${possible}"
2549       fi
2550       case "${possible_version}" in
2551         1.0.*) AC_MSG_WARN([GTK 1.2 is required, please upgrade your version of GTK.]); with_gtk=no;;
2552         1.3.*) AC_MSG_WARN([GTK 1.3 is not supported right now]); with_gtk=no;;
2553         1.2.*)
2554                 with_gtk=yes
2555                 break
2556                 ;;
2557         *)     AC_MSG_WARN([Found unsupported version of GTK: $possible_version]);;
2558       esac
2559    done
2560    AC_MSG_RESULT([${GTK_CONFIG}])
2561 fi
2562
2563 if test "${GTK_CONFIG}" != "no"; then
2564       AC_MSG_CHECKING(gtk version)
2565       GTK_VERSION=`${GTK_CONFIG} --version`
2566       AC_MSG_RESULT(${GTK_VERSION})
2567
2568       AC_MSG_CHECKING(gtk libs)
2569       GTK_LIBS=`${GTK_CONFIG} --libs`
2570       XE_APPEND(${GTK_LIBS}, libs_gtk)
2571       AC_MSG_RESULT(${GTK_LIBS})
2572
2573       AC_MSG_CHECKING(gtk cflags)
2574       GTK_CFLAGS=`${GTK_CONFIG} --cflags`
2575       XE_APPEND(${GTK_CFLAGS}, c_switch_gtk)
2576       AC_MSG_RESULT(${GTK_CFLAGS})
2577
2578       AC_CHECK_LIB(gdk_imlib, main, XE_PREPEND(-lgdk_imlib, libs_gtk))
2579       AC_CHECK_LIB(Imlib, Imlib_init, XE_APPEND(-lImlib, libs_gtk))
2580       AC_CHECK_FUNCS(gdk_imlib_init)
2581
2582       AC_DEFINE(HAVE_XPM)
2583       AC_DEFINE(HAVE_GTK)
2584       AC_SUBST(GTK_CONFIG)
2585
2586       window_system=gtk
2587       with_gtk=yes
2588       with_x11=no
2589
2590       test "${with_scrollbars}" != "no" && with_scrollbars=gtk
2591       test "${with_toolbars}" != no && with_toolbars=gtk
2592       test "${with_menubars}" != "no" && with_menubars=gtk
2593       test "${with_dialogs}" != "no" && with_dialogs=gtk
2594       test "${with_widgets}" != "no" && with_widgets=gtk
2595
2596       XE_ADD_OBJS(console-gtk.o device-gtk.o event-gtk.o frame-gtk.o)
2597       XE_ADD_OBJS(objects-gtk.o redisplay-gtk.o glyphs-gtk.o)
2598       XE_ADD_OBJS(select-gtk.o gccache-gtk.o)
2599       XE_ADD_OBJS(gtk-xemacs.o ui-gtk.o)
2600
2601       dnl Check for libglade support (it rocks)
2602       OLD_CFLAGS="${CFLAGS}"
2603       OLD_LDFLAGS="${LDFLAGS}"
2604       CFLAGS="${GTK_CFLAGS} ${CFLAGS}"
2605       LDFLAGS="${LDFLAGS} ${GTK_LIBS}"
2606       AC_CHECK_HEADERS(glade/glade.h glade.h)
2607       AC_CHECK_LIB(xml, main, XE_PREPEND(-lxml, libs_gtk))
2608       AC_CHECK_LIB(glade, main, XE_PREPEND(-lglade, libs_gtk))
2609       AC_CHECK_LIB(glade-gnome, main, XE_PREPEND(-lglade-gnome, libs_gtk))
2610       AC_EGREP_HEADER([char \*txtdomain;], [glade/glade-xml.h],
2611                       [AC_MSG_RESULT(yes)
2612                        AC_DEFINE(LIBGLADE_XML_TXTDOMAIN,1)],
2613                       [AC_MSG_RESULT(no)])
2614       CFLAGS="${OLD_CFLAGS}"
2615       LDFLAGS="${OLD_LDFLAGS}"
2616 fi
2617
2618 dnl We may eventually prefer gtk/gdk over vanilla X11...
2619
2620 if test "$with_x11" != "no"; then
2621   dnl User-specified --x-includes or --x-libraries implies --with-x11.
2622   test "$x_includes $x_libraries" != "NONE NONE" && \
2623    window_system=x11 with_x11=yes
2624
2625   dnl Autodetection of X11 libraries and includes
2626   dnl -------------------------------------------
2627   dnl AC_PATH_XTRA thinks it can find our X headers and includes, but
2628   dnl it often gets it wrong, so we only use it as a last resort.
2629
2630   dnl $OPENWINHOME implies --x-includes and --x-libraries
2631   dnl Not (yet) handled by autoconf2
2632   if test "$x_includes $x_libraries" = "NONE NONE" \
2633     -a -n "$OPENWINHOME" \
2634     -a "$OPENWINHOME" != "/usr/openwin" \
2635     -a -d "$OPENWINHOME"; then
2636       test -d "$OPENWINHOME/lib"           && x_libraries="$OPENWINHOME/lib"
2637       test -d "$OPENWINHOME/include"       && x_includes="$OPENWINHOME/include"
2638       test -d "$OPENWINHOME/share/include" && x_includes="$OPENWINHOME/share/include"
2639   fi
2640
2641   if test "$x_includes" = "NONE"; then
2642     dnl AC_PATH_XTRA often guesses /usr/include, when some other
2643     dnl include directory is a MUCH better guess (Linux, HP-UX 10.20).
2644     dnl This is a workaround for idiot (esp. HP) system vendors, who
2645     dnl provide a /usr/include/X11, but DON'T FULLY POPULATE IT.
2646     for dir in "/usr/X11" "/usr/X11R6"; do
2647       if test -d "$dir/include/X11"; then x_includes="$dir/include"; break; fi
2648     done
2649   fi
2650
2651   if test "$x_libraries" = "NONE"; then
2652     for dir in "/usr/X11/lib" "/usr/X11R6/lib" "/usr/lib/X11R6"; do
2653       if test -r "$dir/libX11.a"; then x_libraries="$dir"; break; fi
2654     done
2655   fi
2656
2657   AC_PATH_XTRA # Autoconf claims to find X library and include dirs for us.
2658   if test "$no_x" = "yes"
2659   then with_x11=no  window_system=none HAVE_X_WINDOWS=no
2660   else with_x11=yes window_system=x11  HAVE_X_WINDOWS=yes
2661   fi
2662 fi
2663
2664 dnl #### wmperry:: !x11 != NONE
2665 dnl case "$with_x11" in
2666 dnl  yes ) window_system=x11  HAVE_X_WINDOWS=yes ;;
2667 dnl  no  ) window_system=none HAVE_X_WINDOWS=no  ;;
2668 dnl esac
2669
2670 if test "$with_x11" = "yes"; then
2671   AC_DEFINE(HAVE_X_WINDOWS)
2672   XE_APPEND(lwlib, MAKE_SUBDIR)
2673   XE_APPEND(lwlib, SRC_SUBDIR_DEPS)
2674
2675   dnl Try to find Motif/CDE/Tooltalk dirs
2676   dnl These take precedence over other X libs/includes, so PRE-pend
2677   for lib_dir in "/usr/dt/lib" "/usr/lib/Motif2.1" "/usr/lib/Motif1.2" "/usr/lib/Motif1.1"; do
2678     inc_dir=`echo $lib_dir | sed -e 's/lib/include/'`
2679     if test -d "$lib_dir" -a -d "$inc_dir"; then
2680       case "$x_libraries" in *"$lib_dir"* ) ;; *)
2681         x_libraries="$lib_dir $x_libraries"
2682         XE_PREPEND(-L${lib_dir}, X_LIBS) ;;
2683       esac
2684       case "$x_includes" in "$inc_dir"* ) ;; *)
2685         x_includes="$inc_dir $x_includes"
2686         XE_PREPEND(-I${inc_dir}, X_CFLAGS) ;;
2687       esac
2688       break; dnl only need ONE Motif implementation!
2689       fi
2690   done
2691
2692   dnl Contrib X libs/includes do NOT take precedence, so AP-pend
2693   for rel in "X11R6" "X11R5" "X11R4"; do
2694     lib_dir="/usr/contrib/$rel/lib" inc_dir="/usr/contrib/$rel/include"
2695     if test -d "$lib_dir" -a -d "$inc_dir"; then
2696       case "$x_libraries" in *"$lib_dir"* ) ;; *)
2697         x_libraries="$x_libraries $lib_dir"
2698         XE_APPEND(-L${lib_dir}, X_LIBS)
2699       esac
2700       case "$x_includes" in "$inc_dir"* ) ;; *)
2701         x_includes="$x_includes $inc_dir"
2702         XE_APPEND(-I${inc_dir}, X_CFLAGS)
2703       esac
2704       break; dnl Only need ONE X11 implementation !
2705     fi
2706   done
2707
2708   dnl Avoid version mismatch for shared library libXm.so on osf4
2709   case "$opsys" in
2710   decosf*) if test "$GCC" = yes -a -d /usr/shlib; then XE_APPEND(-L/usr/shlib, X_LIBS); fi ;;
2711   esac
2712
2713   ld_switch_x_site="$X_LIBS"
2714
2715   XE_COMPUTE_RUNPATH()
2716
2717   if test "$extra_verbose" = "yes"; then
2718     echo; echo "X11 compilation variables:"
2719     PRINT_VAR(x_libraries x_includes X_CFLAGS X_LIBS X_PRE_LIBS X_EXTRA_LIBS)
2720     echo
2721   fi
2722
2723   dnl Set up bitmaps search path.
2724   dnl The original suggestion was to unconditionally to append X11/bitmaps
2725   dnl to each element of $x_includes, I'm pretty sure this is the wrong
2726   dnl thing to do.  We test for bitmaps and X11/bitmaps directories on each
2727   dnl element and add them to BITMAPDIR if they exist.
2728   bitmapdirs=
2729   if test "$x_includes" != NONE; then
2730     for i in $x_includes; do
2731       if test -d "$i/bitmaps"; then
2732         bitmapdirs="$i/bitmaps:$bitmapdirs"
2733       fi
2734       if test -d "$i/X11/bitmaps"; then
2735         bitmapdirs="$i/X11/bitmaps:$bitmapdirs"
2736       fi
2737     done
2738     bitmapdirs=`echo "$bitmapdirs" | sed s/.$//`
2739   fi
2740   test ! -z "$bitmapdirs" && AC_DEFINE_UNQUOTED(BITMAPDIR, "$bitmapdirs")
2741
2742   dnl Autodetect defines extracted from X config by xmkmf, e.g. NARROWPROTO
2743   AC_CHECKING(for X defines extracted by xmkmf)
2744   rm -fr conftestdir
2745   if mkdir conftestdir; then
2746     cd conftestdir
2747     cat > Imakefile <<'EOF'
2748 xetest:
2749         @echo ${PROTO_DEFINES} ${STD_DEFINES}
2750 EOF
2751     if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
2752       # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
2753       xmkmf_defines=`${MAKE-make} xetest 2>/dev/null | grep -v make`
2754     fi
2755     cd ..
2756     rm -fr conftestdir
2757     for word in $xmkmf_defines; do
2758       case "$word" in 
2759       -D__STDC__*) ;;
2760       -D* )
2761         sym=`echo '' $word | sed -e 's:^ *-D::' -e 's:=.*::'`
2762         case "$word" in
2763           -D*=* ) val=`echo '' $word | sed -e 's:^.*=::'` ;;
2764           *     ) val=1 ;;
2765         esac
2766 dnl Avoid re-AC_DEFINE-ing xmkmf symbols we've already defined above.
2767         if grep "^#define $sym " confdefs.h >/dev/null; then :; else
2768           if test "$val" = "1"
2769             then AC_DEFINE_UNQUOTED($sym)
2770             else AC_DEFINE_UNQUOTED($sym,$val)
2771           fi
2772         fi  ;;
2773       esac
2774     done
2775   fi
2776
2777   dnl make sure we can find Intrinsic.h
2778   AC_CHECK_HEADER(X11/Intrinsic.h, ,
2779    [AC_MSG_ERROR("Unable to find X11 header files.")])
2780
2781   dnl -lXt and -lX11 are required
2782   dnl Some broken systems require the magic "-b i486-linuxaout" flag
2783   AC_CHECK_LIB(X11, XOpenDisplay, have_lib_x11=yes)
2784   if test "$have_lib_x11" != "yes"; then
2785     AC_CHECK_LIB(X11, XGetFontProperty,
2786       ld_switch_x_site="-b i486-linuxaout $ld_switch_x_site",
2787       [AC_MSG_ERROR("Unable to find X11 libraries.")],
2788       -b i486-linuxaout)
2789   fi
2790   libs_x="-lX11"
2791   test "$extra_verbose" = "yes" && echo "    Setting libs_x to \"-lX11\""
2792
2793   dnl Autodetect -lXext
2794   AC_CHECK_LIB(Xext, XShapeSelectInput, XE_PREPEND(-lXext, libs_x))
2795
2796   dnl Require -lXt
2797   AC_CHECK_LIB(Xt, XtOpenDisplay, XE_PREPEND(-lXt, libs_x),
2798     AC_MSG_ERROR("Unable to find X11 libraries."))
2799
2800   AC_MSG_CHECKING(the version of X11 being used)
2801   AC_TRY_RUN([#include <X11/Intrinsic.h>
2802     int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }],
2803     [./conftest foobar; x11_release=$?],[x11_release=4],[x11_release=4])
2804   AC_MSG_RESULT(R${x11_release})
2805   AC_DEFINE_UNQUOTED(THIS_IS_X11R${x11_release})
2806
2807   if test "${x11_release}" = "4"; then
2808     case "$with_widgets" in
2809       "" | "no") with_widgets=no ;;
2810       *) XE_DIE("Widget support requires X11R5 or greater") ;;
2811     esac
2812   fi
2813
2814   AC_CHECK_FUNCS(XConvertCase)
2815
2816   AC_CHECK_HEADERS(X11/Xlocale.h)
2817
2818   dnl XFree86 has a non-standard prototype for this X11R6 function
2819   AC_CHECK_FUNCS(XRegisterIMInstantiateCallback)
2820   AC_MSG_CHECKING(for standard XRegisterIMInstantiateCallback prototype)
2821   AC_TRY_COMPILE([
2822 #define NeedFunctionPrototypes 1
2823 #include <X11/Xlib.h>
2824 extern Bool XRegisterIMInstantiateCallback(
2825    Display*, struct _XrmHashBucketRec*, char*, char*, XIMProc, XPointer*);
2826 ], [], 
2827   [AC_MSG_RESULT(yes)],
2828   [AC_MSG_RESULT(no)
2829    AC_DEFINE(XREGISTERIMINSTANTIATECALLBACK_NONSTANDARD_PROTOTYPE)])
2830
2831   dnl autodetect -lXmu
2832   test -z "$with_xmu" && { AC_CHECK_LIB(Xmu, XmuReadBitmapDataFromFile,
2833                            with_xmu=yes, with_xmu=no) }
2834   if test "$with_xmu" = "no"; then
2835     XE_ADD_OBJS(xmu.o)
2836   else
2837     XE_PREPEND(-lXmu, libs_x)
2838     AC_DEFINE(HAVE_XMU)
2839   fi
2840
2841   dnl Autodetect -lXbsd
2842   dnl #### Someone, please add a better function than main
2843   AC_CHECK_LIB(Xbsd, main, XE_PREPEND(-lXbsd, libs_x))
2844
2845   dnl Problem with the MIT distribution of X on AIX
2846   if test "$unexec" = "unexaix.o" -a "$x11_release" = "6"; then
2847     dnl X11R6 requires thread-safe code on AIX for some reason
2848     if test "$GCC" = "yes"; then
2849       XE_PREPEND(-mthreads, X_CFLAGS)
2850       XE_PREPEND(-mthreads, libs_x)
2851     else
2852       case "$CC" in
2853         "xlc" ) CC="xlc_r" ;;
2854         "xlC" ) CC="xlC_r" ;;
2855         "cc"  ) CC="cc_r" ;;
2856       esac
2857     fi
2858   fi
2859
2860 fi dnl $with_x11 = yes
2861
2862 if test "$with_msw" != "no"; then
2863   AC_CHECKING(for MS-Windows)
2864   AC_CHECK_LIB(gdi32,main,with_msw=yes)
2865   if test "$with_msw" = "yes"; then
2866     AC_DEFINE(HAVE_MS_WINDOWS)
2867
2868     dnl The net installer only works with MS-Windows currently
2869     if test "$with_netinstall" = "yes"; then
2870       XE_APPEND(netinstall, MAKE_SUBDIR)
2871       XE_APPEND(netinstall, SRC_SUBDIR_DEPS)
2872       XE_APPEND(netinstall, INSTALL_ARCH_DEP_SUBDIR)
2873     fi
2874
2875     install_pp="$blddir/lib-src/installexe.sh"
2876     XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lwinspool, libs_system)
2877     test "$with_dragndrop" != no && XE_APPEND(msw, dragndrop_proto)
2878     if test "$window_system" != x11; then
2879         window_system=msw
2880         test "$with_scrollbars" != "no" && with_scrollbars=msw \
2881             && XE_ADD_OBJS(scrollbar-msw.o)
2882         test "$with_menubars"   != "no" && with_menubars=msw \
2883             && XE_ADD_OBJS(menubar-msw.o)
2884         test "$with_toolbars"   != "no" && with_toolbars=msw \
2885             && XE_ADD_OBJS(toolbar-msw.o)
2886         test "$with_dialogs"   != "no" && with_dialogs=msw \
2887             && XE_ADD_OBJS(dialog-msw.o)
2888         test "$with_widgets"   != "no" && with_widgets=msw
2889     else
2890         test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-msw.o)
2891         test "$with_menubars"   != "no" && XE_ADD_OBJS(menubar-msw.o)
2892         test "$with_toolbars"   != "no" && XE_ADD_OBJS(toolbar-msw.o)
2893         test "$with_dialogs"    != "no" && XE_ADD_OBJS(dialog-msw.o)
2894     fi
2895     dnl check for our special version of select
2896     AC_TRY_RUN([#include <fcntl.h>
2897     int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }],
2898     [AC_DEFINE(HAVE_MSG_SELECT)])
2899     with_file_coding=yes
2900     XE_ADD_OBJS(console-msw.o device-msw.o event-msw.o frame-msw.o objects-msw.o select-msw.o redisplay-msw.o glyphs-msw.o gui-msw.o)
2901   fi
2902 fi
2903
2904 AC_SUBST(install_pp)
2905
2906 test -z "$window_system" && window_system="none"
2907
2908 dnl Test for features that require a window system - ANY window system
2909 if test "$window_system" = "none"; then
2910   for feature in menubars scrollbars toolbars dialogs dragndrop xface
2911   do
2912     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2913        AC_MSG_WARN([--with-$feature ignored:  Not valid without window system support])
2914     fi
2915     eval "with_${feature}=no"
2916   done
2917 else
2918   test -z "$with_toolbars" && with_toolbars=yes
2919 fi
2920
2921 dnl ### Test for features that require mswindows support - currently none
2922 dnl ### MS-Windows folks: add code here..... (martin)
2923 if test "$with_msw" != "yes"; then
2924   for feature in   MARTIN_IS_CLUELESS_ABOUT_MSW_FEATURES
2925   do
2926     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2927        AC_MSG_WARN([--with-$feature ignored:  Not valid without MS-Windows support])
2928     fi
2929     eval "with_${feature}=no"
2930   done
2931 else
2932   :
2933 fi
2934
2935 dnl Test for features that require X11 support
2936 if test "$with_x11" != "yes"; then
2937   dnl It ought to be reasonable to have no output device at all, and only use
2938   dnl XEmacs in --batch mode.
2939   dnl if test "$with_tty" = "no" ; then
2940   dnl   AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.])
2941   dnl fi
2942   for feature in tooltalk cde offix wmcommand xim xmu nas_sound
2943   do
2944     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2945        AC_MSG_WARN([--with-$feature ignored:  Not valid without X support])
2946     fi
2947     eval "with_${feature}=no"
2948   done
2949 fi
2950
2951 dnl Balloon Help requires the Shape extension, not available everywhere,
2952 dnl for example not on AIX 4.3.
2953 if test "$with_x11" = "yes"; then
2954   AC_CHECK_HEADER(X11/extensions/shape.h, [
2955    AC_DEFINE(HAVE_BALLOON_HELP)
2956    XE_ADD_OBJS(balloon_help.o balloon-x.o)])
2957 fi
2958
2959 dnl FSF 19.29 has some bitmapdir stuff here.
2960 bitmapdir=
2961
2962 case "$window_system" in
2963   x11  ) HAVE_X_WINDOWS=yes; echo "  Using X11." ;;
2964   msw  ) HAVE_X_WINDOWS=no ; echo "  Using MS-Windows." ;;
2965   gtk  )
2966        HAVE_X_WINDOWS=no
2967        test "$with_gnome" = "yes" && echo "  Using GNOME."
2968        test "$with_gnome" = "no" && echo "  Using GTK."
2969        ;;
2970   none ) HAVE_X_WINDOWS=no ; echo "  Using no window system." ;;
2971 esac
2972
2973 case "$x_libraries" in *X11R4* )
2974   test "$opsys" = "hpux9"     && opsysfile="s/hpux9-x11r4.h"
2975   test "$opsys" = "hpux9-shr" && opsysfile="s/hpux9shxr4.h"
2976 esac
2977
2978 dnl Enable or disable proper handling of WM_COMMAND
2979 AC_CHECKING(for WM_COMMAND option);
2980 dnl if test "$with_wmcommand" = "yes"; then
2981 if test "$with_wmcommand" != "no"; then
2982   AC_DEFINE(HAVE_WMCOMMAND)
2983 fi
2984
2985 dnl Autodetect Xauth
2986 dnl -lXau is only used by gnuclient, so use a special variable for Xauth X libs
2987 test -z "$with_xauth" && test "$window_system" = "none" && with_xauth=no
2988 test -z "$with_xauth" && { AC_CHECK_HEADER(X11/Xauth.h,          ,with_xauth=no) }
2989 test -z "$with_xauth" && { AC_CHECK_LIB(Xau, XauGetAuthByAddr,[:],with_xauth=no) }
2990 test -z "$with_xauth" && with_xauth=yes
2991 if test "$with_xauth" = "yes"; then
2992   AC_DEFINE(HAVE_XAUTH)
2993   XE_SPACE(libs_xauth, $GTK_LIBS $X_EXTRA_LIBS -lXau $libs_x $X_PRE_LIBS)
2994 fi
2995 AC_SUBST(libs_xauth)
2996
2997 dnl This one is for the static initializeds variables in
2998 dnl offix.c, so that the thing is dumped after lastfile.o
2999 AC_SUBST(dnd_objs)
3000
3001 dnl Autodetect tooltalk
3002 if test "$with_tooltalk" != "no" ; then
3003   dnl autodetect the location of tt_c.h
3004   dnl tt_c.h might be in Tt or desktop include directories
3005   for dir in "" "Tt/" "desktop/" ; do
3006     AC_CHECK_HEADER(${dir}tt_c.h, tt_c_h_file="${dir}tt_c.h"; break)
3007   done
3008   if test -z "$tt_c_h_file"; then
3009     if test "$with_tooltalk" = "yes"; then
3010       USAGE_ERROR("Unable to find required tooltalk header files.")
3011     fi
3012     with_tooltalk=no
3013   fi
3014 fi
3015 if test "$with_tooltalk" != "no" ; then
3016   for extra_libs in "" "-lI18N -lce" "-lcxx"; do
3017     AC_CHECK_LIB(tt, tt_message_create,
3018       tt_libs="-ltt $extra_libs"; break, [:],$extra_libs)
3019   done
3020   if test -z "$tt_libs"; then
3021     if test "$with_tooltalk" = "yes"; then
3022       USAGE_ERROR("Unable to find required tooltalk libraries.")
3023     fi
3024     with_tooltalk=no
3025   fi
3026 fi
3027 test -z "$with_tooltalk" && with_tooltalk=yes
3028 if test "$with_tooltalk" = "yes"; then
3029   AC_DEFINE(TOOLTALK)
3030   AC_DEFINE_UNQUOTED(TT_C_H_FILE, "$tt_c_h_file")
3031   XE_PREPEND($tt_libs, libs_x)
3032   XE_ADD_OBJS(tooltalk.o)
3033 fi
3034
3035 dnl Autodetect CDE
3036 test -z "$with_cde" && { AC_CHECK_HEADER(Dt/Dt.h,               , with_cde=no) }
3037 test -z "$with_cde" && { AC_CHECK_LIB(DtSvc, DtDndDragStart, [:], with_cde=no) }
3038 test -z "$with_cde" && with_cde=yes
3039 if test "$with_dragndrop" = no; then
3040   AC_MSG_WARN([No CDE without generic Drag'n'Drop support])
3041   with_cde=no
3042 fi
3043 if test "$with_cde" = "yes" ; then
3044   AC_DEFINE(HAVE_CDE)
3045   XE_PREPEND(-lDtSvc, libs_x)
3046   XE_APPEND(CDE, dragndrop_proto)
3047   with_tooltalk=yes # CDE requires Tooltalk
3048   need_motif=yes    # CDE requires Motif
3049 fi
3050
3051 dnl Always compile OffiX unless --without-offix is given, no
3052 dnl X11 support is compiled in, no standard Xmu is available,
3053 dnl or dragndrop support is disabled
3054 dnl Because OffiX support currently loses when more than one display
3055 dnl is in use, we now disable it by default -slb 07/10/1998.
3056 test "$window_system" != "x11" && with_offix=no
3057 if test "$with_xmu" != yes -a "$with_x11" = yes; then
3058   AC_MSG_WARN([No OffiX without real Xmu support])
3059   with_offix=no
3060 fi
3061 if test "$with_dragndrop" = no; then
3062   AC_MSG_WARN([No OffiX without generic Drag'n'Drop support])
3063   with_offix=no
3064 fi
3065 if test "$with_cde" = yes; then
3066   AC_MSG_WARN([CDE already found, disabling OffiX support])
3067   with_offix=no
3068 fi
3069 test -z "$with_offix" && with_offix=no
3070 if test "$with_offix" = "yes"; then
3071   AC_DEFINE(HAVE_OFFIX_DND)
3072   XE_APPEND(offix.o, dnd_objs)
3073   XE_APPEND(OffiX, dragndrop_proto)
3074 fi
3075 if test "$with_gtk" = "yes"; then
3076    XE_APPEND(GTK, dragndrop_proto)
3077 fi
3078
3079 dnl Autodetect Drag'n'Drop support
3080 dnl always included if CDE, Offix, or MSWindows are defined
3081 if test "$with_dragndrop" != "no" ; then
3082   AC_MSG_CHECKING(if drag and drop API is needed)
3083   if test -n "$dragndrop_proto" ; then
3084     with_dragndrop=yes
3085     AC_MSG_RESULT([yes (${dragndrop_proto} )])
3086     AC_DEFINE(HAVE_DRAGNDROP)
3087     XE_APPEND(dragdrop.o, extra_objs)
3088   else
3089     with_dragndrop=no
3090     AC_MSG_RESULT(no)
3091   fi
3092 fi
3093
3094 dnl Autodetect LDAP
3095 AC_CHECKING(for LDAP)
3096 test -z "$with_ldap" && { AC_CHECK_HEADER(ldap.h, ,with_ldap=no) }
3097 test -z "$with_ldap" && { AC_CHECK_HEADER(lber.h, ,with_ldap=no) }
3098 if test "$with_ldap" != "no"; then
3099   AC_CHECK_LIB(ldap, ldap_search, with_ldap_nolber=yes, with_ldap_nolber=no)
3100   test "$with_ldap_nolber" = "no" && { AC_CHECK_LIB(ldap, ldap_open, with_ldap_lber=yes, with_ldap_lber=no, -llber) }
3101   test "$with_ldap_nolber" = "no" -a "$with_ldap_lber" = "no" && { AC_CHECK_LIB(ldap, ldap_open, with_ldap_krb=yes, with_ldap_krb=no, -llber -lkrb) }
3102   test "$with_ldap_nolber" = "no" -a "$with_ldap_lber" = "no" -a "$with_ldap_krb" = "no" && { AC_CHECK_LIB(ldap, ldap_open, with_ldap_krbdes=yes, with_ldap_krbdes=no, -llber -lkrb -ldes) }
3103   test -z "$with_ldap" -a \( "$with_ldap_lber" = "yes" -o "$with_ldap_nolber" = "yes" -o "$with_ldap_krb" = "yes" -o "$with_ldap_krbdes" = "yes" \) && with_ldap=yes
3104 fi
3105 if test "$with_ldap" = "yes"; then
3106   AC_DEFINE(HAVE_LDAP)
3107   XE_ADD_OBJS(eldap.o)
3108   if test "$with_ldap_nolber" = "yes" ; then
3109     XE_PREPEND(-lldap, LIBS)
3110   else
3111     if test "$with_ldap_krb" = "yes" ; then
3112       XE_PREPEND(-lkrb, LIBS)
3113     fi
3114     if test "$with_ldap_krbdes" = "yes" ; then
3115       XE_PREPEND(-ldes, LIBS)
3116       XE_PREPEND(-lkrb, LIBS)
3117     fi
3118     XE_PREPEND(-llber, LIBS)
3119     XE_PREPEND(-lldap, LIBS)
3120   fi
3121   AC_CHECK_FUNCS(ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result)
3122 fi
3123
3124 dnl Autodetect PostgreSQL
3125 dnl On many Linux systems, PostgreSQL is packaged to be installed in /usr;
3126 dnl in this case, configure will easily detect it there.
3127 dnl
3128 dnl If PostgreSQL is installed into a different prefix,
3129 dnl (such as the default /usr/local/pgsql when building from source),
3130 dnl that prefix must be specified using the --site-prefixes flag.
3131 if test "$with_postgresql" != "no"; then
3132   AC_CHECKING(for PostgreSQL)
3133
3134 dnl Look for these standard header file locations, known to be used on Linux
3135   for header_dir in "" "pgsql/" "postgresql/"; do
3136     AC_CHECK_HEADER(${header_dir}libpq-fe.h,
3137                     libpq_fe_h_file=${header_dir}libpq-fe.h; break)
3138   done
3139
3140   test -n "$libpq_fe_h_file" && { AC_CHECK_LIB(pq,PQconnectdb,have_libpq=yes) }
3141
3142   if test -n "$libpq_fe_h_file" -a "$have_libpq" = "yes"; then
3143     with_postgresql=yes
3144     AC_DEFINE(HAVE_POSTGRESQL)
3145     AC_CHECK_LIB(pq,PQconnectStart, [
3146                  with_postgresqlv7=yes;
3147                  AC_DEFINE(HAVE_POSTGRESQLV7)])
3148     AC_DEFINE_UNQUOTED(LIBPQ_FE_H_FILE, "$libpq_fe_h_file")
3149     XE_PREPEND(-lpq, LIBS)
3150     XE_ADD_OBJS(postgresql.o)
3151   elif test "$with_postgresql" = "yes"; then
3152     XE_DIE("Required PostgreSQL support cannot be provided.  Check --site-prefixes.")
3153   fi
3154 fi
3155
3156 dnl ----------------------
3157 dnl Graphics libraries
3158 dnl ----------------------
3159
3160 if test "$window_system" != "none"; then
3161   AC_CHECKING(for graphics libraries)
3162
3163   dnl Autodetect Xpm
3164   xpm_problem=""
3165   if test -z "$with_xpm"; then
3166     AC_MSG_CHECKING(for Xpm - no older than 3.4f)
3167     xe_check_libs=-lXpm
3168     AC_TRY_RUN([#define XPM_NUMBERS
3169 #include <X11/xpm.h>
3170     int main(int c, char **v) {
3171     return c == 1 ? 0 :
3172       XpmIncludeVersion != XpmLibraryVersion() ? 1 :
3173       XpmIncludeVersion < 30406 ? 2 : 0 ;}],
3174     [./conftest dummy_arg; xpm_status=$?;
3175       if test "$xpm_status" = "0"; then
3176         with_xpm=yes;
3177       else
3178         with_xpm=no;
3179         if test "$xpm_status" = "1"; then
3180           xpm_problem="Xpm library version and header file version don't match!"
3181         elif test "$xpm_status" = "2"; then
3182           xpm_problem="Xpm library version is too old!"
3183         else
3184           xpm_problem="Internal xpm detection logic error!"
3185         fi
3186         echo "
3187 *** WARNING *** $xpm_problem
3188   I'm not touching that with a 10-foot pole!
3189   If you really want to use the installed version of Xpm, rerun
3190   configure and add '--with-xpm=yes', but don't blame me if XEmacs crashes!"
3191     fi],
3192     [with_xpm=no])
3193     xe_check_libs=
3194     AC_MSG_RESULT($with_xpm)
3195   fi
3196   if test "$with_xpm" = "yes"; then
3197     dnl #### This code assumes that if AC_CHECK_LIB fails,
3198     dnl #### then it will succeed if FOR_MSW is defined,
3199     dnl #### but doesn't actually verify this assumption.
3200     AC_DEFINE(HAVE_XPM)
3201     XE_PREPEND(-lXpm, libs_x)
3202     AC_MSG_CHECKING(for \"FOR_MSW\" xpm)
3203     xe_check_libs=-lXpm
3204     AC_TRY_LINK(, [XpmCreatePixmapFromData()],
3205     [xpm_for_msw=no],
3206     [xpm_for_msw=yes])
3207     xe_check_libs=
3208     AC_MSG_RESULT($xpm_for_msw)
3209     if test "$xpm_for_msw" = "yes"; then
3210       AC_DEFINE(FOR_MSW)
3211     fi
3212   fi
3213
3214   dnl Autodetect XFACE
3215   test -z "$with_xface" && { AC_CHECK_HEADER(compface.h,          ,with_xface=no) }
3216   test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) }
3217   test -z "$with_xface" && with_xface=yes
3218   if test "$with_xface" = "yes"; then
3219     AC_DEFINE(HAVE_XFACE)
3220     XE_PREPEND(-lcompface, libs_x)
3221   fi
3222
3223   dnl For a brief period we had the GIF code split out into a separate library,
3224   dnl but patent problems, etc. sort of squashed that idea.
3225   dnl We default to building with builtin GIF decoding
3226   if test "$with_gif" != "no"; then
3227     with_gif="yes"
3228     AC_DEFINE(HAVE_GIF)
3229     XE_ADD_OBJS(dgif_lib.o gif_io.o)
3230   fi
3231
3232   dnl Too many stupid linkers can't detect cascaded lib dependencies until runtime
3233   dnl So we always search for libz compression support.
3234   if test "$with_png $with_tiff" != "no no"; then
3235     AC_CHECK_LIB(c,  inflate, [:], [
3236     AC_CHECK_LIB(z,  inflate, [XE_PREPEND(-lz,  libs_x)],[
3237     AC_CHECK_LIB(gz, inflate, [XE_PREPEND(-lgz, libs_x)])])])
3238   fi
3239
3240   dnl autodetect JPEG
3241   test -z "$with_jpeg" && { AC_CHECK_HEADER(jpeglib.h,                    ,with_jpeg=no) }
3242   test -z "$with_jpeg" && { AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,[:],with_jpeg=no) }
3243   test -z "$with_jpeg" && with_jpeg=yes
3244   if test "$with_jpeg" = "yes"; then
3245     AC_DEFINE(HAVE_JPEG)
3246     XE_PREPEND(-ljpeg, libs_x)
3247   fi
3248
3249   dnl autodetect PNG
3250   png_problem=""
3251   test -z "$with_png" && { AC_CHECK_FUNC(pow,                  ,with_png=no) }
3252   test -z "$with_png" && { AC_CHECK_HEADER(png.h,              ,with_png=no) }
3253   test -z "$with_png" && { AC_CHECK_LIB(png, png_read_image,[:],with_png=no) }
3254   if test -z "$with_png"; then
3255     AC_MSG_CHECKING(for workable png version information)
3256     xe_check_libs="-lpng -lz"
3257     AC_TRY_RUN([#include <png.h>
3258     int main(int c, char **v) {
3259     if (c == 1) return 0;
3260     if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1;
3261     return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}],
3262     [./conftest dummy_arg; png_status=$?;
3263       if test "$png_status" = "0"; then
3264         with_png=yes;
3265       else
3266         with_png=no;
3267         if test "$png_status" = "1"; then
3268           png_problem="PNG library version and header file don't match!"
3269         elif test "$png_status" = "2"; then
3270           png_problem="PNG library version too old (pre 1.0.2)!"
3271         fi
3272         echo "
3273 *** WARNING *** $png_problem
3274   I'm not touching that with a 10-foot pole!
3275   If you really want to use the installed version of libPNG, rerun
3276   configure and add '--with-png=yes', but don't blame me if XEmacs crashes!"
3277     fi],
3278     [with_png=no])
3279     xe_check_libs=
3280     AC_MSG_RESULT($with_png)
3281   fi
3282   if test "$with_png" = "yes"; then
3283     AC_DEFINE(HAVE_PNG)
3284     XE_PREPEND(-lpng, libs_x)
3285   fi
3286
3287   dnl autodetect TIFF
3288   test -z "$with_tiff" && { AC_CHECK_HEADER(tiffio.h,            ,with_tiff=no) }
3289   test -z "$with_tiff" && { AC_CHECK_LIB(tiff, TIFFClientOpen,[:],with_tiff=no) }
3290   test -z "$with_tiff" && with_tiff=yes
3291   if test "$with_tiff" = "yes"; then
3292     AC_DEFINE(HAVE_TIFF)
3293     XE_PREPEND(-ltiff, libs_x)
3294   fi
3295 fi
3296
3297 dnl ----------------------
3298 dnl GTK-Specific Graphics libraries
3299 dnl ----------------------
3300
3301 if test "$with_gtk" = "yes"; then
3302   dnl Autodetect XFACE
3303   test -z "$with_xface" && { AC_CHECK_HEADER(compface.h,          ,with_xface=no) }
3304   test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) }
3305   test -z "$with_xface" && with_xface=yes
3306   if test "$with_xface" = "yes"; then
3307     AC_DEFINE(HAVE_XFACE)
3308     XE_PREPEND(-lcompface, libs_gtk)
3309   fi
3310 fi
3311
3312
3313 dnl ----------------------
3314 dnl X-Specific Graphics libraries
3315 dnl ----------------------
3316
3317 if test "$with_x11" = "yes"; then
3318
3319   AC_CHECKING(for X11 graphics libraries)
3320
3321   AC_CHECKING(for the Athena widgets)
3322
3323   dnl What in heck did the user actually want?
3324   case "$with_athena" in
3325     dnl This is the default, old fashioned flat Athena.
3326     "xaw" | "") athena_variant=Xaw      athena_3d=no  ;;
3327     "3d")       athena_variant=Xaw3d    athena_3d=yes ;;
3328     "next")     athena_variant=neXtaw   athena_3d=yes ;;
3329     "95")       athena_variant=Xaw95    athena_3d=yes ;;
3330     "xpm")      athena_variant=XawXpm   athena_3d=yes ;;
3331     *)          XE_DIE("Unknown Athena widget set \`$with_athena'. This should not happen.") ;;
3332   esac
3333
3334   dnl Search for the Athena library...
3335   if test "$athena_3d" = "no"; then
3336     AC_CHECK_LIB($athena_variant, XawScrollbarSetThumb,
3337       [
3338         dnl Must not be a 3d library...
3339         AC_CHECK_LIB($athena_variant, threeDClassRec,
3340           AC_MSG_WARN("Could not find a non-3d Athena widget library."),
3341           athena_lib=$athena_variant)
3342       ],
3343       AC_MSG_WARN("Could not find an Athena widget library."))
3344   else
3345     dnl The real configuration, need 3d library
3346     AC_CHECK_LIB($athena_variant, threeDClassRec, athena_lib=$athena_variant,
3347       dnl OK, couldn't find it with a proper name, try the standard Athena lib
3348       dnl If that is 3d, presume the user asked for what they have installed.
3349       AC_CHECK_LIB(Xaw, threeDClassRec,
3350         [
3351           athena_lib=Xaw;
3352           AC_MSG_WARN("Assuming that libXaw is actually $athena_variant.");
3353         ],
3354         AC_MSG_WARN("Could not find a 3d Athena widget library that looked like $athena_variant.")))
3355   fi
3356
3357   dnl Now we locate the Athena headers that we need.
3358   if test "$athena_3d" = "no"; then
3359     AC_CHECK_HEADER(X11/Xaw/ThreeD.h,
3360       AC_MSG_WARN("Could not find a non-3d Athena header set."),
3361       AC_CHECK_HEADER(X11/Xaw/XawInit.h,
3362         athena_h_path=X11/Xaw,
3363         AC_MSG_WARN("Could not find a non-3d Athena header set.")))
3364   else
3365     dnl The three-d Athena headers are so much more slippery.
3366     dnl Curse this `Lets replace standard libraries' thing that they did. :/
3367     AC_CHECK_HEADER(X11/$athena_variant/XawInit.h,
3368       AC_CHECK_HEADER(X11/$athena_variant/ThreeD.h,
3369         athena_h_path=X11/$athena_variant,))
3370
3371     dnl Is the variant specific header directory directly under include?
3372     if test -z "$athena_h_path"; then
3373       AC_CHECK_HEADER($athena_variant/XawInit.h,
3374         AC_CHECK_HEADER($athena_variant/ThreeD.h,
3375           athena_h_path=$athena_variant,))
3376     fi
3377
3378     dnl If we couldn't find the specific variant, try the generic Athena 3d headers
3379     if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
3380       AC_CHECK_HEADER(X11/Xaw3d/XawInit.h,
3381         AC_CHECK_HEADER(X11/Xaw3d/ThreeD.h,
3382           [
3383             AC_MSG_WARN("Assuming that X11/Xaw3d headers are suitable for $athena_variant.")
3384             athena_h_path=X11/Xaw3d
3385           ],))
3386     fi
3387
3388     dnl Also generic 3d headers directly under include dir
3389     if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
3390       AC_CHECK_HEADER(Xaw3d/XawInit.h,
3391         AC_CHECK_HEADER(Xaw3d/ThreeD.h,
3392           [
3393             AC_MSG_WARN("Assuming that Xaw3d headers are suitable for $athena_variant.")
3394             athena_h_path=Xaw3d
3395           ],))
3396     fi
3397
3398     dnl If nothing yet found, see if Xaw is a 3d header set...
3399     dnl We AC_MSG_WARN if we fail because I am all out of ideas...
3400     if test -z "$athena_h_path"; then
3401       AC_CHECK_HEADER(X11/Xaw/ThreeD.h,
3402         [
3403           AC_MSG_WARN("Assuming that X11/Xaw headers are suitable for $athena_variant.")
3404           athena_h_path=X11/Xaw
3405         ],
3406         AC_MSG_WARN("Could not find a suitable 3d Athena header set."))
3407     fi
3408   fi
3409
3410   dnl Do we actually have a usable Athena widget set? Please?
3411   if test -n "$athena_lib" -a -n "$athena_h_path"; then
3412     have_xaw=yes
3413   else
3414     have_xaw=no
3415   fi
3416
3417   dnl autodetect Motif - but only add to libs_x later (if necessary)
3418   AC_CHECK_HEADER(Xm/Xm.h,
3419    [AC_CHECK_LIB(Xm, XmStringFree, have_motif=yes, have_motif=no)],
3420    have_motif=no)
3421
3422   if test "$have_motif" = "yes"; then
3423     dnl autodetect lesstif
3424     AC_MSG_CHECKING(for Lesstif)
3425     AC_EGREP_CPP(yes,
3426 [#include <Xm/Xm.h>
3427 #ifdef LESSTIF_VERSION
3428 yes
3429 #endif
3430 ], have_lesstif=yes, have_lesstif=no)
3431   AC_MSG_RESULT($have_lesstif)
3432   fi
3433
3434 fi dnl "$with_x11" = "yes"
3435
3436 dnl Finish ensuring that we have values for the various toolkit items.
3437 dnl Not all toolkits support all widgets
3438 dnl if Motif is available we use it for the dialog boxes.
3439
3440 case "$with_menubars" in "" | "yes" | "athena" )
3441   with_menubars="lucid" ;;
3442 esac
3443 case "$with_dialogs" in "" | "yes" | "lucid" )
3444   if   test "$have_motif"     = "yes"; then with_dialogs="motif"
3445   elif test "$have_xaw"       = "yes"; then with_dialogs="athena"
3446   else with_dialogs=no
3447   fi ;;
3448 esac
3449 case "$with_scrollbars" in "" | "yes" )
3450   with_scrollbars="lucid" ;;
3451 esac
3452 case "$with_widgets" in "" | "yes" | "lucid")
3453   if   test "$have_motif" = "yes"; then with_widgets="motif"
3454   elif test "$have_xaw"   = "yes"; then with_widgets="athena"
3455   else with_widgets=no
3456   fi ;;
3457 esac
3458
3459 all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars $with_widgets"
3460
3461 case "$all_widgets" in
3462   *athena* )
3463     if test "$have_xaw" != "yes"; then
3464       XE_DIE("Could not find a suitable Athena library to build with.")
3465     fi
3466
3467     dnl Add the Lucid widget Athena code
3468     XE_APPEND(lwlib-Xaw.o, lwlib_objs)
3469
3470     dnl Add the Athena widget library we located earlier
3471     XE_PREPEND(-l$athena_lib, libs_x)
3472
3473     dnl Tell lwlib where to find the Athena header files.
3474     dnl Many people have tried to create a `smart' way of doing this,
3475     dnl but all have failed.  Before changing the following ugly definitions,
3476     dnl consult the veterans of many a battle.
3477     AC_DEFINE_UNQUOTED(ATHENA_Scrollbar_h_,"$athena_h_path/Scrollbar.h")
3478     AC_DEFINE_UNQUOTED(ATHENA_Dialog_h_,"$athena_h_path/Dialog.h")
3479     AC_DEFINE_UNQUOTED(ATHENA_Form_h_,"$athena_h_path/Form.h")
3480     AC_DEFINE_UNQUOTED(ATHENA_Command_h_,"$athena_h_path/Command.h")
3481     AC_DEFINE_UNQUOTED(ATHENA_Label_h_,"$athena_h_path/Label.h")
3482     AC_DEFINE_UNQUOTED(ATHENA_LabelP_h_,"$athena_h_path/LabelP.h")
3483     AC_DEFINE_UNQUOTED(ATHENA_Toggle_h_,"$athena_h_path/Toggle.h")
3484     AC_DEFINE_UNQUOTED(ATHENA_ToggleP_h_,"$athena_h_path/ToggleP.h")
3485     AC_DEFINE_UNQUOTED(ATHENA_AsciiText_h_,"$athena_h_path/AsciiText.h")
3486     AC_DEFINE_UNQUOTED(ATHENA_XawInit_h_,"$athena_h_path/XawInit.h")
3487
3488     AC_DEFINE(LWLIB_USES_ATHENA)
3489     AC_DEFINE(NEED_ATHENA)
3490     need_athena="yes"
3491
3492     if test "$athena_3d" = "yes"; then
3493       AC_DEFINE(HAVE_ATHENA_3D)
3494     fi
3495   ;;
3496 esac
3497
3498 case "$all_widgets" in *motif* )
3499   AC_DEFINE(LWLIB_USES_MOTIF)
3500   AC_DEFINE(NEED_MOTIF)
3501   XE_APPEND(lwlib-Xm.o, lwlib_objs)
3502   need_motif=yes ;;
3503 esac
3504
3505 test "$with_menubars"   = "lucid" && XE_APPEND(xlwmenu.o, lwlib_objs)
3506 test "$with_menubars"   = "motif" && XE_APPEND(xlwmenu.o, lwlib_objs)
3507 test "$with_scrollbars" = "lucid" && XE_APPEND(xlwscrollbar.o, lwlib_objs)
3508 test "$with_widgets"   != "no" && test "$with_widgets" != "msw" && \
3509         XE_APPEND(xlwtabs.o xlwgcs.o, lwlib_objs)
3510 case "$with_widgets" in athena* )
3511         XE_APPEND(xlwradio.o xlwcheckbox.o xlwgauge.o, lwlib_objs);;
3512 esac
3513 case "$all_widgets" in *lucid* )
3514   AC_DEFINE(NEED_LUCID)
3515   XE_APPEND(lwlib-Xlw.o, lwlib_objs) ;;
3516 esac
3517
3518 AC_SUBST(lwlib_objs)
3519
3520 test "$with_scrollbars" = "athena" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA)
3521 test "$with_dialogs"    = "athena" && AC_DEFINE(LWLIB_DIALOGS_ATHENA)
3522
3523 if test "$athena_3d" = "yes"; then
3524   test "$with_scrollbars" = "athena" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA3D)
3525   test "$with_dialogs"    = "athena" && AC_DEFINE(LWLIB_DIALOGS_ATHENA3D)
3526 fi
3527
3528 case "$with_widgets" in athena* ) AC_DEFINE(LWLIB_WIDGETS_ATHENA);; esac
3529 test "$with_widgets" != "no" && test "$with_widgets" != "msw" && \
3530         AC_DEFINE(LWLIB_TABS_LUCID)
3531
3532 test "$with_menubars"   != "no"    && AC_DEFINE(HAVE_MENUBARS)
3533 test "$with_scrollbars" != "no"    && AC_DEFINE(HAVE_SCROLLBARS)
3534 test "$with_dialogs"    != "no"    && AC_DEFINE(HAVE_DIALOGS)
3535 test "$with_toolbars"   != "no"    && AC_DEFINE(HAVE_TOOLBARS)
3536 test "$with_widgets"    != "no"    && AC_DEFINE(HAVE_WIDGETS)
3537
3538 test "$with_menubars"   = "lucid"  && AC_DEFINE(LWLIB_MENUBARS_LUCID)
3539 test "$with_scrollbars" = "lucid"  && AC_DEFINE(LWLIB_SCROLLBARS_LUCID)
3540
3541 test "$with_menubars"   = "motif"  && AC_DEFINE(LWLIB_MENUBARS_MOTIF)
3542 test "$with_scrollbars" = "motif"  && AC_DEFINE(LWLIB_SCROLLBARS_MOTIF)
3543 test "$with_dialogs"    = "motif"  && AC_DEFINE(LWLIB_DIALOGS_MOTIF)
3544 test "$with_widgets"    = "motif"  && AC_DEFINE(LWLIB_WIDGETS_MOTIF)
3545
3546 test "$with_menubars"   != "no"    && XE_ADD_OBJS(menubar.o)
3547 test "$with_scrollbars" != "no"    && XE_ADD_OBJS(scrollbar.o)
3548 test "$with_dialogs"    != "no"    && XE_ADD_OBJS(dialog.o)
3549 test "$with_toolbars"   != "no"    && XE_ADD_OBJS(toolbar.o)
3550
3551 if test "$with_gtk" = "yes"; then
3552   test "$with_menubars"   != "no"      && XE_ADD_OBJS(menubar-gtk.o)
3553   test "$with_scrollbars" != "no"      && XE_ADD_OBJS(scrollbar-gtk.o)
3554   test "$with_dialogs"    != "no"      && XE_ADD_OBJS(dialog-gtk.o)
3555   test "$with_toolbars"   != "no"      && XE_ADD_OBJS(toolbar-gtk.o)
3556   test "$all_widgets" != "no no no no no" && XE_ADD_OBJS(gui-gtk.o)
3557 fi
3558
3559 if test "$with_x11" = "yes"; then
3560   test "$with_menubars"   != "no"  && XE_ADD_OBJS(menubar-x.o)
3561   test "$with_scrollbars" != "no"  && XE_ADD_OBJS(scrollbar-x.o)
3562   test "$with_dialogs"    != "no"  && XE_ADD_OBJS(dialog-x.o)
3563   test "$with_toolbars"   != "no"  && XE_ADD_OBJS(toolbar-x.o)
3564   test "$all_widgets" != "no no no no no" && XE_ADD_OBJS(gui-x.o)
3565 fi
3566
3567 dnl ----------------------
3568 dnl Mule-dependent options
3569 dnl ----------------------
3570
3571 test -z "$with_mule" && with_mule=no
3572 test -z "$with_file_coding" && with_file_coding=no
3573
3574 dnl if test "$with_mule" = "yes" && test ! -d "$srcdir/lisp/mule"; then
3575 dnl     echo "Attempt to Build with Mule without Mule/Lisp"
3576 dnl     echo "Please install the XEmacs/Mule tarball or"
3577 dnl     echo "rerun configure with --with-mule=no"
3578 dnl     exit 1
3579 dnl fi
3580
3581 if test "$with_file_coding" = "yes" && test "$with_mule" = "no"; then
3582   AC_DEFINE(FILE_CODING)
3583   XE_ADD_OBJS(file-coding.o)
3584 fi
3585
3586 if test "$with_mule" = "yes" ; then
3587   AC_CHECKING(for Mule-related features)
3588   AC_DEFINE(MULE)
3589   AC_DEFINE(FILE_CODING)
3590   XE_ADD_OBJS(mule.o mule-ccl.o mule-charset.o file-coding.o)
3591
3592   dnl Use -lintl to get internationalized strerror for Mule
3593   AC_CHECK_HEADERS(libintl.h)
3594   AC_CHECK_LIB(intl, strerror)
3595
3596   AC_CHECKING(for Mule input methods)
3597   dnl Do we have the XmIm* routines?  And if so, do we want to use them?
3598   dnl XIM seems to be flaky except on Solaris...
3599   dnl test -z "$with_xim" -a "$opsys" != "sol2" && with_xim=no
3600   case "$with_xim" in "" | "yes" )
3601     AC_CHECKING(for XIM)
3602     AC_CHECK_LIB(X11, XOpenIM, with_xim=xlib, with_xim=no)
3603     dnl XIM + Lesstif is not (yet?) usable
3604     if test "$have_motif $have_lesstif" = "yes no"; then
3605       AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif)
3606     fi ;;
3607   esac
3608   if test "$with_xim" != "no"; then
3609     AC_DEFINE(HAVE_XIM)
3610     if test "$with_xim" = "xlib"; then
3611       AC_DEFINE(XIM_XLIB)
3612       XE_ADD_OBJS(input-method-xlib.o)
3613     fi
3614     if test "$with_xim" = "motif"; then
3615       AC_DEFINE(XIM_MOTIF)
3616       need_motif=yes
3617       XE_ADD_OBJS(input-method-motif.o)
3618     fi
3619     if test "$with_xim" = "motif"; then
3620       with_xfs=no
3621     fi
3622   fi
3623
3624   dnl "with_xfs" = "yes"
3625   if test "$with_xfs" = "yes" ; then
3626     AC_CHECKING(for XFontSet)
3627     AC_CHECK_LIB(X11, XmbDrawString, [:], with_xfs=no)
3628     if test "$with_xfs" = "yes" && test "$with_menubars" = "lucid"; then
3629       AC_DEFINE(USE_XFONTSET)
3630       if test "$with_xim" = "no" ; then
3631         XE_ADD_OBJS(input-method-xlib.o)
3632       fi
3633     fi
3634   fi dnl with_xfs
3635
3636   dnl Autodetect WNN
3637   test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
3638   test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/jllib.h, ,with_wnn=no) }
3639   dnl gcc 2.97 fixincludes breaks inclusion of wnn/commonhd.h
3640   test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/commonhd.h, ,with_wnn=no) }
3641   dnl Detour to find crypt
3642   if test "$with_wnn" != "no"; then
3643     AC_CHECK_FUNCS(crypt)
3644     test "$ac_cv_func_crypt" != "yes" && { AC_CHECK_LIB(crypt, crypt) }
3645   fi
3646   dnl Back to our regularly scheduled wnn hunting
3647   if test -z "$with_wnn" -o "$with_wnn" = "yes"; then
3648     AC_CHECK_LIB(wnn,jl_dic_list_e,libwnn=wnn,
3649       AC_CHECK_LIB(wnn4,jl_dic_list_e,libwnn=wnn4,
3650         AC_CHECK_LIB(wnn6,jl_dic_list_e,libwnn=wnn6,
3651           AC_CHECK_LIB(wnn6_fromsrc,dic_list_e,libwnn=wnn6_fromsrc,with_wnn=no))))
3652   fi
3653   test -z "$with_wnn" && with_wnn=yes
3654   if test "$with_wnn" = "yes"; then
3655     AC_DEFINE(HAVE_WNN)
3656     XE_PREPEND(-l$libwnn, libs_x)
3657     XE_ADD_OBJS(mule-wnnfns.o)
3658     if test "$with_wnn6" != "no"; then
3659       AC_CHECK_LIB($libwnn, jl_fi_dic_list, with_wnn6=yes)
3660       test "$with_wnn6" = "yes" && AC_DEFINE(WNN6)
3661     fi
3662   fi
3663
3664   dnl Autodetect canna
3665   canna_includes_found=no
3666   if test "$with_canna" != "no"; then
3667     AC_CHECK_HEADER(canna/jrkanji.h,canna_includes_found=yes)
3668   fi
3669   if test "$canna_includes_found" = "no" -a "$with_canna" != "no" -a \
3670       -d "/usr/local/canna/include"; then
3671     save_c_switch_site="$c_switch_site"
3672     c_switch_site="$c_switch_site -I/usr/local/canna/include"
3673     AC_CHECK_HEADER(canna/jrkanji.h,canna_includes_found=yes)
3674     if test "$canna_includes_found" != "yes"; then
3675       c_switch_site="$save_c_switch_site"
3676       with_canna="no"
3677     fi
3678   fi
3679
3680   test -z "$with_canna" && { AC_CHECK_HEADER(canna/RK.h,         , with_canna=no) }
3681   test -z "$with_canna" && { AC_CHECK_LIB(RKC, RkBgnBun,       [:],with_canna=no) }
3682   test -z "$with_canna" && { AC_CHECK_LIB(canna,jrKanjiControl,[:],with_canna=no) }
3683   test -z "$with_canna" && with_canna=yes
3684   if test "$with_canna" = "yes"; then
3685     AC_DEFINE(HAVE_CANNA)
3686     XE_PREPEND(-lcanna -lRKC, libs_x)
3687     XE_ADD_OBJS(mule-canna.o)
3688   fi
3689
3690 else dnl "$with_mule" = "no"
3691   for feature in xim canna wnn; do
3692     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
3693       AC_MSG_WARN("--with-${feature} ignored:  Not valid without Mule support")
3694     fi
3695     eval "with_${feature}=no"
3696   done
3697 fi dnl with_mule
3698
3699
3700 dnl At this point, we know whether we need the motif lib or not.
3701 if test "$need_motif" = "yes" ; then
3702   XE_PREPEND(-lXm, libs_x)
3703   dnl AIX needs the following library for use with Motif
3704   AC_CHECK_LIB(i18n, layout_object_getvalue, [XE_PREPEND(-li18n, libs_x)])
3705   XE_COMPUTE_RUNPATH()
3706 fi
3707
3708 AC_CHECK_FUNCS(cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strerror tzset ulimit usleep waitpid vsnprintf fsync ftruncate umask)
3709
3710 dnl ----------------------------------------------------------------
3711 dnl Check for PTY support functions.
3712 dnl ----------------------------------------------------------------
3713
3714 dnl There is no "standard" pty allocation method.  Every system is different.
3715 dnl  getpt()  is the preferred pty allocation method on glibc systems.
3716 dnl _getpty() is the preferred pty allocation method on SGI systems.
3717 dnl grantpt(), unlockpt(), ptsname() are defined by Unix98.
3718 AC_CHECK_FUNCS(getpt _getpty grantpt unlockpt ptsname killpg tcgetpgrp)
3719
3720 dnl openpty() is the preferred pty allocation method on BSD and Tru64 systems.
3721 dnl openpty() might be declared in:
3722 dnl - pty.h (Tru64 or Linux)
3723 dnl - libutil.h (FreeBSD)
3724 dnl - util.h (NetBSD)
3725 AC_CHECK_FUNC(openpty, have_openpty=yes, [
3726   AC_CHECK_LIB(util, openpty, have_openpty=yes need_libutil=yes)])
3727 if test "$have_openpty" = "yes"; then
3728   AC_DEFINE(HAVE_OPENPTY)
3729   AC_CHECK_HEADERS(pty.h libutil.h util.h, break)
3730   test "$need_libutil" = "yes" && XE_APPEND(-lutil, libs_system)
3731 fi
3732
3733 dnl Check for STREAM support functions.
3734 dnl Confusingly, "str" means both "string" and "SysV Streams".
3735 AC_CHECK_HEADERS(stropts.h)
3736 if test "$ac_cv_header_stropts_h" = "yes"; then
3737   AC_CHECK_FUNCS(isastream)
3738   AC_CHECK_HEADERS(strtio.h) dnl TIOCSIGNAL
3739 fi
3740
3741 dnl Use our own realpath always.
3742 XE_ADD_OBJS(realpath.o)
3743
3744 dnl Check whether the system provides getloadavg().
3745 AC_CHECK_FUNCS(getloadavg)
3746
3747 if test "$ac_cv_func_getloadavg" = "yes"; then
3748   dnl Solaris 8 declares getloadavg() in <sys/loadavg.h>.
3749   dnl glibc 2.2 declares getloadavg() in <stdlib.h>...
3750   dnl   ...if we #define _GNU_SOURCE, which we do.
3751   AC_CHECK_HEADERS(sys/loadavg.h)
3752 else
3753   dnl We define our own getloadavg() using lower level functions.
3754   XE_ADD_OBJS(getloadavg.o)
3755
3756   dnl Used by getloadavg() - does not require root priveleges
3757   AC_CHECK_LIB(kstat, kstat_open)
3758   AC_CHECK_HEADERS(kstat.h)
3759
3760   dnl Another way to get the load average
3761   AC_CHECK_LIB(kvm, kvm_read)
3762 fi
3763
3764 dnl If netdb.h does not declare h_errno, we must declare it by hand.
3765 AC_MSG_CHECKING(whether netdb declares h_errno)
3766 AC_TRY_LINK([#include <netdb.h>],
3767   [return h_errno;],
3768   [AC_MSG_RESULT(yes)
3769    AC_DEFINE(HAVE_H_ERRNO)],
3770   [AC_MSG_RESULT(no)])
3771
3772 AC_MSG_CHECKING(for sigsetjmp)
3773 AC_TRY_COMPILE([#include <setjmp.h>],
3774         [sigjmp_buf bar; sigsetjmp (bar, 0);],
3775   [AC_MSG_RESULT(yes)
3776    AC_DEFINE(HAVE_SIGSETJMP)],
3777   [AC_MSG_RESULT(no)])
3778
3779 AC_MSG_CHECKING(whether localtime caches TZ)
3780 AC_CACHE_VAL(emacs_cv_localtime_cache,
3781 [if test "$ac_cv_func_tzset" = "yes"; then
3782 AC_TRY_RUN([#include <time.h>
3783 #if STDC_HEADERS
3784 # include <stdlib.h>
3785 #endif
3786 extern char **environ;
3787 unset_TZ ()
3788 {
3789   char **from, **to;
3790   for (to = from = environ; (*to = *from); from++)
3791     if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
3792       to++;
3793 }
3794 char TZ_GMT0[] = "TZ=GMT0";
3795 char TZ_PST8[] = "TZ=PST8";
3796 main()
3797 {
3798   time_t now = time ((time_t *) 0);
3799   int hour_GMT0, hour_unset;
3800   if (putenv (TZ_GMT0) != 0)
3801     exit (1);
3802   hour_GMT0 = localtime (&now)->tm_hour;
3803   unset_TZ ();
3804   hour_unset = localtime (&now)->tm_hour;
3805   if (putenv (TZ_PST8) != 0)
3806     exit (1);
3807   if (localtime (&now)->tm_hour == hour_GMT0)
3808     exit (1);
3809   unset_TZ ();
3810   if (localtime (&now)->tm_hour != hour_unset)
3811     exit (1);
3812   exit (0);
3813 }], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
3814 [# If we have tzset, assume the worst when cross-compiling.
3815 emacs_cv_localtime_cache=yes])
3816 else
3817         # If we lack tzset, report that localtime does not cache TZ,
3818         # since we can't invalidate the cache if we don't have tzset.
3819         emacs_cv_localtime_cache=no
3820 fi],[:])dnl
3821 AC_MSG_RESULT($emacs_cv_localtime_cache)
3822 if test $emacs_cv_localtime_cache = yes; then
3823   AC_DEFINE(LOCALTIME_CACHE)
3824 fi
3825
3826 if test "$HAVE_TIMEVAL" = "yes"; then
3827 AC_MSG_CHECKING(whether gettimeofday accepts one or two arguments)
3828 AC_TRY_LINK([
3829 #ifdef TIME_WITH_SYS_TIME
3830 #include <sys/time.h>
3831 #include <time.h>
3832 #else
3833 #ifdef HAVE_SYS_TIME_H
3834 #include <sys/time.h>
3835 #else
3836 #include <time.h>
3837 #endif
3838 #endif
3839   ],
3840   [
3841   struct timeval time;
3842   gettimeofday (&time, 0);
3843 ],
3844   [AC_MSG_RESULT(two)],
3845   [AC_MSG_RESULT(one)
3846    AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)])
3847 fi
3848
3849
3850 AC_C_INLINE
3851 test "$ac_cv_c_inline" != "no" -a "$GCC" = "yes" && XE_ADD_OBJS(inline.o)
3852
3853 dnl HP-UX has a working alloca in libPW.
3854 dnl case "${GCC}${opsys}" in hpux* )
3855 dnl  AC_CHECK_FUNC(alloca, [:], [AC_CHECK_LIB(PW, alloca)])
3856 dnl esac
3857
3858 dnl AC_FUNC_ALLOCA doesn't know about DEC C's #pragma intrinsic(alloca)
3859 if test "$__DECC" != "yes"; then
3860   AC_FUNC_ALLOCA
3861   test -n "$ALLOCA" && XE_ADD_OBJS($ALLOCA)
3862 fi
3863
3864 dnl Check whether vfork exists and works correctly. (This does more
3865 dnl than just check for its existence.) If so, it defines HAVE_VFORK_H.
3866 dnl If not, it defines vfork to be fork.
3867 AC_FUNC_VFORK
3868
3869 dnl Check whether strcoll exists and works correctly. (This does more
3870 dnl than just check for its existence.) If so, it defines HAVE_STRCOLL.
3871 AC_FUNC_STRCOLL
3872
3873 dnl If `getpgrp' takes no argument (the POSIX.1 version), define
3874 dnl `GETPGRP_VOID'.  Otherwise, it is the BSD version, which takes a
3875 dnl process ID as an argument.
3876 AC_CHECK_FUNCS(getpgrp)
3877 AC_FUNC_GETPGRP
3878
3879 dnl We used to call AC_FUNC_MMAP here
3880 dnl Instead we now use following, suggested by Neal Becker
3881 AC_MSG_CHECKING(for working mmap)
3882 case "$opsys" in ultrix* ) have_mmap=no ;; *)
3883 AC_TRY_RUN([#include <stdio.h>
3884 #include <unistd.h>
3885 #include <fcntl.h>
3886 #include <sys/mman.h>
3887
3888 #ifndef MAP_VARIABLE
3889 #define MAP_VARIABLE 0
3890 #endif
3891
3892 #ifndef MAP_FAILED
3893 #define MAP_FAILED -1
3894 #endif
3895
3896 int main (int argc, char *argv[])
3897 {
3898   int fd = -1;
3899   caddr_t p;
3900 #ifndef MAP_ANONYMOUS
3901   fd = open ("/dev/zero", O_RDWR);
3902   if (fd < 0)
3903     return 1;
3904 #define MAP_ANONYMOUS 0
3905 #endif
3906   if (mmap(0, 1024, PROT_READ | PROT_WRITE,
3907            MAP_PRIVATE | MAP_VARIABLE | MAP_ANONYMOUS,
3908            fd, 0) != (void *) MAP_FAILED)
3909     return 0;
3910   perror ("conftest: mmap failed");
3911   return 1;
3912 }], have_mmap=yes, have_mmap=no) ;;
3913 esac
3914 AC_MSG_RESULT($have_mmap)
3915 test "$have_mmap" = "yes" && AC_DEFINE(HAVE_MMAP)
3916
3917 dnl By default we switch off rel-alloc on cygwin as it generally causes us grief
3918 case "$opsys" in cygwin*) 
3919         test "$rel_alloc" = "default" && rel_alloc=no ;;
3920 esac
3921 dnl rel_alloc requires either GNU malloc or system malloc with mmap
3922 dnl We only turn rel_alloc on by default if mmap is available.
3923 test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && rel_alloc=no
3924 if test "$rel_alloc $have_mmap" = "default yes"; then
3925   if test "$doug_lea_malloc" = "yes"; then
3926     dnl Check if malloc() calls mmap(), making rel_alloc pointless.
3927     AC_MSG_CHECKING(for M_MMAP_THRESHOLD)
3928     AC_TRY_COMPILE([#include <malloc.h>],[
3929 #ifndef M_MMAP_THRESHOLD
3930 #error No M_MMAP_THRESHOLD :-(
3931 !@+$%^&*_)(_ - unlikely to compile...
3932 #endif
3933 ], [rel_alloc=no; AC_MSG_RESULT(yes);], [rel_alloc=yes; AC_MSG_RESULT(no);])
3934   else
3935     rel_alloc=yes
3936   fi
3937 fi
3938 test "$rel_alloc" = "yes" && AC_DEFINE(REL_ALLOC)
3939
3940 dnl Check for terminal I/O variants
3941 dnl TERMIOS systems may have termio.h, but not vice-versa, I think.
3942 AC_CHECK_HEADER(termios.h,
3943   AC_DEFINE(HAVE_TERMIOS)
3944   AC_DEFINE(SIGNALS_VIA_CHARACTERS)
3945   AC_DEFINE(NO_TERMIO),
3946   [AC_CHECK_HEADER(termio.h, [AC_DEFINE(HAVE_TERMIO)])])
3947
3948
3949 dnl Check for Internet sockets.
3950 AC_CHECK_FUNC(socket,
3951  [AC_CHECK_HEADER(netinet/in.h,
3952    [AC_CHECK_HEADER(arpa/inet.h, [
3953   AC_DEFINE(HAVE_SOCKETS)
3954       AC_MSG_CHECKING("for sun_len member in struct sockaddr_un")
3955       AC_TRY_LINK([
3956 #include <sys/types.h>
3957 #include <sys/socket.h>
3958 #include <sys/un.h>
3959       ],
3960       [static struct sockaddr_un x; x.sun_len = 1;],
3961       [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOCKADDR_SUN_LEN)],
3962       [AC_MSG_RESULT(no)])
3963       AC_MSG_CHECKING("for ip_mreq struct in netinet/in.h")
3964       AC_TRY_LINK([
3965 #include <sys/types.h>
3966 #include <netinet/in.h>
3967       ],
3968       [static struct ip_mreq x;],
3969       [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_MULTICAST)],
3970       [AC_MSG_RESULT(no)])])])])
3971
3972 dnl Check for SYS V IPC. (Inferior to sockets.)
3973 AC_CHECK_FUNC(msgget,
3974   [AC_CHECK_HEADER(sys/ipc.h,
3975     [AC_CHECK_HEADER(sys/msg.h,
3976       [AC_DEFINE(HAVE_SYSVIPC)])])])
3977
3978 dnl Check for directory variants
3979 AC_CHECK_HEADER(dirent.h, [AC_DEFINE(SYSV_SYSTEM_DIR)],
3980   [AC_CHECK_HEADER(sys/dir.h, , [AC_DEFINE(NONSYSTEM_DIR_LIBRARY)])])
3981
3982 dnl Check for nlist.h
3983 AC_CHECK_HEADER(nlist.h, AC_DEFINE(NLIST_STRUCT), )
3984
3985 dnl Check for sound of various sorts.
3986
3987 dnl Autodetect native sound
3988 AC_CHECKING("for sound support")
3989 test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes
3990
3991 if test "$with_native_sound" != "no"; then
3992   dnl Maybe sound is already on include path...
3993   if test -n "$native_sound_lib"; then
3994     AC_CHECK_HEADER(multimedia/audio_device.h,
3995       [sound_found=yes sound_cflags=""
3996       XE_ADD_OBJS(sunplay.o)])
3997   fi
3998
3999   dnl Autodetect Sun native sound from SUNWaudmo package
4000   if test -z "$sound_found" -a -d "/usr/demo/SOUND"; then
4001     sound_found=yes
4002     XE_ADD_OBJS(sunplay.o)
4003     if test -d "/usr/demo/SOUND/include"
4004       then sound_cflags="-I/usr/demo/SOUND/include"
4005       else sound_cflags="-I/usr/demo/SOUND"
4006     fi
4007     if test -z "$native_sound_lib" ; then
4008       if test -r "/usr/demo/SOUND/lib/libaudio.a"
4009         then native_sound_lib="/usr/demo/SOUND/lib/libaudio.a"
4010         else native_sound_lib="/usr/demo/SOUND/libaudio.a"
4011       fi
4012     fi
4013   fi
4014
4015   dnl Check for SGI and HP native sound libs
4016   if test -z "$sound_found"; then
4017     case "$canonical" in
4018     *-sgi-* )
4019       if test -z "$native_sound_lib"; then
4020         AC_CHECK_LIB(audio, ALopenport, native_sound_lib="-laudio")
4021       fi
4022       if test -n "$native_sound_lib"; then
4023         sound_found=yes sound_cflags=""
4024         XE_ADD_OBJS(sgiplay.o)
4025       fi ;;
4026     hppa*-hp-hpux* )
4027       if test -z "$native_sound_lib"; then
4028         AC_CHECK_LIB(Alib, AOpenAudio, native_sound_lib="-lAlib")
4029       fi
4030       if test -n "$native_sound_lib"; then
4031         sound_found=yes
4032         XE_ADD_OBJS(hpplay.o)
4033         if test "$GCC" = "yes" # Kludge city
4034           then sound_cflags="-Dconst= -Dvolatile= -I/usr/audio/examples"
4035           else sound_cflags="+e -I/usr/audio/examples"
4036         fi
4037       fi ;;
4038     esac
4039   fi
4040
4041   dnl Check for Linux/BSD native sound
4042   if test -z "$sound_found"; then
4043     for dir in "machine" "sys" "linux"; do
4044       AC_CHECK_HEADER(${dir}/soundcard.h,
4045         sound_found=yes
4046        need_miscplay=yes
4047         XE_ADD_OBJS(linuxplay.o)
4048         [AC_DEFINE_UNQUOTED(SOUNDCARD_H_FILE, "${dir}/soundcard.h")]
4049         break)
4050     done
4051   fi
4052
4053   dnl Win32 Native uses native sound
4054   if test -z "$sound_found"; then
4055     if test "$with_msw" = "yes"; then
4056     sound_found=yes
4057     native_sound_lib=
4058     fi
4059   fi
4060
4061   test "$sound_found" = "yes" && with_native_sound=yes
4062 fi
4063
4064 if test "$with_native_sound" = "yes"; then
4065   AC_DEFINE(HAVE_NATIVE_SOUND)
4066   test -n "$native_sound_lib" && XE_PREPEND($native_sound_lib, LIBS)
4067 fi
4068
4069 dnl NAS Sound support
4070 if test "$with_nas_sound" != "no"; then
4071   AC_CHECK_HEADER(audio/audiolib.h, [
4072     AC_CHECK_LIB(audio, AuOpenServer, have_nas_sound=yes)])
4073   if test "$have_nas_sound" = "yes"; then
4074     with_nas_sound=yes
4075     AC_DEFINE(HAVE_NAS_SOUND)
4076     XE_ADD_OBJS(nas.o)
4077     XE_PREPEND(-laudio, libs_x)
4078     dnl If the nas library does not contain the error jump point,
4079     dnl then we force safer behavior.
4080     AC_EGREP_HEADER(AuXtErrorJump,audio/Xtutil.h,,[old_nas=yes; AC_DEFINE(NAS_NO_ERROR_JUMP)])
4081   else
4082     test "$with_nas_sound" = "yes" && \
4083       XE_DIE("Required NAS sound support cannot be provided.")
4084     with_nas_sound=no
4085   fi
4086 fi
4087
4088 dnl ESD Sound support
4089 if test "$with_esd_sound" != "no"; then
4090   AC_CHECK_PROG(have_esd_config, esd-config, yes, no)
4091   if test "$have_esd_config" = "yes"; then
4092     save_c_switch_site="$c_switch_site" save_LIBS="$LIBS"
4093     XE_APPEND(`esd-config --cflags`, c_switch_site)
4094     XE_PREPEND(`esd-config --libs`, LIBS)
4095     AC_CHECK_FUNC(esd_play_stream,
4096       have_esd_sound=yes,
4097       c_switch_site="$save_c_switch_site" LIBS="$save_LIBS")
4098   fi
4099
4100   if test "$have_esd_sound" = "yes"; then
4101     with_esd_sound=yes
4102     need_miscplay=yes
4103     XE_ADD_OBJS(esd.o)
4104     AC_DEFINE(HAVE_ESD_SOUND)
4105   else
4106     test "$with_esd_sound" = "yes" && \
4107       XE_DIE("Required ESD sound support cannot be provided.")
4108     with_esd_sound=no
4109   fi
4110 fi
4111
4112 test "$need_miscplay" = "yes" && XE_ADD_OBJS(miscplay.o)
4113
4114 dnl ---------------------
4115 dnl TTY-dependent options
4116 dnl ---------------------
4117
4118 test -z "$with_tty" && with_tty=yes
4119
4120 if test "$with_tty" = "yes"  ; then
4121   AC_CHECKING(for TTY-related features)
4122   AC_DEFINE(HAVE_TTY)
4123   XE_ADD_OBJS(console-tty.o device-tty.o event-tty.o frame-tty.o objects-tty.o redisplay-tty.o cm.o)
4124
4125   dnl Autodetect ncurses.
4126   if test -z "$with_ncurses"; then
4127     AC_CHECK_LIB(ncurses, tgetent, with_ncurses=yes, with_ncurses=no)
4128   fi
4129   if test "$with_ncurses" = "yes"; then
4130     AC_DEFINE(HAVE_NCURSES)
4131     AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h)
4132     AC_CHECK_HEADER(ncurses/term.h, term_h_file=ncurses/term.h)
4133     XE_ADD_OBJS(terminfo.o)
4134     XE_PREPEND(-lncurses, LIBS)
4135
4136     if test "$ac_cv_header_ncurses_curses_h" != "yes" ; then
4137       dnl Try again, and check for the bogus ncurses/ include bug.
4138       dnl (i.e. ncurses/curses.h bogusly includes <unctrl.h> instead of
4139       dnl <ncurses/unctrl.h>)
4140       save_c_switch_site="$c_switch_site"
4141       c_switch_site="$c_switch_site -I/usr/include/ncurses"
4142       AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h)
4143       if test "$ac_cv_header_ncurses_curses_h" = "yes"
4144         then AC_MSG_WARN("Your system has the bogus ncurses include bug.")
4145         else c_switch_site="$save_c_switch_site"
4146       fi
4147     fi
4148   else dnl "$with_ncurses" = "no"
4149     dnl Autodetect terminfo/-lcurses/-ltermlib/-ltermcap
4150     if test "$have_terminfo" = "yes"; then
4151       XE_ADD_OBJS(terminfo.o)
4152       if test -n "$libs_termcap"; then
4153         XE_PREPEND($libs_termcap, LIBS)
4154       else
4155         for lib in curses termlib termcap; do
4156           AC_CHECK_LIB($lib, tgetent, XE_PREPEND(-l${lib}, LIBS); break)
4157         done
4158       fi
4159     else dnl "$have_terminfo" = "no" && "with_ncurses" = "no"
4160       XE_ADD_OBJS(tparam.o)
4161       dnl The HP-UX curses library seems to have a badly broken version of select(2)
4162       dnl that makes "poll: interrupted system call" messages to appear and
4163       dnl Emacs suprocesses to hang (e.g. TeX compilation w/ AUCTeX) */
4164       case "$opsys" in *-hp-hpux* ) libs_termcap="-ltermcap" ;; esac
4165       if test -n "$libs_termcap"; then
4166         XE_PREPEND($libs_termcap, LIBS)
4167       else
4168         AC_CHECK_LIB(curses, tgetent, XE_PREPEND(-lcurses, LIBS),
4169           AC_CHECK_LIB(termcap, tgetent, XE_PREPEND(-ltermcap, LIBS),
4170             XE_ADD_OBJS(termcap.o)))
4171       fi
4172     fi
4173   fi
4174   AC_DEFINE_UNQUOTED(CURSES_H_FILE, "${curses_h_file-curses.h}")
4175   AC_DEFINE_UNQUOTED(TERM_H_FILE, "${term_h_file-term.h}")
4176
4177   dnl Autodetect gpm
4178   test -z "$with_gpm" && { AC_CHECK_HEADER(gpm.h, , with_gpm=no) }
4179   test -z "$with_gpm" && { AC_CHECK_LIB(gpm, Gpm_Open, with_gpm=yes, with_gpm=no) }
4180   if test "$with_gpm" = "yes"; then
4181     AC_DEFINE(HAVE_GPM)
4182     XE_ADD_OBJS(gpmevent.o)
4183     XE_PREPEND(-lgpm, LIBS)
4184   fi
4185
4186 else dnl "$with_tty" = "no"
4187   for feature in ncurses gpm; do
4188     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
4189       AC_MSG_WARN("--with-${feature} ignored:  Not valid without TTY support")
4190     fi
4191     eval "with_${feature}=no"
4192   done
4193 fi dnl with_tty
4194
4195 dnl Do we need event-unixoid.o ?
4196 test "$with_x11" = "yes" -o "$with_tty" = "yes" && XE_ADD_OBJS(event-unixoid.o)
4197
4198 dnl Database support
4199 dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support.
4200 dnl On FreeBSD, both DB and DBM are part of libc.
4201 dnl By default, we check for DBM support in libgdbm, then libc, then libdbm.
4202
4203 test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \
4204   != "no no no" && AC_CHECKING(for database support)
4205
4206 dnl Check for ndbm.h, required for either kind of DBM support.
4207 if test "$with_database_gdbm $with_database_dbm" != "no no"; then
4208   AC_CHECK_HEADER(ndbm.h, [:], [
4209     test "$with_database_gdbm" = "yes" -o \
4210          "$with_database_dbm"  = "yes" && \
4211       XE_DIE("Required DBM support cannot be provided.")
4212     with_database_gdbm=no with_database_dbm=no])
4213 fi
4214
4215 dnl Check for DBM support in libgdbm.
4216 if test "$with_database_gdbm" != "no"; then
4217   AC_CHECK_LIB(gdbm, dbm_open, [
4218    with_database_gdbm=yes with_database_dbm=no libdbm=-lgdbm], [
4219    if test "$with_database_gdbm" = "yes"; then
4220      XE_DIE("Required GNU DBM support cannot be provided.")
4221    fi
4222    with_database_gdbm=no])
4223 fi
4224
4225 dnl Check for DBM support in libc and libdbm.
4226 if test "$with_database_dbm" != "no"; then
4227   AC_CHECK_FUNC(dbm_open, [with_database_dbm=yes libdbm=], [
4228     AC_CHECK_LIB(dbm, dbm_open, [with_database_dbm=yes libdbm=-ldbm], [
4229       test "$with_database_dbm" = "yes" && \
4230         XE_DIE("Required DBM support cannot be provided.")
4231       with_database_dbm=no])])
4232 fi
4233
4234 dnl Tell make about the DBM support we detected.
4235 test -n "$libdbm" && XE_PREPEND("$libdbm", LIBS)
4236 test "$with_database_gdbm" = "yes" -o \
4237      "$with_database_dbm"  = "yes" && \
4238   AC_DEFINE(HAVE_DBM)
4239
4240 dnl Check for Berkeley DB.
4241 if test "$with_database_berkdb" != "no"; then
4242   AC_MSG_CHECKING(for Berkeley db.h)
4243   for header in "db/db.h" "db.h"; do
4244     AC_TRY_COMPILE([
4245 #include <stdlib.h>
4246 #if !(defined __GLIBC__ && __GLIBC_MINOR__ >= 1)
4247 #ifdef HAVE_INTTYPES_H
4248 #define __BIT_TYPES_DEFINED__
4249 #include <inttypes.h>
4250 typedef uint8_t  u_int8_t;
4251 typedef uint16_t u_int16_t;
4252 typedef uint32_t u_int32_t;
4253 #ifdef WE_DONT_NEED_QUADS
4254 typedef uint64_t u_int64_t;
4255 #endif
4256 #endif
4257 #endif
4258 #include <$header>
4259 ],[], db_h_file="$header"; break)
4260   done
4261   if test -z "$db_h_file"
4262   then AC_MSG_RESULT(no); with_database_berkdb=no
4263   else AC_MSG_RESULT($db_h_file)
4264   fi
4265
4266   if test "$with_database_berkdb" != "no"; then
4267     AC_MSG_CHECKING(for Berkeley DB version)
4268     AC_EGREP_CPP(yes,
4269 [#include <$db_h_file>
4270 #if DB_VERSION_MAJOR > 1
4271 yes
4272 #endif
4273 ], [AC_EGREP_CPP(yes,
4274 [#include <$db_h_file>
4275 #if DB_VERSION_MAJOR > 2
4276 yes
4277 #endif
4278 ], [AC_MSG_RESULT(3); dbfunc=db_create],[
4279     AC_MSG_RESULT(2); dbfunc=db_open])],[
4280     AC_MSG_RESULT(1); dbfunc=dbopen])
4281     AC_CHECK_FUNC($dbfunc,     with_database_berkdb=yes need_libdb=no, [
4282     AC_CHECK_LIB(db, $dbfunc,  with_database_berkdb=yes need_libdb=yes)])
4283   fi
4284
4285   if test "$with_database_berkdb" = "yes"; then
4286     AC_DEFINE_UNQUOTED(DB_H_FILE, "$db_h_file")
4287     AC_DEFINE(HAVE_BERKELEY_DB)
4288     test "$need_libdb" = "yes" && XE_PREPEND(-ldb, LIBS)
4289   else with_database_berkdb=no
4290   fi
4291 fi
4292
4293 if test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \
4294      != "no no no"; then
4295   AC_DEFINE(HAVE_DATABASE)
4296   XE_ADD_OBJS(database.o)
4297 fi
4298
4299 dnl Socks support
4300 if test "$with_socks" = "yes"; then
4301   AC_CHECK_LIB(socks, SOCKSinit)
4302   test -n "$ac_cv_lib_socks_SOCKSinit" && AC_DEFINE(HAVE_SOCKS)
4303 fi
4304
4305 dnl Usage tracking (undocumented and likely unused option)
4306 if test "$usage_tracking" = "yes"; then
4307   AC_DEFINE(USAGE_TRACKING)
4308   XE_PREPEND(-Bstatic -lut -Bdynamic, LIBS)
4309 fi
4310
4311 dnl autodetect dll support
4312 if test "$with_modules" != "no"; then
4313   AC_CHECKING(for module support)
4314
4315   dnl Check for MS-Windows
4316   if test "$with_msw" = "yes"; then
4317     have_dl=yes;
4318   else
4319     dnl Find headers and libraries
4320     AC_CHECK_HEADER(dlfcn.h, [
4321       AC_MSG_CHECKING([for dlopen in -lc])
4322       AC_TRY_LINK([#include <dlfcn.h>],dnl
4323         [dlopen ("", 0);], [ have_dl=yes ], [
4324       AC_MSG_CHECKING([for dlopen in -ldl])
4325       ac_save_LIBS="$LIBS"
4326       LIBS="-ldl $LIBS"
4327       AC_TRY_LINK([#include <dlfcn.h>],dnl
4328         [dlopen ("", 0);], [ have_dl=yes ],
4329         [LIBS="$ac_save_LIBS"])
4330       ac_save_LIBS=])])
4331     if test -n "$have_dl"; then
4332       AC_DEFINE(HAVE_DLOPEN)
4333     else
4334       AC_CHECK_LIB(dld, shl_load, [
4335         libdl=dld have_dl=yes;
4336         AC_DEFINE(HAVE_SHL_LOAD)], [
4337         AC_CHECK_LIB(dld, dld_init, [
4338         libdl=dld have_dl=yes;
4339         AC_DEFINE(HAVE_DLD_INIT)])])
4340     fi
4341   fi dnl end !MS-Windows
4342
4343   if test -n "$have_dl"; then
4344     dnl XE_SHLIB_STUFF (in aclocal.m4) defines $can_build_shared
4345     XE_SHLIB_STUFF
4346   fi
4347
4348   if test "$can_build_shared" = "yes"; then
4349     AC_DEFINE(HAVE_SHLIB)
4350     XE_ADD_OBJS(sysdll.o emodules.o)
4351     XE_APPEND(src, INSTALL_ARCH_DEP_SUBDIR)
4352     test -n "$libdl" && XE_PREPEND(-l${libdl}, LIBS)
4353     AC_CHECK_FUNCS(dlerror _dlerror)
4354     with_modules=yes
4355   else
4356     if test "$with_modules" = "yes"; then
4357       XE_DIE("Required module support cannot be provided.")
4358     else
4359       AC_MSG_WARN("Module support cannot be provided.")
4360     fi
4361     with_modules=no
4362   fi
4363 fi
4364
4365 dnl Unfortunately, just because we can link doesn't mean we can run.
4366 dnl One of the above link tests may have succeeded but caused resulting
4367 dnl executables to fail to run.  Also any tests using AC_TRY_RUN will
4368 dnl have reported incorrect results.
4369 AC_TRY_RUN([int main(int c,char *v[]){return 0;}],[:],[
4370   echo ""
4371   echo "*** PANIC *** The C compiler can no longer build working executables."
4372   echo "*** PANIC *** Please examine the tail of config.log for runtime errors."
4373   echo "*** PANIC *** The most likely reason for this problem is that configure"
4374   echo "*** PANIC *** links with shared libraries, but those libraries cannot be"
4375   echo "*** PANIC *** found at run time."
4376   echo "*** PANIC ***"
4377   echo "*** PANIC *** On a Linux system, edit /etc/ld.so.conf and re-run ldconfig."
4378   echo "*** PANIC *** On other systems, try telling configure where to find the"
4379   echo "*** PANIC *** shared libraries using the --site-runtime-libraries option"
4380   echo "*** PANIC ***"
4381   echo "*** PANIC *** Another way to shoot yourself in the foot is to specify"
4382   echo "*** PANIC *** --with-FEATURE when FEATURE is not actually installed"
4383   echo "*** PANIC *** on your system.  Don't do that."
4384   exit 1])
4385
4386 dnl Process support
4387 if test "$win32_processes" = "yes"; then
4388   XE_ADD_OBJS(process-nt.o)
4389 else
4390   AC_DEFINE(HAVE_UNIX_PROCESSES)
4391   XE_ADD_OBJS(process-unix.o)
4392 fi
4393
4394 dnl --------------------------------
4395 dnl Compute SUBST-itutable variables
4396 dnl --------------------------------
4397
4398 dnl We ignore (C|LD)_SWITCH_X_(MACHINE|SYSTEM)
4399 dnl Use XE_SPACE instead of plain assignment statements to remove extraneous blanks
4400 XE_SPACE(CFLAGS, $CFLAGS)
4401 XE_SPACE(extra_objs, $extra_objs)
4402 XE_SPACE(c_switch_general, -DHAVE_CONFIG_H $c_switch_site $c_switch_machine $c_switch_system)
4403 XE_SPACE(c_switch_window_system, $c_switch_x_site $c_switch_gtk $X_CFLAGS)
4404 XE_SPACE(c_switch_all, $c_switch_general $c_switch_window_system)
4405 XE_SPACE(ld_switch_general, $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_run)
4406 XE_SPACE(ld_switch_window_system, $ld_switch_x_site)
4407 XE_SPACE(ld_switch_all, $ld_switch_general $ld_switch_window_system)
4408 XE_SPACE(ld_libs_general, $LIBS $libs_machine $libs_system $libs_standard)
4409 XE_SPACE(ld_libs_window_system, $X_EXTRA_LIBS $libs_x $libs_gtk $X_PRE_LIBS)
4410 XE_SPACE(ld_libs_all, $ld_libs_window_system $ld_libs_general)
4411
4412 dnl Compute lists of Makefiles and subdirs
4413 AC_SUBST(SRC_SUBDIR_DEPS)
4414 XE_APPEND(src, MAKE_SUBDIR)
4415 internal_makefile_list="Makefile.in"
4416 SUBDIR_MAKEFILES=''
4417 test -d lock || mkdir lock
4418 for dir in $MAKE_SUBDIR; do
4419   case "$dir" in */* ) dnl Implement mkdir -p
4420     ( for d in `echo $dir | sed 's:/: :g'` ; do
4421         test -d "$d" || mkdir "$d"; cd "$d"
4422       done ) ;;
4423    * ) test -d "$dir" || mkdir "$dir" ;;
4424   esac
4425   XE_SPACE(SUBDIR_MAKEFILES, $SUBDIR_MAKEFILES $dir/Makefile $dir/GNUmakefile)
4426   XE_SPACE(internal_makefile_list, $internal_makefile_list $dir/Makefile.in)
4427 done
4428 AC_SUBST(INSTALL_ARCH_DEP_SUBDIR)
4429 AC_SUBST(MAKE_SUBDIR)
4430 AC_SUBST(SUBDIR_MAKEFILES)
4431
4432 dnl Make s&m symlinks in the src directory, for config.h
4433 for dir in src/s src/m; do
4434   if test ! -d "$dir" ; then
4435     echo Making symbolic link to "$srcdir/$dir"
4436     ${LN_S} "$srcdir/$dir" "$dir"
4437   fi
4438 done
4439
4440 if test "$extra_verbose" = "yes"; then
4441   echo ""
4442   PRINT_VAR(extra_objs
4443    c_switch_general  c_switch_window_system  c_switch_all
4444   ld_switch_general ld_switch_window_system ld_switch_all
4445     ld_libs_general   ld_libs_window_system   ld_libs_all)
4446   echo ""
4447 fi
4448
4449 dnl ----------------------------------------------
4450 dnl Create some auxiliary files for developers.
4451 dnl ----------------------------------------------
4452
4453 dnl Create a .gdbinit useful for debugging XEmacs
4454 if test -f "$srcdir/src/.gdbinit" -a ! -f "src/.gdbinit"; then
4455   test "$extra_verbose" = "yes" && echo "creating src/.gdbinit"
4456   echo "source $srcdir/src/.gdbinit" > "src/.gdbinit"
4457 fi
4458
4459 dnl Create a .dbxrc useful for debugging XEmacs
4460 if test -f "$srcdir/src/.dbxrc" -a ! -f "src/.dbxrc"; then
4461   test "$extra_verbose" = "yes" && echo "creating src/.dbxrc"
4462   echo ". $srcdir/src/.dbxrc" > "src/.dbxrc"
4463 fi
4464
4465 dnl Create a useful TAGS file
4466 if test -f "$srcdir/TAGS" -a ! -f "TAGS"; then
4467   test "$extra_verbose" = "yes" && echo "creating TAGS"
4468   echo "\f
4469 $srcdir/TAGS,include" > "TAGS"
4470 fi
4471
4472 dnl Create top level .sbinit for Sun compilers
4473 if test "$__SUNPRO_C" = "yes"; then
4474   test "$extra_verbose" = "yes" && echo "creating .sbinit"
4475   ( echo "# For use with Sun WorkShop's Source browser."
4476     echo "# See sbquery(1) and sbinit(4) for more information"
4477     for dir in $MAKE_SUBDIR; do echo "import $dir"; done
4478   ) > .sbinit
4479 fi
4480
4481 dnl There are no more compile tests; remove the core they created.
4482 rm -f core
4483
4484 dnl ----------------------------------------------
4485 dnl Substitute into Makefile, config.h and paths.h
4486 dnl ----------------------------------------------
4487
4488 dnl what sort of things to edit into Makefile, config.h and paths.h
4489 dnl configuration here uncanonicalized to avoid exceeding size limits.
4490
4491 AC_SUBST(PROGNAME)
4492 AC_SUBST(version)
4493 AC_SUBST(configuration)
4494 AC_SUBST(canonical)
4495 AC_SUBST(inststaticdir)
4496 AC_SUBST(instvardir)
4497 AC_SUBST(srcdir)
4498 AC_SUBST(bindir)
4499 AC_SUBST(datadir)
4500 AC_SUBST(pkgdir)
4501 AC_SUBST(statedir)
4502 AC_SUBST(libdir)
4503 AC_SUBST(mandir)
4504 AC_SUBST(extra_includes)
4505
4506 AC_SUBST(prefix)
4507 AC_SUBST(PREFIX_USER_DEFINED)
4508 dnl Yo, Stephen Bourne!  I want to marry you!
4509 PREFIX=$prefix
4510 while true; do
4511   case "$PREFIX" in
4512     *\$* ) eval "PREFIX=$PREFIX" ;;
4513     *) break ;;
4514   esac
4515 done
4516 AC_SUBST(PREFIX)
4517
4518 AC_SUBST(exec_prefix)
4519 AC_SUBST(EXEC_PREFIX_USER_DEFINED)
4520 EXEC_PREFIX=$exec_prefix
4521 while true; do
4522   case "$EXEC_PREFIX" in
4523     *\$* ) eval "EXEC_PREFIX=$EXEC_PREFIX" ;;
4524     *) break ;;
4525   esac
4526 done
4527 AC_SUBST(EXEC_PREFIX)
4528
4529 AC_SUBST(infodir)
4530 AC_SUBST(INFODIR_USER_DEFINED)
4531 INFODIR=$infodir
4532 while true; do
4533   case "$INFODIR" in
4534     *\$* ) eval "INFODIR=$INFODIR" ;;
4535     *) break ;;
4536   esac
4537 done
4538 AC_SUBST(INFODIR)
4539
4540 AC_SUBST(infopath)
4541 AC_SUBST(INFOPATH_USER_DEFINED)
4542 INFOPATH=$infopath
4543 while true; do
4544   case "$INFOPATH" in
4545     *\$* ) eval "INFOPATH=$INFOPATH" ;;
4546     *) break ;;
4547   esac
4548 done
4549 AC_SUBST(INFOPATH)
4550
4551 AC_SUBST(package_path)
4552 AC_SUBST(PACKAGE_PATH_USER_DEFINED)
4553 PACKAGE_PATH=$package_path
4554 while true; do
4555   case "$PACKAGE_PATH" in
4556     *\$* ) eval "PACKAGE_PATH=$PACKAGE_PATH" ;;
4557     *) break ;;
4558   esac
4559 done
4560 AC_SUBST(PACKAGE_PATH)
4561
4562 AC_SUBST(lispdir)
4563 AC_SUBST(LISPDIR_USER_DEFINED)
4564 LISPDIR=$lispdir
4565 while true; do
4566   case "$LISPDIR" in
4567     *\$* ) eval "LISPDIR=$LISPDIR" ;;
4568     *) break ;;
4569   esac
4570 done
4571 AC_SUBST(LISPDIR)
4572
4573 AC_SUBST(moduledir)
4574 AC_SUBST(MODULEDIR_USER_DEFINED)
4575 MODULEDIR=$moduledir
4576 while true; do
4577   case "$MODULEDIR" in
4578     *\$* ) eval "MODULEDIR=$MODULEDIR" ;;
4579     *) break ;;
4580   esac
4581 done
4582 AC_SUBST(MODULEDIR)
4583
4584 AC_SUBST(sitelispdir)
4585 AC_SUBST(SITELISPDIR_USER_DEFINED)
4586 SITELISPDIR=$sitelispdir
4587 while true; do
4588   case "$SITELISPDIR" in
4589     *\$* ) eval "SITELISPDIR=$SITELISPDIR" ;;
4590     *) break ;;
4591   esac
4592 done
4593 AC_SUBST(SITELISPDIR)
4594
4595 AC_SUBST(sitemoduledir)
4596 AC_SUBST(SITEMODULEDIR_USER_DEFINED)
4597 SITEMODULEDIR=$sitemoduledir
4598 while true; do
4599   case "$SITEMODULEDIR" in
4600     *\$* ) eval "SITEMODULEDIR=$SITEMODULEDIR" ;;
4601     *) break ;;
4602   esac
4603 done
4604 AC_SUBST(SITEMODULEDIR)
4605
4606 AC_SUBST(etcdir)
4607 AC_SUBST(ETCDIR_USER_DEFINED)
4608 ETCDIR=$etcdir
4609 while true; do
4610   case "$ETCDIR" in
4611     *\$* ) eval "ETCDIR=$ETCDIR" ;;
4612     *) break ;;
4613   esac
4614 done
4615 AC_SUBST(ETCDIR)
4616
4617 AC_SUBST(docdir)
4618 AC_SUBST(DOCDIR_USER_DEFINED)
4619 DOCDIR=$docdir
4620 while true; do
4621   case "$DOCDIR" in
4622     *\$* ) eval "DOCDIR=$DOCDIR" ;;
4623     *) break ;;
4624   esac
4625 done
4626 AC_SUBST(DOCDIR)
4627
4628 AC_SUBST(archlibdir)
4629 AC_SUBST(ARCHLIBDIR_USER_DEFINED)
4630 ARCHLIBDIR=$archlibdir
4631 while true; do
4632   case "$ARCHLIBDIR" in
4633     *\$* ) eval "ARCHLIBDIR=$ARCHLIBDIR" ;;
4634     *) break ;;
4635   esac
4636 done
4637 AC_SUBST(ARCHLIBDIR)
4638
4639 AC_SUBST(docdir)
4640 AC_SUBST(bitmapdir)
4641 AC_SUBST(extra_objs)
4642
4643 dnl The following flags combine all the information from:
4644 dnl - command line options (user always gets priority)
4645 dnl - user environment variables
4646 dnl - determined by configure
4647 dnl - the s&m header files (required for ellcc)
4648 AC_SUBST(machfile)
4649 AC_SUBST(opsysfile)
4650 AC_SUBST(c_switch_general)
4651 AC_SUBST(c_switch_window_system)
4652 AC_SUBST(c_switch_all)
4653 AC_SUBST(ld_switch_general)
4654 AC_SUBST(ld_switch_window_system)
4655 AC_SUBST(ld_switch_all)
4656 AC_SUBST(ld_libs_general)
4657 AC_SUBST(ld_libs_window_system)
4658 AC_SUBST(ld_libs_all)
4659 AC_SUBST(CFLAGS)
4660 AC_SUBST(CPPFLAGS)
4661 AC_SUBST(LDFLAGS)
4662 RECURSIVE_MAKE="\$(MAKE) \$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'"
4663 AC_SUBST(RECURSIVE_MAKE)
4664
4665 AC_SUBST(native_sound_lib)
4666 AC_SUBST(sound_cflags)
4667 AC_SUBST(RANLIB)
4668 AC_SUBST(dynodump_arch)
4669
4670 dnl Preliminary support for using a different compiler for xemacs itself.
4671 dnl Useful for building XEmacs with a C++ or 64-bit compiler.
4672 : ${XEMACS_CC:=$CC}
4673 AC_SUBST(XEMACS_CC)
4674
4675 dnl The default is yes
4676 if test "$with_prefix" = "yes"; then
4677   AC_DEFINE(PREFIX_USER_DEFINED)
4678 fi
4679
4680 dnl The default is no
4681 if test "$with_site_lisp" = "no"; then
4682   AC_DEFINE(INHIBIT_SITE_LISP)
4683 fi
4684 dnl The default is yes
4685 if test "$with_site_modules" = "no"; then
4686   AC_DEFINE(INHIBIT_SITE_MODULES)
4687 fi
4688
4689 XE_SPACE(ac_configure_args, $ac_configure_args)
4690 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "$configuration")
4691 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "$ac_configure_args")
4692
4693 dnl Following are deprecated
4694
4695 null_string=""
4696 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE,     $null_string)
4697 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, $null_string)
4698 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE,      $null_string)
4699 AC_DEFINE_UNQUOTED(LD_SWITCH_SITE,       $null_string)
4700 AC_DEFINE_UNQUOTED(C_SWITCH_SITE,        $null_string)
4701
4702 dnl Note: as a general rule, *only* define things here that are not
4703 dnl autodetected.  For things that are autodetected, define them
4704 dnl at the point where the autodetection occurs or would occur,
4705 dnl so that the user gets immediate feedback on the results of the
4706 dnl autodetection.
4707
4708 if   test "$GNU_MALLOC"         = "yes"; then AC_DEFINE(GNU_MALLOC)
4709 elif test "$with_system_malloc" = "yes"; then AC_DEFINE(USE_SYSTEM_MALLOC)
4710 elif test "$with_debug_malloc"  = "yes"; then AC_DEFINE(USE_DEBUG_MALLOC)
4711                                               AC_DEFINE(USE_SYSTEM_MALLOC)
4712 fi
4713 test "$with_i18n3"         = "yes" && AC_DEFINE(I18N3)
4714 test "$GCC"                = "yes" && AC_DEFINE(USE_GCC)
4715 test "$external_widget"    = "yes" && AC_DEFINE(EXTERNAL_WIDGET)
4716 test "$quick_build"        = "yes" && AC_DEFINE(QUICK_BUILD)
4717 test "$with_purify"        = "yes" && AC_DEFINE(PURIFY)
4718 test "$with_quantify"      = "yes" && AC_DEFINE(QUANTIFY)
4719 test "$with_pop"           = "yes" && AC_DEFINE(MAIL_USE_POP)
4720 test "$with_kerberos"      = "yes" && AC_DEFINE(KERBEROS)
4721 test "$with_hesiod"        = "yes" && AC_DEFINE(HESIOD)
4722 test "$use_union_type"     = "yes" && AC_DEFINE(USE_UNION_TYPE)
4723 test "$pdump"              = "yes" && AC_DEFINE(PDUMP)
4724
4725 dnl -------------------------------
4726 dnl Report on what we decided to do
4727 dnl -------------------------------
4728
4729 (
4730 dnl /etc/osversion is on SONY NEWS-OS
4731 if test -f /etc/osversion; then dnl SONY NEWS-OS
4732   echo "osversion: `cat /etc/osversion`"
4733 else
4734   echo "uname -a: `uname -a`"
4735 fi
4736 echo ""
4737 echo "$0 $quoted_arguments"
4738 ) > Installation
4739
4740 if test ! -z ${emacs_beta_version} ; then
4741   if test -z "${emacs_is_beta}" ; then
4742         xemacs_betaname=".${emacs_beta_version}"
4743   else
4744         xemacs_betaname="-b${emacs_beta_version}"
4745   fi
4746 else
4747   xemacs_betaname=""
4748 fi
4749
4750 dnl Start stdout redirection to '| tee -a Installation'
4751 (
4752 echo "
4753
4754 XEmacs ${emacs_major_version}.${emacs_minor_version}${xemacs_betaname} \"$xemacs_codename\" configured for \`$canonical'.
4755 "
4756 echo "
4757 Compilation / Installation:"
4758 echo "  Source code location:              $srcdir"
4759 echo "  Installation prefix:               $prefix"
4760 if test -n "$site_includes"; then
4761   echo "  Additional header files:           $site_includes"
4762 fi
4763 if test -n "$site_libraries"; then
4764   echo "  Additional libraries:              $site_libraries"
4765 fi
4766 if test -n "$site_prefixes"; then
4767   echo "  Additional prefixes:               $site_prefixes"
4768 fi
4769 if test -n "$runpath"; then
4770   echo "  Runtime library search path:       $runpath"
4771 fi
4772
4773 if test -n "$opsysfile"
4774 then echo "  Operating system description file: \`$opsysfile'"
4775 else echo "  Not using any operating system description file"
4776 fi
4777 if test -n "$machfile"
4778 then echo "  Machine description file:          \`$machfile'"
4779 else echo "  Not using any machine description file"
4780 fi
4781
4782 echo "  Compiler:                          $CC $CFLAGS"
4783 echo "  Relocating allocator for buffers:  $rel_alloc"
4784 echo "  GNU version of malloc:             ${GNU_MALLOC}${GNU_MALLOC_reason}"
4785
4786 echo "
4787 Window System:"
4788 if test "$with_msw" = "yes"; then
4789   echo "  Compiling in support for the Microsoft window system."
4790 fi
4791 if test "$with_x11" = "yes"; then
4792   echo "  Compiling in support for the X window system:"
4793   echo "    - X Windows headers location:                 $x_includes"
4794   echo "    - X Windows libraries location:               $x_libraries"
4795   if test "$with_xauth" != yes; then
4796     echo "    - Xau (X authority) not available."
4797   fi
4798   if test "$with_xmu" != yes; then
4799     echo "    - Xmu library not available; substituting equivalent routines."
4800   fi
4801   if test "$with_wmcommand" != no; then
4802     echo "    - Handling WM_COMMAND properly."
4803   fi
4804 fi
4805 if test "$need_athena" = "yes"; then
4806   echo "  Compiling in support for the Athena widget set:"
4807   echo "    - Athena headers location:                    $athena_h_path"
4808   echo "    - Athena library to link:                     $athena_lib"
4809 fi
4810 case "$with_menubars" in
4811   gtk   ) echo "  Using GTK menubars."   ;;
4812   lucid ) echo "  Using Lucid menubars." ;;
4813   motif ) echo "  Using Motif menubars."
4814           echo "  *WARNING*  The Motif menubar implementation is currently buggy."
4815           echo "             We recommend using the Lucid menubar instead."
4816           echo "             Re-run configure with --with-menubars='lucid'." ;;
4817     msw ) echo "  Using MS-Windows menubars." ;;
4818 esac
4819 case "$with_scrollbars" in
4820   gtk    ) echo "  Using GTK scrollbars."        ;;
4821   lucid  ) echo "  Using Lucid scrollbars."      ;;
4822   motif  ) echo "  Using Motif scrollbars."      ;;
4823   athena ) echo "  Using Athena scrollbars."     ;;
4824      msw ) echo "  Using MS-Windows scrollbars." ;;
4825 esac
4826 case "$with_dialogs" in
4827   gtk    ) echo "  Using GTK dialog boxes." ;;
4828   motif  ) echo "  Using Motif dialog boxes."
4829            if test "$unexec" = "unexaix.o"; then if test "`uname -v`" = 4 -a "`uname -r`" -ge 3; then
4830              echo "  *WARNING*  The Motif dialog boxes cause problems on AIX 4.3 and higher."
4831              echo "             We recommend using the Athena dialog boxes instead."
4832              echo "             Install libXaw and re-run configure with --with-dialogs='athena'."
4833              echo "             Read the PROBLEMS file for more information."
4834            fi; fi ;;
4835   athena ) echo "  Using Athena dialog boxes."     ;;
4836      msw ) echo "  Using MS-Windows dialog boxes." ;;
4837 esac
4838 case "$with_widgets" in
4839   gtk    ) echo "  Using GTK native widgets."        ;;
4840   motif  ) echo "  Using Motif native widgets."      ;;
4841   athena ) echo "  Using Athena native widgets."     ;;
4842      msw ) echo "  Using MS-Windows native widgets." ;;
4843 esac
4844 if test "$with_dragndrop" = yes; then
4845   echo "  Compiling in support for Drag'n'Drop (EXPERIMENTAL)."
4846   echo "    -  Drag'n'Drop prototype:                             $dragndrop_proto."
4847 fi
4848
4849 echo "
4850 TTY:"
4851 test "$with_ncurses" = yes && echo "  Compiling in support for ncurses."
4852 test "$with_gpm" = yes && echo "  Compiling in support for GPM (General Purpose Mouse)."
4853
4854 echo "
4855 Images:"
4856 test "$with_gif" = yes && echo "  Compiling in support for GIF  images (builtin)."
4857 if test "$with_xpm" = yes; then
4858   echo "  Compiling in support for XPM  images."
4859 elif test "$with_x11" = yes; then
4860   echo "  WARNING: -----------------------------------------------------------"
4861   echo "  WARNING: Compiling without XPM image support."
4862   if test "$xpm_problem" != ""; then
4863     echo "  Reason: $xpm_problem"
4864   fi
4865   echo "  WARNING: You should strongly consider installing XPM."
4866   echo "  WARNING: Otherwise toolbars and other graphics will look suboptimal."
4867   echo "  WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
4868   echo "  WARNING: -----------------------------------------------------------"
4869 fi
4870 if test "$with_png" = yes; then
4871   echo "  Compiling in support for PNG  images."
4872 elif test "$window_system" != "none"; then
4873   echo "  WARNING: -----------------------------------------------------------"
4874   echo "  WARNING: Compiling without PNG image support."
4875   if test "$png_problem" != ""; then
4876     echo "  Reason: $png_problem"
4877   fi
4878   echo "  WARNING: You should strongly consider installing the PNG libraries."
4879   echo "  WARNING: Otherwise certain images and glyphs may not display."
4880   echo "  WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
4881   echo "  WARNING: -----------------------------------------------------------"
4882 fi
4883 test "$with_jpeg" = yes && echo "  Compiling in support for JPEG images."
4884 test "$with_tiff" = yes && echo "  Compiling in support for TIFF images."
4885 test "$with_xface" = yes && echo "  Compiling in support for X-Face message headers."
4886
4887 echo "
4888 Sound:"
4889 test "$with_native_sound" = yes && echo "  Compiling in support for sound (native)."
4890 test "$with_nas_sound" = yes && echo "  Compiling in support for NAS (network audio system)."
4891 test "$old_nas" = yes && echo "    - NAS library lacks error trapping; will play synchronously."
4892 test "$with_esd_sound" = yes && echo "  Compiling in support for ESD (Enlightened Sound Daemon)."
4893
4894 echo "
4895 Databases:"
4896 test "$with_database_berkdb" = yes && echo "  Compiling in support for Berkeley database."
4897 test "$with_database_dbm"    = yes && echo "  Compiling in support for DBM."
4898 test "$with_database_gdbm"   = yes && echo "  Compiling in support for GNU DBM."
4899 test "$with_ldap" = yes && echo "  Compiling in support for LDAP."
4900 if test "$with_postgresql" = yes; then
4901   echo "  Compiling in support for PostgreSQL."
4902   echo "    - Using PostgreSQL header file:  $libpq_fe_h_file"
4903   test "$with_postgresqlv7" = yes && echo "    - Using PostgreSQL V7 bindings."
4904 fi
4905
4906 echo "
4907 Internationalization:"
4908 test "$with_mule" = yes && echo "  Compiling in support for Mule (multi-lingual Emacs)."
4909 test "$with_file_coding" = yes && echo "  Compiling in support for file coding."
4910 test "$with_xim" != no && echo "  Compiling in support for XIM (X11R5+ I18N input method)."
4911 test "$with_xim" = motif && echo "    - Using Motif to provide XIM support."
4912 test "$with_xim" = xlib && echo "    - Using raw Xlib to provide XIM support."
4913 test "$with_xfs" = yes && echo "    - Using XFontSet to provide bilingual menubar."
4914 test "$with_canna" = yes && echo "  Compiling in support for Canna on Mule."
4915 if test "$with_wnn" = yes; then
4916   echo "  Compiling in support for the WNN input method on Mule."
4917   test "$with_wnn6" = yes && echo "    - Using WNN version 6."
4918 fi
4919 test "$with_i18n3" = yes && echo "  Compiling in support for I18N level 3 (doesn't currently work)."
4920
4921 echo "
4922 Mail:"
4923 test "$with_pop" = yes && echo "  Compiling in support for POP mail retrieval."
4924 test "$with_kerberos" = yes && echo "  Compiling in support for Kerberos POP authentication."
4925 test "$with_hesiod" = yes && echo "  Compiling in support for Hesiod POP server access."
4926 test -n "$mail_locking" && echo "  Compiling in support for \"$mail_locking\" mail spool file locking method."
4927
4928 echo "
4929 Other Features:"
4930 test "$with_tooltalk" = yes && echo "  Compiling in support for ToolTalk."
4931 test "$with_workshop" = yes && echo "  Compiling in support for Sun WorkShop."
4932 test "$with_socks" = yes && echo "  Compiling in support for SOCKS."
4933 test "$with_dnet" = yes && echo "  Compiling in support for DNET."
4934 test "$with_modules" = "yes" && echo "  Compiling in support for dynamic shared object modules."
4935 test "$use_union_type" = yes && echo "  Using the union type for Lisp_Objects."
4936 test "$pdump" = yes && echo "  Using the new portable dumper."
4937 test "$debug" = yes && echo "  Compiling in support for extra debugging code."
4938 test "$usage_tracking" = yes && echo "  Compiling in support for active usage tracking (Sun internal)."
4939 if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc $error_check_glyphs" \
4940   != "no no no no no no"; then
4941   echo "  WARNING: ---------------------------------------------------------"
4942   echo "  WARNING: Compiling in support for runtime error checking."
4943   echo "  WARNING: XEmacs will run noticeably more slowly as a result."
4944   echo "  WARNING: Error checking is on by default for XEmacs beta releases."
4945   echo "  WARNING: ---------------------------------------------------------"
4946 fi
4947 echo ""
4948 ) | tee -a Installation
4949 dnl echo "The above configure report is appended to \"Installation\" file."
4950 echo ""
4951
4952 dnl -----------------------------------
4953 dnl Now generate config.h and Makefiles
4954 dnl -----------------------------------
4955 dnl This has to be called in order for this variable to get into config.status
4956 AC_SUBST(internal_makefile_list)
4957 # Remove any trailing slashes in these variables.
4958 test -n "$prefix" &&
4959   prefix=`echo '' "$prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4960 test -n "$exec_prefix" &&
4961   exec_prefix=`echo '' "$exec_prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4962
4963 dnl Build Makefile.in's from Makefile.in.in's
4964 dnl except ./Makefile from $srcdir/Makefile.in
4965
4966 for file in $internal_makefile_list; do
4967   test "$file" = src/Makefile.in && \
4968     file="src/Makefile.in:src/Makefile.in.in:src/depend"
4969   XE_APPEND($file, ac_output_files)
4970 done
4971 ac_output_files="$ac_output_files src/paths.h lib-src/config.values"
4972 test "$with_modules" = "yes" && XE_APPEND(lib-src/ellcc.h, ac_output_files)
4973
4974 AC_OUTPUT($ac_output_files,
4975 [for dir in . $MAKE_SUBDIR; do
4976   (
4977     cd $dir
4978     rm -f junk.c
4979     < Makefile.in \
4980       sed -e '/^# Generated/d' \
4981           -e 's%/\*\*/#.*%%' \
4982           -e 's/^ *# */#/' \
4983 dnl Delete Makefile.in.in comment lines
4984           -e '/^##/d' \
4985 dnl Pass through CPP directives unchanged
4986           -e '/^#/ {
4987 p
4988 d
4989 }'        \
4990 dnl Quote other lines to protect from CPP substitution
4991           -e '/./ {
4992 s/\([[\"]]\)/\\\1/g
4993 s/^/"/
4994 s/$/"/
4995 }'  > junk.c;
4996
4997 dnl Create a GNUmakefile and Makefile from Makefile.in.
4998
4999 changequote(<<,>>)dnl
5000 dnl CPP_MAKEFILE(CPPFLAGS,filename)
5001 define(<<CPP_MAKEFILE>>,
5002 echo creating $dir/<<$2>>
5003 $CPP -I. -I${top_srcdir}/src <<$1>> junk.c \
5004 dnl Delete line directives inserted by $CPP
5005   | sed -e 's/^\#.*//'          \
5006 dnl Delete spurious blanks inserted by $CPP
5007         -e 's/^[ TAB][ TAB]*$//'\
5008         -e 's/^ /TAB/'          \
5009 dnl Delete blank lines
5010         -e '/^[ \f]*$/d' \
5011 dnl Restore lines quoted above to original contents.
5012         -e '/^\"/ {
5013         s/\\\([\"]\)/\1/g
5014         s/^[ TAB]*\"//
5015         s/\"[ TAB]*$//
5016 }' > Makefile.new
5017     chmod 444 Makefile.new
5018     mv -f Makefile.new <<$2>>
5019 )dnl CPP_MAKEFILE
5020
5021     CPP_MAKEFILE(,Makefile)
5022     CPP_MAKEFILE(-DUSE_GNU_MAKE,GNUmakefile)
5023 changequote([,])dnl
5024     rm -f junk.c
5025   )
5026 done
5027
5028 dnl Append AC_DEFINE information to lib-src/config.values
5029 dnl (AC_SUBST information is already there (see config.values.sh).
5030 sed < config.status >> lib-src/config.values \
5031   -e '/{ac_dA}.*{ac_dB}.*{ac_dC}.*{ac_dD}$/!d' \
5032   -e 's/\${ac_dA}\(.*\)\${ac_dB}.*\${ac_dC}\(.*\)\${ac_dD}/\1 \2/' \
5033   -e 's/^\([[^ ]]*\) $/\1 ""/' \
5034   -e 's/ 1$/ t/'
5035
5036 ],
5037 [CPP="$CPP"
5038  top_srcdir="$srcdir"
5039  MAKE_SUBDIR="$MAKE_SUBDIR"
5040 ])dnl