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