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