Sync up with r21-2-47-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 Calculate 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 Yuck, bad compares have been worth at least 3 crashes!
1897     CFLAGS="$CFLAGS -Wsign-compare"
1898     dnl glibc is intentionally not `-Wpointer-arith'-clean.
1899     dnl Ulrich Drepper has rejected patches to fix the glibc header files.
1900     test "$have_glibc" != "yes" && CFLAGS="$CFLAGS -Wpointer-arith"
1901     dnl I'm not convinced this is a good idea any more. -sb
1902     dnl test "$opsys $machine" = "linux intel386" && \
1903     dnl CFLAGS="$CFLAGS -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2"
1904   elif test "$__SUNPRO_C" = "yes"; then
1905     case "$opsys" in
1906       sol2    ) CFLAGS="-v -xO4" ;;
1907       sunos4* ) CFLAGS="-xO2";;
1908     esac
1909   elif test "$__DECC" = "yes"; then
1910     CFLAGS="-O3"
1911   elif test "$CC" = "xlc"; then
1912     CFLAGS="-g -O3 -qstrict -qnoansialias -qlibansi -qinfo -qro -qmaxmem=20000"
1913   dnl ### Add optimal CFLAGS support for other compilers HERE!
1914   else
1915     CFLAGS="-O" ;dnl The only POSIX-approved flag
1916   fi
1917 fi
1918
1919 dnl Search for GCC specific build problems we know about
1920 if test "$GCC" = "yes"; then
1921 AC_MSG_CHECKING(for buggy gcc versions)
1922 GCC_VERSION=`$CC --version`
1923 case `uname -s`:`uname -m`:$GCC_VERSION in
1924         dnl egcs 2.90.21 (egcs-1.00 release)
1925         dnl egcs 2.90.29 (egcs-1.0.3 release)
1926     *:sun4*:2.8.1|*:sun4*:egcs-2.90.*)
1927         dnl Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures
1928         dnl without also using `-fno-schedule-insns'.
1929         case "$CFLAGS" in
1930             *-O2*|*-O3*)
1931                 case "$CFLAGS" in
1932                     *-fno-schedule-insns*) ;;
1933                     *)
1934                         AC_MSG_RESULT(yes)
1935                         AC_MSG_WARN(Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures)
1936                         AC_MSG_WARN(without also using -fno-schedule-insns.)
1937                         AC_MSG_ERROR(Aborting due to known problem)
1938                         ;;
1939                 esac
1940                 ;;
1941         esac
1942         ;;
1943         dnl egcs-2.91.57 (egcs-1.1 release)
1944         dnl egcs-2.91.66 (egcs-1.1.2 release)
1945     Linux:alpha:egcs-2.91.*)
1946         AC_MSG_RESULT(yes)
1947         AC_MSG_WARN(There have been reports of egcs-1.1 not compiling XEmacs correctly on)
1948         AC_MSG_WARN(Alpha Linux.  There have also been reports that egcs-1.0.3a is O.K.)
1949         AC_MSG_ERROR(Aborting due to known problem)
1950         ;;
1951     *:i*86*:2.7.2*)
1952         case "$CFLAGS" in
1953             *-O2*|*-O3*)
1954                 case "$GCC_VERSION" in
1955                     2.7.2)
1956                         case "$CFLAGS" in
1957                             *-fno-strength-reduce*) ;;
1958                             *)
1959                                 AC_MSG_RESULT(yes)
1960                                 AC_MSG_WARN(Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using)
1961                                 AC_MSG_WARN(-fno-strength-reduce.)
1962                                 AC_MSG_ERROR(Aborting due to known problem)
1963                                 ;;
1964                         esac
1965                         ;;
1966                 esac
1967                 case "$CFLAGS" in
1968                  *-fno-caller-saves*) ;;
1969                  *)
1970                     AC_MSG_RESULT(yes)
1971                     AC_MSG_WARN(Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using)
1972                     AC_MSG_WARN(-fno-caller-saves.)
1973                     AC_MSG_ERROR(Aborting due to known problem)
1974                     ;;
1975                 esac
1976                 ;;
1977         esac
1978         ;;
1979 esac
1980 AC_MSG_RESULT(no)
1981 fi
1982
1983 dnl Inform compiler that certain flags are meant for the linker
1984 dnl XE_PROTECT_LINKER_FLAGS(shell_var)
1985 define([XE_PROTECT_LINKER_FLAGS], [
1986 if test "$GCC" = "yes"; then
1987   set x $[$1]; shift; [$1]=""
1988   while test -n "[$]1"; do
1989     case [$]1 in
1990       -L  | -l  | -u               ) [$1]="$[$1] [$]1 [$]2"; shift ;;
1991       -L* | -l* | -u* | -Wl* | -pg ) [$1]="$[$1] [$]1" ;;
1992       -Xlinker* ) ;;
1993       * ) [$1]="$[$1] -Xlinker [$]1" ;;
1994     esac
1995     shift
1996   done
1997 fi])dnl
1998 XE_PROTECT_LINKER_FLAGS(ld_switch_system)
1999 XE_PROTECT_LINKER_FLAGS(ld_switch_machine)
2000 XE_PROTECT_LINKER_FLAGS(LDFLAGS)
2001 XE_PROTECT_LINKER_FLAGS(ld_call_shared)
2002
2003 dnl Add s&m-determined objects (including unexec) to link line
2004 test -n "$objects_machine" && XE_ADD_OBJS($objects_machine)
2005 test -n "$objects_system"  && XE_ADD_OBJS($objects_system)
2006 test -n "$unexec"          && test ! "$pdump" = "yes" && XE_ADD_OBJS($unexec)
2007 test "$pdump" = "yes" && XE_ADD_OBJS(dumper.o)
2008
2009 dnl Dynodump (Solaris 2.x, x<6)
2010 AC_MSG_CHECKING(for dynodump)
2011 if test "$unexec" != "unexsol2.o"; then
2012   AC_MSG_RESULT(no)
2013 else
2014   AC_MSG_RESULT(yes)
2015   AC_DEFINE(DYNODUMP)
2016   XE_APPEND(dynodump, MAKE_SUBDIR)
2017   XE_APPEND(dynodump, SRC_SUBDIR_DEPS)
2018   case "$machine" in
2019     sparc   ) dynodump_arch=sparc ;;
2020     *86*    ) dynodump_arch=i386  ;;
2021     powerpc ) dynodump_arch=ppc   ;;
2022   esac
2023   dnl Dynodump requires the system linker
2024   test "$GCC" = "yes" && XE_APPEND(-fno-gnu-linker, ld_switch_site)
2025 fi
2026
2027 dnl Feed s&m crud to src/Makefile
2028
2029 dnl Linux/powerpc needs the following magic for some reason
2030 test "$machine$opsys" = "powerpclinux" && start_flags="-T $srcdir/src/ppc.ldscript"
2031
2032 if test "$unexec" = "unexaix.o"; then
2033 dnl AIX needs various hacks to make static linking work.
2034   if   test "$dynamic" = "no"; then
2035   start_flags="-Wl,-bnso,-bnodelcsect"
2036   test "$GCC" = "yes" && start_flags="-B/bin/ ${start_flags}"
2037   for f in "/lib/syscalls.exp" "/lib/threads.exp"; do
2038     if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; fi
2039   done
2040   for f in "/usr/lpp/X11/bin/smt.exp" "/usr/bin/X11/smt.exp"; do
2041     if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; break; fi
2042   done
2043   AC_CHECK_LIB(C, terminateAndUnload, XE_APPEND(-lC, libs_system))
2044   fi
2045 elif test -n "$ld_text_start_addr"; then
2046   start_flags="-T $ld_text_start_addr -e __start"
2047 fi
2048 AC_SUBST(start_flags)
2049
2050 AC_SUBST(ld_switch_shared)
2051 AC_SUBST(start_files)
2052 if test "$ordinary_link" = "no" -a "$GCC" = "yes"; then
2053  test -z "$linker" &&  linker='$(CC) -nostdlib'
2054  test -z "$lib_gcc" && lib_gcc='`$(CC) -print-libgcc-file-name`'
2055 fi
2056 test "$GCC" != "yes" && lib_gcc=
2057 AC_SUBST(ld)
2058 AC_SUBST(lib_gcc)
2059
2060 dnl ---------------------------------------------------------------
2061 dnl Add site and system specific flags to compile and link commands
2062 dnl ---------------------------------------------------------------
2063
2064 dnl Allow use of either ":" or spaces for lists of directories
2065 define(COLON_TO_SPACE,
2066   [case "$[$1]" in *:* [)] [$1]="`echo '' $[$1] | sed -e 's/^ //' -e 's/:/ /g'`";; esac])dnl
2067
2068 dnl --site-libraries (multiple dirs)
2069 COLON_TO_SPACE(site_libraries)
2070 if test -n "$site_libraries"; then
2071   for arg in $site_libraries; do
2072     case "$arg" in
2073      -* ) ;;
2074      * ) test -d "$arg" || \
2075            XE_DIE("Invalid site library \`$arg': no such directory")
2076        arg="-L${arg}" ;;
2077     esac
2078     XE_APPEND($arg, ld_switch_site)
2079   done
2080 fi
2081
2082 dnl --site-includes (multiple dirs)
2083 COLON_TO_SPACE(site_includes)
2084 if test -n "$site_includes"; then
2085   for arg in $site_includes; do
2086     case "$arg" in
2087       -* ) ;;
2088       * ) test -d "$arg" || \
2089            XE_DIE("Invalid site include \`$arg': no such directory")
2090       arg="-I${arg}" ;;
2091     esac
2092     XE_APPEND($arg, c_switch_site)
2093   done
2094 fi
2095
2096 dnl --site-prefixes (multiple dirs)
2097 dnl --site-prefixes=dir1:dir2 is a convenient shorthand for
2098 dnl --site-libraries=dir1/lib:dir2/lib --site-includes=dir1/include:dir2/include
2099 dnl Site prefixes take precedence over the standard places, but not over
2100 dnl site-includes and site-libraries.
2101 COLON_TO_SPACE(site_prefixes)
2102 if test -n "$site_prefixes"; then
2103   for dir in $site_prefixes; do
2104     lib_dir="${dir}/lib"
2105     inc_dir="${dir}/include"
2106     if test ! -d "$dir"; then
2107       XE_DIE("Invalid site prefix \`$dir': no such directory")
2108     elif test ! -d "$lib_dir"; then
2109       XE_DIE("Invalid site prefix \`$dir': no such directory \`$lib_dir'")
2110     else
2111       if test -d "$inc_dir"; then
2112         XE_APPEND("-I$inc_dir", c_switch_site)
2113       fi
2114       XE_APPEND("-L$lib_dir", ld_switch_site)
2115     fi
2116   done
2117 fi
2118
2119 dnl GNU software installs by default into /usr/local/{include,lib}
2120 dnl if test -d "/usr/local/include" -a -d "/usr/local/lib"; then
2121 dnl   XE_APPEND("-L/usr/local/lib",    ld_switch_site)
2122 dnl   XE_APPEND("-I/usr/local/include", c_switch_site)
2123 dnl fi
2124
2125 dnl Extra system-specific library directories - please add to list
2126 for dir in "/usr/ccs/lib"; do
2127   test -d "$dir" && XE_APPEND(-L${dir}, ld_switch_system)
2128 done
2129
2130 dnl --site-runtime-libraries (multiple dirs)
2131 COLON_TO_SPACE(site_runtime_libraries)
2132 if test -n "$site_runtime_libraries"; then
2133   LD_RUN_PATH="`echo $site_runtime_libraries | sed -e 's/  */:/g'`"
2134   export LD_RUN_PATH
2135 fi
2136
2137 dnl Linux systems have dynamic runtime library directories listed in
2138 dnl /etc/ld.so.conf.  Since those are used at run time, it seems pretty
2139 dnl safe to use them at link time, and less controversial than forcing
2140 dnl the run-time to use the link-time libraries.  This also helps avoid
2141 dnl mismatches between the link-time and run-time libraries.
2142
2143 dnl #### Unfortunately, there are horrible libc4 and libc5 libraries
2144 dnl listed in /etc/ld.so.conf on some systems, and including them on
2145 dnl the link path leads to linking in utterly broken libc's.
2146 dnl There are many clever ways of approaching this problem,
2147 dnl but finding out that actually works...
2148
2149 dnl if test -z "$LD_RUN_PATH" -a -r "/etc/ld.so.conf"; then
2150 dnl   for dir in `cat /etc/ld.so.conf`; do
2151 dnl     test -d "$dir" && XE_APPEND(-L${dir}, ld_switch_system)
2152 dnl   done
2153 dnl   add_runtime_path=no
2154 dnl fi
2155
2156 dnl -------------------------------------
2157 dnl Compute runtime library path
2158 dnl -------------------------------------
2159
2160 if test -n "$add_runtime_path"; then :;
2161 elif test "$dynamic" = "no"; then add_runtime_path=no
2162 elif test -n "$LD_RUN_PATH"; then add_runtime_path=yes
2163 else case "$opsys" in
2164        sol2 | irix* | *bsd* | decosf* ) add_runtime_path=yes ;;
2165        * ) add_runtime_path=no ;;
2166      esac
2167 fi
2168
2169 if test "$add_runtime_path" = "yes"; then
2170   dnl Try to autodetect runtime library flag (usually -R),
2171   dnl and whether it works (or at least does no harm)
2172   AC_MSG_CHECKING("for runtime libraries flag")
2173   case "$opsys" in
2174     sol2 ) dash_r="-R" ;;
2175     decosf* | linux* | irix*) dash_r="-rpath " ;;
2176     *)
2177       dash_r=""
2178       for try_dash_r in "-R" "-R " "-rpath "; do
2179         xe_check_libs="${try_dash_r}/no/such/file-or-directory"
2180         XE_PROTECT_LINKER_FLAGS(xe_check_libs)
2181         AC_TRY_LINK(, , dash_r="$try_dash_r")
2182         xe_check_libs=""
2183         test -n "$dash_r" && break
2184       done ;;
2185   esac
2186   if test -n "$dash_r";
2187     then AC_MSG_RESULT("\"${dash_r}\"")
2188     else AC_MSG_RESULT(NONE)
2189   fi
2190 fi
2191
2192 xe_add_unique_runpath_dir='
2193   xe_add_p=yes
2194   for xe_dir in $runpath_dirs; do   dnl Uniquify
2195     test "$xe_dir" = "$xe_runpath_dir" && xe_add_p=no
2196   done
2197   if test "$xe_add_p" = "yes"; then
2198     test -n "$runpath" && runpath="${runpath}:"
2199     runpath="${runpath}${xe_runpath_dir}"
2200     runpath_dirs="$runpath_dirs $xe_runpath_dir"
2201   fi'
2202
2203
2204 dnl XE_ADD_RUNPATH_DIR(directory)
2205 define([XE_ADD_RUNPATH_DIR],[{
2206 xe_runpath_dir=$1
2207 dnl PRINT_VAR(ld_switch_site ld_switch_x_site runpath xe_runpath_dir LD_RUN_PATH xe_ldflags)
2208   test "$xe_runpath_dir" != "/lib"     -a \
2209         "$xe_runpath_dir" != "/usr/lib" -a \
2210         -n "`ls ${xe_runpath_dir}/*.s[[ol]] 2>/dev/null`" && \
2211   eval "$xe_add_unique_runpath_dir"
2212 }])dnl
2213
2214 dnl XE_COMPUTE_RUNPATH()
2215 define([XE_COMPUTE_RUNPATH],[
2216 if test "$add_runtime_path" = "yes" -a -n "$dash_r"; then
2217   dnl Remove runtime paths from current ld switches
2218   ld_switch_site=`echo   '' $ld_switch_site   | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"`
2219   ld_switch_x_site=`echo '' $ld_switch_x_site | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"`
2220   dnl PRINT_VAR(ld_switch_site ld_switch_x_site)
2221
2222   dnl Fix up Runtime path
2223   dnl If LD_RUN_PATH is set in environment, use that.
2224   dnl In this case, assume user has set the right value.
2225   runpath="" runpath_dirs=""
2226   if test -n "$LD_RUN_PATH"; then
2227     runpath="$LD_RUN_PATH"
2228   elif test "$GCC" = "yes"; then
2229     dnl Compute runpath from gcc's -v output
2230     ld_switch_run_save="$ld_switch_run"; ld_switch_run=""
2231     echo "int main(int argc, char *argv[[]]) {return 0;}" > conftest.c
2232     xe_runpath_link='${CC-cc} -o conftest -v $CFLAGS '"$xe_ldflags"' conftest.$ac_ext 2>&1 1>/dev/null'
2233     for arg in `eval "$xe_runpath_link" | grep ' -L'`; do
2234       case "$arg" in P,* | -L* | -R* )
2235         for dir in `echo '' "$arg" | sed -e 's:^ ::' -e 's/^..//' -e 'y/:/ /'`; do
2236           XE_ADD_RUNPATH_DIR("$dir")
2237         done ;;
2238       esac
2239     done
2240     ld_switch_run="$ld_switch_run_save"
2241     rm -f conftest*
2242   else
2243     dnl Add all directories with .so files to runpath
2244     for arg in $ld_switch_site $ld_switch_x_site; do
2245       case "$arg" in -L*) XE_ADD_RUNPATH_DIR(`echo '' "$arg" | sed -e 's:^ ::' -e 's/^-L//'`);; esac
2246     done
2247     dnl Sometimes /opt/SUNWdt/lib is the only installed Motif available
2248     if test "$opsys $need_motif" = "sol2 yes"; then
2249       xe_runpath_dir="/opt/SUNWdt/lib";
2250       eval "$xe_add_unique_runpath_dir";
2251     fi
2252   fi dnl Compute $runpath
2253
2254   if test -n "$runpath"; then
2255     ld_switch_run="${dash_r}${runpath}"
2256     XE_PROTECT_LINKER_FLAGS(ld_switch_run)
2257     test "$extra_verbose" = "yes" && echo "Setting runpath to $runpath"
2258   fi
2259 fi
2260 ])dnl
2261 XE_COMPUTE_RUNPATH()
2262
2263 dnl -----------------------------------
2264 dnl Do some misc autoconf-special tests
2265 dnl -----------------------------------
2266
2267 dnl Do the opsystem or machine files prohibit the use of the GNU malloc?
2268 dnl Assume not, until told otherwise.
2269 GNU_MALLOC=yes
2270 if test "$with_dlmalloc" != "no"; then
2271         doug_lea_malloc=yes
2272 else
2273         doug_lea_malloc=no
2274 fi
2275 after_morecore_hook_exists=yes
2276 AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
2277 AC_MSG_CHECKING(whether __after_morecore_hook exists)
2278 AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
2279   [AC_MSG_RESULT(yes)],
2280   [AC_MSG_RESULT(no)
2281    after_morecore_hook_exists=no])
2282 if test "$system_malloc" = "yes" ; then
2283   GNU_MALLOC=no
2284   GNU_MALLOC_reason="
2285     - The GNU allocators don't work with this system configuration."
2286 elif test "$with_system_malloc" = "yes" ; then
2287   GNU_MALLOC=no
2288   GNU_MALLOC_reason="
2289     - User chose not to use GNU allocators."
2290 elif test "$with_debug_malloc" = "yes" ; then
2291   GNU_MALLOC=no
2292   GNU_MALLOC_reason="
2293     - User chose to use Debugging Malloc."
2294 fi
2295
2296 if test "$doug_lea_malloc" = "yes" -a "$GNU_MALLOC" = "yes" ; then
2297   GNU_MALLOC_reason="
2298     - Using Doug Lea's new malloc from the GNU C Library."
2299   AC_DEFINE(DOUG_LEA_MALLOC)
2300   if test "$after_morecore_hook_exists" = "no" ; then
2301     GNU_MALLOC_reason="
2302     - Using Doug Lea's new malloc from the Linux C Library."
2303     AC_DEFINE(_NO_MALLOC_WARNING_)
2304   fi
2305 fi
2306
2307 dnl #### mcheck is broken in all versions of Linux libc and glibc.
2308 dnl Try this again when 2.1 hits the streets.
2309 dnl Avoid using free-hook.c if support exists for malloc debugging in libc
2310 dnl have_libmcheck=no
2311 dnl if test "$error_check_malloc" = "yes" -a \
2312 dnl    "$have_glibc" = "yes" -a \
2313 dnl    "$doug_lea_malloc" = "yes"; then
2314 dnl   AC_CHECK_HEADERS(mcheck.h)
2315 dnl   AC_CHECK_LIB(mcheck, mcheck, have_libmcheck=yes, have_libmcheck=no)
2316 dnl fi
2317
2318 dnl if test "$have_libmcheck" = "yes"; then
2319 dnl   AC_DEFINE(HAVE_LIBMCHECK)
2320 dnl   libmcheck=-lmcheck
2321 dnl   AC_SUBST(libmcheck)
2322 dnl fi
2323
2324 dnl Some other nice autoconf tests.  If you add a test here which
2325 dnl should make an entry in src/config.h, do not forget to add an
2326 dnl #undef clause to src/config.h.in for autoconf to modify.
2327
2328 AC_PROG_RANLIB
2329 AC_PROG_INSTALL
2330 AC_PROG_YACC
2331
2332 dnl checks for header files
2333 AC_CHECK_HEADERS(dnl
2334   a.out.h dnl
2335   elf.h dnl
2336   cygwin/version.h dnl
2337   fcntl.h dnl
2338   inttypes.h dnl
2339   libgen.h dnl
2340   locale.h dnl
2341   mach/mach.h dnl
2342   sys/param.h dnl
2343   sys/pstat.h dnl
2344   sys/time.h dnl
2345   sys/timeb.h dnl
2346   sys/un.h dnl
2347   ulimit.h dnl
2348   unistd.h dnl
2349 )
2350 AC_HEADER_SYS_WAIT
2351 AC_HEADER_STDC
2352 AC_HEADER_TIME
2353 AC_DECL_SYS_SIGLIST
2354
2355
2356 dnl ----------------------------------------------------------------
2357 dnl Checking for utime() or utimes().
2358 dnl We prefer utime, since it is more standard.
2359 dnl Some systems have utime.h but do not declare the struct anyplace,
2360 dnl so we use a more sophisticated test for utime than AC_CHECK_FUNCS.
2361 dnl ----------------------------------------------------------------
2362 AC_MSG_CHECKING(for utime)
2363 AC_TRY_COMPILE([#include <sys/types.h>
2364 #include <utime.h>],
2365 [struct utimbuf x; x.actime = x.modtime = 0; utime ("/", &x);],
2366   [AC_MSG_RESULT(yes)
2367    AC_DEFINE(HAVE_UTIME)],
2368   [AC_MSG_RESULT(no)
2369    dnl We don't have utime(); how about utimes()?
2370    AC_CHECK_FUNCS(utimes)])
2371
2372
2373 dnl checks for typedefs
2374 AC_TYPE_SIGNAL
2375 AC_TYPE_SIZE_T
2376 AC_TYPE_PID_T
2377 AC_TYPE_UID_T
2378 AC_TYPE_MODE_T
2379 AC_TYPE_OFF_T
2380 AC_CHECK_TYPE(ssize_t, int)
2381
2382 dnl check for Unix98 socklen_t
2383 AC_MSG_CHECKING(for socklen_t)
2384 AC_TRY_COMPILE([#include <sys/socket.h>
2385 socklen_t x;
2386 ],[],[AC_MSG_RESULT(yes)],[
2387 AC_TRY_COMPILE([#include <sys/socket.h>
2388 int accept (int, struct sockaddr *, size_t *);
2389 ],[],[
2390 AC_MSG_RESULT(size_t)
2391 AC_DEFINE(socklen_t,size_t)], [
2392 AC_MSG_RESULT(int)
2393 AC_DEFINE(socklen_t,int)])])
2394
2395 AC_MSG_CHECKING(for struct timeval)
2396 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
2397 #include <sys/time.h>
2398 #include <time.h>
2399 #else
2400 #ifdef HAVE_SYS_TIME_H
2401 #include <sys/time.h>
2402 #else
2403 #include <time.h>
2404 #endif
2405 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
2406   [AC_MSG_RESULT(yes)
2407   HAVE_TIMEVAL=yes
2408   AC_DEFINE(HAVE_TIMEVAL)],
2409   [AC_MSG_RESULT(no)
2410    HAVE_TIMEVAL=no])
2411
2412 dnl checks for structure members
2413 AC_STRUCT_TM
2414 AC_STRUCT_TIMEZONE
2415
2416 dnl checks for compiler characteristics
2417 AC_C_CONST
2418
2419 dnl check for Make feature
2420 AC_PROG_MAKE_SET
2421
2422 dnl check byte order
2423 AC_C_BIGENDIAN
2424
2425 dnl define SIZEOF_TYPE
2426 AC_CHECK_SIZEOF(short)
2427 if test "$ac_cv_sizeof_short" = 0; then
2428   echo ""
2429   echo "*** PANIC *** Configure tests are not working - compiler is broken."
2430   echo "*** PANIC *** Please examine config.log for compilation errors."
2431   exit 1
2432 fi
2433 AC_CHECK_SIZEOF(int)
2434 AC_CHECK_SIZEOF(long)
2435 AC_CHECK_SIZEOF(long long)
2436 AC_CHECK_SIZEOF(void *)
2437
2438 dnl check for long file names
2439 AC_SYS_LONG_FILE_NAMES
2440
2441 dnl -lm is required by LISP_FLOAT_TYPE, among other things
2442 AC_CHECK_FUNC(sin, ,AC_CHECK_LIB(m, sin))
2443
2444 dnl Floating operation support is now unconditional
2445 AC_DEFINE(LISP_FLOAT_TYPE)
2446
2447 AC_TRY_LINK([#include <math.h>],
2448   [return atanh(1.0) + asinh(1.0) + acosh(1.0); ],
2449   AC_DEFINE(HAVE_INVERSE_HYPERBOLIC))
2450
2451 dnl Determine type of mail locking from configure args and s&m headers
2452 AC_CHECKING(type of mail spool file locking)
2453 AC_CHECK_FUNCS(lockf flock)
2454 dnl The mail_use_xxx variables are set according to the s&m headers.
2455 test -z "$mail_locking" -a "$mail_use_flock" = "yes" && mail_locking=flock
2456 test -z "$mail_locking" -a "$mail_use_lockf" = "yes" && mail_locking=lockf
2457 test -z "$mail_locking" -a "$mail_use_locking" = "yes" && mail_locking=locking
2458 if   test -z "$mail_locking"; then
2459   case "$opsys" in cygwin* | mingw*)
2460     mail_locking=pop ;;
2461   esac
2462 fi
2463
2464 if   test "$mail_locking" = "lockf"; then AC_DEFINE(MAIL_LOCK_LOCKF)
2465 elif test "$mail_locking" = "flock"; then AC_DEFINE(MAIL_LOCK_FLOCK)
2466 elif test "$mail_locking" = "locking"; then AC_DEFINE(MAIL_LOCK_LOCKING)
2467 elif test "$mail_locking" = "pop"; then
2468   with_pop=yes
2469   mail_locking=
2470 else mail_locking="dot-locking"; AC_DEFINE(MAIL_LOCK_DOT)
2471 fi
2472 test "$mail_locking" = "lockf" -a "$ac_cv_func_lockf" != "yes" && \
2473   XE_DIE("lockf mail locking requested but not available.")
2474 test "$mail_locking" = "flock" -a "$ac_cv_func_flock" != "yes" && \
2475   XE_DIE("flock mail locking requested but not available.")
2476 test "$mail_locking" = "locking" -a "$ac_cv_func_locking" != "yes" && \
2477   XE_DIE("locking mail locking requested but not available.")
2478
2479 case "$opsys" in decosf*)
2480   AC_CHECK_LIB(pthreads, cma_open)
2481   test "$ac_cv_lib_pthreads_cma_open" = "yes" && \
2482     c_switch_site="$c_switch_site -threads" ;;
2483 esac
2484
2485 AC_MSG_CHECKING(whether the -xildoff compiler flag is required)
2486 if   ${CC-cc} '-###' -xildon  no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then
2487   if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ;
2488     then AC_MSG_RESULT(no);
2489     else AC_MSG_RESULT(yes); XE_APPEND(-xildoff, ld_switch_site)
2490   fi
2491   else AC_MSG_RESULT(no)
2492 fi
2493
2494 dnl Link with "-z ignore" on Solaris if supported
2495 if test "$opsys" = "sol2"; then
2496   if test "$os_release" -ge 56; then
2497     AC_MSG_CHECKING(for \"-z ignore\" linker flag)
2498     case "`ld -h 2>&1`" in
2499       *-z\ ignore\|record* ) AC_MSG_RESULT(yes)
2500         XE_PREPEND(-z ignore, ld_switch_site) ;;
2501       *) AC_MSG_RESULT(no) ;;
2502     esac
2503   fi
2504 fi
2505
2506 dnl ----------------------
2507 dnl Choose a window system
2508 dnl ----------------------
2509
2510 AC_CHECKING("for specified window system")
2511
2512 dnl Autodetection of Gdk libraries and includes
2513 dnl -------------------------------------------
2514 dnl On some systems (FreeBSD springs to mind), they use
2515 dnl versions on the utility routines, so instead of gtk-config
2516 dnl you must use gtk12-config, etc, etc.
2517
2518 GNOME_CONFIG=no
2519 GTK_CONFIG=no
2520
2521 if test "$with_gnome" != "no"; then
2522    AC_MSG_CHECKING(for GNOME configuration script)
2523    for possible in gnome-config
2524    do
2525       possible_version=`${possible} --version 2> /dev/null`
2526       if test "x${possible_version}" != "x"; then
2527               GNOME_CONFIG="${possible}"
2528               with_gnome=yes
2529               with_gtk=yes
2530               break
2531       fi
2532    done
2533    AC_MSG_RESULT([${GNOME_CONFIG}])
2534 fi
2535
2536 if test "${GNOME_CONFIG}" != "no"; then
2537       GNOME_LIBS=`${GNOME_CONFIG} --libs gnomeui`
2538       GNOME_CFLAGS=`${GNOME_CONFIG} --cflags gnomeui`
2539       AC_DEFINE(HAVE_GNOME)
2540       XE_APPEND(${GNOME_LIBS}, libs_gtk)
2541       XE_APPEND(${GNOME_CFLAGS}, c_switch_gtk)
2542 fi
2543
2544 if test "$with_gtk" != "no";then
2545    AC_MSG_CHECKING(for GTK configuration script)
2546    for possible in gtk12-config gtk14-config gtk-config
2547    do
2548       possible_version=`${possible} --version 2> /dev/null`
2549       if test "x${possible_version}" != "x"; then
2550               GTK_CONFIG="${possible}"
2551       fi
2552       case "${possible_version}" in
2553         1.0.*) AC_MSG_WARN([GTK 1.2 is required, please upgrade your version of GTK.]); with_gtk=no;;
2554         1.3.*) AC_MSG_WARN([GTK 1.3 is not supported right now]); with_gtk=no;;
2555         1.2.*)
2556                 with_gtk=yes
2557                 break
2558                 ;;
2559         *)     AC_MSG_WARN([Found unsupported version of GTK: $possible_version]);;
2560       esac
2561    done
2562    AC_MSG_RESULT([${GTK_CONFIG}])
2563 fi
2564
2565 if test "${GTK_CONFIG}" != "no"; then
2566       AC_MSG_CHECKING(gtk version)
2567       GTK_VERSION=`${GTK_CONFIG} --version`
2568       AC_MSG_RESULT(${GTK_VERSION})
2569
2570       AC_MSG_CHECKING(gtk libs)
2571       GTK_LIBS=`${GTK_CONFIG} --libs`
2572       XE_APPEND(${GTK_LIBS}, libs_gtk)
2573       AC_MSG_RESULT(${GTK_LIBS})
2574
2575       AC_MSG_CHECKING(gtk cflags)
2576       GTK_CFLAGS=`${GTK_CONFIG} --cflags`
2577       XE_APPEND(${GTK_CFLAGS}, c_switch_gtk)
2578       AC_MSG_RESULT(${GTK_CFLAGS})
2579
2580       AC_CHECK_LIB(gdk_imlib, main, XE_PREPEND(-lgdk_imlib, libs_gtk))
2581       AC_CHECK_LIB(Imlib, Imlib_init, XE_APPEND(-lImlib, libs_gtk))
2582       AC_CHECK_FUNCS(gdk_imlib_init)
2583
2584       AC_DEFINE(HAVE_XPM)
2585       AC_DEFINE(HAVE_GTK)
2586       AC_SUBST(GTK_CONFIG)
2587
2588       window_system=gtk
2589       with_gtk=yes
2590       with_x11=no
2591
2592       test "${with_scrollbars}" != "no" && with_scrollbars=gtk
2593       test "${with_toolbars}" != no && with_toolbars=gtk
2594       test "${with_menubars}" != "no" && with_menubars=gtk
2595       test "${with_dialogs}" != "no" && with_dialogs=gtk
2596       test "${with_widgets}" != "no" && with_widgets=gtk
2597
2598       XE_ADD_OBJS(console-gtk.o device-gtk.o event-gtk.o frame-gtk.o)
2599       XE_ADD_OBJS(objects-gtk.o redisplay-gtk.o glyphs-gtk.o)
2600       XE_ADD_OBJS(select-gtk.o gccache-gtk.o)
2601       XE_ADD_OBJS(gtk-xemacs.o ui-gtk.o)
2602
2603       dnl Check for libglade support (it rocks)
2604       OLD_CFLAGS="${CFLAGS}"
2605       OLD_LDFLAGS="${LDFLAGS}"
2606       CFLAGS="${GTK_CFLAGS} ${CFLAGS}"
2607       LDFLAGS="${LDFLAGS} ${GTK_LIBS}"
2608       AC_CHECK_HEADERS(glade/glade.h glade.h)
2609       AC_CHECK_LIB(xml, main, XE_PREPEND(-lxml, libs_gtk))
2610       AC_CHECK_LIB(glade, main, XE_PREPEND(-lglade, libs_gtk))
2611       AC_CHECK_LIB(glade-gnome, main, XE_PREPEND(-lglade-gnome, libs_gtk))
2612       AC_EGREP_HEADER([char \*txtdomain;], [glade/glade-xml.h],
2613                       [AC_MSG_RESULT(yes)
2614                        AC_DEFINE(LIBGLADE_XML_TXTDOMAIN,1)],
2615                       [AC_MSG_RESULT(no)])
2616       CFLAGS="${OLD_CFLAGS}"
2617       LDFLAGS="${OLD_LDFLAGS}"
2618 fi
2619
2620 dnl We may eventually prefer gtk/gdk over vanilla X11...
2621
2622 if test "$with_x11" != "no"; then
2623   dnl User-specified --x-includes or --x-libraries implies --with-x11.
2624   test "$x_includes $x_libraries" != "NONE NONE" && \
2625    window_system=x11 with_x11=yes
2626
2627   dnl Autodetection of X11 libraries and includes
2628   dnl -------------------------------------------
2629   dnl AC_PATH_XTRA thinks it can find our X headers and includes, but
2630   dnl it often gets it wrong, so we only use it as a last resort.
2631
2632   dnl $OPENWINHOME implies --x-includes and --x-libraries
2633   dnl Not (yet) handled by autoconf2
2634   if test "$x_includes $x_libraries" = "NONE NONE" \
2635     -a -n "$OPENWINHOME" \
2636     -a "$OPENWINHOME" != "/usr/openwin" \
2637     -a -d "$OPENWINHOME"; then
2638       test -d "$OPENWINHOME/lib"           && x_libraries="$OPENWINHOME/lib"
2639       test -d "$OPENWINHOME/include"       && x_includes="$OPENWINHOME/include"
2640       test -d "$OPENWINHOME/share/include" && x_includes="$OPENWINHOME/share/include"
2641   fi
2642
2643   if test "$x_includes" = "NONE"; then
2644     dnl AC_PATH_XTRA often guesses /usr/include, when some other
2645     dnl include directory is a MUCH better guess (Linux, HP-UX 10.20).
2646     dnl This is a workaround for idiot (esp. HP) system vendors, who
2647     dnl provide a /usr/include/X11, but DON'T FULLY POPULATE IT.
2648     for dir in "/usr/X11" "/usr/X11R6"; do
2649       if test -d "$dir/include/X11"; then x_includes="$dir/include"; break; fi
2650     done
2651   fi
2652
2653   if test "$x_libraries" = "NONE"; then
2654     for dir in "/usr/X11/lib" "/usr/X11R6/lib" "/usr/lib/X11R6"; do
2655       if test -r "$dir/libX11.a"; then x_libraries="$dir"; break; fi
2656     done
2657   fi
2658
2659   AC_PATH_XTRA # Autoconf claims to find X library and include dirs for us.
2660   if test "$no_x" = "yes"
2661   then with_x11=no  window_system=none HAVE_X_WINDOWS=no
2662   else with_x11=yes window_system=x11  HAVE_X_WINDOWS=yes
2663   fi
2664 fi
2665
2666 dnl #### wmperry:: !x11 != NONE
2667 dnl case "$with_x11" in
2668 dnl  yes ) window_system=x11  HAVE_X_WINDOWS=yes ;;
2669 dnl  no  ) window_system=none HAVE_X_WINDOWS=no  ;;
2670 dnl esac
2671
2672 if test "$with_x11" = "yes"; then
2673   AC_DEFINE(HAVE_X_WINDOWS)
2674   XE_APPEND(lwlib, MAKE_SUBDIR)
2675   XE_APPEND(lwlib, SRC_SUBDIR_DEPS)
2676
2677   dnl Try to find Motif/CDE/Tooltalk dirs
2678   dnl These take precedence over other X libs/includes, so PRE-pend
2679   for lib_dir in "/usr/dt/lib" "/usr/lib/Motif2.1" "/usr/lib/Motif1.2" "/usr/lib/Motif1.1"; do
2680     inc_dir=`echo $lib_dir | sed -e 's/lib/include/'`
2681     if test -d "$lib_dir" -a -d "$inc_dir"; then
2682       case "$x_libraries" in *"$lib_dir"* ) ;; *)
2683         x_libraries="$lib_dir $x_libraries"
2684         XE_PREPEND(-L${lib_dir}, X_LIBS) ;;
2685       esac
2686       case "$x_includes" in "$inc_dir"* ) ;; *)
2687         x_includes="$inc_dir $x_includes"
2688         XE_PREPEND(-I${inc_dir}, X_CFLAGS) ;;
2689       esac
2690       break; dnl only need ONE Motif implementation!
2691       fi
2692   done
2693
2694   dnl Contrib X libs/includes do NOT take precedence, so AP-pend
2695   for rel in "X11R6" "X11R5" "X11R4"; do
2696     lib_dir="/usr/contrib/$rel/lib" inc_dir="/usr/contrib/$rel/include"
2697     if test -d "$lib_dir" -a -d "$inc_dir"; then
2698       case "$x_libraries" in *"$lib_dir"* ) ;; *)
2699         x_libraries="$x_libraries $lib_dir"
2700         XE_APPEND(-L${lib_dir}, X_LIBS)
2701       esac
2702       case "$x_includes" in "$inc_dir"* ) ;; *)
2703         x_includes="$x_includes $inc_dir"
2704         XE_APPEND(-I${inc_dir}, X_CFLAGS)
2705       esac
2706       break; dnl Only need ONE X11 implementation !
2707     fi
2708   done
2709
2710   dnl Avoid version mismatch for shared library libXm.so on osf4
2711   case "$opsys" in
2712   decosf*) if test "$GCC" = yes -a -d /usr/shlib; then XE_APPEND(-L/usr/shlib, X_LIBS); fi ;;
2713   esac
2714
2715   ld_switch_x_site="$X_LIBS"
2716
2717   XE_COMPUTE_RUNPATH()
2718
2719   if test "$extra_verbose" = "yes"; then
2720     echo; echo "X11 compilation variables:"
2721     PRINT_VAR(x_libraries x_includes X_CFLAGS X_LIBS X_PRE_LIBS X_EXTRA_LIBS)
2722     echo
2723   fi
2724
2725   dnl Set up bitmaps search path.
2726   dnl The original suggestion was to unconditionally to append X11/bitmaps
2727   dnl to each element of $x_includes, I'm pretty sure this is the wrong
2728   dnl thing to do.  We test for bitmaps and X11/bitmaps directories on each
2729   dnl element and add them to BITMAPDIR if they exist.
2730   bitmapdirs=
2731   if test "$x_includes" != NONE; then
2732     for i in $x_includes; do
2733       if test -d "$i/bitmaps"; then
2734         bitmapdirs="$i/bitmaps:$bitmapdirs"
2735       fi
2736       if test -d "$i/X11/bitmaps"; then
2737         bitmapdirs="$i/X11/bitmaps:$bitmapdirs"
2738       fi
2739     done
2740     bitmapdirs=`echo "$bitmapdirs" | sed s/.$//`
2741   fi
2742   test ! -z "$bitmapdirs" && AC_DEFINE_UNQUOTED(BITMAPDIR, "$bitmapdirs")
2743
2744   dnl Autodetect defines extracted from X config by xmkmf, e.g. NARROWPROTO
2745   AC_CHECKING(for X defines extracted by xmkmf)
2746   rm -fr conftestdir
2747   if mkdir conftestdir; then
2748     cd conftestdir
2749     cat > Imakefile <<'EOF'
2750 xetest:
2751         @echo ${PROTO_DEFINES} ${STD_DEFINES}
2752 EOF
2753     if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
2754       # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
2755       xmkmf_defines=`${MAKE-make} xetest 2>/dev/null | grep -v make`
2756     fi
2757     cd ..
2758     rm -fr conftestdir
2759     for word in $xmkmf_defines; do
2760       case "$word" in 
2761       -D__STDC__*) ;;
2762       -D* )
2763         sym=`echo '' $word | sed -e 's:^ *-D::' -e 's:=.*::'`
2764         case "$word" in
2765           -D*=* ) val=`echo '' $word | sed -e 's:^.*=::'` ;;
2766           *     ) val=1 ;;
2767         esac
2768 dnl Avoid re-AC_DEFINE-ing xmkmf symbols we've already defined above.
2769         if grep "^#define $sym " confdefs.h >/dev/null; then :; else
2770           if test "$val" = "1"
2771             then AC_DEFINE_UNQUOTED($sym)
2772             else AC_DEFINE_UNQUOTED($sym,$val)
2773           fi
2774         fi  ;;
2775       esac
2776     done
2777   fi
2778
2779   dnl make sure we can find Intrinsic.h
2780   AC_CHECK_HEADER(X11/Intrinsic.h, ,
2781    [AC_MSG_ERROR("Unable to find X11 header files.")])
2782
2783   dnl -lXt and -lX11 are required
2784   dnl Some broken systems require the magic "-b i486-linuxaout" flag
2785   AC_CHECK_LIB(X11, XOpenDisplay, have_lib_x11=yes)
2786   if test "$have_lib_x11" != "yes"; then
2787     AC_CHECK_LIB(X11, XGetFontProperty,
2788       ld_switch_x_site="-b i486-linuxaout $ld_switch_x_site",
2789       [AC_MSG_ERROR("Unable to find X11 libraries.")],
2790       -b i486-linuxaout)
2791   fi
2792   libs_x="-lX11"
2793   test "$extra_verbose" = "yes" && echo "    Setting libs_x to \"-lX11\""
2794
2795   dnl Autodetect -lXext
2796   AC_CHECK_LIB(Xext, XShapeSelectInput, XE_PREPEND(-lXext, libs_x))
2797
2798   dnl Require -lXt
2799   AC_CHECK_LIB(Xt, XtOpenDisplay, XE_PREPEND(-lXt, libs_x),
2800     AC_MSG_ERROR("Unable to find X11 libraries."))
2801
2802   AC_MSG_CHECKING(the version of X11 being used)
2803   AC_TRY_RUN([#include <X11/Intrinsic.h>
2804     int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }],
2805     [./conftest foobar; x11_release=$?],[x11_release=4],[x11_release=4])
2806   AC_MSG_RESULT(R${x11_release})
2807   AC_DEFINE_UNQUOTED(THIS_IS_X11R${x11_release})
2808
2809   if test "${x11_release}" = "4"; then
2810     case "$with_widgets" in
2811       "" | "no") with_widgets=no ;;
2812       *) XE_DIE("Widget support requires X11R5 or greater") ;;
2813     esac
2814   fi
2815
2816   AC_CHECK_FUNCS(XConvertCase)
2817
2818   AC_CHECK_HEADERS(X11/Xlocale.h)
2819
2820   dnl XFree86 has a non-standard prototype for this X11R6 function
2821   AC_CHECK_FUNCS(XRegisterIMInstantiateCallback)
2822   AC_MSG_CHECKING(for standard XRegisterIMInstantiateCallback prototype)
2823   AC_TRY_COMPILE([
2824 #define NeedFunctionPrototypes 1
2825 #include <X11/Xlib.h>
2826 extern Bool XRegisterIMInstantiateCallback(
2827    Display*, struct _XrmHashBucketRec*, char*, char*, XIMProc, XPointer*);
2828 ], [], 
2829   [AC_MSG_RESULT(yes)],
2830   [AC_MSG_RESULT(no)
2831    AC_DEFINE(XREGISTERIMINSTANTIATECALLBACK_NONSTANDARD_PROTOTYPE)])
2832
2833   dnl autodetect -lXmu
2834   test -z "$with_xmu" && { AC_CHECK_LIB(Xmu, XmuReadBitmapDataFromFile,
2835                            with_xmu=yes, with_xmu=no) }
2836   if test "$with_xmu" = "no"; then
2837     XE_ADD_OBJS(xmu.o)
2838   else
2839     XE_PREPEND(-lXmu, libs_x)
2840     AC_DEFINE(HAVE_XMU)
2841   fi
2842
2843   dnl Autodetect -lXbsd
2844   dnl #### Someone, please add a better function than main
2845   AC_CHECK_LIB(Xbsd, main, XE_PREPEND(-lXbsd, libs_x))
2846
2847   dnl Problem with the MIT distribution of X on AIX
2848   if test "$unexec" = "unexaix.o" -a "$x11_release" = "6"; then
2849     dnl X11R6 requires thread-safe code on AIX for some reason
2850     if test "$GCC" = "yes"; then
2851       XE_PREPEND(-mthreads, X_CFLAGS)
2852       XE_PREPEND(-mthreads, libs_x)
2853     else
2854       case "$CC" in
2855         "xlc" ) CC="xlc_r" ;;
2856         "xlC" ) CC="xlC_r" ;;
2857         "cc"  ) CC="cc_r" ;;
2858       esac
2859     fi
2860   fi
2861
2862 fi dnl $with_x11 = yes
2863
2864 if test "$with_msw" != "no"; then
2865   AC_CHECKING(for MS-Windows)
2866   AC_CHECK_LIB(gdi32,main,with_msw=yes)
2867   if test "$with_msw" = "yes"; then
2868     AC_DEFINE(HAVE_MS_WINDOWS)
2869
2870     dnl The net installer only works with MS-Windows currently
2871     if test "$with_netinstall" = "yes"; then
2872       XE_APPEND(netinstall, MAKE_SUBDIR)
2873       XE_APPEND(netinstall, SRC_SUBDIR_DEPS)
2874       XE_APPEND(netinstall, INSTALL_ARCH_DEP_SUBDIR)
2875     fi
2876
2877     install_pp="$blddir/lib-src/installexe.sh"
2878     XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lwinspool, libs_system)
2879     test "$with_dragndrop" != no && XE_APPEND(msw, dragndrop_proto)
2880     if test "$window_system" != x11; then
2881         window_system=msw
2882         test "$with_scrollbars" != "no" && with_scrollbars=msw \
2883             && XE_ADD_OBJS(scrollbar-msw.o)
2884         test "$with_menubars"   != "no" && with_menubars=msw \
2885             && XE_ADD_OBJS(menubar-msw.o)
2886         test "$with_toolbars"   != "no" && with_toolbars=msw \
2887             && XE_ADD_OBJS(toolbar-msw.o)
2888         test "$with_dialogs"   != "no" && with_dialogs=msw \
2889             && XE_ADD_OBJS(dialog-msw.o)
2890         test "$with_widgets"   != "no" && with_widgets=msw
2891     else
2892         test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-msw.o)
2893         test "$with_menubars"   != "no" && XE_ADD_OBJS(menubar-msw.o)
2894         test "$with_toolbars"   != "no" && XE_ADD_OBJS(toolbar-msw.o)
2895         test "$with_dialogs"    != "no" && XE_ADD_OBJS(dialog-msw.o)
2896     fi
2897     dnl check for our special version of select
2898     AC_TRY_RUN([#include <fcntl.h>
2899     int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }],
2900     [AC_DEFINE(HAVE_MSG_SELECT)])
2901     with_file_coding=yes
2902     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)
2903   fi
2904 fi
2905
2906 AC_SUBST(install_pp)
2907
2908 test -z "$window_system" && window_system="none"
2909
2910 dnl Test for features that require a window system - ANY window system
2911 if test "$window_system" = "none"; then
2912   for feature in menubars scrollbars toolbars dialogs dragndrop xface
2913   do
2914     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2915        AC_MSG_WARN([--with-$feature ignored:  Not valid without window system support])
2916     fi
2917     eval "with_${feature}=no"
2918   done
2919 else
2920   test -z "$with_toolbars" && with_toolbars=yes
2921 fi
2922
2923 dnl ### Test for features that require mswindows support - currently none
2924 dnl ### MS-Windows folks: add code here..... (martin)
2925 if test "$with_msw" != "yes"; then
2926   for feature in   MARTIN_IS_CLUELESS_ABOUT_MSW_FEATURES
2927   do
2928     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2929        AC_MSG_WARN([--with-$feature ignored:  Not valid without MS-Windows support])
2930     fi
2931     eval "with_${feature}=no"
2932   done
2933 else
2934   :
2935 fi
2936
2937 dnl Test for features that require X11 support
2938 if test "$with_x11" != "yes"; then
2939   dnl It ought to be reasonable to have no output device at all, and only use
2940   dnl XEmacs in --batch mode.
2941   dnl if test "$with_tty" = "no" ; then
2942   dnl   AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.])
2943   dnl fi
2944   for feature in tooltalk cde offix wmcommand xim xmu nas_sound
2945   do
2946     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2947        AC_MSG_WARN([--with-$feature ignored:  Not valid without X support])
2948     fi
2949     eval "with_${feature}=no"
2950   done
2951 fi
2952
2953 dnl Balloon Help requires the Shape extension, not available everywhere,
2954 dnl for example not on AIX 4.3.
2955 if test "$with_x11" = "yes"; then
2956   AC_CHECK_HEADER(X11/extensions/shape.h, [
2957    AC_DEFINE(HAVE_BALLOON_HELP)
2958    XE_ADD_OBJS(balloon_help.o balloon-x.o)])
2959 fi
2960
2961 dnl FSF 19.29 has some bitmapdir stuff here.
2962 bitmapdir=
2963
2964 case "$window_system" in
2965   x11  ) HAVE_X_WINDOWS=yes; echo "  Using X11." ;;
2966   msw  ) HAVE_X_WINDOWS=no ; echo "  Using MS-Windows." ;;
2967   gtk  )
2968        HAVE_X_WINDOWS=no
2969        test "$with_gnome" = "yes" && echo "  Using GNOME."
2970        test "$with_gnome" = "no" && echo "  Using GTK."
2971        ;;
2972   none ) HAVE_X_WINDOWS=no ; echo "  Using no window system." ;;
2973 esac
2974
2975 case "$x_libraries" in *X11R4* )
2976   test "$opsys" = "hpux9"     && opsysfile="s/hpux9-x11r4.h"
2977   test "$opsys" = "hpux9-shr" && opsysfile="s/hpux9shxr4.h"
2978 esac
2979
2980 dnl Enable or disable proper handling of WM_COMMAND
2981 AC_CHECKING(for WM_COMMAND option);
2982 dnl if test "$with_wmcommand" = "yes"; then
2983 if test "$with_wmcommand" != "no"; then
2984   AC_DEFINE(HAVE_WMCOMMAND)
2985 fi
2986
2987 dnl Autodetect Xauth
2988 dnl -lXau is only used by gnuclient, so use a special variable for Xauth X libs
2989 test -z "$with_xauth" && test "$window_system" = "none" && with_xauth=no
2990 test -z "$with_xauth" && { AC_CHECK_HEADER(X11/Xauth.h,          ,with_xauth=no) }
2991 test -z "$with_xauth" && { AC_CHECK_LIB(Xau, XauGetAuthByAddr,[:],with_xauth=no) }
2992 test -z "$with_xauth" && with_xauth=yes
2993 if test "$with_xauth" = "yes"; then
2994   AC_DEFINE(HAVE_XAUTH)
2995   XE_SPACE(libs_xauth, $GTK_LIBS $X_EXTRA_LIBS -lXau $libs_x $X_PRE_LIBS)
2996 fi
2997 AC_SUBST(libs_xauth)
2998
2999 dnl This one is for the static initializeds variables in
3000 dnl offix.c, so that the thing is dumped after lastfile.o
3001 AC_SUBST(dnd_objs)
3002
3003 dnl Autodetect tooltalk
3004 if test "$with_tooltalk" != "no" ; then
3005   dnl autodetect the location of tt_c.h
3006   dnl tt_c.h might be in Tt or desktop include directories
3007   for dir in "" "Tt/" "desktop/" ; do
3008     AC_CHECK_HEADER(${dir}tt_c.h, tt_c_h_file="${dir}tt_c.h"; break)
3009   done
3010   if test -z "$tt_c_h_file"; then
3011     if test "$with_tooltalk" = "yes"; then
3012       USAGE_ERROR("Unable to find required tooltalk header files.")
3013     fi
3014     with_tooltalk=no
3015   fi
3016 fi
3017 if test "$with_tooltalk" != "no" ; then
3018   for extra_libs in "" "-lI18N -lce" "-lcxx"; do
3019     AC_CHECK_LIB(tt, tt_message_create,
3020       tt_libs="-ltt $extra_libs"; break, [:],$extra_libs)
3021   done
3022   if test -z "$tt_libs"; then
3023     if test "$with_tooltalk" = "yes"; then
3024       USAGE_ERROR("Unable to find required tooltalk libraries.")
3025     fi
3026     with_tooltalk=no
3027   fi
3028 fi
3029 test -z "$with_tooltalk" && with_tooltalk=yes
3030 if test "$with_tooltalk" = "yes"; then
3031   AC_DEFINE(TOOLTALK)
3032   AC_DEFINE_UNQUOTED(TT_C_H_FILE, "$tt_c_h_file")
3033   XE_PREPEND($tt_libs, libs_x)
3034   XE_ADD_OBJS(tooltalk.o)
3035 fi
3036
3037 dnl Autodetect CDE
3038 test -z "$with_cde" && { AC_CHECK_HEADER(Dt/Dt.h,               , with_cde=no) }
3039 test -z "$with_cde" && { AC_CHECK_LIB(DtSvc, DtDndDragStart, [:], with_cde=no) }
3040 test -z "$with_cde" && with_cde=yes
3041 if test "$with_dragndrop" = no; then
3042   AC_MSG_WARN([No CDE without generic Drag'n'Drop support])
3043   with_cde=no
3044 fi
3045 if test "$with_cde" = "yes" ; then
3046   AC_DEFINE(HAVE_CDE)
3047   XE_PREPEND(-lDtSvc, libs_x)
3048   XE_APPEND(CDE, dragndrop_proto)
3049   with_tooltalk=yes # CDE requires Tooltalk
3050   need_motif=yes    # CDE requires Motif
3051 fi
3052
3053 dnl Always compile OffiX unless --without-offix is given, no
3054 dnl X11 support is compiled in, no standard Xmu is available,
3055 dnl or dragndrop support is disabled
3056 dnl Because OffiX support currently loses when more than one display
3057 dnl is in use, we now disable it by default -slb 07/10/1998.
3058 test "$window_system" != "x11" && with_offix=no
3059 if test "$with_xmu" != yes -a "$with_x11" = yes; then
3060   AC_MSG_WARN([No OffiX without real Xmu support])
3061   with_offix=no
3062 fi
3063 if test "$with_dragndrop" = no; then
3064   AC_MSG_WARN([No OffiX without generic Drag'n'Drop support])
3065   with_offix=no
3066 fi
3067 if test "$with_cde" = yes; then
3068   AC_MSG_WARN([CDE already found, disabling OffiX support])
3069   with_offix=no
3070 fi
3071 test -z "$with_offix" && with_offix=no
3072 if test "$with_offix" = "yes"; then
3073   AC_DEFINE(HAVE_OFFIX_DND)
3074   XE_APPEND(offix.o, dnd_objs)
3075   XE_APPEND(OffiX, dragndrop_proto)
3076 fi
3077 if test "$with_gtk" = "yes"; then
3078    XE_APPEND(GTK, dragndrop_proto)
3079 fi
3080
3081 dnl Autodetect Drag'n'Drop support
3082 dnl always included if CDE, Offix, or MSWindows are defined
3083 if test "$with_dragndrop" != "no" ; then
3084   AC_MSG_CHECKING(if drag and drop API is needed)
3085   if test -n "$dragndrop_proto" ; then
3086     with_dragndrop=yes
3087     AC_MSG_RESULT([yes (${dragndrop_proto} )])
3088     AC_DEFINE(HAVE_DRAGNDROP)
3089     XE_APPEND(dragdrop.o, extra_objs)
3090   else
3091     with_dragndrop=no
3092     AC_MSG_RESULT(no)
3093   fi
3094 fi
3095
3096 dnl Autodetect LDAP
3097 AC_CHECKING(for LDAP)
3098 test -z "$with_ldap" && { AC_CHECK_HEADER(ldap.h, ,with_ldap=no) }
3099 test -z "$with_ldap" && { AC_CHECK_HEADER(lber.h, ,with_ldap=no) }
3100 if test "$with_ldap" != "no"; then
3101   AC_CHECK_LIB(ldap, ldap_search, with_ldap_nolber=yes, with_ldap_nolber=no)
3102   test "$with_ldap_nolber" = "no" && { AC_CHECK_LIB(ldap, ldap_open, with_ldap_lber=yes, with_ldap_lber=no, -llber) }
3103   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) }
3104   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) }
3105   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
3106 fi
3107 if test "$with_ldap" = "yes"; then
3108   AC_DEFINE(HAVE_LDAP)
3109   XE_ADD_OBJS(eldap.o)
3110   if test "$with_ldap_nolber" = "yes" ; then
3111     XE_PREPEND(-lldap, LIBS)
3112   else
3113     if test "$with_ldap_krb" = "yes" ; then
3114       XE_PREPEND(-lkrb, LIBS)
3115     fi
3116     if test "$with_ldap_krbdes" = "yes" ; then
3117       XE_PREPEND(-ldes, LIBS)
3118       XE_PREPEND(-lkrb, LIBS)
3119     fi
3120     XE_PREPEND(-llber, LIBS)
3121     XE_PREPEND(-lldap, LIBS)
3122   fi
3123   AC_CHECK_FUNCS(ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result)
3124 fi
3125
3126 dnl Autodetect PostgreSQL
3127 dnl On many Linux systems, PostgreSQL is packaged to be installed in /usr;
3128 dnl in this case, configure will easily detect it there.
3129 dnl
3130 dnl If PostgreSQL is installed into a different prefix,
3131 dnl (such as the default /usr/local/pgsql when building from source),
3132 dnl that prefix must be specified using the --site-prefixes flag.
3133 if test "$with_postgresql" != "no"; then
3134   AC_CHECKING(for PostgreSQL)
3135
3136 dnl Look for these standard header file locations, known to be used on Linux
3137   for header_dir in "" "pgsql/" "postgresql/"; do
3138     AC_CHECK_HEADER(${header_dir}libpq-fe.h,
3139                     libpq_fe_h_file=${header_dir}libpq-fe.h; break)
3140   done
3141
3142   test -n "$libpq_fe_h_file" && { AC_CHECK_LIB(pq,PQconnectdb,have_libpq=yes) }
3143
3144   if test -n "$libpq_fe_h_file" -a "$have_libpq" = "yes"; then
3145     with_postgresql=yes
3146     AC_DEFINE(HAVE_POSTGRESQL)
3147     AC_CHECK_LIB(pq,PQconnectStart, [
3148                  with_postgresqlv7=yes;
3149                  AC_DEFINE(HAVE_POSTGRESQLV7)])
3150     AC_DEFINE_UNQUOTED(LIBPQ_FE_H_FILE, "$libpq_fe_h_file")
3151     XE_PREPEND(-lpq, LIBS)
3152     XE_ADD_OBJS(postgresql.o)
3153   elif test "$with_postgresql" = "yes"; then
3154     XE_DIE("Required PostgreSQL support cannot be provided.  Check --site-prefixes.")
3155   fi
3156 fi
3157
3158 dnl ----------------------
3159 dnl Graphics libraries
3160 dnl ----------------------
3161
3162 if test "$window_system" != "none"; then
3163   AC_CHECKING(for graphics libraries)
3164
3165   dnl Autodetect Xpm
3166   xpm_problem=""
3167   if test -z "$with_xpm"; then
3168     AC_MSG_CHECKING(for Xpm - no older than 3.4f)
3169     xe_check_libs=-lXpm
3170     AC_TRY_RUN([#define XPM_NUMBERS
3171 #include <X11/xpm.h>
3172     int main(int c, char **v) {
3173     return c == 1 ? 0 :
3174       XpmIncludeVersion != XpmLibraryVersion() ? 1 :
3175       XpmIncludeVersion < 30406 ? 2 : 0 ;}],
3176     [./conftest dummy_arg; xpm_status=$?;
3177       if test "$xpm_status" = "0"; then
3178         with_xpm=yes;
3179       else
3180         with_xpm=no;
3181         if test "$xpm_status" = "1"; then
3182           xpm_problem="Xpm library version and header file version don't match!"
3183         elif test "$xpm_status" = "2"; then
3184           xpm_problem="Xpm library version is too old!"
3185         else
3186           xpm_problem="Internal xpm detection logic error!"
3187         fi
3188         echo "
3189 *** WARNING *** $xpm_problem
3190   I'm not touching that with a 10-foot pole!
3191   If you really want to use the installed version of Xpm, rerun
3192   configure and add '--with-xpm=yes', but don't blame me if XEmacs crashes!"
3193     fi],
3194     [with_xpm=no])
3195     xe_check_libs=
3196     AC_MSG_RESULT($with_xpm)
3197   fi
3198   if test "$with_xpm" = "yes"; then
3199     dnl #### This code assumes that if AC_CHECK_LIB fails,
3200     dnl #### then it will succeed if FOR_MSW is defined,
3201     dnl #### but doesn't actually verify this assumption.
3202     AC_DEFINE(HAVE_XPM)
3203     XE_PREPEND(-lXpm, libs_x)
3204     AC_MSG_CHECKING(for \"FOR_MSW\" xpm)
3205     xe_check_libs=-lXpm
3206     AC_TRY_LINK(, [XpmCreatePixmapFromData()],
3207     [xpm_for_msw=no],
3208     [xpm_for_msw=yes])
3209     xe_check_libs=
3210     AC_MSG_RESULT($xpm_for_msw)
3211     if test "$xpm_for_msw" = "yes"; then
3212       AC_DEFINE(FOR_MSW)
3213     fi
3214   fi
3215
3216   dnl Autodetect XFACE
3217   test -z "$with_xface" && { AC_CHECK_HEADER(compface.h,          ,with_xface=no) }
3218   test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) }
3219   test -z "$with_xface" && with_xface=yes
3220   if test "$with_xface" = "yes"; then
3221     AC_DEFINE(HAVE_XFACE)
3222     XE_PREPEND(-lcompface, libs_x)
3223   fi
3224
3225   dnl For a brief period we had the GIF code split out into a separate library,
3226   dnl but patent problems, etc. sort of squashed that idea.
3227   dnl We default to building with builtin GIF decoding
3228   if test "$with_gif" != "no"; then
3229     with_gif="yes"
3230     AC_DEFINE(HAVE_GIF)
3231     XE_ADD_OBJS(dgif_lib.o gif_io.o)
3232   fi
3233
3234   dnl Too many stupid linkers can't detect cascaded lib dependencies until runtime
3235   dnl So we always search for libz compression support.
3236   if test "$with_png $with_tiff" != "no no"; then
3237     AC_CHECK_LIB(c,  inflate, [:], [
3238     AC_CHECK_LIB(z,  inflate, [XE_PREPEND(-lz,  libs_x)],[
3239     AC_CHECK_LIB(gz, inflate, [XE_PREPEND(-lgz, libs_x)])])])
3240   fi
3241
3242   dnl autodetect JPEG
3243   test -z "$with_jpeg" && { AC_CHECK_HEADER(jpeglib.h,                    ,with_jpeg=no) }
3244   test -z "$with_jpeg" && { AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,[:],with_jpeg=no) }
3245   test -z "$with_jpeg" && with_jpeg=yes
3246   if test "$with_jpeg" = "yes"; then
3247     AC_DEFINE(HAVE_JPEG)
3248     XE_PREPEND(-ljpeg, libs_x)
3249   fi
3250
3251   dnl autodetect PNG
3252   png_problem=""
3253   test -z "$with_png" && { AC_CHECK_FUNC(pow,                  ,with_png=no) }
3254   test -z "$with_png" && { AC_CHECK_HEADER(png.h,              ,with_png=no) }
3255   test -z "$with_png" && { AC_CHECK_LIB(png, png_read_image,[:],with_png=no) }
3256   if test -z "$with_png"; then
3257     AC_MSG_CHECKING(for workable png version information)
3258     xe_check_libs="-lpng -lz"
3259     AC_TRY_RUN([#include <png.h>
3260     int main(int c, char **v) {
3261     if (c == 1) return 0;
3262     if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1;
3263     return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}],
3264     [./conftest dummy_arg; png_status=$?;
3265       if test "$png_status" = "0"; then
3266         with_png=yes;
3267       else
3268         with_png=no;
3269         if test "$png_status" = "1"; then
3270           png_problem="PNG library version and header file don't match!"
3271         elif test "$png_status" = "2"; then
3272           png_problem="PNG library version too old (pre 1.0.2)!"
3273         fi
3274         echo "
3275 *** WARNING *** $png_problem
3276   I'm not touching that with a 10-foot pole!
3277   If you really want to use the installed version of libPNG, rerun
3278   configure and add '--with-png=yes', but don't blame me if XEmacs crashes!"
3279     fi],
3280     [with_png=no])
3281     xe_check_libs=
3282     AC_MSG_RESULT($with_png)
3283   fi
3284   if test "$with_png" = "yes"; then
3285     AC_DEFINE(HAVE_PNG)
3286     XE_PREPEND(-lpng, libs_x)
3287   fi
3288
3289   dnl autodetect TIFF
3290   test -z "$with_tiff" && { AC_CHECK_HEADER(tiffio.h,            ,with_tiff=no) }
3291   test -z "$with_tiff" && { AC_CHECK_LIB(tiff, TIFFClientOpen,[:],with_tiff=no) }
3292   test -z "$with_tiff" && with_tiff=yes
3293   if test "$with_tiff" = "yes"; then
3294     AC_DEFINE(HAVE_TIFF)
3295     XE_PREPEND(-ltiff, libs_x)
3296   fi
3297 fi
3298
3299 dnl ----------------------
3300 dnl GTK-Specific Graphics libraries
3301 dnl ----------------------
3302
3303 if test "$with_gtk" = "yes"; then
3304   dnl Autodetect XFACE
3305   test -z "$with_xface" && { AC_CHECK_HEADER(compface.h,          ,with_xface=no) }
3306   test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) }
3307   test -z "$with_xface" && with_xface=yes
3308   if test "$with_xface" = "yes"; then
3309     AC_DEFINE(HAVE_XFACE)
3310     XE_PREPEND(-lcompface, libs_gtk)
3311   fi
3312 fi
3313
3314
3315 dnl ----------------------
3316 dnl X-Specific Graphics libraries
3317 dnl ----------------------
3318
3319 if test "$with_x11" = "yes"; then
3320
3321   AC_CHECKING(for X11 graphics libraries)
3322
3323   AC_CHECKING(for the Athena widgets)
3324
3325   dnl What in heck did the user actually want?
3326   case "$with_athena" in
3327     dnl This is the default, old fashioned flat Athena.
3328     "xaw" | "") athena_variant=Xaw      athena_3d=no  ;;
3329     "3d")       athena_variant=Xaw3d    athena_3d=yes ;;
3330     "next")     athena_variant=neXtaw   athena_3d=yes ;;
3331     "95")       athena_variant=Xaw95    athena_3d=yes ;;
3332     "xpm")      athena_variant=XawXpm   athena_3d=yes ;;
3333     *)          XE_DIE("Unknown Athena widget set \`$with_athena'. This should not happen.") ;;
3334   esac
3335
3336   dnl Search for the Athena library...
3337   if test "$athena_3d" = "no"; then
3338     AC_CHECK_LIB($athena_variant, XawScrollbarSetThumb,
3339       [
3340         dnl Must not be a 3d library...
3341         AC_CHECK_LIB($athena_variant, threeDClassRec,
3342           AC_MSG_WARN("Could not find a non-3d Athena widget library."),
3343           athena_lib=$athena_variant)
3344       ],
3345       AC_MSG_WARN("Could not find an Athena widget library."))
3346   else
3347     dnl The real configuration, need 3d library
3348     AC_CHECK_LIB($athena_variant, threeDClassRec, athena_lib=$athena_variant,
3349       dnl OK, couldn't find it with a proper name, try the standard Athena lib
3350       dnl If that is 3d, presume the user asked for what they have installed.
3351       AC_CHECK_LIB(Xaw, threeDClassRec,
3352         [
3353           athena_lib=Xaw;
3354           AC_MSG_WARN("Assuming that libXaw is actually $athena_variant.");
3355         ],
3356         AC_MSG_WARN("Could not find a 3d Athena widget library that looked like $athena_variant.")))
3357   fi
3358
3359   dnl Now we locate the Athena headers that we need.
3360   if test "$athena_3d" = "no"; then
3361     AC_CHECK_HEADER(X11/Xaw/ThreeD.h,
3362       AC_MSG_WARN("Could not find a non-3d Athena header set."),
3363       AC_CHECK_HEADER(X11/Xaw/XawInit.h,
3364         athena_h_path=X11/Xaw,
3365         AC_MSG_WARN("Could not find a non-3d Athena header set.")))
3366   else
3367     dnl The three-d Athena headers are so much more slippery.
3368     dnl Curse this `Lets replace standard libraries' thing that they did. :/
3369     AC_CHECK_HEADER(X11/$athena_variant/XawInit.h,
3370       AC_CHECK_HEADER(X11/$athena_variant/ThreeD.h,
3371         athena_h_path=X11/$athena_variant,))
3372
3373     dnl Is the variant specific header directory directly under include?
3374     if test -z "$athena_h_path"; then
3375       AC_CHECK_HEADER($athena_variant/XawInit.h,
3376         AC_CHECK_HEADER($athena_variant/ThreeD.h,
3377           athena_h_path=$athena_variant,))
3378     fi
3379
3380     dnl If we couldn't find the specific variant, try the generic Athena 3d headers
3381     if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
3382       AC_CHECK_HEADER(X11/Xaw3d/XawInit.h,
3383         AC_CHECK_HEADER(X11/Xaw3d/ThreeD.h,
3384           [
3385             AC_MSG_WARN("Assuming that X11/Xaw3d headers are suitable for $athena_variant.")
3386             athena_h_path=X11/Xaw3d
3387           ],))
3388     fi
3389
3390     dnl Also generic 3d headers directly under include dir
3391     if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
3392       AC_CHECK_HEADER(Xaw3d/XawInit.h,
3393         AC_CHECK_HEADER(Xaw3d/ThreeD.h,
3394           [
3395             AC_MSG_WARN("Assuming that Xaw3d headers are suitable for $athena_variant.")
3396             athena_h_path=Xaw3d
3397           ],))
3398     fi
3399
3400     dnl If nothing yet found, see if Xaw is a 3d header set...
3401     dnl We AC_MSG_WARN if we fail because I am all out of ideas...
3402     if test -z "$athena_h_path"; then
3403       AC_CHECK_HEADER(X11/Xaw/ThreeD.h,
3404         [
3405           AC_MSG_WARN("Assuming that X11/Xaw headers are suitable for $athena_variant.")
3406           athena_h_path=X11/Xaw
3407         ],
3408         AC_MSG_WARN("Could not find a suitable 3d Athena header set."))
3409     fi
3410   fi
3411
3412   dnl Do we actually have a usable Athena widget set? Please?
3413   if test -n "$athena_lib" -a -n "$athena_h_path"; then
3414     have_xaw=yes
3415   else
3416     have_xaw=no
3417   fi
3418
3419   dnl autodetect Motif - but only add to libs_x later (if necessary)
3420   AC_CHECK_HEADER(Xm/Xm.h,
3421    [AC_CHECK_LIB(Xm, XmStringFree, have_motif=yes, have_motif=no)],
3422    have_motif=no)
3423
3424   if test "$have_motif" = "yes"; then
3425     dnl autodetect lesstif
3426     AC_MSG_CHECKING(for Lesstif)
3427     AC_EGREP_CPP(yes,
3428 [#include <Xm/Xm.h>
3429 #ifdef LESSTIF_VERSION
3430 yes
3431 #endif
3432 ], have_lesstif=yes, have_lesstif=no)
3433   AC_MSG_RESULT($have_lesstif)
3434   fi
3435
3436 fi dnl "$with_x11" = "yes"
3437
3438 dnl Finish ensuring that we have values for the various toolkit items.
3439 dnl Not all toolkits support all widgets
3440 dnl if Motif is available we use it for the dialog boxes.
3441
3442 case "$with_menubars" in "" | "yes" | "athena" )
3443   with_menubars="lucid" ;;
3444 esac
3445 case "$with_dialogs" in "" | "yes" | "lucid" )
3446   if   test "$have_motif"     = "yes"; then with_dialogs="motif"
3447   elif test "$have_xaw"       = "yes"; then with_dialogs="athena"
3448   else with_dialogs=no
3449   fi ;;
3450 esac
3451 case "$with_scrollbars" in "" | "yes" )
3452   with_scrollbars="lucid" ;;
3453 esac
3454 case "$with_widgets" in "" | "yes" | "lucid")
3455   if   test "$have_motif" = "yes"; then with_widgets="motif"
3456   elif test "$have_xaw"   = "yes"; then with_widgets="athena"
3457   else with_widgets=no
3458   fi ;;
3459 esac
3460
3461 all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars $with_widgets"
3462
3463 case "$all_widgets" in
3464   *athena* )
3465     if test "$have_xaw" != "yes"; then
3466       XE_DIE("Could not find a suitable Athena library to build with.")
3467     fi
3468
3469     dnl Add the Lucid widget Athena code
3470     XE_APPEND(lwlib-Xaw.o, lwlib_objs)
3471
3472     dnl Add the Athena widget library we located earlier
3473     XE_PREPEND(-l$athena_lib, libs_x)
3474
3475     dnl Tell lwlib where to find the Athena header files.
3476     dnl Many people have tried to create a `smart' way of doing this,
3477     dnl but all have failed.  Before changing the following ugly definitions,
3478     dnl consult the veterans of many a battle.
3479     AC_DEFINE_UNQUOTED(ATHENA_Scrollbar_h_,"$athena_h_path/Scrollbar.h")
3480     AC_DEFINE_UNQUOTED(ATHENA_Dialog_h_,"$athena_h_path/Dialog.h")
3481     AC_DEFINE_UNQUOTED(ATHENA_Form_h_,"$athena_h_path/Form.h")
3482     AC_DEFINE_UNQUOTED(ATHENA_Command_h_,"$athena_h_path/Command.h")
3483     AC_DEFINE_UNQUOTED(ATHENA_Label_h_,"$athena_h_path/Label.h")
3484     AC_DEFINE_UNQUOTED(ATHENA_LabelP_h_,"$athena_h_path/LabelP.h")
3485     AC_DEFINE_UNQUOTED(ATHENA_Toggle_h_,"$athena_h_path/Toggle.h")
3486     AC_DEFINE_UNQUOTED(ATHENA_ToggleP_h_,"$athena_h_path/ToggleP.h")
3487     AC_DEFINE_UNQUOTED(ATHENA_AsciiText_h_,"$athena_h_path/AsciiText.h")
3488     AC_DEFINE_UNQUOTED(ATHENA_XawInit_h_,"$athena_h_path/XawInit.h")
3489
3490     AC_DEFINE(LWLIB_USES_ATHENA)
3491     AC_DEFINE(NEED_ATHENA)
3492     need_athena="yes"
3493
3494     if test "$athena_3d" = "yes"; then
3495       AC_DEFINE(HAVE_ATHENA_3D)
3496     fi
3497   ;;
3498 esac
3499
3500 case "$all_widgets" in *motif* )
3501   AC_DEFINE(LWLIB_USES_MOTIF)
3502   AC_DEFINE(NEED_MOTIF)
3503   XE_APPEND(lwlib-Xm.o, lwlib_objs)
3504   need_motif=yes ;;
3505 esac
3506
3507 test "$with_menubars"   = "lucid" && XE_APPEND(xlwmenu.o, lwlib_objs)
3508 test "$with_menubars"   = "motif" && XE_APPEND(xlwmenu.o, lwlib_objs)
3509 test "$with_scrollbars" = "lucid" && XE_APPEND(xlwscrollbar.o, lwlib_objs)
3510 test "$with_widgets"   != "no" && test "$with_widgets" != "msw" && \
3511         XE_APPEND(xlwtabs.o xlwgcs.o, lwlib_objs)
3512 case "$with_widgets" in athena* )
3513         XE_APPEND(xlwradio.o xlwcheckbox.o xlwgauge.o, lwlib_objs);;
3514 esac
3515 case "$all_widgets" in *lucid* )
3516   AC_DEFINE(NEED_LUCID)
3517   XE_APPEND(lwlib-Xlw.o, lwlib_objs) ;;
3518 esac
3519
3520 AC_SUBST(lwlib_objs)
3521
3522 test "$with_scrollbars" = "athena" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA)
3523 test "$with_dialogs"    = "athena" && AC_DEFINE(LWLIB_DIALOGS_ATHENA)
3524
3525 if test "$athena_3d" = "yes"; then
3526   test "$with_scrollbars" = "athena" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA3D)
3527   test "$with_dialogs"    = "athena" && AC_DEFINE(LWLIB_DIALOGS_ATHENA3D)
3528 fi
3529
3530 case "$with_widgets" in athena* ) AC_DEFINE(LWLIB_WIDGETS_ATHENA);; esac
3531 test "$with_widgets" != "no" && test "$with_widgets" != "msw" && \
3532         AC_DEFINE(LWLIB_TABS_LUCID)
3533
3534 test "$with_menubars"   != "no"    && AC_DEFINE(HAVE_MENUBARS)
3535 test "$with_scrollbars" != "no"    && AC_DEFINE(HAVE_SCROLLBARS)
3536 test "$with_dialogs"    != "no"    && AC_DEFINE(HAVE_DIALOGS)
3537 test "$with_toolbars"   != "no"    && AC_DEFINE(HAVE_TOOLBARS)
3538 test "$with_widgets"    != "no"    && AC_DEFINE(HAVE_WIDGETS)
3539
3540 test "$with_menubars"   = "lucid"  && AC_DEFINE(LWLIB_MENUBARS_LUCID)
3541 test "$with_scrollbars" = "lucid"  && AC_DEFINE(LWLIB_SCROLLBARS_LUCID)
3542
3543 test "$with_menubars"   = "motif"  && AC_DEFINE(LWLIB_MENUBARS_MOTIF)
3544 test "$with_scrollbars" = "motif"  && AC_DEFINE(LWLIB_SCROLLBARS_MOTIF)
3545 test "$with_dialogs"    = "motif"  && AC_DEFINE(LWLIB_DIALOGS_MOTIF)
3546 test "$with_widgets"    = "motif"  && AC_DEFINE(LWLIB_WIDGETS_MOTIF)
3547
3548 test "$with_menubars"   != "no"    && XE_ADD_OBJS(menubar.o)
3549 test "$with_scrollbars" != "no"    && XE_ADD_OBJS(scrollbar.o)
3550 test "$with_dialogs"    != "no"    && XE_ADD_OBJS(dialog.o)
3551 test "$with_toolbars"   != "no"    && XE_ADD_OBJS(toolbar.o)
3552
3553 if test "$with_gtk" = "yes"; then
3554   test "$with_menubars"   != "no"      && XE_ADD_OBJS(menubar-gtk.o)
3555   test "$with_scrollbars" != "no"      && XE_ADD_OBJS(scrollbar-gtk.o)
3556   test "$with_dialogs"    != "no"      && XE_ADD_OBJS(dialog-gtk.o)
3557   test "$with_toolbars"   != "no"      && XE_ADD_OBJS(toolbar-gtk.o)
3558   test "$all_widgets" != "no no no no no" && XE_ADD_OBJS(gui-gtk.o)
3559 fi
3560
3561 if test "$with_x11" = "yes"; then
3562   test "$with_menubars"   != "no"  && XE_ADD_OBJS(menubar-x.o)
3563   test "$with_scrollbars" != "no"  && XE_ADD_OBJS(scrollbar-x.o)
3564   test "$with_dialogs"    != "no"  && XE_ADD_OBJS(dialog-x.o)
3565   test "$with_toolbars"   != "no"  && XE_ADD_OBJS(toolbar-x.o)
3566   test "$all_widgets" != "no no no no no" && XE_ADD_OBJS(gui-x.o)
3567 fi
3568
3569 dnl ----------------------
3570 dnl Mule-dependent options
3571 dnl ----------------------
3572
3573 test -z "$with_mule" && with_mule=no
3574 test -z "$with_file_coding" && with_file_coding=no
3575
3576 dnl if test "$with_mule" = "yes" && test ! -d "$srcdir/lisp/mule"; then
3577 dnl     echo "Attempt to Build with Mule without Mule/Lisp"
3578 dnl     echo "Please install the XEmacs/Mule tarball or"
3579 dnl     echo "rerun configure with --with-mule=no"
3580 dnl     exit 1
3581 dnl fi
3582
3583 if test "$with_file_coding" = "yes" && test "$with_mule" = "no"; then
3584   AC_DEFINE(FILE_CODING)
3585   XE_ADD_OBJS(file-coding.o)
3586 fi
3587
3588 if test "$with_mule" = "yes" ; then
3589   AC_CHECKING(for Mule-related features)
3590   AC_DEFINE(MULE)
3591   AC_DEFINE(FILE_CODING)
3592   XE_ADD_OBJS(mule.o mule-ccl.o mule-charset.o)
3593   if test "$with_utf_2000" = "yes" && test "$with_text_coding" = "yes"; then
3594     AC_DEFINE(TEXT_CODING)
3595     XE_ADD_OBJS(text-coding.o)
3596   else
3597     XE_ADD_OBJS(file-coding.o)
3598   fi
3599   dnl Use -lintl to get internationalized strerror for Mule
3600   AC_CHECK_HEADERS(libintl.h)
3601   AC_CHECK_LIB(intl, strerror)
3602
3603   if test "$with_utf_2000" = "yes" ; then
3604     AC_DEFINE(CHAR_IS_UCS4)
3605     AC_DEFINE(UTF2000)
3606   fi
3607
3608   AC_CHECKING(for Mule input methods)
3609   dnl Do we have the XmIm* routines?  And if so, do we want to use them?
3610   dnl XIM seems to be flaky except on Solaris...
3611   dnl test -z "$with_xim" -a "$opsys" != "sol2" && with_xim=no
3612   case "$with_xim" in "" | "yes" )
3613     AC_CHECKING(for XIM)
3614     AC_CHECK_LIB(X11, XOpenIM, with_xim=xlib, with_xim=no)
3615     dnl XIM + Lesstif is not (yet?) usable
3616     if test "$have_motif $have_lesstif" = "yes no"; then
3617       AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif)
3618     fi ;;
3619   esac
3620   if test "$with_xim" != "no"; then
3621     AC_DEFINE(HAVE_XIM)
3622     if test "$with_xim" = "xlib"; then
3623       AC_DEFINE(XIM_XLIB)
3624       XE_ADD_OBJS(input-method-xlib.o)
3625     fi
3626     if test "$with_xim" = "motif"; then
3627       AC_DEFINE(XIM_MOTIF)
3628       need_motif=yes
3629       XE_ADD_OBJS(input-method-motif.o)
3630     fi
3631     if test "$with_xim" = "motif"; then
3632       with_xfs=no
3633     fi
3634   fi
3635
3636   dnl "with_xfs" = "yes"
3637   if test "$with_xfs" = "yes" ; then
3638     AC_CHECKING(for XFontSet)
3639     AC_CHECK_LIB(X11, XmbDrawString, [:], with_xfs=no)
3640     if test "$with_xfs" = "yes" && test "$with_menubars" = "lucid"; then
3641       AC_DEFINE(USE_XFONTSET)
3642       if test "$with_xim" = "no" ; then
3643         XE_ADD_OBJS(input-method-xlib.o)
3644       fi
3645     fi
3646   fi dnl with_xfs
3647
3648   dnl Autodetect WNN
3649   test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
3650   test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/jllib.h, ,with_wnn=no) }
3651   dnl gcc 2.97 fixincludes breaks inclusion of wnn/commonhd.h
3652   test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/commonhd.h, ,with_wnn=no) }
3653   dnl Detour to find crypt
3654   if test "$with_wnn" != "no"; then
3655     AC_CHECK_FUNCS(crypt)
3656     test "$ac_cv_func_crypt" != "yes" && { AC_CHECK_LIB(crypt, crypt) }
3657   fi
3658   dnl Back to our regularly scheduled wnn hunting
3659   if test -z "$with_wnn" -o "$with_wnn" = "yes"; then
3660     AC_CHECK_LIB(wnn,jl_dic_list_e,libwnn=wnn,
3661       AC_CHECK_LIB(wnn4,jl_dic_list_e,libwnn=wnn4,
3662         AC_CHECK_LIB(wnn6,jl_dic_list_e,libwnn=wnn6,
3663           AC_CHECK_LIB(wnn6_fromsrc,dic_list_e,libwnn=wnn6_fromsrc,with_wnn=no))))
3664   fi
3665   test -z "$with_wnn" && with_wnn=yes
3666   if test "$with_wnn" = "yes"; then
3667     AC_DEFINE(HAVE_WNN)
3668     XE_PREPEND(-l$libwnn, libs_x)
3669     XE_ADD_OBJS(mule-wnnfns.o)
3670     if test "$with_wnn6" != "no"; then
3671       AC_CHECK_LIB($libwnn, jl_fi_dic_list, with_wnn6=yes)
3672       test "$with_wnn6" = "yes" && AC_DEFINE(WNN6)
3673     fi
3674   fi
3675
3676   dnl Autodetect canna
3677   canna_includes_found=no
3678   if test "$with_canna" != "no"; then
3679     AC_CHECK_HEADER(canna/jrkanji.h,canna_includes_found=yes)
3680   fi
3681   if test "$canna_includes_found" = "no" -a "$with_canna" != "no" -a \
3682       -d "/usr/local/canna/include"; then
3683     save_c_switch_site="$c_switch_site"
3684     c_switch_site="$c_switch_site -I/usr/local/canna/include"
3685     AC_CHECK_HEADER(canna/jrkanji.h,canna_includes_found=yes)
3686     if test "$canna_includes_found" != "yes"; then
3687       c_switch_site="$save_c_switch_site"
3688       with_canna="no"
3689     fi
3690   fi
3691
3692   test -z "$with_canna" && { AC_CHECK_HEADER(canna/RK.h,         , with_canna=no) }
3693   test -z "$with_canna" && { AC_CHECK_LIB(RKC, RkBgnBun,       [:],with_canna=no) }
3694   test -z "$with_canna" && { AC_CHECK_LIB(canna,jrKanjiControl,[:],with_canna=no) }
3695   test -z "$with_canna" && with_canna=yes
3696   if test "$with_canna" = "yes"; then
3697     AC_DEFINE(HAVE_CANNA)
3698     XE_PREPEND(-lcanna -lRKC, libs_x)
3699     XE_ADD_OBJS(mule-canna.o)
3700   fi
3701
3702 else dnl "$with_mule" = "no"
3703   for feature in xim canna wnn; do
3704     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
3705       AC_MSG_WARN("--with-${feature} ignored:  Not valid without Mule support")
3706     fi
3707     eval "with_${feature}=no"
3708   done
3709 fi dnl with_mule
3710
3711
3712 dnl At this point, we know whether we need the motif lib or not.
3713 if test "$need_motif" = "yes" ; then
3714   XE_PREPEND(-lXm, libs_x)
3715   dnl AIX needs the following library for use with Motif
3716   AC_CHECK_LIB(i18n, layout_object_getvalue, [XE_PREPEND(-li18n, libs_x)])
3717   XE_COMPUTE_RUNPATH()
3718 fi
3719
3720 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)
3721
3722 dnl ----------------------------------------------------------------
3723 dnl Check for PTY support functions.
3724 dnl ----------------------------------------------------------------
3725
3726 dnl There is no "standard" pty allocation method.  Every system is different.
3727 dnl  getpt()  is the preferred pty allocation method on glibc systems.
3728 dnl _getpty() is the preferred pty allocation method on SGI systems.
3729 dnl grantpt(), unlockpt(), ptsname() are defined by Unix98.
3730 AC_CHECK_FUNCS(getpt _getpty grantpt unlockpt ptsname killpg tcgetpgrp)
3731
3732 dnl openpty() is the preferred pty allocation method on BSD and Tru64 systems.
3733 dnl openpty() might be declared in:
3734 dnl - pty.h (Tru64 or Linux)
3735 dnl - libutil.h (FreeBSD)
3736 dnl - util.h (NetBSD)
3737 AC_CHECK_FUNC(openpty, have_openpty=yes, [
3738   AC_CHECK_LIB(util, openpty, have_openpty=yes need_libutil=yes)])
3739 if test "$have_openpty" = "yes"; then
3740   AC_DEFINE(HAVE_OPENPTY)
3741   AC_CHECK_HEADERS(pty.h libutil.h util.h, break)
3742   test "$need_libutil" = "yes" && XE_APPEND(-lutil, libs_system)
3743 fi
3744
3745 dnl Check for STREAM support functions.
3746 dnl Confusingly, "str" means both "string" and "SysV Streams".
3747 AC_CHECK_HEADERS(stropts.h)
3748 if test "$ac_cv_header_stropts_h" = "yes"; then
3749   AC_CHECK_FUNCS(isastream)
3750   AC_CHECK_HEADERS(strtio.h) dnl TIOCSIGNAL
3751 fi
3752
3753 dnl Use our own realpath always.
3754 XE_ADD_OBJS(realpath.o)
3755
3756 dnl Check whether the system provides getloadavg().
3757 AC_CHECK_FUNCS(getloadavg)
3758
3759 if test "$ac_cv_func_getloadavg" = "yes"; then
3760   dnl Solaris 8 declares getloadavg() in <sys/loadavg.h>.
3761   dnl glibc 2.2 declares getloadavg() in <stdlib.h>...
3762   dnl   ...if we #define _GNU_SOURCE, which we do.
3763   AC_CHECK_HEADERS(sys/loadavg.h)
3764 else
3765   dnl We define our own getloadavg() using lower level functions.
3766   XE_ADD_OBJS(getloadavg.o)
3767
3768   dnl Used by getloadavg() - does not require root priveleges
3769   AC_CHECK_LIB(kstat, kstat_open)
3770   AC_CHECK_HEADERS(kstat.h)
3771
3772   dnl Another way to get the load average
3773   AC_CHECK_LIB(kvm, kvm_read)
3774 fi
3775
3776 dnl If netdb.h does not declare h_errno, we must declare it by hand.
3777 AC_MSG_CHECKING(whether netdb declares h_errno)
3778 AC_TRY_LINK([#include <netdb.h>],
3779   [return h_errno;],
3780   [AC_MSG_RESULT(yes)
3781    AC_DEFINE(HAVE_H_ERRNO)],
3782   [AC_MSG_RESULT(no)])
3783
3784 AC_MSG_CHECKING(for sigsetjmp)
3785 AC_TRY_COMPILE([#include <setjmp.h>],
3786         [sigjmp_buf bar; sigsetjmp (bar, 0);],
3787   [AC_MSG_RESULT(yes)
3788    AC_DEFINE(HAVE_SIGSETJMP)],
3789   [AC_MSG_RESULT(no)])
3790
3791 AC_MSG_CHECKING(whether localtime caches TZ)
3792 AC_CACHE_VAL(emacs_cv_localtime_cache,
3793 [if test "$ac_cv_func_tzset" = "yes"; then
3794 AC_TRY_RUN([#include <time.h>
3795 #if STDC_HEADERS
3796 # include <stdlib.h>
3797 #endif
3798 extern char **environ;
3799 unset_TZ ()
3800 {
3801   char **from, **to;
3802   for (to = from = environ; (*to = *from); from++)
3803     if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
3804       to++;
3805 }
3806 char TZ_GMT0[] = "TZ=GMT0";
3807 char TZ_PST8[] = "TZ=PST8";
3808 main()
3809 {
3810   time_t now = time ((time_t *) 0);
3811   int hour_GMT0, hour_unset;
3812   if (putenv (TZ_GMT0) != 0)
3813     exit (1);
3814   hour_GMT0 = localtime (&now)->tm_hour;
3815   unset_TZ ();
3816   hour_unset = localtime (&now)->tm_hour;
3817   if (putenv (TZ_PST8) != 0)
3818     exit (1);
3819   if (localtime (&now)->tm_hour == hour_GMT0)
3820     exit (1);
3821   unset_TZ ();
3822   if (localtime (&now)->tm_hour != hour_unset)
3823     exit (1);
3824   exit (0);
3825 }], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
3826 [# If we have tzset, assume the worst when cross-compiling.
3827 emacs_cv_localtime_cache=yes])
3828 else
3829         # If we lack tzset, report that localtime does not cache TZ,
3830         # since we can't invalidate the cache if we don't have tzset.
3831         emacs_cv_localtime_cache=no
3832 fi],[:])dnl
3833 AC_MSG_RESULT($emacs_cv_localtime_cache)
3834 if test $emacs_cv_localtime_cache = yes; then
3835   AC_DEFINE(LOCALTIME_CACHE)
3836 fi
3837
3838 if test "$HAVE_TIMEVAL" = "yes"; then
3839 AC_MSG_CHECKING(whether gettimeofday accepts one or two arguments)
3840 AC_TRY_LINK([
3841 #ifdef TIME_WITH_SYS_TIME
3842 #include <sys/time.h>
3843 #include <time.h>
3844 #else
3845 #ifdef HAVE_SYS_TIME_H
3846 #include <sys/time.h>
3847 #else
3848 #include <time.h>
3849 #endif
3850 #endif
3851   ],
3852   [
3853   struct timeval time;
3854   gettimeofday (&time, 0);
3855 ],
3856   [AC_MSG_RESULT(two)],
3857   [AC_MSG_RESULT(one)
3858    AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)])
3859 fi
3860
3861
3862 AC_C_INLINE
3863 test "$ac_cv_c_inline" != "no" -a "$GCC" = "yes" && XE_ADD_OBJS(inline.o)
3864
3865 dnl HP-UX has a working alloca in libPW.
3866 dnl case "${GCC}${opsys}" in hpux* )
3867 dnl  AC_CHECK_FUNC(alloca, [:], [AC_CHECK_LIB(PW, alloca)])
3868 dnl esac
3869
3870 dnl AC_FUNC_ALLOCA doesn't know about DEC C's #pragma intrinsic(alloca)
3871 if test "$__DECC" != "yes"; then
3872   AC_FUNC_ALLOCA
3873   test -n "$ALLOCA" && XE_ADD_OBJS($ALLOCA)
3874 fi
3875
3876 dnl Check whether vfork exists and works correctly. (This does more
3877 dnl than just check for its existence.) If so, it defines HAVE_VFORK_H.
3878 dnl If not, it defines vfork to be fork.
3879 AC_FUNC_VFORK
3880
3881 dnl Check whether strcoll exists and works correctly. (This does more
3882 dnl than just check for its existence.) If so, it defines HAVE_STRCOLL.
3883 AC_FUNC_STRCOLL
3884
3885 dnl If `getpgrp' takes no argument (the POSIX.1 version), define
3886 dnl `GETPGRP_VOID'.  Otherwise, it is the BSD version, which takes a
3887 dnl process ID as an argument.
3888 AC_CHECK_FUNCS(getpgrp)
3889 AC_FUNC_GETPGRP
3890
3891 dnl We used to call AC_FUNC_MMAP here
3892 dnl Instead we now use following, suggested by Neal Becker
3893 AC_MSG_CHECKING(for working mmap)
3894 case "$opsys" in ultrix* ) have_mmap=no ;; *)
3895 AC_TRY_RUN([#include <stdio.h>
3896 #include <unistd.h>
3897 #include <fcntl.h>
3898 #include <sys/mman.h>
3899
3900 #ifndef MAP_VARIABLE
3901 #define MAP_VARIABLE 0
3902 #endif
3903
3904 #ifndef MAP_FAILED
3905 #define MAP_FAILED -1
3906 #endif
3907
3908 int main (int argc, char *argv[])
3909 {
3910   int fd = -1;
3911   caddr_t p;
3912 #ifndef MAP_ANONYMOUS
3913   fd = open ("/dev/zero", O_RDWR);
3914   if (fd < 0)
3915     return 1;
3916 #define MAP_ANONYMOUS 0
3917 #endif
3918   if (mmap(0, 1024, PROT_READ | PROT_WRITE,
3919            MAP_PRIVATE | MAP_VARIABLE | MAP_ANONYMOUS,
3920            fd, 0) != (void *) MAP_FAILED)
3921     return 0;
3922   perror ("conftest: mmap failed");
3923   return 1;
3924 }], have_mmap=yes, have_mmap=no) ;;
3925 esac
3926 AC_MSG_RESULT($have_mmap)
3927 test "$have_mmap" = "yes" && AC_DEFINE(HAVE_MMAP)
3928
3929 dnl By default we switch off rel-alloc on cygwin as it generally causes us grief
3930 case "$opsys" in cygwin*) 
3931         test "$rel_alloc" = "default" && rel_alloc=no ;;
3932 esac
3933 dnl rel_alloc requires either GNU malloc or system malloc with mmap
3934 dnl We only turn rel_alloc on by default if mmap is available.
3935 test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && rel_alloc=no
3936 if test "$rel_alloc $have_mmap" = "default yes"; then
3937   if test "$doug_lea_malloc" = "yes"; then
3938     dnl Check if malloc() calls mmap(), making rel_alloc pointless.
3939     AC_MSG_CHECKING(for M_MMAP_THRESHOLD)
3940     AC_TRY_COMPILE([#include <malloc.h>],[
3941 #ifndef M_MMAP_THRESHOLD
3942 #error No M_MMAP_THRESHOLD :-(
3943 !@+$%^&*_)(_ - unlikely to compile...
3944 #endif
3945 ], [rel_alloc=no; AC_MSG_RESULT(yes);], [rel_alloc=yes; AC_MSG_RESULT(no);])
3946   else
3947     rel_alloc=yes
3948   fi
3949 fi
3950 test "$rel_alloc" = "yes" && AC_DEFINE(REL_ALLOC)
3951
3952 dnl Check for terminal I/O variants
3953 dnl TERMIOS systems may have termio.h, but not vice-versa, I think.
3954 AC_CHECK_HEADER(termios.h,
3955   AC_DEFINE(HAVE_TERMIOS)
3956   AC_DEFINE(SIGNALS_VIA_CHARACTERS)
3957   AC_DEFINE(NO_TERMIO),
3958   [AC_CHECK_HEADER(termio.h, [AC_DEFINE(HAVE_TERMIO)])])
3959
3960
3961 dnl Check for Internet sockets.
3962 AC_CHECK_FUNC(socket,
3963  [AC_CHECK_HEADER(netinet/in.h,
3964    [AC_CHECK_HEADER(arpa/inet.h, [
3965   AC_DEFINE(HAVE_SOCKETS)
3966       AC_MSG_CHECKING("for sun_len member in struct sockaddr_un")
3967       AC_TRY_LINK([
3968 #include <sys/types.h>
3969 #include <sys/socket.h>
3970 #include <sys/un.h>
3971       ],
3972       [static struct sockaddr_un x; x.sun_len = 1;],
3973       [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOCKADDR_SUN_LEN)],
3974       [AC_MSG_RESULT(no)])
3975       AC_MSG_CHECKING("for ip_mreq struct in netinet/in.h")
3976       AC_TRY_LINK([
3977 #include <sys/types.h>
3978 #include <netinet/in.h>
3979       ],
3980       [static struct ip_mreq x;],
3981       [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_MULTICAST)],
3982       [AC_MSG_RESULT(no)])])])])
3983
3984 dnl Check for SYS V IPC. (Inferior to sockets.)
3985 AC_CHECK_FUNC(msgget,
3986   [AC_CHECK_HEADER(sys/ipc.h,
3987     [AC_CHECK_HEADER(sys/msg.h,
3988       [AC_DEFINE(HAVE_SYSVIPC)])])])
3989
3990 dnl Check for directory variants
3991 AC_CHECK_HEADER(dirent.h, [AC_DEFINE(SYSV_SYSTEM_DIR)],
3992   [AC_CHECK_HEADER(sys/dir.h, , [AC_DEFINE(NONSYSTEM_DIR_LIBRARY)])])
3993
3994 dnl Check for nlist.h
3995 AC_CHECK_HEADER(nlist.h, AC_DEFINE(NLIST_STRUCT), )
3996
3997 dnl Check for sound of various sorts.
3998
3999 dnl Autodetect native sound
4000 AC_CHECKING("for sound support")
4001 test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes
4002
4003 if test "$with_native_sound" != "no"; then
4004   dnl Maybe sound is already on include path...
4005   if test -n "$native_sound_lib"; then
4006     AC_CHECK_HEADER(multimedia/audio_device.h,
4007       [sound_found=yes sound_cflags=""
4008       XE_ADD_OBJS(sunplay.o)])
4009   fi
4010
4011   dnl Autodetect Sun native sound from SUNWaudmo package
4012   if test -z "$sound_found" -a -d "/usr/demo/SOUND"; then
4013     sound_found=yes
4014     XE_ADD_OBJS(sunplay.o)
4015     if test -d "/usr/demo/SOUND/include"
4016       then sound_cflags="-I/usr/demo/SOUND/include"
4017       else sound_cflags="-I/usr/demo/SOUND"
4018     fi
4019     if test -z "$native_sound_lib" ; then
4020       if test -r "/usr/demo/SOUND/lib/libaudio.a"
4021         then native_sound_lib="/usr/demo/SOUND/lib/libaudio.a"
4022         else native_sound_lib="/usr/demo/SOUND/libaudio.a"
4023       fi
4024     fi
4025   fi
4026
4027   dnl Check for SGI and HP native sound libs
4028   if test -z "$sound_found"; then
4029     case "$canonical" in
4030     *-sgi-* )
4031       if test -z "$native_sound_lib"; then
4032         AC_CHECK_LIB(audio, ALopenport, native_sound_lib="-laudio")
4033       fi
4034       if test -n "$native_sound_lib"; then
4035         sound_found=yes sound_cflags=""
4036         XE_ADD_OBJS(sgiplay.o)
4037       fi ;;
4038     hppa*-hp-hpux* )
4039       if test -z "$native_sound_lib"; then
4040         AC_CHECK_LIB(Alib, AOpenAudio, native_sound_lib="-lAlib")
4041       fi
4042       if test -n "$native_sound_lib"; then
4043         sound_found=yes
4044         XE_ADD_OBJS(hpplay.o)
4045         if test "$GCC" = "yes" # Kludge city
4046           then sound_cflags="-Dconst= -Dvolatile= -I/usr/audio/examples"
4047           else sound_cflags="+e -I/usr/audio/examples"
4048         fi
4049       fi ;;
4050     esac
4051   fi
4052
4053   dnl Check for Linux/BSD native sound
4054   if test -z "$sound_found"; then
4055     for dir in "machine" "sys" "linux"; do
4056       AC_CHECK_HEADER(${dir}/soundcard.h,
4057         sound_found=yes
4058        need_miscplay=yes
4059         XE_ADD_OBJS(linuxplay.o)
4060         [AC_DEFINE_UNQUOTED(SOUNDCARD_H_FILE, "${dir}/soundcard.h")]
4061         break)
4062     done
4063   fi
4064
4065   dnl Win32 Native uses native sound
4066   if test -z "$sound_found"; then
4067     if test "$with_msw" = "yes"; then
4068     sound_found=yes
4069     native_sound_lib=
4070     fi
4071   fi
4072
4073   test "$sound_found" = "yes" && with_native_sound=yes
4074 fi
4075
4076 if test "$with_native_sound" = "yes"; then
4077   AC_DEFINE(HAVE_NATIVE_SOUND)
4078   test -n "$native_sound_lib" && XE_PREPEND($native_sound_lib, LIBS)
4079 fi
4080
4081 dnl NAS Sound support
4082 if test "$with_nas_sound" != "no"; then
4083   AC_CHECK_HEADER(audio/audiolib.h, [
4084     AC_CHECK_LIB(audio, AuOpenServer, have_nas_sound=yes)])
4085   if test "$have_nas_sound" = "yes"; then
4086     with_nas_sound=yes
4087     AC_DEFINE(HAVE_NAS_SOUND)
4088     XE_ADD_OBJS(nas.o)
4089     XE_PREPEND(-laudio, libs_x)
4090     dnl If the nas library does not contain the error jump point,
4091     dnl then we force safer behavior.
4092     AC_EGREP_HEADER(AuXtErrorJump,audio/Xtutil.h,,[old_nas=yes; AC_DEFINE(NAS_NO_ERROR_JUMP)])
4093   else
4094     test "$with_nas_sound" = "yes" && \
4095       XE_DIE("Required NAS sound support cannot be provided.")
4096     with_nas_sound=no
4097   fi
4098 fi
4099
4100 dnl ESD Sound support
4101 if test "$with_esd_sound" != "no"; then
4102   AC_CHECK_PROG(have_esd_config, esd-config, yes, no)
4103   if test "$have_esd_config" = "yes"; then
4104     save_c_switch_site="$c_switch_site" save_LIBS="$LIBS"
4105     XE_APPEND(`esd-config --cflags`, c_switch_site)
4106     XE_PREPEND(`esd-config --libs`, LIBS)
4107     AC_CHECK_FUNC(esd_play_stream,
4108       have_esd_sound=yes,
4109       c_switch_site="$save_c_switch_site" LIBS="$save_LIBS")
4110   fi
4111
4112   if test "$have_esd_sound" = "yes"; then
4113     with_esd_sound=yes
4114     need_miscplay=yes
4115     XE_ADD_OBJS(esd.o)
4116     AC_DEFINE(HAVE_ESD_SOUND)
4117   else
4118     test "$with_esd_sound" = "yes" && \
4119       XE_DIE("Required ESD sound support cannot be provided.")
4120     with_esd_sound=no
4121   fi
4122 fi
4123
4124 test "$need_miscplay" = "yes" && XE_ADD_OBJS(miscplay.o)
4125
4126 dnl ---------------------
4127 dnl TTY-dependent options
4128 dnl ---------------------
4129
4130 test -z "$with_tty" && with_tty=yes
4131
4132 if test "$with_tty" = "yes"  ; then
4133   AC_CHECKING(for TTY-related features)
4134   AC_DEFINE(HAVE_TTY)
4135   XE_ADD_OBJS(console-tty.o device-tty.o event-tty.o frame-tty.o objects-tty.o redisplay-tty.o cm.o)
4136
4137   dnl Autodetect ncurses.
4138   if test -z "$with_ncurses"; then
4139     AC_CHECK_LIB(ncurses, tgetent, with_ncurses=yes, with_ncurses=no)
4140   fi
4141   if test "$with_ncurses" = "yes"; then
4142     AC_DEFINE(HAVE_NCURSES)
4143     AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h)
4144     AC_CHECK_HEADER(ncurses/term.h, term_h_file=ncurses/term.h)
4145     XE_ADD_OBJS(terminfo.o)
4146     XE_PREPEND(-lncurses, LIBS)
4147
4148     if test "$ac_cv_header_ncurses_curses_h" != "yes" ; then
4149       dnl Try again, and check for the bogus ncurses/ include bug.
4150       dnl (i.e. ncurses/curses.h bogusly includes <unctrl.h> instead of
4151       dnl <ncurses/unctrl.h>)
4152       save_c_switch_site="$c_switch_site"
4153       c_switch_site="$c_switch_site -I/usr/include/ncurses"
4154       AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h)
4155       if test "$ac_cv_header_ncurses_curses_h" = "yes"
4156         then AC_MSG_WARN("Your system has the bogus ncurses include bug.")
4157         else c_switch_site="$save_c_switch_site"
4158       fi
4159     fi
4160   else dnl "$with_ncurses" = "no"
4161     dnl Autodetect terminfo/-lcurses/-ltermlib/-ltermcap
4162     if test "$have_terminfo" = "yes"; then
4163       XE_ADD_OBJS(terminfo.o)
4164       if test -n "$libs_termcap"; then
4165         XE_PREPEND($libs_termcap, LIBS)
4166       else
4167         for lib in curses termlib termcap; do
4168           AC_CHECK_LIB($lib, tgetent, XE_PREPEND(-l${lib}, LIBS); break)
4169         done
4170       fi
4171     else dnl "$have_terminfo" = "no" && "with_ncurses" = "no"
4172       XE_ADD_OBJS(tparam.o)
4173       dnl The HP-UX curses library seems to have a badly broken version of select(2)
4174       dnl that makes "poll: interrupted system call" messages to appear and
4175       dnl Emacs suprocesses to hang (e.g. TeX compilation w/ AUCTeX) */
4176       case "$opsys" in *-hp-hpux* ) libs_termcap="-ltermcap" ;; esac
4177       if test -n "$libs_termcap"; then
4178         XE_PREPEND($libs_termcap, LIBS)
4179       else
4180         AC_CHECK_LIB(curses, tgetent, XE_PREPEND(-lcurses, LIBS),
4181           AC_CHECK_LIB(termcap, tgetent, XE_PREPEND(-ltermcap, LIBS),
4182             XE_ADD_OBJS(termcap.o)))
4183       fi
4184     fi
4185   fi
4186   AC_DEFINE_UNQUOTED(CURSES_H_FILE, "${curses_h_file-curses.h}")
4187   AC_DEFINE_UNQUOTED(TERM_H_FILE, "${term_h_file-term.h}")
4188
4189   dnl Autodetect gpm
4190   test -z "$with_gpm" && { AC_CHECK_HEADER(gpm.h, , with_gpm=no) }
4191   test -z "$with_gpm" && { AC_CHECK_LIB(gpm, Gpm_Open, with_gpm=yes, with_gpm=no) }
4192   if test "$with_gpm" = "yes"; then
4193     AC_DEFINE(HAVE_GPM)
4194     XE_ADD_OBJS(gpmevent.o)
4195     XE_PREPEND(-lgpm, LIBS)
4196   fi
4197
4198 else dnl "$with_tty" = "no"
4199   for feature in ncurses gpm; do
4200     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
4201       AC_MSG_WARN("--with-${feature} ignored:  Not valid without TTY support")
4202     fi
4203     eval "with_${feature}=no"
4204   done
4205 fi dnl with_tty
4206
4207 dnl Do we need event-unixoid.o ?
4208 test "$with_x11" = "yes" -o "$with_tty" = "yes" && XE_ADD_OBJS(event-unixoid.o)
4209
4210 dnl Database support
4211 dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support.
4212 dnl On FreeBSD, both DB and DBM are part of libc.
4213 dnl By default, we check for DBM support in libgdbm, then libc, then libdbm.
4214
4215 test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \
4216   != "no no no" && AC_CHECKING(for database support)
4217
4218 dnl Check for ndbm.h, required for either kind of DBM support.
4219 if test "$with_database_gdbm $with_database_dbm" != "no no"; then
4220   AC_CHECK_HEADER(ndbm.h, [:], [
4221     test "$with_database_gdbm" = "yes" -o \
4222          "$with_database_dbm"  = "yes" && \
4223       XE_DIE("Required DBM support cannot be provided.")
4224     with_database_gdbm=no with_database_dbm=no])
4225 fi
4226
4227 dnl Check for DBM support in libgdbm.
4228 if test "$with_database_gdbm" != "no"; then
4229   AC_CHECK_LIB(gdbm, dbm_open, [
4230    with_database_gdbm=yes with_database_dbm=no libdbm=-lgdbm], [
4231    if test "$with_database_gdbm" = "yes"; then
4232      XE_DIE("Required GNU DBM support cannot be provided.")
4233    fi
4234    with_database_gdbm=no])
4235 fi
4236
4237 dnl Check for DBM support in libc and libdbm.
4238 if test "$with_database_dbm" != "no"; then
4239   AC_CHECK_FUNC(dbm_open, [with_database_dbm=yes libdbm=], [
4240     AC_CHECK_LIB(dbm, dbm_open, [with_database_dbm=yes libdbm=-ldbm], [
4241       test "$with_database_dbm" = "yes" && \
4242         XE_DIE("Required DBM support cannot be provided.")
4243       with_database_dbm=no])])
4244 fi
4245
4246 dnl Tell make about the DBM support we detected.
4247 test -n "$libdbm" && XE_PREPEND("$libdbm", LIBS)
4248 test "$with_database_gdbm" = "yes" -o \
4249      "$with_database_dbm"  = "yes" && \
4250   AC_DEFINE(HAVE_DBM)
4251
4252 dnl Check for Berkeley DB.
4253 if test "$with_database_berkdb" != "no"; then
4254   AC_MSG_CHECKING(for Berkeley db.h)
4255   for header in "db/db.h" "db.h"; do
4256     AC_TRY_COMPILE([
4257 #include <stdlib.h>
4258 #if !(defined __GLIBC__ && __GLIBC_MINOR__ >= 1)
4259 #ifdef HAVE_INTTYPES_H
4260 #define __BIT_TYPES_DEFINED__
4261 #include <inttypes.h>
4262 typedef uint8_t  u_int8_t;
4263 typedef uint16_t u_int16_t;
4264 typedef uint32_t u_int32_t;
4265 #ifdef WE_DONT_NEED_QUADS
4266 typedef uint64_t u_int64_t;
4267 #endif
4268 #endif
4269 #endif
4270 #include <$header>
4271 ],[], db_h_file="$header"; break)
4272   done
4273   if test -z "$db_h_file"
4274   then AC_MSG_RESULT(no); with_database_berkdb=no
4275   else AC_MSG_RESULT($db_h_file)
4276   fi
4277
4278   if test "$with_database_berkdb" != "no"; then
4279     AC_MSG_CHECKING(for Berkeley DB version)
4280     AC_EGREP_CPP(yes,
4281 [#include <$db_h_file>
4282 #if DB_VERSION_MAJOR > 1
4283 yes
4284 #endif
4285 ], [AC_EGREP_CPP(yes,
4286 [#include <$db_h_file>
4287 #if DB_VERSION_MAJOR > 2
4288 yes
4289 #endif
4290 ], [AC_MSG_RESULT(3); dbfunc=db_create],[
4291     AC_MSG_RESULT(2); dbfunc=db_open])],[
4292     AC_MSG_RESULT(1); dbfunc=dbopen])
4293     AC_CHECK_FUNC($dbfunc,     with_database_berkdb=yes need_libdb=no, [
4294     AC_CHECK_LIB(db, $dbfunc,  with_database_berkdb=yes need_libdb=yes)])
4295   fi
4296
4297   if test "$with_database_berkdb" = "yes"; then
4298     AC_DEFINE_UNQUOTED(DB_H_FILE, "$db_h_file")
4299     AC_DEFINE(HAVE_BERKELEY_DB)
4300     test "$need_libdb" = "yes" && XE_PREPEND(-ldb, LIBS)
4301   else with_database_berkdb=no
4302   fi
4303 fi
4304
4305 if test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \
4306      != "no no no"; then
4307   AC_DEFINE(HAVE_DATABASE)
4308   XE_ADD_OBJS(database.o)
4309   if test "$with_utf_2000" = "yes"; then
4310     AC_DEFINE(HAVE_CHISE_CLIENT)
4311   fi
4312 fi
4313
4314 dnl Socks support
4315 if test "$with_socks" = "yes"; then
4316   AC_CHECK_LIB(socks, SOCKSinit)
4317   test -n "$ac_cv_lib_socks_SOCKSinit" && AC_DEFINE(HAVE_SOCKS)
4318 fi
4319
4320 dnl Usage tracking (undocumented and likely unused option)
4321 if test "$usage_tracking" = "yes"; then
4322   AC_DEFINE(USAGE_TRACKING)
4323   XE_PREPEND(-Bstatic -lut -Bdynamic, LIBS)
4324 fi
4325
4326 dnl autodetect dll support
4327 if test "$with_modules" != "no"; then
4328   AC_CHECKING(for module support)
4329
4330   dnl Check for MS-Windows
4331   if test "$with_msw" = "yes"; then
4332     have_dl=yes;
4333   else
4334     dnl Find headers and libraries
4335     AC_CHECK_HEADER(dlfcn.h, [
4336       AC_MSG_CHECKING([for dlopen in -lc])
4337       AC_TRY_LINK([#include <dlfcn.h>],dnl
4338         [dlopen ("", 0);], [ have_dl=yes ], [
4339       AC_MSG_CHECKING([for dlopen in -ldl])
4340       ac_save_LIBS="$LIBS"
4341       LIBS="-ldl $LIBS"
4342       AC_TRY_LINK([#include <dlfcn.h>],dnl
4343         [dlopen ("", 0);], [ have_dl=yes ],
4344         [LIBS="$ac_save_LIBS"])
4345       ac_save_LIBS=])])
4346     if test -n "$have_dl"; then
4347       AC_DEFINE(HAVE_DLOPEN)
4348     else
4349       AC_CHECK_LIB(dld, shl_load, [
4350         libdl=dld have_dl=yes;
4351         AC_DEFINE(HAVE_SHL_LOAD)], [
4352         AC_CHECK_LIB(dld, dld_init, [
4353         libdl=dld have_dl=yes;
4354         AC_DEFINE(HAVE_DLD_INIT)])])
4355     fi
4356   fi dnl end !MS-Windows
4357
4358   if test -n "$have_dl"; then
4359     dnl XE_SHLIB_STUFF (in aclocal.m4) defines $can_build_shared
4360     XE_SHLIB_STUFF
4361   fi
4362
4363   if test "$can_build_shared" = "yes"; then
4364     AC_DEFINE(HAVE_SHLIB)
4365     XE_ADD_OBJS(sysdll.o emodules.o)
4366     XE_APPEND(src, INSTALL_ARCH_DEP_SUBDIR)
4367     test -n "$libdl" && XE_PREPEND(-l${libdl}, LIBS)
4368     AC_CHECK_FUNCS(dlerror _dlerror)
4369     with_modules=yes
4370   else
4371     if test "$with_modules" = "yes"; then
4372       XE_DIE("Required module support cannot be provided.")
4373     else
4374       AC_MSG_WARN("Module support cannot be provided.")
4375     fi
4376     with_modules=no
4377   fi
4378 fi
4379
4380 dnl Unfortunately, just because we can link doesn't mean we can run.
4381 dnl One of the above link tests may have succeeded but caused resulting
4382 dnl executables to fail to run.  Also any tests using AC_TRY_RUN will
4383 dnl have reported incorrect results.
4384 AC_TRY_RUN([int main(int c,char *v[]){return 0;}],[:],[
4385   echo ""
4386   echo "*** PANIC *** The C compiler can no longer build working executables."
4387   echo "*** PANIC *** Please examine the tail of config.log for runtime errors."
4388   echo "*** PANIC *** The most likely reason for this problem is that configure"
4389   echo "*** PANIC *** links with shared libraries, but those libraries cannot be"
4390   echo "*** PANIC *** found at run time."
4391   echo "*** PANIC ***"
4392   echo "*** PANIC *** On a Linux system, edit /etc/ld.so.conf and re-run ldconfig."
4393   echo "*** PANIC *** On other systems, try telling configure where to find the"
4394   echo "*** PANIC *** shared libraries using the --site-runtime-libraries option"
4395   echo "*** PANIC ***"
4396   echo "*** PANIC *** Another way to shoot yourself in the foot is to specify"
4397   echo "*** PANIC *** --with-FEATURE when FEATURE is not actually installed"
4398   echo "*** PANIC *** on your system.  Don't do that."
4399   exit 1])
4400
4401 dnl Process support
4402 if test "$win32_processes" = "yes"; then
4403   XE_ADD_OBJS(process-nt.o)
4404 else
4405   AC_DEFINE(HAVE_UNIX_PROCESSES)
4406   XE_ADD_OBJS(process-unix.o)
4407 fi
4408
4409 dnl --------------------------------
4410 dnl Compute SUBST-itutable variables
4411 dnl --------------------------------
4412
4413 dnl We ignore (C|LD)_SWITCH_X_(MACHINE|SYSTEM)
4414 dnl Use XE_SPACE instead of plain assignment statements to remove extraneous blanks
4415 XE_SPACE(CFLAGS, $CFLAGS)
4416 XE_SPACE(extra_objs, $extra_objs)
4417 XE_SPACE(c_switch_general, -DHAVE_CONFIG_H $c_switch_site $c_switch_machine $c_switch_system)
4418 XE_SPACE(c_switch_window_system, $c_switch_x_site $c_switch_gtk $X_CFLAGS)
4419 XE_SPACE(c_switch_all, $c_switch_general $c_switch_window_system)
4420 XE_SPACE(ld_switch_general, $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_run)
4421 XE_SPACE(ld_switch_window_system, $ld_switch_x_site)
4422 XE_SPACE(ld_switch_all, $ld_switch_general $ld_switch_window_system)
4423 XE_SPACE(ld_libs_general, $LIBS $libs_machine $libs_system $libs_standard)
4424 XE_SPACE(ld_libs_window_system, $X_EXTRA_LIBS $libs_x $libs_gtk $X_PRE_LIBS)
4425 XE_SPACE(ld_libs_all, $ld_libs_window_system $ld_libs_general)
4426
4427 dnl Compute lists of Makefiles and subdirs
4428 AC_SUBST(SRC_SUBDIR_DEPS)
4429 XE_APPEND(src, MAKE_SUBDIR)
4430 internal_makefile_list="Makefile.in"
4431 SUBDIR_MAKEFILES=''
4432 test -d lock || mkdir lock
4433 for dir in $MAKE_SUBDIR; do
4434   case "$dir" in */* ) dnl Implement mkdir -p
4435     ( for d in `echo $dir | sed 's:/: :g'` ; do
4436         test -d "$d" || mkdir "$d"; cd "$d"
4437       done ) ;;
4438    * ) test -d "$dir" || mkdir "$dir" ;;
4439   esac
4440   XE_SPACE(SUBDIR_MAKEFILES, $SUBDIR_MAKEFILES $dir/Makefile $dir/GNUmakefile)
4441   XE_SPACE(internal_makefile_list, $internal_makefile_list $dir/Makefile.in)
4442 done
4443 AC_SUBST(INSTALL_ARCH_DEP_SUBDIR)
4444 AC_SUBST(MAKE_SUBDIR)
4445 AC_SUBST(SUBDIR_MAKEFILES)
4446
4447 dnl Make s&m symlinks in the src directory, for config.h
4448 for dir in src/s src/m; do
4449   if test ! -d "$dir" ; then
4450     echo Making symbolic link to "$srcdir/$dir"
4451     ${LN_S} "$srcdir/$dir" "$dir"
4452   fi
4453 done
4454
4455 if test "$extra_verbose" = "yes"; then
4456   echo ""
4457   PRINT_VAR(extra_objs
4458    c_switch_general  c_switch_window_system  c_switch_all
4459   ld_switch_general ld_switch_window_system ld_switch_all
4460     ld_libs_general   ld_libs_window_system   ld_libs_all)
4461   echo ""
4462 fi
4463
4464 dnl ----------------------------------------------
4465 dnl Create some auxiliary files for developers.
4466 dnl ----------------------------------------------
4467
4468 dnl Create a .gdbinit useful for debugging XEmacs
4469 if test -f "$srcdir/src/.gdbinit" -a ! -f "src/.gdbinit"; then
4470   test "$extra_verbose" = "yes" && echo "creating src/.gdbinit"
4471   echo "source $srcdir/src/.gdbinit" > "src/.gdbinit"
4472 fi
4473
4474 dnl Create a .dbxrc useful for debugging XEmacs
4475 if test -f "$srcdir/src/.dbxrc" -a ! -f "src/.dbxrc"; then
4476   test "$extra_verbose" = "yes" && echo "creating src/.dbxrc"
4477   echo ". $srcdir/src/.dbxrc" > "src/.dbxrc"
4478 fi
4479
4480 dnl Create a useful TAGS file
4481 if test -f "$srcdir/TAGS" -a ! -f "TAGS"; then
4482   test "$extra_verbose" = "yes" && echo "creating TAGS"
4483   echo "\f
4484 $srcdir/TAGS,include" > "TAGS"
4485 fi
4486
4487 dnl Create top level .sbinit for Sun compilers
4488 if test "$__SUNPRO_C" = "yes"; then
4489   test "$extra_verbose" = "yes" && echo "creating .sbinit"
4490   ( echo "# For use with Sun WorkShop's Source browser."
4491     echo "# See sbquery(1) and sbinit(4) for more information"
4492     for dir in $MAKE_SUBDIR; do echo "import $dir"; done
4493   ) > .sbinit
4494 fi
4495
4496 dnl There are no more compile tests; remove the core they created.
4497 rm -f core
4498
4499 dnl ----------------------------------------------
4500 dnl Substitute into Makefile, config.h and paths.h
4501 dnl ----------------------------------------------
4502
4503 dnl what sort of things to edit into Makefile, config.h and paths.h
4504 dnl configuration here uncanonicalized to avoid exceeding size limits.
4505
4506 AC_SUBST(PROGNAME)
4507 AC_SUBST(version)
4508 AC_SUBST(configuration)
4509 AC_SUBST(canonical)
4510 AC_SUBST(inststaticdir)
4511 AC_SUBST(instvardir)
4512 AC_SUBST(srcdir)
4513 AC_SUBST(bindir)
4514 AC_SUBST(datadir)
4515 AC_SUBST(pkgdir)
4516 AC_SUBST(statedir)
4517 AC_SUBST(libdir)
4518 AC_SUBST(mandir)
4519 AC_SUBST(extra_includes)
4520
4521 AC_SUBST(prefix)
4522 AC_SUBST(PREFIX_USER_DEFINED)
4523 dnl Yo, Stephen Bourne!  I want to marry you!
4524 PREFIX=$prefix
4525 while true; do
4526   case "$PREFIX" in
4527     *\$* ) eval "PREFIX=$PREFIX" ;;
4528     *) break ;;
4529   esac
4530 done
4531 AC_SUBST(PREFIX)
4532
4533 AC_SUBST(exec_prefix)
4534 AC_SUBST(EXEC_PREFIX_USER_DEFINED)
4535 EXEC_PREFIX=$exec_prefix
4536 while true; do
4537   case "$EXEC_PREFIX" in
4538     *\$* ) eval "EXEC_PREFIX=$EXEC_PREFIX" ;;
4539     *) break ;;
4540   esac
4541 done
4542 AC_SUBST(EXEC_PREFIX)
4543
4544 AC_SUBST(infodir)
4545 AC_SUBST(INFODIR_USER_DEFINED)
4546 INFODIR=$infodir
4547 while true; do
4548   case "$INFODIR" in
4549     *\$* ) eval "INFODIR=$INFODIR" ;;
4550     *) break ;;
4551   esac
4552 done
4553 AC_SUBST(INFODIR)
4554
4555 AC_SUBST(infopath)
4556 AC_SUBST(INFOPATH_USER_DEFINED)
4557 INFOPATH=$infopath
4558 while true; do
4559   case "$INFOPATH" in
4560     *\$* ) eval "INFOPATH=$INFOPATH" ;;
4561     *) break ;;
4562   esac
4563 done
4564 AC_SUBST(INFOPATH)
4565
4566 AC_SUBST(package_path)
4567 AC_SUBST(PACKAGE_PATH_USER_DEFINED)
4568 PACKAGE_PATH=$package_path
4569 while true; do
4570   case "$PACKAGE_PATH" in
4571     *\$* ) eval "PACKAGE_PATH=$PACKAGE_PATH" ;;
4572     *) break ;;
4573   esac
4574 done
4575 AC_SUBST(PACKAGE_PATH)
4576
4577 AC_SUBST(lispdir)
4578 AC_SUBST(LISPDIR_USER_DEFINED)
4579 LISPDIR=$lispdir
4580 while true; do
4581   case "$LISPDIR" in
4582     *\$* ) eval "LISPDIR=$LISPDIR" ;;
4583     *) break ;;
4584   esac
4585 done
4586 AC_SUBST(LISPDIR)
4587
4588 AC_SUBST(moduledir)
4589 AC_SUBST(MODULEDIR_USER_DEFINED)
4590 MODULEDIR=$moduledir
4591 while true; do
4592   case "$MODULEDIR" in
4593     *\$* ) eval "MODULEDIR=$MODULEDIR" ;;
4594     *) break ;;
4595   esac
4596 done
4597 AC_SUBST(MODULEDIR)
4598
4599 AC_SUBST(sitelispdir)
4600 AC_SUBST(SITELISPDIR_USER_DEFINED)
4601 SITELISPDIR=$sitelispdir
4602 while true; do
4603   case "$SITELISPDIR" in
4604     *\$* ) eval "SITELISPDIR=$SITELISPDIR" ;;
4605     *) break ;;
4606   esac
4607 done
4608 AC_SUBST(SITELISPDIR)
4609
4610 AC_SUBST(sitemoduledir)
4611 AC_SUBST(SITEMODULEDIR_USER_DEFINED)
4612 SITEMODULEDIR=$sitemoduledir
4613 while true; do
4614   case "$SITEMODULEDIR" in
4615     *\$* ) eval "SITEMODULEDIR=$SITEMODULEDIR" ;;
4616     *) break ;;
4617   esac
4618 done
4619 AC_SUBST(SITEMODULEDIR)
4620
4621 AC_SUBST(etcdir)
4622 AC_SUBST(ETCDIR_USER_DEFINED)
4623 ETCDIR=$etcdir
4624 while true; do
4625   case "$ETCDIR" in
4626     *\$* ) eval "ETCDIR=$ETCDIR" ;;
4627     *) break ;;
4628   esac
4629 done
4630 AC_SUBST(ETCDIR)
4631
4632 AC_SUBST(docdir)
4633 AC_SUBST(DOCDIR_USER_DEFINED)
4634 DOCDIR=$docdir
4635 while true; do
4636   case "$DOCDIR" in
4637     *\$* ) eval "DOCDIR=$DOCDIR" ;;
4638     *) break ;;
4639   esac
4640 done
4641 AC_SUBST(DOCDIR)
4642
4643 AC_SUBST(archlibdir)
4644 AC_SUBST(ARCHLIBDIR_USER_DEFINED)
4645 ARCHLIBDIR=$archlibdir
4646 while true; do
4647   case "$ARCHLIBDIR" in
4648     *\$* ) eval "ARCHLIBDIR=$ARCHLIBDIR" ;;
4649     *) break ;;
4650   esac
4651 done
4652 AC_SUBST(ARCHLIBDIR)
4653
4654 AC_SUBST(docdir)
4655 AC_SUBST(bitmapdir)
4656 AC_SUBST(extra_objs)
4657
4658 dnl The following flags combine all the information from:
4659 dnl - command line options (user always gets priority)
4660 dnl - user environment variables
4661 dnl - determined by configure
4662 dnl - the s&m header files (required for ellcc)
4663 AC_SUBST(machfile)
4664 AC_SUBST(opsysfile)
4665 AC_SUBST(c_switch_general)
4666 AC_SUBST(c_switch_window_system)
4667 AC_SUBST(c_switch_all)
4668 AC_SUBST(ld_switch_general)
4669 AC_SUBST(ld_switch_window_system)
4670 AC_SUBST(ld_switch_all)
4671 AC_SUBST(ld_libs_general)
4672 AC_SUBST(ld_libs_window_system)
4673 AC_SUBST(ld_libs_all)
4674 AC_SUBST(CFLAGS)
4675 AC_SUBST(CPPFLAGS)
4676 AC_SUBST(LDFLAGS)
4677 RECURSIVE_MAKE="\$(MAKE) \$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'"
4678 AC_SUBST(RECURSIVE_MAKE)
4679
4680 AC_SUBST(native_sound_lib)
4681 AC_SUBST(sound_cflags)
4682 AC_SUBST(RANLIB)
4683 AC_SUBST(dynodump_arch)
4684
4685 dnl Preliminary support for using a different compiler for xemacs itself.
4686 dnl Useful for building XEmacs with a C++ or 64-bit compiler.
4687 : ${XEMACS_CC:=$CC}
4688 AC_SUBST(XEMACS_CC)
4689
4690 dnl The default is yes
4691 if test "$with_prefix" = "yes"; then
4692   AC_DEFINE(PREFIX_USER_DEFINED)
4693 fi
4694
4695 dnl The default is no
4696 if test "$with_site_lisp" = "no"; then
4697   AC_DEFINE(INHIBIT_SITE_LISP)
4698 fi
4699 dnl The default is yes
4700 if test "$with_site_modules" = "no"; then
4701   AC_DEFINE(INHIBIT_SITE_MODULES)
4702 fi
4703
4704 XE_SPACE(ac_configure_args, $ac_configure_args)
4705 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "$configuration")
4706 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "$ac_configure_args")
4707
4708 dnl Following are deprecated
4709
4710 null_string=""
4711 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE,     $null_string)
4712 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, $null_string)
4713 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE,      $null_string)
4714 AC_DEFINE_UNQUOTED(LD_SWITCH_SITE,       $null_string)
4715 AC_DEFINE_UNQUOTED(C_SWITCH_SITE,        $null_string)
4716
4717 dnl Note: as a general rule, *only* define things here that are not
4718 dnl autodetected.  For things that are autodetected, define them
4719 dnl at the point where the autodetection occurs or would occur,
4720 dnl so that the user gets immediate feedback on the results of the
4721 dnl autodetection.
4722
4723 if   test "$GNU_MALLOC"         = "yes"; then AC_DEFINE(GNU_MALLOC)
4724 elif test "$with_system_malloc" = "yes"; then AC_DEFINE(USE_SYSTEM_MALLOC)
4725 elif test "$with_debug_malloc"  = "yes"; then AC_DEFINE(USE_DEBUG_MALLOC)
4726                                               AC_DEFINE(USE_SYSTEM_MALLOC)
4727 fi
4728 test "$with_i18n3"         = "yes" && AC_DEFINE(I18N3)
4729 test "$GCC"                = "yes" && AC_DEFINE(USE_GCC)
4730 test "$external_widget"    = "yes" && AC_DEFINE(EXTERNAL_WIDGET)
4731 test "$quick_build"        = "yes" && AC_DEFINE(QUICK_BUILD)
4732 test "$with_purify"        = "yes" && AC_DEFINE(PURIFY)
4733 test "$with_quantify"      = "yes" && AC_DEFINE(QUANTIFY)
4734 test "$with_pop"           = "yes" && AC_DEFINE(MAIL_USE_POP)
4735 test "$with_kerberos"      = "yes" && AC_DEFINE(KERBEROS)
4736 test "$with_hesiod"        = "yes" && AC_DEFINE(HESIOD)
4737 test "$use_union_type"     = "yes" && AC_DEFINE(USE_UNION_TYPE)
4738 test "$pdump"              = "yes" && AC_DEFINE(PDUMP)
4739
4740 dnl -------------------------------
4741 dnl Report on what we decided to do
4742 dnl -------------------------------
4743
4744 (
4745 dnl /etc/osversion is on SONY NEWS-OS
4746 if test -f /etc/osversion; then dnl SONY NEWS-OS
4747   echo "osversion: `cat /etc/osversion`"
4748 else
4749   echo "uname -a: `uname -a`"
4750 fi
4751 echo ""
4752 echo "$0 $quoted_arguments"
4753 ) > Installation
4754
4755 if test ! -z ${emacs_beta_version} ; then
4756   if test -z "${emacs_is_beta}" ; then
4757         xemacs_betaname=".${emacs_beta_version}"
4758   else
4759         xemacs_betaname="-b${emacs_beta_version}"
4760   fi
4761 else
4762   xemacs_betaname=""
4763 fi
4764
4765 dnl Start stdout redirection to '| tee -a Installation'
4766 (
4767 echo "
4768
4769 XEmacs ${emacs_major_version}.${emacs_minor_version}${xemacs_betaname} \"$xemacs_codename\" configured for \`$canonical'.
4770 "
4771 echo "
4772 Compilation / Installation:"
4773 echo "  Source code location:              $srcdir"
4774 echo "  Installation prefix:               $prefix"
4775 if test -n "$site_includes"; then
4776   echo "  Additional header files:           $site_includes"
4777 fi
4778 if test -n "$site_libraries"; then
4779   echo "  Additional libraries:              $site_libraries"
4780 fi
4781 if test -n "$site_prefixes"; then
4782   echo "  Additional prefixes:               $site_prefixes"
4783 fi
4784 if test -n "$runpath"; then
4785   echo "  Runtime library search path:       $runpath"
4786 fi
4787
4788 if test -n "$opsysfile"
4789 then echo "  Operating system description file: \`$opsysfile'"
4790 else echo "  Not using any operating system description file"
4791 fi
4792 if test -n "$machfile"
4793 then echo "  Machine description file:          \`$machfile'"
4794 else echo "  Not using any machine description file"
4795 fi
4796
4797 echo "  Compiler:                          $CC $CFLAGS"
4798 echo "  Relocating allocator for buffers:  $rel_alloc"
4799 echo "  GNU version of malloc:             ${GNU_MALLOC}${GNU_MALLOC_reason}"
4800
4801 echo "
4802 Window System:"
4803 if test "$with_msw" = "yes"; then
4804   echo "  Compiling in support for the Microsoft window system."
4805 fi
4806 if test "$with_x11" = "yes"; then
4807   echo "  Compiling in support for the X window system:"
4808   echo "    - X Windows headers location:                 $x_includes"
4809   echo "    - X Windows libraries location:               $x_libraries"
4810   if test "$with_xauth" != yes; then
4811     echo "    - Xau (X authority) not available."
4812   fi
4813   if test "$with_xmu" != yes; then
4814     echo "    - Xmu library not available; substituting equivalent routines."
4815   fi
4816   if test "$with_wmcommand" != no; then
4817     echo "    - Handling WM_COMMAND properly."
4818   fi
4819 fi
4820 if test "$need_athena" = "yes"; then
4821   echo "  Compiling in support for the Athena widget set:"
4822   echo "    - Athena headers location:                    $athena_h_path"
4823   echo "    - Athena library to link:                     $athena_lib"
4824 fi
4825 case "$with_menubars" in
4826   gtk   ) echo "  Using GTK menubars."   ;;
4827   lucid ) echo "  Using Lucid menubars." ;;
4828   motif ) echo "  Using Motif menubars."
4829           echo "  *WARNING*  The Motif menubar implementation is currently buggy."
4830           echo "             We recommend using the Lucid menubar instead."
4831           echo "             Re-run configure with --with-menubars='lucid'." ;;
4832     msw ) echo "  Using MS-Windows menubars." ;;
4833 esac
4834 case "$with_scrollbars" in
4835   gtk    ) echo "  Using GTK scrollbars."        ;;
4836   lucid  ) echo "  Using Lucid scrollbars."      ;;
4837   motif  ) echo "  Using Motif scrollbars."      ;;
4838   athena ) echo "  Using Athena scrollbars."     ;;
4839      msw ) echo "  Using MS-Windows scrollbars." ;;
4840 esac
4841 case "$with_dialogs" in
4842   gtk    ) echo "  Using GTK dialog boxes." ;;
4843   motif  ) echo "  Using Motif dialog boxes."
4844            if test "$unexec" = "unexaix.o"; then if test "`uname -v`" = 4 -a "`uname -r`" -ge 3; then
4845              echo "  *WARNING*  The Motif dialog boxes cause problems on AIX 4.3 and higher."
4846              echo "             We recommend using the Athena dialog boxes instead."
4847              echo "             Install libXaw and re-run configure with --with-dialogs='athena'."
4848              echo "             Read the PROBLEMS file for more information."
4849            fi; fi ;;
4850   athena ) echo "  Using Athena dialog boxes."     ;;
4851      msw ) echo "  Using MS-Windows dialog boxes." ;;
4852 esac
4853 case "$with_widgets" in
4854   gtk    ) echo "  Using GTK native widgets."        ;;
4855   motif  ) echo "  Using Motif native widgets."      ;;
4856   athena ) echo "  Using Athena native widgets."     ;;
4857      msw ) echo "  Using MS-Windows native widgets." ;;
4858 esac
4859 if test "$with_dragndrop" = yes; then
4860   echo "  Compiling in support for Drag'n'Drop (EXPERIMENTAL)."
4861   echo "    -  Drag'n'Drop prototype:                             $dragndrop_proto."
4862 fi
4863
4864 echo "
4865 TTY:"
4866 test "$with_ncurses" = yes && echo "  Compiling in support for ncurses."
4867 test "$with_gpm" = yes && echo "  Compiling in support for GPM (General Purpose Mouse)."
4868
4869 echo "
4870 Images:"
4871 test "$with_gif" = yes && echo "  Compiling in support for GIF  images (builtin)."
4872 if test "$with_xpm" = yes; then
4873   echo "  Compiling in support for XPM  images."
4874 elif test "$with_x11" = yes; then
4875   echo "  WARNING: -----------------------------------------------------------"
4876   echo "  WARNING: Compiling without XPM image support."
4877   if test "$xpm_problem" != ""; then
4878     echo "  Reason: $xpm_problem"
4879   fi
4880   echo "  WARNING: You should strongly consider installing XPM."
4881   echo "  WARNING: Otherwise toolbars and other graphics will look suboptimal."
4882   echo "  WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
4883   echo "  WARNING: -----------------------------------------------------------"
4884 fi
4885 if test "$with_png" = yes; then
4886   echo "  Compiling in support for PNG  images."
4887 elif test "$window_system" != "none"; then
4888   echo "  WARNING: -----------------------------------------------------------"
4889   echo "  WARNING: Compiling without PNG image support."
4890   if test "$png_problem" != ""; then
4891     echo "  Reason: $png_problem"
4892   fi
4893   echo "  WARNING: You should strongly consider installing the PNG libraries."
4894   echo "  WARNING: Otherwise certain images and glyphs may not display."
4895   echo "  WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
4896   echo "  WARNING: -----------------------------------------------------------"
4897 fi
4898 test "$with_jpeg" = yes && echo "  Compiling in support for JPEG images."
4899 test "$with_tiff" = yes && echo "  Compiling in support for TIFF images."
4900 test "$with_xface" = yes && echo "  Compiling in support for X-Face message headers."
4901
4902 echo "
4903 Sound:"
4904 test "$with_native_sound" = yes && echo "  Compiling in support for sound (native)."
4905 test "$with_nas_sound" = yes && echo "  Compiling in support for NAS (network audio system)."
4906 test "$old_nas" = yes && echo "    - NAS library lacks error trapping; will play synchronously."
4907 test "$with_esd_sound" = yes && echo "  Compiling in support for ESD (Enlightened Sound Daemon)."
4908
4909 echo "
4910 Databases:"
4911 test "$with_database_berkdb" = yes && echo "  Compiling in support for Berkeley database."
4912 test "$with_database_dbm"    = yes && echo "  Compiling in support for DBM."
4913 test "$with_database_gdbm"   = yes && echo "  Compiling in support for GNU DBM."
4914 test "$with_ldap" = yes && echo "  Compiling in support for LDAP."
4915 if test "$with_postgresql" = yes; then
4916   echo "  Compiling in support for PostgreSQL."
4917   echo "    - Using PostgreSQL header file:  $libpq_fe_h_file"
4918   test "$with_postgresqlv7" = yes && echo "    - Using PostgreSQL V7 bindings."
4919 fi
4920
4921 echo "
4922 Internationalization:"
4923 test "$with_mule" = yes && echo "  Compiling in support for Mule (multi-lingual Emacs)."
4924 test "$with_utf_2000" = yes && echo "  Using UTF-2000 (UTF-8) buffer/string representation."
4925 test "$with_text_coding" = yes && echo "  Compiling in support for text coding."
4926 test "$with_file_coding" = yes && echo "  Compiling in support for file coding."
4927 test "$with_xim" != no && echo "  Compiling in support for XIM (X11R5+ I18N input method)."
4928 test "$with_xim" = motif && echo "    - Using Motif to provide XIM support."
4929 test "$with_xim" = xlib && echo "    - Using raw Xlib to provide XIM support."
4930 test "$with_xfs" = yes && echo "    - Using XFontSet to provide bilingual menubar."
4931 test "$with_canna" = yes && echo "  Compiling in support for Canna on Mule."
4932 if test "$with_wnn" = yes; then
4933   echo "  Compiling in support for the WNN input method on Mule."
4934   test "$with_wnn6" = yes && echo "    - Using WNN version 6."
4935 fi
4936 test "$with_i18n3" = yes && echo "  Compiling in support for I18N level 3 (doesn't currently work)."
4937
4938 echo "
4939 Mail:"
4940 test "$with_pop" = yes && echo "  Compiling in support for POP mail retrieval."
4941 test "$with_kerberos" = yes && echo "  Compiling in support for Kerberos POP authentication."
4942 test "$with_hesiod" = yes && echo "  Compiling in support for Hesiod POP server access."
4943 test -n "$mail_locking" && echo "  Compiling in support for \"$mail_locking\" mail spool file locking method."
4944
4945 echo "
4946 Other Features:"
4947 test "$with_tooltalk" = yes && echo "  Compiling in support for ToolTalk."
4948 test "$with_workshop" = yes && echo "  Compiling in support for Sun WorkShop."
4949 test "$with_socks" = yes && echo "  Compiling in support for SOCKS."
4950 test "$with_dnet" = yes && echo "  Compiling in support for DNET."
4951 test "$with_modules" = "yes" && echo "  Compiling in support for dynamic shared object modules."
4952 test "$use_union_type" = yes && echo "  Using the union type for Lisp_Objects."
4953 test "$pdump" = yes && echo "  Using the new portable dumper."
4954 test "$debug" = yes && echo "  Compiling in support for extra debugging code."
4955 test "$usage_tracking" = yes && echo "  Compiling in support for active usage tracking (Sun internal)."
4956 if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc $error_check_glyphs" \
4957   != "no no no no no no"; then
4958   echo "  WARNING: ---------------------------------------------------------"
4959   echo "  WARNING: Compiling in support for runtime error checking."
4960   echo "  WARNING: XEmacs will run noticeably more slowly as a result."
4961   echo "  WARNING: Error checking is on by default for XEmacs beta releases."
4962   echo "  WARNING: ---------------------------------------------------------"
4963 fi
4964 echo ""
4965 ) | tee -a Installation
4966 dnl echo "The above configure report is appended to \"Installation\" file."
4967 echo ""
4968
4969 dnl -----------------------------------
4970 dnl Now generate config.h and Makefiles
4971 dnl -----------------------------------
4972 dnl This has to be called in order for this variable to get into config.status
4973 AC_SUBST(internal_makefile_list)
4974 # Remove any trailing slashes in these variables.
4975 test -n "$prefix" &&
4976   prefix=`echo '' "$prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4977 test -n "$exec_prefix" &&
4978   exec_prefix=`echo '' "$exec_prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4979
4980 dnl Build Makefile.in's from Makefile.in.in's
4981 dnl except ./Makefile from $srcdir/Makefile.in
4982
4983 for file in $internal_makefile_list; do
4984   test "$file" = src/Makefile.in && \
4985     file="src/Makefile.in:src/Makefile.in.in:src/depend"
4986   XE_APPEND($file, ac_output_files)
4987 done
4988 ac_output_files="$ac_output_files src/paths.h lib-src/config.values"
4989 test "$with_modules" = "yes" && XE_APPEND(lib-src/ellcc.h, ac_output_files)
4990
4991 AC_OUTPUT($ac_output_files,
4992 [for dir in . $MAKE_SUBDIR; do
4993   (
4994     cd $dir
4995     rm -f junk.c
4996     < Makefile.in \
4997       sed -e '/^# Generated/d' \
4998           -e 's%/\*\*/#.*%%' \
4999           -e 's/^ *# */#/' \
5000 dnl Delete Makefile.in.in comment lines
5001           -e '/^##/d' \
5002 dnl Pass through CPP directives unchanged
5003           -e '/^#/ {
5004 p
5005 d
5006 }'        \
5007 dnl Quote other lines to protect from CPP substitution
5008           -e '/./ {
5009 s/\([[\"]]\)/\\\1/g
5010 s/^/"/
5011 s/$/"/
5012 }'  > junk.c;
5013
5014 dnl Create a GNUmakefile and Makefile from Makefile.in.
5015
5016 changequote(<<,>>)dnl
5017 dnl CPP_MAKEFILE(CPPFLAGS,filename)
5018 define(<<CPP_MAKEFILE>>,
5019 echo creating $dir/<<$2>>
5020 $CPP -I. -I${top_srcdir}/src <<$1>> junk.c \
5021 dnl Delete line directives inserted by $CPP
5022   | sed -e 's/^\#.*//'          \
5023 dnl Delete spurious blanks inserted by $CPP
5024         -e 's/^[ TAB][ TAB]*$//'\
5025         -e 's/^ /TAB/'          \
5026 dnl Delete blank lines
5027         -e '/^[ \f]*$/d' \
5028 dnl Restore lines quoted above to original contents.
5029         -e '/^\"/ {
5030         s/\\\([\"]\)/\1/g
5031         s/^[ TAB]*\"//
5032         s/\"[ TAB]*$//
5033 }' > Makefile.new
5034     chmod 444 Makefile.new
5035     mv -f Makefile.new <<$2>>
5036 )dnl CPP_MAKEFILE
5037
5038     CPP_MAKEFILE(,Makefile)
5039     CPP_MAKEFILE(-DUSE_GNU_MAKE,GNUmakefile)
5040 changequote([,])dnl
5041     rm -f junk.c
5042   )
5043 done
5044
5045 dnl Append AC_DEFINE information to lib-src/config.values
5046 dnl (AC_SUBST information is already there (see config.values.sh).
5047 sed < config.status >> lib-src/config.values \
5048   -e '/{ac_dA}.*{ac_dB}.*{ac_dC}.*{ac_dD}$/!d' \
5049   -e 's/\${ac_dA}\(.*\)\${ac_dB}.*\${ac_dC}\(.*\)\${ac_dD}/\1 \2/' \
5050   -e 's/^\([[^ ]]*\) $/\1 ""/' \
5051   -e 's/ 1$/ t/'
5052
5053 ],
5054 [CPP="$CPP"
5055  top_srcdir="$srcdir"
5056  MAKE_SUBDIR="$MAKE_SUBDIR"
5057 ])dnl