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