1 dnl Define our own header notice with own copyright
2 define([AC_INIT_NOTICE],
3 [#### Configuration script for XEmacs. Largely divergent from FSF.
4 #### Guess values for system-dependent variables and create Makefiles.
5 #### Generated automatically using autoconf version] AC_ACVERSION [
6 #### Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
7 #### Copyright (C) 1993-1995 Board of Trustees, University of Illinois.
8 #### Copyright (C) 1996, 1997 Sun Microsystems, Inc.
9 #### Copyright (C) 1995, 1996 Ben Wing.
10 #### Copyright (C) 1998, 1999 J. Kean Johnston.
12 ### Don't edit this script!
13 ### This script was automatically generated by the `autoconf' program
14 ### from the file `./configure.in'.
15 ### To rebuild it, execute the command
17 ### in the this directory. You must have autoconf version 2.12 or later.
19 ### This file is part of XEmacs.
21 ### XEmacs is free software; you can redistribute it and/or modify it
22 ### under the terms of the GNU General Public License as published by
23 ### the Free Software Foundation; either version 2, or (at your
24 ### option) any later version.
26 ### XEmacs is distributed in the hope that it will be useful, but
27 ### WITHOUT ANY WARRANTY; without even the implied warranty of
28 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
29 ### General Public License for more details.
31 ### You should have received a copy of the GNU General Public License
32 ### along with XEmacs; see the file COPYING. If not, write to the Free
33 ### Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
36 ### For usage, run `./configure --help'
37 ### For more detailed information on building and installing XEmacs,
38 ### read the file `INSTALL'.
40 ### If configure succeeds, it leaves its status in config.status.
41 ### A log of configuration tests can be found in config.log.
42 ### If configure fails after disturbing the status quo,
43 ### config.status is removed.
46 dnl Since XEmacs has configuration requirements that autoconf cannot
47 dnl meet, this file is an unholy marriage of custom-baked
48 dnl configuration code and autoconf macros.
50 dnl We use the m4 quoting characters [ ] (as established by the
51 dnl autoconf system), so quote them like this: [[foo]]
54 dnl Redefine some standard autoconf macros
55 dnl here is how XEmacs is different:
57 dnl - non-standard options
58 dnl - suport for extra-verbosity
59 dnl - ordinary libs are handled separately from X libs (might be a mistake)
60 dnl - various random kludges (e.g. -with-dnet=no
62 dnl PRINT_VAR(var var ...) prints values of shell variables
63 define([PRINT_VAR],[for var in patsubst([$1],[[
64 ]+],[ ]); do eval "echo \"$var = '\$$var'\""; done])
66 dnl Disable cache files:
67 dnl This is controversial, but I am convinced this is the right way to go,
68 dnl at least by default. Otherwise there are too many surprises.
69 define([AC_CACHE_LOAD], )dnl
70 define([AC_CACHE_SAVE], )dnl
71 define([AC_CACHE_VAL], [
75 dnl Redefine AC_TRY_RUN_NATIVE to not throw away stderr while running
76 dnl AC_TRY_RUN_NATIVE(PROGRAM, [ACTION-IF-TRUE [, ACTION-IF-FALSE]])
77 define([AC_TRY_RUN_NATIVE],
78 [cat > conftest.$ac_ext <<EOF
79 [#]line __oline__ "configure"
83 if AC_TRY_EVAL(ac_link) && test -s conftest && (./conftest; exit $?) 2>&AC_FD_CC
85 dnl Do not remove the temporary files here, so they can be examined.
86 ifelse([$2], , :, [$2])
89 echo "configure: failed program was:" >&AC_FD_CC
90 cat conftest.$ac_ext >&AC_FD_CC
91 ifelse([$3], , , [ rm -fr conftest*
95 rm -fr conftest*])dnl AC_TRY_RUN_NATIVE
98 dnl Avoid spurious cross-compiling warnings from AC_TRY_RUN
99 dnl XEmacs is unlikely to ever cross-compile
100 define([AC_TRY_RUN],[AC_TRY_RUN_NATIVE([$1], [$2], [$3])])dnl
102 dnl Redefine AC_DEFINE* to provide more output if extra_verbose
103 dnl Set VARIABLE to VALUE, verbatim, or 1.
104 dnl AC_DEFINE(VARIABLE [, VALUE])
106 [{ test "$extra_verbose" = "yes" && cat << \EOF
107 Defining $1[]ifelse($#, 2, [ = $2],)
109 cat >> confdefs.h <<\EOF
110 [#define] $1 ifelse($#, 2, [$2], 1)
115 define([AC_DEFINE_UNQUOTED],
116 [{ test "$extra_verbose" = "yes" && cat << EOF
117 Defining $1[]ifelse($#, 2, [ = $2],)
119 cat >> confdefs.h <<EOF
120 [#define] $1 ifelse($#, 2, [$2], 1)
123 ])dnl AC_DEFINE_UNQUOTED
125 dnl redefine AC_CHECK_LIB in accordance with our own value of ac_link
126 dnl Add in extra kludgy check to support with_dnet=no
127 dnl Add in extra LDFLAGS arg, which PRECEDE libs
128 dnl Support --with-dnet=no
130 dnl AC_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
131 dnl [, OTHER-LIBRARIES] [, LDFLAGS]]]])
132 define([AC_CHECK_LIB],
133 [ifelse([$1],dnet, [if test "$with_dnet" = "no" ; then
134 ac_cv_lib_dnet_dnet_ntoa=no
135 ifelse([$4], , , [$4]
139 AC_CHECK_LIB_ORIG_HACKED([$1],[$2],[$3],[$4],[$5], [$6])
140 [ifelse([$1],dnet,[fi
144 define([AC_CHECK_LIB_ORIG_HACKED],
145 [ifelse([$5],,AC_MSG_CHECKING([for $2 in -l$1]),
146 xe_msg_checking="for [$2] in -l[$1]"
147 test -n "[$5]" && xe_msg_checking="$xe_msg_checking using extra libs [$5]"
148 AC_MSG_CHECKING("$xe_msg_checking"))
149 dnl Use a cache variable name containing both the library and function name,
150 dnl because the test really is for library $1 defining function $2, not
151 dnl just for library $1. Separate tests with the same $1 and different $2s
152 dnl may have different results.
153 ac_lib_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
154 AC_CACHE_VAL(ac_cv_lib_$ac_lib_var,
155 [xe_check_libs="$6 -l$1 $5"
157 ifelse([$2], [main], , dnl Avoid conflicting decl of main.
158 [/* Override any gcc2 internal prototype to avoid an error. */
159 ]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
163 [/* We use char because int might match the return type of a gcc2
164 builtin and then its argument prototype would still apply. */
168 eval "ac_cv_lib_$ac_lib_var=yes",
169 eval "ac_cv_lib_$ac_lib_var=no")
172 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
176 ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \
177 -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
179 AC_DEFINE_UNQUOTED($ac_tr_lib)
180 XE_PREPEND([-l$1], LIBS)
187 ])dnl AC_CHECK_LIB_ORIG_HACKED
192 [define([AC_LANG], [C])dnl
194 dnl CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
195 dnl ac_cpp='$CPP $CPPFLAGS'
196 dnl ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&AC_FD_CC'
197 dnl ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
198 xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
199 xe_ldflags='$LDFLAGS $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_x_site $ld_switch_run'
200 xe_libs='$ld_call_shared $xe_check_libs $X_EXTRA_LIBS $libs_x $X_PRE_LIBS $LIBS $libs_machine $libs_system $libs_standard'
201 ac_cpp='$CPP '"$xe_cppflags"
202 ac_compile='${CC-cc} -c $CFLAGS '"$xe_cppflags"' conftest.$ac_ext 1>&AC_FD_CC'
203 ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&AC_FD_CC'
207 dnl The construct foo=`echo $w1 $w2 $w3` fails on some systems if $w1 = -e or -n
208 dnl So we use the following instead.
209 dnl XE_SPACE(var, words)
212 for W in $2; do if test -z "$T"; then T="$W"; else T="$T $W"; fi; done
216 dnl XE_ADD_OBJS(foo.o ...)
217 define([XE_ADD_OBJS],
218 [extra_objs="$extra_objs [$1]" && dnl
219 if test "$extra_verbose" = "yes"; then
220 echo " xemacs will be linked with \"[$1]\""
223 dnl XE_APPEND(value, varname)
225 [[$2]="$[$2] [$1]" && dnl
226 if test "$extra_verbose" = "yes"; then echo " Appending \"[$1]\" to \$[$2]"; fi])
228 dnl XE_PREPEND(value, varname)
230 [[$2]="[$1] $[$2]" && dnl
231 if test "$extra_verbose" = "yes"; then echo " Prepending \"[$1]\" to \$[$2]"; fi])
234 define([XE_DIE], [{ echo "Error:" $1 >&2; exit 1; }])
236 dnl XE_STRIP_4TH_COMPONENT(var)
237 dnl Changes i986-pc-linux-gnu to i986-pc-linux, as God (not RMS) intended.
238 define([XE_STRIP_4TH_COMPONENT],
239 [$1=`echo "$$1" | sed '[s/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/]'`])
241 dnl Initialize some variables set by options.
242 dnl The variables have the same names as the options, with
243 dnl dashes changed to underlines.
245 define([AC_INIT_PARSE_ARGS],[
247 dnl Get sane consistent behavior from various shells
248 dnl Avoid losing with weird user CDPATHs
250 if test -n "$ZSH_VERSION"; then
251 dnl zsh's Bourne shell emulation options
252 setopt NO_BAD_PATTERN NO_BANG_HIST NO_BG_NICE NO_EQUALS NO_FUNCTION_ARGZERO
253 setopt GLOB_SUBST NO_HUP INTERACTIVE_COMMENTS KSH_ARRAYS NO_MULTIOS NO_NOMATCH
254 setopt RM_STAR_SILENT POSIX_BUILTINS SH_FILE_EXPANSION SH_GLOB SH_OPTION_LETTERS
255 setopt SH_WORD_SPLIT BSD_ECHO IGNORE_BRACES
256 dnl zsh-3.1-beta drops core on the following
258 if test -n "$CDPATH"; then CDPATH="."; export CDPATH; fi
259 elif test -n "$BASH_VERSION"; then
260 dnl Use Posix mode with bash
264 if test -n "$CDPATH"; then CDPATH="."; export CDPATH; fi
267 dnl Initialize some variables set by options.
268 dnl The variables have the same names as the options, with
269 dnl dashes changed to underlines.
278 program_transform_name=s,x,x,
287 dnl Installation directory options.
288 dnl These are left unexpanded so users can "make install exec_prefix=/foo"
289 dnl and all the variables that are supposed to be based on exec_prefix
290 dnl by default will actually change.
291 dnl Use braces instead of parens because sh, perl, etc. also accept them.
292 dnl If you change these, you need to synchronize with the settings of the
293 dnl various ..._USER_DEFINED variables further down.
294 bindir='${exec_prefix}/bin'
295 sbindir='${exec_prefix}/sbin'
296 libexecdir='${exec_prefix}/libexec'
297 datadir='${prefix}/share'
298 sysconfdir='${prefix}/etc'
299 sharedstatedir='${prefix}/com'
300 localstatedir='${prefix}/var'
301 libdir='${{exec_prefix}}/lib'
302 includedir='${prefix}/include'
303 oldincludedir='/usr/include'
304 infodir='${prefix}/info'
305 mandir='${prefix}/man'
307 dnl Initialize some other variables.
310 dnl Maximum number of lines to put in a shell here document.
312 ])dnl AC_INIT_PARSE_ARGS
314 AC_INIT(src/lisp.h)dnl
315 AC_CONFIG_HEADER(src/config.h lwlib/config.h)
316 dnl Remove any more than one leading "." element from the path name.
317 dnl If we do not remove them, then another "./" will be prepended to
318 dnl the file name each time we use config.status, and the program name
319 dnl will get larger and larger. This would not be a problem, except
320 dnl that since progname gets recorded in all the Makefiles this script
321 dnl produces, move-if-change thinks they're different when they're
324 dnl It would be nice if we could put the ./ in a \( \) group and then
325 dnl apply the * operator to that, so we remove as many leading './././'s
326 dnl as are present, but some seds (like Ultrix's sed) don't allow you to
327 dnl apply * to a \( \) group. Bleah.
328 progname="`echo $0 | sed 's:^\./\./:\./:'`"
330 dnl -----------------------------
331 dnl Establish some default values
332 dnl -----------------------------
334 XE_APPEND(lib-src, MAKE_SUBDIR)
335 XE_APPEND(lib-src, INSTALL_ARCH_DEP_SUBDIR)
338 exec_prefix='${prefix}'
339 bindir='${exec_prefix}/bin'
340 dnl FSF 19.29 changes to:
341 dnl datadir='${prefix}/share'
342 dnl sharedstatedir='${prefix}/com'
343 dnl libexecdir='${exec_prefix}/libexec'
344 datadir='${prefix}/lib'
345 statedir='${prefix}/lib'
346 libdir='${exec_prefix}/lib'
347 mandir='${prefix}/man/man1'
348 infodir='${datadir}/${PROGNAME}-${version}/info'
351 lispdir='${datadir}/${PROGNAME}-${version}/lisp'
352 moduledir='${datadir}/${PROGNAME}-${version}/${configuration}/modules'
353 sitelispdir='${datadir}/xemacs/site-lisp'
354 sitemoduledir='${datadir}/xemacs/site-modules'
355 pkgdir='${datadir}/${PROGNAME}-${version}/lisp'
357 etcdir='${datadir}/${PROGNAME}-${version}/etc'
358 lockdir='${statedir}/${PROGNAME}/lock'
359 archlibdir='${datadir}/${PROGNAME}-${version}/${configuration}'
361 with_site_modules='yes'
366 dnl const_is_losing is removed - we rely on AC_C_CONST instead.
367 dnl We accept (and ignore) the --const-is-losing option for compatibility.
368 dnl const_is_losing='yes'
370 cpp='' cppflags='' libs='' ldflags=''
375 with_system_malloc='default'
376 with_dlmalloc='default'
378 dnl use_assertions should be 'yes' by default. Too many people in this
379 dnl world have core dumps turned off by default or \"cannot find where the
380 dnl core file went\". At least we should get some useful output ...
382 dnl the following is set to yes or no later.
388 dnl ------------------
389 dnl Options Processing
390 dnl ------------------
392 define([USAGE_ERROR],
393 [(echo "$progname: Usage error:"
395 echo " Use \`$progname --help' to show usage.") >&2 && exit 1])
397 dnl Record all the arguments, so we can save them in config.status.
400 dnl Shell Magic: Quote the quoted arguments in ARGUMENTS. At a later date,
401 dnl in order to get the arguments back in $@, we have to do an
402 dnl 'eval set x "$quoted_arguments"; shift'
403 dnl # We use sed to turn embedded ' into '"'"'. I truly hate sh quoting.
404 quoted_sed_magic=s/"'"/"'"'"'"'"'"'"'"/g
408 -no-create | --no-create | --no-creat | --no-crea | --no-cre \
409 | --no-cr | --no-c) ;;
410 -no-recursion | --no-recursion | --no-recursio | --no-recursi \
411 | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
413 quoted_i="`echo '' $i | sed -e 's:^ ::' -e $quoted_sed_magic`"
414 quoted_arguments="$quoted_arguments '$quoted_i'" ;;
418 dnl Do not use shift -- that destroys the argument list, which autoconf needs
419 dnl to produce config.status. It turns out that "set - $arguments" does not
421 dnl However, it also turns out that many shells cannot expand ${10} at all.
422 dnl So using an index variable does not work either. It is possible to use
423 dnl some shell magic to make 'set x "$arguments"; shift' work portably.
424 while test $# != 0; do
427 --no-create|--no-recursion) ;;
428 dnl Anything starting with a hyphen we assume is an option.
430 dnl Separate the switch name from the value it is being given.
433 opt=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*\([[^=]]*\)=.*$:\1:'`
434 val=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*[[^=]]*=\(.*\)$:\1:'`
437 dnl special case these strings since echo may silently eat them:
438 dnl --help ) opt=help val=yes valomitted=yes ;;
439 dnl --version ) opt=version val=yes valomitted=yes ;;
440 dnl -e ) opt=e val=yes valomitted=yes ;;
441 dnl -E ) opt=E val=yes valomitted=yes ;;
442 dnl -n ) opt=n val=yes valomitted=yes ;;
444 dnl If FOO is a boolean argument, --FOO is equivalent to
445 dnl --FOO=yes. Otherwise, the value comes from the next
446 dnl argument - see below.
447 opt=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*\(.*\)$:\1:'`
448 val="yes" valomitted=yes
452 dnl translate "-" in option string to "_"
454 opt="`echo '' $opt | sed -e 's:^ ::' | tr - _`"
456 dnl Support --without-FOO as a synonym for --with-FOO=no
457 case "${valomitted}-${opt}" in yes-without_* )
458 opt=`echo $opt | sed 's/without/with/'`
459 valomitted="no" val="no" ;;
462 dnl Process the option.
465 dnl Process (many) boolean options
467 with_site_modules | \
517 use_minimal_tagbits | \
518 use_indexed_lrecord_implementation | \
519 memory_usage_stats | \
520 with_clash_detection | \
523 dnl Make sure the value given was either "yes" or "no".
525 y | ye | yes ) val=yes ;;
527 * ) USAGE_ERROR("The \`--$optname' option requires a boolean value: \`yes' or \`no'.") ;;
529 eval "$opt=\"$val\"" ;;
532 dnl Options that take a user-supplied value, as in --puresize=8000000
533 dnl The cache-file option is ignored (for compatibility with other configures)
550 site_runtime_libraries )
551 dnl If the value was omitted, get it from the next argument.
552 if test "$valomitted" = "yes" ; then
553 dnl Get the next argument from the argument list, if there is one.
554 if test "$#" = 0 ; then
555 USAGE_ERROR("The \`--$optname' option requires a value.");
562 dnl Options that take "yes", "no", or "default" values
565 with_debug_malloc | use_debug_malloc | \
566 with_system_malloc | use_system_malloc )
568 y | ye | yes ) val=yes ;;
570 d | de | def | defa | defau | defaul | default ) val=default ;;
571 * ) USAGE_ERROR(["The \`--$optname' option requires one of these values:
572 \`yes', \`no', or \`default'."]) ;;
574 case "$opt" in use_* ) opt="`echo $opt | sed s/use/with/`" ;; esac
578 dnl Has the user requested database support?
580 with_database_berkdb=no
582 with_database_gnudbm=no
583 for x in `echo "$val" | sed -e 's/,/ /g'` ; do
586 b | be | ber | berk | berkd | berkdb ) with_database_berkdb=yes ;;
587 d | db | dbm ) with_database_dbm=yes ;;
588 g | gn | gnu | gnud | gnudb | gnudbm ) with_database_gnudbm=yes ;;
589 * ) USAGE_ERROR(["The \`--$optname' option value
590 must be either \`no' or a comma-separated list
591 of one or more of \`berkdb' and either \`dbm' or \`gnudbm'."]) ;;
594 if test "$with_database_dbm" = "yes" -a \
595 "$with_database_gnudbm" = "yes"; then
596 USAGE_ERROR("Only one of \`dbm' and \`gnudbm' may be specified
597 with the \`--$optname' option.")
601 dnl Has the user requested sound support?
603 dnl value can be native, nas or both. yes is allowed
604 dnl as a backwards compatible synonym for native
606 y | ye | yes ) val=native ;;
607 n | no | non | none ) val=no;;
608 na | nat | nati | nativ | native ) val=native ;;
609 ne | net | neta | netau | netaud | netaudi | netaudio | nas ) val=nas ;;
610 b | bo | bot | both ) val=both;;
611 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
612 \`native', \`nas', \`both', or \`none'."]) ;;
617 dnl Has the user requested XIM support?
620 y | ye | yes ) val=yes ;;
621 n | no | non | none ) val=no ;;
622 x | xl | xli | xlib ) val=xlib ;;
623 m | mo | mot | moti | motif ) val=motif ;;
624 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
625 \`motif', \`xlib', \`yes', or \`no'."]) ;;
630 dnl Mail locking specification
636 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
637 \`lockf', \`flock', or \`file'."]) ;;
642 dnl Has the user requested error-checking?
644 dnl value can be all, none, and/or a list of categories to check.
645 dnl Example: --error-checking=all,noextents,nobufpos
646 dnl Example: --error-checking=none,malloc,gc
648 for x in `echo "$val" | sed -e 's/,/ /g'` ; do
650 dnl all and none are only permitted as the first in the list.
651 n | no | non | none ) new_default=no ;;
652 a | al | all ) new_default=yes ;;
654 extents ) error_check_extents=yes ;;
655 noextents ) error_check_extents=no ;;
657 typecheck ) error_check_typecheck=yes ;;
658 notypecheck ) error_check_typecheck=no ;;
660 bufpos ) error_check_bufpos=yes ;;
661 nobufpos ) error_check_bufpos=no ;;
663 gc ) error_check_gc=yes ;;
664 nogc ) error_check_gc=no ;;
666 malloc ) error_check_malloc=yes ;;
667 nomalloc ) error_check_malloc=no ;;
669 * ) bogus_error_check=yes ;;
671 if test "$bogus_error_check" -o \
672 \( -n "$new_default" -a -n "$echeck_notfirst" \) ; then
673 if test "$error_check_default" = yes ; then
674 types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nobufpos', \`nogc', and \`nomalloc'."
676 types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', and \`malloc'."
678 USAGE_ERROR(["Valid types for the \`--$optname' option are:
680 elif test -n "$new_default" ; then
681 error_check_extents=$new_default
682 error_check_typecheck=$new_default
683 error_check_bufpos=$new_default
684 error_check_gc=$new_default
685 error_check_malloc=$new_default
686 new_default= # reset this
692 dnl Has the user tried to tell us where the X files are?
693 dnl I think these are dopey, but no less than three alpha
694 dnl testers, at large sites, have said they have their X files
695 dnl installed in odd places.
697 dnl Has the user specified one of the path options?
698 prefix | exec_prefix | bindir | datadir | statedir | libdir | \
699 mandir | infodir | infopath | lispdir | etcdir | lockdir | pkgdir | \
700 archlibdir | docdir | package_path )
701 dnl If the value was omitted, get it from the next argument.
702 if test "$valomitted" = "yes"; then
703 if test "$#" = 0; then
704 USAGE_ERROR("The \`--$optname' option requires a value.");
710 dnl You need to synchronize this with the way the
711 dnl default values are built.
713 lispdir ) AC_DEFINE(LISPDIR_USER_DEFINED) ;;
714 sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
715 moduledir ) AC_DEFINE(MODULEDIR_USER_DEFINED) ;;
716 etcdir ) AC_DEFINE(ETCDIR_USER_DEFINED) ;;
717 infodir ) AC_DEFINE(INFODIR_USER_DEFINED) ;;
718 infopath ) AC_DEFINE(INFOPATH_USER_DEFINED) ;;
719 package_path ) AC_DEFINE(PACKAGE_PATH_USER_DEFINED) ;;
721 AC_DEFINE(INFODIR_USER_DEFINED)
722 AC_DEFINE(LISPDIR_USER_DEFINED)
723 AC_DEFINE(MODULEDIR_USER_DEFINED)
724 AC_DEFINE(ETCDIR_USER_DEFINED) ;;
725 statedir | lockdir ) AC_DEFINE(LOCKDIR_USER_DEFINED) ;;
726 exec_prefix | libdir | archlibdir ) AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;;
730 dnl --no-create added by autoconf for use by config.status
733 dnl Has the user asked for some help?
734 "usage" | "help" ) ${PAGER-more} ${srcdir}/configure.usage; exit 0 ;;
736 dnl Has the user specified the toolkit(s) to use for GUI elements?
738 "with_scrollbars" | \
741 l | lu | luc | luci | lucid ) val=lucid ;;
742 m | mo | mot | moti | motif ) val=motif ;;
743 athena3d | athena-3d ) val=athena3d ;;
744 a | at | ath | athe | athen | athena ) val=athena ;;
745 n | no | non | none ) val=no ;;
746 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
747 \`lucid', \`motif', \`athena', \`athena3d', or \`no'."]) ;;
752 dnl Obsolete legacy argument? Warn, but otherwise ignore.
755 AC_MSG_WARN([Obsolete option \`--$optname' ignored.])
758 dnl Unrecognized option? No mercy for user errors.
759 * ) USAGE_ERROR("Unrecognized option: $arg") ;;
764 dnl Assume anything with multiple hyphens is a configuration name.
765 *-*-*) configuration="$arg" ;;
767 dnl Unrecognized argument? No mercy for user errors.
768 *) USAGE_ERROR("Unrecognized argument: $arg") ;;
773 dnl -------------------------
774 dnl Finish options processing
775 dnl -------------------------
777 dnl Several options are equivalent to, and override, environment variables.
778 test -n "$cpp" && CPP="$cpp"
779 test -n "$cppflags" && CPPFLAGS="$cppflags"
780 test -n "$libs" && LIBS="$libs"
781 test -n "$ldflags" && LDFLAGS="$ldflags"
783 dnl Get the arguments back. See the diatribe on Shell Magic above.
784 eval set x "$quoted_arguments"; shift
786 dnl --extra-verbose implies --verbose
787 test "$extra_verbose" = "yes" && verbose=yes
789 dnl with_x is an obsolete synonym for with_x11
790 test -n "$with_x" && with_x11="$with_x"
792 dnl --with-quantify or --with-purify imply --use-system-malloc
793 if test "$with_purify" = "yes" -o "$with_quantify" = "yes"; then
794 test "$with_system_malloc" = "default" && with_system_malloc=yes
797 dnl --gung-ho=val is a synonym for
798 dnl --use-minimal-tagbits=val --use-indexed-lrecord-implementation=val
799 if test -n "$gung_ho"; then
800 test -z "$use_minimal_tagbits" && use_minimal_tagbits="$gung_ho"
801 test -z "$use_indexed_lrecord_implementation" && \
802 use_indexed_lrecord_implementation="$gung_ho"
804 if test "$use_minimal_tagbits" = "no"; then
805 test "$with_dlmalloc" = "yes" && \
806 USAGE_ERROR("--with-dlmalloc requires --use-minimal-tagbits")
810 dnl XE_CHECK_FEATURE_DEPENDENCY(feature1, feature2)
811 define([XE_CHECK_FEATURE_DEPENDENCY],
812 [if test "$with_$1 $with_$2" = "yes no"; then
813 USAGE_ERROR("--with-$1 requires --with-$2")
814 elif test "$with_$2" = "no" ; then with_$1=no
815 elif test "$with_$1" = "yes"; then with_$2=yes
819 dnl CDE requires tooltalk
820 XE_CHECK_FEATURE_DEPENDENCY(cde, tooltalk)
822 dnl Find the source directory.
825 dnl If srcdir is not specified, see if "." or ".." might work.
827 for dir in "`echo $0 | sed 's|//|/|' | sed 's|/[[^/]]*$||'`" "." ".." ; do
828 if test -f "$dir/src/lisp.h" -a \
829 -f "$dir/lisp/version.el" ; then
834 if test -z "$srcdir" ; then
835 USAGE_ERROR(["Neither the current directory nor its parent seem to
836 contain the XEmacs sources. If you do not want to build XEmacs in its
837 source tree, you should run \`$progname' in the directory in which
838 you wish to build XEmacs, using the \`--srcdir' option to say where the
839 sources may be found."])
843 dnl Otherwise, check if the directory they specified is okay.
845 if test ! -f "$srcdir/src/lisp.h" -o \
846 ! -f "$srcdir/lisp/version.el" ; then
847 USAGE_ERROR(["The directory specified with the \`--srcdir' option,
848 \`$srcdir', doesn't seem to contain the XEmacs sources. You should
849 either run the \`$progname' script at the top of the XEmacs source
850 tree, or use the \`--srcdir' option to specify the XEmacs source directory."])
855 dnl ###########################################################################
856 if test -z "$configuration"; then
857 dnl Guess the configuration
858 configuration=`${CONFIG_SHELL-/bin/sh} $srcdir/config.guess`
859 if test -z "$configuration"; then
860 USAGE_ERROR(["XEmacs has not been ported to this host type.
861 Try explicitly specifying the CONFIGURATION when rerunning configure."])
867 dnl Make symlinks for etc, lisp, and info directories while the path
868 dnl is still relative. We do not symlink lock because someone may
869 dnl have stuck the source on a read-only partition. Instead we
870 dnl create it as an actual directory later on if it does not already
872 for dir in lisp etc man info; do
873 if test ! -d "$dir" ; then
874 echo Making symbolic link to "$srcdir/$dir"
875 ${LN_S} "$srcdir/$dir" "$dir"
879 dnl Do our best to deal with automounter brokenness
880 dnl CANONICALIZE_PATH(varname)
881 define([CANONICALIZE_PATH],
882 [if test -d "/net"; then
883 if test -d "/tmp_mnt/net"; then tdir="tmp_mnt/net"; else tdir="tmp_mnt"; fi
885 sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
888 dnl Calculate canonical name for blddir (i.e. current directory).
889 dnl PWD may already be the preferable absolute name for ".",
890 dnl but we can't trust it - it is sometimes inaccurate.
891 absolute_pwd="`pwd`";
892 if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd"
894 else blddir="$absolute_pwd"; CANONICALIZE_PATH(blddir)
898 dnl Make srcdir absolute, if not already. It is important to
899 dnl avoid running the path through pwd unnecessary, since pwd can
900 dnl give you automounter prefixes, which can go away.
903 . ) srcdir="$blddir" ;;
904 * ) srcdir="`cd $srcdir && pwd`"; CANONICALIZE_PATH(srcdir) ;;
907 dnl Check if the source directory already has a configured system in it.
908 if test `pwd` != `sh -c cd $srcdir && pwd` \
909 && test -f "$srcdir/src/config.h"; then
910 (echo "$progname: WARNING: The directory tree \`$srcdir' is being used"
911 echo " as a build directory right now; it has been configured in its own"
912 echo " right. To configure in another directory as well, you MUST"
913 echo " use GNU make. If you do not have GNU make, then you must"
914 echo " now do \`make distclean' in $srcdir,"
915 echo " and then run $progname again.") >&2
916 extrasub='/^VPATH[[ ]]*=/c\
922 vpath %.in $(srcdir)'
925 dnl ----------------------------------------
926 dnl Find out which version of XEmacs this is
927 dnl ----------------------------------------
928 . "$srcdir/version.sh" || exit 1;
929 dnl Must do the following first to determine verbosity for AC_DEFINE
930 if test -n "$emacs_beta_version"; then beta=yes; else beta=no; fi
931 : "${extra_verbose=$beta}"
932 version="${emacs_major_version}.${emacs_minor_version}"
933 AC_DEFINE_UNQUOTED(EMACS_MAJOR_VERSION, $emacs_major_version)
934 AC_DEFINE_UNQUOTED(EMACS_MINOR_VERSION, $emacs_minor_version)
935 if test -n "$emacs_beta_version"; then
936 version="${version}-b${emacs_beta_version}"
937 AC_DEFINE_UNQUOTED(EMACS_BETA_VERSION, $emacs_beta_version)
939 AC_DEFINE_UNQUOTED(XEMACS_CODENAME, "$xemacs_codename")
940 AC_DEFINE_UNQUOTED(EMACS_VERSION, "$version")
942 if test "$with_infodock" = "yes"; then
943 if test ! -f ../ID-INSTALL; then
944 echo "Cannot build InfoDock without InfoDock sources"
949 if test "$with_infodock" = "yes"; then
950 dnl InfoDock version numbers. XEmacs will use the same style of numbering
951 dnl after the release of XEmacs 21.0.
952 AC_DEFINE_UNQUOTED(INFODOCK_MAJOR_VERSION, $infodock_major_version)
953 AC_DEFINE_UNQUOTED(INFODOCK_MINOR_VERSION, $infodock_minor_version)
954 AC_DEFINE_UNQUOTED(INFODOCK_BUILD_VERSION, $infodock_build_version)
955 version=${infodock_major_version}.${infodock_minor_version}.${infodock_build_version}
957 CPPFLAGS="$CPPFLAGS -DINFODOCK"
962 dnl ----------------------------------
963 dnl Error checking and debugging flags
964 dnl ----------------------------------
965 dnl Error checking default to "yes" in beta versions, to "no" in releases.
966 dnl Same goes for --debug and --extra-verbosity.
967 if test -n "$emacs_beta_version"; then beta=yes; else beta=no; fi
968 test "${error_check_extents=$beta}" = yes && AC_DEFINE(ERROR_CHECK_EXTENTS)
969 test "${error_check_typecheck=$beta}" = yes && AC_DEFINE(ERROR_CHECK_TYPECHECK)
970 test "${error_check_bufpos=$beta}" = yes && AC_DEFINE(ERROR_CHECK_BUFPOS)
971 test "${error_check_gc=$beta}" = yes && AC_DEFINE(ERROR_CHECK_GC)
972 test "${error_check_malloc=$beta}" = yes && AC_DEFINE(ERROR_CHECK_MALLOC)
973 dnl debug=yes must be set when error checking is present. This should be
975 dnl debug implies other options
976 if test "${debug:=$beta}" = "yes"; then
977 use_assertions=yes memory_usage_stats=yes
979 AC_DEFINE(DEBUG_XEMACS)
981 test "$use_assertions" = "yes" && AC_DEFINE(USE_ASSERTIONS)
982 test "$memory_usage_stats" = "yes" && AC_DEFINE(MEMORY_USAGE_STATS)
984 dnl ------------------------------
985 dnl Determine the s&m files to use
986 dnl ------------------------------
987 dnl Given the configuration name, set machfile and opsysfile to the
988 dnl names of the m/*.h and s/*.h files we should use.
990 dnl Canonicalize the configuration name.
991 AC_MSG_CHECKING("host system type")
992 dnl allow -workshop suffix on configuration name
993 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'`
994 canonical=`${CONFIG_SHELL-/bin/sh} $srcdir/config.sub "$internal_configuration"`
995 XE_STRIP_4TH_COMPONENT(configuration)
996 XE_STRIP_4TH_COMPONENT(canonical)
997 AC_MSG_RESULT($configuration)
999 dnl If you add support for a new configuration, add code to this
1000 dnl switch statement to recognize your configuration name and select
1001 dnl the appropriate operating system and machine description files.
1003 dnl You would hope that you could choose an m/*.h file pretty much
1004 dnl based on the machine portion of the configuration name, and an s-
1005 dnl file based on the operating system portion. However, it turns out
1006 dnl that each m/*.h file is pretty manufacturer-specific - for
1007 dnl example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are
1008 dnl all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
1009 dnl machines. So we basically have to have a special case for each
1010 dnl configuration name.
1012 dnl As far as handling version numbers on operating systems is
1013 dnl concerned, make sure things will fail in a fixable way. If
1014 dnl /etc/MACHINES says nothing about version numbers, be
1015 dnl prepared to handle anything reasonably. If version numbers
1016 dnl matter, be sure /etc/MACHINES says something about it.
1018 dnl Eric Raymond says we should accept strings like "sysvr4" to mean
1019 dnl "System V Release 4"; he writes, "The old convention encouraged"
1020 dnl "confusion between `system' and `release' levels'."
1024 dnl Straightforward machine determination
1025 case "$canonical" in
1026 sparc-*-* ) machine=sparc ;;
1027 alpha*-*-* ) machine=alpha ;;
1028 vax-*-* ) machine=vax ;;
1029 mips-dec-* ) machine=pmax ;;
1030 mips-sgi-* ) machine=iris4d ;;
1031 romp-ibm-* ) machine=ibmrt ;;
1032 rs6000-ibm-aix* ) machine=ibmrs6000 ;;
1033 powerpc-ibm-aix* ) machine=ibmrs6000 ;;
1034 powerpc*-* ) machine=powerpc ;;
1035 hppa-*-* ) machine=hp800 ;;
1036 m88k-dg-* ) machine=aviion ;;
1037 m68*-sony-* ) machine=news ;;
1038 mips-sony-* ) machine=news-risc ;;
1039 clipper-* ) machine=clipper ;;
1040 arm-* ) machine=arm ;;
1041 ns32k-* ) machine=ns32000 ;;
1044 dnl Straightforward OS determination
1045 case "$canonical" in
1046 *-*-linux* ) opsys=linux ;;
1047 *-*-netbsd* ) opsys=netbsd ;;
1048 *-*-openbsd* ) opsys=openbsd ;;
1049 *-*-nextstep* ) opsys=nextstep ;;
1050 *-*-vms ) opsys=vms ;;
1053 *-dec-osf1.3 | *-dec-osf2* ) opsys=decosf1-3 ;;
1054 *-dec-osf1.2 | *-dec-osf1* ) opsys=decosf1-2 ;;
1055 *-dec-osf3.[[2-9]] ) opsys=decosf3-2 ;;
1056 *-dec-osf3* ) opsys=decosf3-1 ;;
1057 *-dec-osf4* ) opsys=decosf4-0 ;;
1060 *-*-ultrix[[0-3]].* | *-*-ultrix4.0* ) opsys=bsd4-2 ;;
1061 *-*-ultrix4.[[12]]* ) opsys=bsd4-3 ;;
1062 *-*-ultrix* ) opsys=ultrix4-3 ;;
1065 *-*-aix3.1* ) opsys=aix3-1 ;;
1066 *-*-aix3.2.5 ) opsys=aix3-2-5 ;;
1067 *-*-aix3* ) opsys=aix3-2 ;;
1068 *-*-aix4.0* ) opsys=aix4 ;;
1069 *-*-aix4.1* ) opsys=aix4-1 ;;
1070 *-*-aix4* ) opsys=aix4-2 ;;
1072 dnl Other generic OSes
1073 *-gnu* ) opsys=gnu ;;
1074 *-*-bsd4.[[01]] ) opsys=bsd4-1 ;;
1075 *-*-bsd4.2 ) opsys=bsd4-2 ;;
1076 *-*-bsd4.3 ) opsys=bsd4-3 ;;
1077 *-*-aos4.2 ) opsys=bsd4-2 ;;
1078 *-*-aos* ) opsys=bsd4-3 ;;
1079 *-*-sysv0 | *-*-sysvr0 ) opsys=usg5-0 ;;
1080 *-*-sysv2 | *-*-sysvr2 ) opsys=usg5-2 ;;
1081 *-*-sysv2.2 | *-*-sysvr2.2 ) opsys=usg5-2-2 ;;
1082 *-*-sysv3* | *-*-sysvr3* ) opsys=usg5-3 ;;
1083 *-*-sysv4.1* | *-*-sysvr4.1* )opsys=usg5-4 NON_GNU_CPP=/usr/lib/cpp ;;
1084 *-*-sysv4.[[2-9]]* | *-sysvr4.[[2-9]]* )
1085 if test -z "$NON_GNU_CPP" ; then
1086 for prog in "/usr/ccs/lib/cpp" "/lib/cpp"; do
1087 if test -f "$prog"; then NON_GNU_CPP="$prog"; break; fi
1091 *-sysv4* | *-sysvr4* ) opsys=usg5-4 ;;
1092 *-*-mach_bsd4.3* ) opsys=mach-bsd4-3 ;;
1095 case "$canonical" in
1099 case "$canonical" in
1100 i[[3-9]]86-*-netbsd*) machine=intel386 ;;
1101 hp300-*-netbsd* | amiga-*-netbsd* | sun3-*-netbsd* | mac68k-*-netbsd* | da30-*-netbsd* | m68k-*-netbsd* )
1102 dnl Yes, this is somewhat bogus.
1103 machine=hp9000s300 ;;
1104 pc532-*-netbsd* | ns32k-*-netbsd* ) machine=ns32000 ;;
1105 pmax-*-netbsd* | mips-*-netbsd* ) machine=pmax ;;
1111 case "${canonical}" in
1112 i386-*-openbsd*) machine=intel386 ;;
1113 m68k-*-openbsd*) machine=hp9000s300 ;;
1114 mipsel-*-openbsd*) machine=pmax ;;
1119 arm-acorn-riscix1.1* ) machine=acorn opsys=riscix1-1 ;;
1120 arm-acorn-riscix1.2* | arm-acorn-riscix ) machine=acorn opsys=riscix1-2 ;;
1122 dnl Alliant machines
1123 fx80-alliant-* ) machine=alliant4 opsys=bsd4-2 ;;
1124 i860-alliant-* ) machine=alliant-2800 opsys=bsd4-3 ;;
1127 m68*-altos-sysv* ) machine=altos opsys=usg5-2 ;;
1130 580-amdahl-sysv* ) machine=amdahl opsys=usg5-2-2 ;;
1132 dnl Apollo, Domain/OS
1133 m68*-apollo-* ) machine=apollo opsys=bsd4-3 ;;
1135 dnl AT&T 3b2, 3b5, 3b15, 3b20
1136 we32k-att-sysv* ) machine=att3b opsys=usg5-2-2 ;;
1138 dnl AT&T 3b1 - The Mighty Unix PC!
1139 m68*-att-sysv* ) machine=7300 opsys=usg5-2-2 ;;
1142 rs6000-bull-bosx* ) machine=ibmrs6000 opsys=aix3-2 ;; # dpx20
1143 m68*-bull-sysv3* ) machine=dpx2 opsys=usg5-3 ;; # dpx2
1144 m68*-bull-sysv2* ) machine=sps7 opsys=usg5-2 ;; # sps7
1146 dnl CCI 5/32, 6/32 -- see "Tahoe".
1149 celerity-celerity-bsd* ) machine=celerity opsys=bsd4-2 ;;
1152 *-convex-bsd* | *-convex-convexos* )
1153 machine=convex opsys=bsd4-3
1154 NON_GNU_CPP="cc -E -P"
1158 i[[3-9]]86-cubix-sysv* ) machine=intel386 opsys=usg5-3 ;;
1160 dnl Data General AViiON Machines
1161 i586-dg-dgux*R4* | i586-dg-dgux5.4.4* ) machine=aviion opsys=dgux5-4r4 ;;
1162 m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* ) opsys=dgux5-4r3 ;;
1163 m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* ) opsys=dgux5-4r2 ;;
1164 m88k-dg-dgux* ) opsys=dgux ;;
1166 dnl Motorola Delta machines
1167 m68k-motorola-sysv* | m68000-motorola-sysv* ) machine=delta opsys=usg5-3 ;;
1168 m88k-motorola-sysv4* )
1169 dnl jbotte@bnr.ca says that UNIX_System_V <hostName> 4.0 R40V4.3 m88k mc88110
1170 dnl needs POSIX_SIGNALS and therefore needs usg5-4-2.
1171 dnl I hope there are not other 4.0 versions for this machine
1172 dnl which really need usg5-4 instead.
1173 machine=delta88k opsys=usg5-4-2
1175 m88k-motorola-sysv* | m88k-motorola-m88kbcs* ) machine=delta88k opsys=usg5-3 ;;
1178 m68*-dual-sysv* ) machine=dual opsys=usg5-2 ;;
1179 m68*-dual-uniplus* ) machine=dual opsys=unipl5-2 ;;
1182 ns16k-encore-bsd* ) machine=ns16000 opsys=umax ;;
1184 dnl Gould Power Node and NP1
1185 pn-gould-bsd4.2* ) machine=gould opsys=bsd4-2 ;;
1186 pn-gould-bsd4.3* ) machine=gould opsys=bsd4-3 ;;
1187 np1-gould-bsd* ) machine=gould-np1 opsys=bsd4-3 ;;
1189 dnl Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000
1190 dnl as far as XEmacs is concerned).
1192 dnl Build needs to be different on 7.0 and later releases
1193 case "`uname -r`" in
1194 [[56]].[[0-9]] ) machine=nh4000 opsys=cxux ;;
1195 [[7]].[[0-9]] ) machine=nh4000 opsys=cxux7 ;;
1197 NON_GNU_CPP="/lib/cpp"
1199 dnl Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
1200 m68k-harris-cxux* ) machine=nh3000 opsys=cxux ;;
1201 dnl Harris power pc NightHawk running Power UNIX (Series 6000)
1202 powerpc-harris-powerunix ) machine=nh6000 opsys=powerunix NON_GNU_CPP="cc -Xo -E -P" ;;
1204 dnl Honeywell XPS100
1205 xps*-honeywell-sysv* ) machine=xps100 opsys=usg5-2 ;;
1207 dnl HP 9000 series 200 or 300
1208 m68*-hp-bsd* ) machine=hp9000s300 opsys=bsd4-3 ;;
1212 dnl Figure out machine and opsys orthogonally
1213 case "$canonical" in
1214 m68* ) machine=hp9000s300 ;;
1215 hppa* ) machine=hp800 ;;
1218 case "$canonical" in
1219 *-hp-hpux7* ) opsys=hpux ;;
1220 *-hp-hpux8* ) opsys=hpux8 ;;
1221 *-hp-hpux9* ) opsys=hpux9 ;;
1222 *-hp-hpux10* ) opsys=hpux10 ;;
1223 *-hp-hpux11* ) opsys=hpux11 ;;
1227 dnl HP has a broken "strcat"
1228 case "$opsys" in hpux9 | hpux10 ) XE_ADD_OBJS(strcat.o) ;; esac
1230 if test "$opsys" = "hpux10" -o "$opsys" = "hpux11"; then \
1231 ansi_flag="-Ae"; else ansi_flag="-Aa"; fi
1232 NON_GNU_CC="cc $ansi_flag" NON_GNU_CPP="cc $ansi_flag -E"
1234 case "$canonical" in *-hp-hpux*shr* ) opsys="${opsys}-shr" ;; esac
1238 orion-orion-bsd* ) machine=orion opsys=bsd4-2 ;;
1239 clipper-orion-bsd* ) machine=orion105 opsys=bsd4-2 ;;
1242 i[[3-9]]86-ibm-aix1.1* ) machine=ibmps2-aix opsys=usg5-2-2 ;;
1243 i[[3-9]]86-ibm-aix1.[[23]]* | i[[3-9]]86-ibm-aix* ) machine=ibmps2-aix opsys=usg5-3 ;;
1244 i370-ibm-aix*) machine=ibm370aix opsys=usg5-3 ;;
1245 romp-ibm-aos* ) opsys=bsd4-3 ;;
1246 romp-ibm-bsd* ) opsys=bsd4-3 ;;
1247 romp-ibm-mach* ) opsys=mach-bsd4-3 ;;
1249 dnl Integrated Solutions "Optimum V"
1250 m68*-isi-bsd4.2* ) machine=isi-ov opsys=bsd4-2 ;;
1251 m68*-isi-bsd4.3* ) machine=isi-ov opsys=bsd4-3 ;;
1253 dnl Intel 386 machines where we do care about the manufacturer
1254 i[[3-9]]86-intsys-sysv* ) machine=is386 opsys=usg5-2-2 ;;
1257 i[[3-9]]86-prime-sysv* ) machine=i386 opsys=usg5-3 ;;
1259 dnl Sequent Symmetry running Dynix
1260 i[[3-9]]86-sequent-bsd* ) machine=symmetry opsys=bsd4-3 ;;
1262 dnl Sequent Symmetry running DYNIX/ptx
1263 i[[3-9]]86-sequent-ptx* ) machine=sequent-ptx opsys=ptx NON_GNU_CPP="/lib/cpp" ;;
1265 dnl Unspecified sysv on an ncr machine defaults to svr4.2.
1266 dnl (Plain usg5-4 does not turn on POSIX signals, which we need.)
1267 i[[3-9]]86-ncr-sysv* ) machine=ncr386 opsys=usg5-4-2 ;;
1269 dnl Intel Paragon OSF/1
1270 i860-intel-osf1* ) machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp ;;
1273 i860-*-sysv4* ) machine=i860 opsys=usg5-4 NON_GNU_CC="/bin/cc" NON_GNU_CPP="/usr/ccs/lib/cpp" ;;
1275 dnl Masscomp machines
1276 m68*-masscomp-rtu* ) machine=masscomp opsys=rtu ;;
1278 dnl Megatest machines
1279 m68*-megatest-bsd* ) machine=mega68 opsys=bsd4-2 ;;
1281 dnl Workstations sold by MIPS
1282 dnl This is not necessarily all workstations using the MIPS processor -
1283 dnl Irises are produced by SGI, and DECstations by DEC.
1284 mips-mips-usg* ) machine=mips4 ;;
1287 NON_GNU_CC="cc -systype bsd43"
1288 NON_GNU_CPP="cc -systype bsd43 -E"
1289 case "$canonical" in
1290 mips-mips-riscos4* ) opsys=bsd4-3 ;;
1291 mips-mips-riscos5* ) opsys=riscos5 ;;
1294 mips-mips-bsd* ) machine=mips opsys=bsd4-3 ;;
1295 mips-mips-* ) machine=mips opsys=usg5-2-2 ;;
1298 m68*-next-* | m68k-*-nextstep* ) machine=m68k opsys=nextstep ;;
1300 dnl The complete machine from National Semiconductor
1301 ns32k-ns-genix* ) machine=ns32000 opsys=usg5-2 ;;
1304 m68*-ncr-sysv2* | m68*-ncr-sysvr2* ) machine=tower32 opsys=usg5-2-2 ;;
1305 m68*-ncr-sysv3* | m68*-ncr-sysvr3* ) machine=tower32v3 opsys=usg5-3 ;;
1307 dnl Nixdorf Targon 31
1308 m68*-nixdorf-sysv* ) machine=targon31 opsys=usg5-2-2 ;;
1311 m68*-nu-sysv* ) machine=nu opsys=usg5-2 ;;
1314 m68*-plexus-sysv* ) machine=plexus opsys=usg5-2 ;;
1316 dnl Pyramid machines
1317 pyramid-pyramid-bsd* ) machine=pyramid opsys=bsd4-2 ;;
1320 ns32k-sequent-bsd4.2* ) machine=sequent opsys=bsd4-2 ;;
1321 ns32k-sequent-bsd4.3* ) machine=sequent opsys=bsd4-3 ;;
1324 mips-siemens-sysv* | mips-sni-sysv*)
1325 machine=mips-siemens opsys=usg5-4
1326 NON_GNU_CC=/usr/ccs/bin/cc
1327 NON_GNU_CPP=/usr/ccs/lib/cpp
1333 NON_GNU_CC=/usr/ccs/bin/cc
1334 NON_GNU_CPP=/usr/ccs/lib/cpp
1337 dnl Silicon Graphics machines
1338 dnl Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
1339 m68*-sgi-iris3.5* ) machine=irist opsys=iris3-5 ;;
1340 m68*-sgi-iris3.6* | m68*-sgi-iris*) machine=irist opsys=iris3-6 ;;
1342 mips-sgi-irix3.* ) opsys=irix3-3 ;;
1343 mips-sgi-irix4.* ) opsys=irix4-0 ;;
1344 mips-sgi-irix6* ) opsys=irix6-0 ;;
1345 mips-sgi-irix5.1* ) opsys=irix5-1 ;;
1346 mips-sgi-irix5.2* ) opsys=irix5-2 ;;
1347 mips-sgi-irix5.* ) opsys=irix5-3 ;;
1348 mips-sgi-irix* ) opsys=irix5-0 ;;
1351 *-sony-newsos[[34]]* | *-sony-news[[34]]* ) opsys=bsd4-3 ;;
1352 *-sony-news* ) opsys=newsos5 ;;
1355 m68*-stride-sysv* ) machine=stride opsys=usg5-2 ;;
1358 *-*-solaris* | *-*-sunos* | *-sun-mach* | *-sun-bsd* )
1360 case "$canonical" in
1361 m68*-sunos1* ) machine=sun1 ;;
1362 m68*-sunos2* ) machine=sun2 ;;
1363 m68* ) machine=sun3 ;;
1364 i*86*-sun-sunos[[34]]* ) machine=sun386 ;;
1365 i*86-*-* ) machine=intel386 ;;
1366 rs6000* ) machine=rs6000 ;;
1369 dnl Make $canonical even more so.
1370 case "$canonical" in *-sunos5*)
1371 canonical=`echo $canonical | sed -e s/sunos5/solaris2/`;;
1374 dnl On SunOS 4, use /usr/lib/cpp, sans dynodump, /bin/ranlib
1375 dnl On SunOS 5, use cc -E, need dynodump, RANLIB not needed
1376 dnl But, SunOS 5.6 no longer needs dynodump because it has a similar
1377 dnl function integrated.
1378 case "$canonical" in
1380 #test -f /usr/lib/cpp && NON_GNU_CPP=/usr/lib/cpp ;;
1383 #test -f /usr/ccs/lib/cpp && NON_GNU_CPP=/usr/ccs/lib/cpp
1387 case "$canonical" in
1390 os_release=`uname -r | sed -e 's/^\([[0-9]]\)\.\([[0-9]]\).*/\1\2/'`
1391 AC_DEFINE_UNQUOTED(OS_RELEASE, $os_release) ;;
1393 dnl The last Sun386 ran 4.0.
1394 i*86-*-sunos4* ) opsys=sunos4-0 ;;
1395 *-sunos4.0* ) opsys=sunos4-0 ;;
1396 *-sunos4.1.2* ) opsys=sunos4-1-2 ;;
1397 *-sunos4.1.3* ) opsys=sunos4-1-3 ;;
1398 *-sunos4.1.[[4-9]]* ) opsys=sunos4-1-4 ;;
1399 *-sunos4* | *-sunos ) opsys=sunos4-1 ;;
1400 *-mach* ) opsys=mach-bsd4-3 ;;
1404 case "$canonical" in *-sunos4*shr* ) opsys="${opsys}-shr" ;; esac
1406 dnl Watch out for a compiler guaranteed not to work.
1407 test "$opsys $CC" = "sol2 /usr/ucb/cc" && CC=""
1411 m68*-tadpole-sysv* ) machine=tad68k opsys=usg5-3 ;;
1414 tahoe-tahoe-bsd4.2* ) machine=tahoe opsys=bsd4-2 ;;
1415 tahoe-tahoe-bsd4.3* ) machine=tahoe opsys=bsd4-3 ;;
1417 dnl Tandem Integrity S2
1418 mips-tandem-sysv* ) machine=tandem-s2 opsys=usg5-3 ;;
1421 m88k-tektronix-sysv3* ) machine=tekxd88 opsys=usg5-3 ;;
1423 dnl Tektronix 16000 box (6130?)
1424 ns16k-tektronix-bsd* ) machine=ns16000 opsys=bsd4-2 ;;
1426 dnl src/m/tek4300.h hints that this is a m68k machine.
1427 m68*-tektronix-bsd* ) machine=tek4300 opsys=bsd4-3 ;;
1430 titan-titan-sysv* ) machine=titan opsys=usg5-3 ;;
1432 dnl Ustation E30 (SS5E)
1433 m68*-unisys-uniplus* ) machine=ustation opsystem=unipl5-2 ;;
1437 case "$canonical" in
1438 *-sysv[[01]]* | *-sysvr[[01]]* ) opsys=usg5-0 ;;
1439 *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;;
1440 *-mach* ) opsys=mach-bsd4-3 ;;
1445 ns16k-whitechapel-* ) machine=mg1 ;;
1448 m68*-wicat-sysv* ) machine=wicat opsys=usg5-2 ;;
1450 dnl Intel 386 machines where we do not care about the manufacturer
1453 case "$canonical" in
1454 *-isc1.* | *-isc2.[[01]]* ) opsys=386-ix ;;
1455 *-isc2.2* ) opsys=isc2-2 ;;
1456 *-isc4.0* ) opsys=isc4-0 ;;
1457 *-isc4.* ) opsys=isc4-1
1458 GCC_TEST_OPTIONS=-posix
1459 NON_GCC_TEST_OPTIONS=-Xp
1461 *-isc* ) opsys=isc3-0 ;;
1462 *-esix5* ) opsys=esix5r4 NON_GNU_CPP=/usr/lib/cpp ;;
1463 *-esix* ) opsys=esix ;;
1464 *-mach* ) opsys=mach-bsd4-3 ;;
1465 *-xenix* ) opsys=xenix ;;
1466 *-sco3.2v4* ) opsys=sco4 NON_GNU_CPP=/lib/cpp ;;
1467 *-bsd386* | *-bsdi1* ) opsys=bsd386 ;;
1468 *-bsdi4* ) opsys=bsdos4 ;;
1469 *-bsdi3* ) opsys=bsdos3 ;;
1470 *-bsdi2.1* ) opsys=bsdos2-1 ;;
1471 *-bsdi2* ) opsys=bsdos2 ;;
1472 *-sco3.2v5* ) opsys=sco5 ;
1473 dnl This is a pain. Like the current USL cc, SCO cc -E
1474 dnl tokenizes as it preprocesses, making configure very
1475 dnl unhappy. Unfortunately, /lib/cpp does not understand
1476 dnl flags like "-b elf", so we have to cheat in order to
1477 dnl pick up the right defines for UNEXEC from the s-file.
1478 dnl 01/05/95 robertl@dgii.com
1479 if test "$dynamic" = "yes" ; then
1480 NON_GNU_CPP="/lib/cpp -D_XOPEN_SOURCE -D_SCO_ELF" ;
1482 NON_GNU_CPP="/lib/cpp -D_XOPEN_SOURCE" ;
1484 *-386bsd* ) opsys=386bsd ;;
1485 *-freebsd* ) opsys=freebsd ;;
1486 *-nextstep* ) opsys=nextstep ;;
1487 *-pc-cygwin32 ) opsys=cygwin32 ;;
1488 dnl Otherwise, we fall through to the generic opsys code at the bottom.
1493 m68k-*-linux* ) machine=m68k opsys=linux ;;
1497 if test -z "$machine" -o -z "$opsys"; then
1498 (echo "$progname: XEmacs hasn't been ported to \`$canonical' systems."
1499 echo "$progname: Check \`etc/MACHINES' for recognized configuration names."
1504 if test -z "$dynamic"; then
1506 hpux* | sunos4* ) dynamic=no ;;
1510 if test "$dynamic" = "yes"; then
1512 hpux* | sunos4* | sco5 ) opsys="${opsys}-shr" ;;
1513 decosf* ) ld_call_shared="-call_shared" ;;
1515 else dnl "$dynamic" = "no"
1518 echo "Static linking is not supported on Solaris 2."
1519 echo "Rerun configure without specifying --dynamic=no."
1521 linux ) ld_call_shared="-Bstatic" ;;
1522 decosf* ) ld_call_shared="-non_shared" ;;
1526 dnl Use xlc by default on AIX
1527 case "$opsys" in aix*) NON_GNU_CC=xlc ;; esac
1529 stack_trace_eye_catcher=`echo ${PROGNAME}_${version}_${canonical} | sed 'y/.-/__/'`
1530 AC_DEFINE_UNQUOTED(STACK_TRACE_EYE_CATCHER, $stack_trace_eye_catcher)
1532 machfile="m/${machine}.h"
1533 opsysfile="s/${opsys}.h"
1535 dnl --------------------------------------------------
1536 dnl Determine the compiler, set up for feature testing
1537 dnl --------------------------------------------------
1539 dnl Sun Development environment support
1540 test "$with_sparcworks" = "yes" && with_workshop=yes # compatibility alias
1541 XE_CHECK_FEATURE_DEPENDENCY(workshop, tooltalk)
1542 if test "$with_workshop" = "yes"; then
1544 XE_ADD_OBJS(sunpro.o)
1547 if test "$with_clash_detection" = "yes"; then
1548 AC_DEFINE(CLASH_DETECTION)
1549 XE_ADD_OBJS(filelock.o)
1552 dnl Choose a compiler from (in order)
1553 dnl --compiler, env var CC, with_gcc=no && ${NON_GNU_CC:-cc}, AC_PROG_CC
1554 test -n "$compiler" && CC="$compiler"
1555 if test "$with_gcc" = "no"; then dnl Try to find a non-gcc compiler
1556 case "$CC" in "" | *gcc* ) CC="${NON_GNU_CC-cc}" ;; esac
1559 dnl If we don't set CFLAGS here, AC_PROG_CC will set it.
1560 dnl But we know better what's good for us, so we do our own
1561 dnl computation of real CFLAGS later.
1562 dnl --cflags overrides environment variable CFLAGS
1563 test "${cflags-unset}" != unset && CFLAGS="$cflags"
1564 if test "${CFLAGS-unset}" != unset
1565 then cflags_specified=yes;
1566 else cflags_specified=no;
1569 xe_save_CFLAGS="$CFLAGS"
1571 AC_PROG_CC dnl Autoconf has its own magic for compiler autodetection
1573 dnl Retry using random guesswork if AC_PROG_CC got it wrong...
1574 if test "$with_gcc" = "no" -a "$GCC" = "yes"; then
1577 elif test "$with_gcc" = "yes" -a "$GCC" != "yes" ; then
1581 CFLAGS="$xe_save_CFLAGS"
1583 dnl Figure out what C preprocessor to use.
1585 dnl On Sun systems, people sometimes set up the variable CPP
1586 dnl with a value that is a directory, not an executable at all.
1587 dnl Detect that case, and ignore that value.
1588 test -n "$CPP" -a -d "$CPP" && CPP=
1590 test -n "$NON_GNU_CPP" -a "$GCC" != "yes" -a -z "$CPP" && CPP="$NON_GNU_CPP"
1596 AC_MSG_CHECKING(for GNU libc)
1597 AC_TRY_COMPILE([#include <features.h>],[
1598 #if ! (defined __GLIBC__ || defined __GNU_LIBRARY__)
1599 #error Not a GNU libc system :-(
1600 ******* ======= ******** &&&&&&&&
1602 ], have_glibc=yes, have_glibc=no)
1603 AC_MSG_RESULT($have_glibc)
1604 dnl I'm tired of pop being broken with GLIBC -slb
1605 dnl Well. then why not fix fucking pop?
1606 test "$have_glibc" = "yes" && AC_DEFINE(_GNU_SOURCE)
1609 dnl Identify compilers to enable compiler-specific hacks.
1610 dnl Add support for other compilers HERE!
1611 dnl GCC is already identified elsewhere.
1612 AC_TRY_RUN([int main () {
1613 #if defined __SUNPRO_C
1615 #elif defined __DECC
1621 [case "$conftest_rc" in
1622 11) echo "You appear to be using the SunPro C compiler."; __SUNPRO_C=yes ;;
1623 12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;;
1627 dnl case "$canonical" in
1628 dnl *-sun-sunos* ) test "$CPP" = "acc -E" && CPP="acc -E -Xs" ;;
1631 dnl --------------------------------------------------------------------
1632 dnl Extract some information from the operating system and machine files
1633 dnl --------------------------------------------------------------------
1635 echo "Extracting information from the machine- and system-dependent headers..."
1637 dnl It is not important that this name contain the PID; you cannot run
1638 dnl two configures in the same directory and have anything work
1640 tempcname="conftest.c"
1642 dnl CPP_to_sh(CPP_SYMBOL, SH_VAR, DEFAULT_VALUE)
1645 [#]define [$1]ifelse([$3],,, [ "$3"])
1647 configure___ [$2]=[$1]
1650 dnl CPP_boolean_to_sh(CPP_SYMBOL, SH_VAR)
1651 define([CPP_boolean_to_sh],
1653 configure___ [$2]=yes
1655 configure___ [$2]=no
1657 ])dnl CPP_boolean_to_sh
1659 cat > $tempcname <<EOF
1661 #define C_SWITCH_SITE
1662 #define C_SWITCH_X_SITE
1663 #define LD_SWITCH_SITE
1664 #define LD_SWITCH_X_SITE
1665 #define LD_SWITCH_X_SITE_AUX
1666 #define OS_RELEASE $os_release
1667 #include "$srcdir/src/$opsysfile"
1668 #include "$srcdir/src/$machfile"
1670 CPP_to_sh(LIBS_MACHINE, libs_machine)
1671 CPP_to_sh(LIBS_SYSTEM, libs_system)
1672 CPP_to_sh(LIBS_TERMCAP, libs_termcap)
1673 CPP_to_sh(LIB_STANDARD, libs_standard)
1675 CPP_to_sh(OBJECTS_MACHINE, objects_machine)
1676 CPP_to_sh(OBJECTS_SYSTEM, objects_system)
1678 CPP_to_sh(C_SWITCH_MACHINE, c_switch_machine)
1679 CPP_to_sh(C_SWITCH_SYSTEM, c_switch_system)
1681 CPP_to_sh(LD_SWITCH_MACHINE, ld_switch_machine)
1682 CPP_to_sh(LD_SWITCH_SYSTEM, ld_switch_system)
1684 CPP_to_sh(UNEXEC, unexec, unexec.o)
1686 CPP_to_sh(LD_SWITCH_SHARED, ld_switch_shared, -c)
1688 #ifdef ORDINARY_LINK
1689 #define LD "\$(CC) \$(CFLAGS)"
1690 #else /* no ORDINARY LINK */
1691 #ifdef COFF_ENCAPSULATE
1692 #define LD "\$(CC) -nostdlib"
1693 #else /* not COFF_ENCAPSULATE */
1696 #else /* ! defined (LINKER) */
1698 #endif /* ! defined (LINKER) */
1699 #endif /* ! defined (COFF_ENCAPSULATE) */
1700 #endif /* not ORDINARY_LINK */
1703 CPP_to_sh(LIB_GCC, lib_gcc)
1704 CPP_to_sh(LD_TEXT_START_ADDR, ld_text_start_addr)
1706 #if ! defined (ORDINARY_LINK) && !defined (START_FILES)
1708 #ifdef COFF_ENCAPSULATE
1709 #define START_FILES "pre-crt0.o /usr/local/lib/gcc-crt0.o"
1710 #else /* ! defined (COFF_ENCAPSULATE) */
1711 #define START_FILES "pre-crt0.o /lib/crt0.o"
1712 #endif /* ! defined (COFF_ENCAPSULATE) */
1713 #else /* ! defined (NO_REMAP) */
1714 #define START_FILES "ecrt0.o"
1715 #endif /* ! defined (NO_REMAP) */
1716 #endif /* no ORDINARY_LINK */
1720 configure___ start_files=START_FILES
1722 CPP_boolean_to_sh(ORDINARY_LINK, ordinary_link)
1723 CPP_boolean_to_sh(SYSTEM_MALLOC, system_malloc)
1724 CPP_boolean_to_sh(TERMINFO, have_terminfo)
1725 CPP_boolean_to_sh(MAIL_USE_FLOCK, mail_use_flock)
1726 CPP_boolean_to_sh(MAIL_USE_LOCKF, mail_use_lockf)
1729 dnl The value of CPP is a quoted variable reference, so we need to do this
1730 dnl to get its actual value...
1731 CPP=`eval "echo $CPP $CPPFLAGS"`
1734 eval `$CPP -Isrc $tempcname \
1735 | sed -n -e "s/[ TAB]*=[ TAB\"]*/='/" -e "s/[ TAB\"]*\$/'/" -e "s/^configure___//p"`
1736 changequote([, ])dnl
1740 dnl For debugging...
1741 test "$extra_verbose" = "yes" && \
1742 PRINT_VAR(libs_machine libs_system libs_termcap libs_standard
1743 objects_machine objects_system c_switch_machine c_switch_system
1744 ld_switch_machine ld_switch_system unexec ld_switch_shared
1745 ld lib_gcc ld_text_start_addr start_files ordinary_link
1746 have_terminfo mail_use_flock mail_use_lockf) && echo ""
1748 dnl Non-ordinary link usually requires -lc
1749 test "$ordinary_link" = "no" -a -z "$libs_standard" && libs_standard="-lc"
1751 dnl Compiler-specific hacks
1752 dnl DEC C requires -std
1753 test "$__DECC" = "yes" && XE_APPEND(-std, c_switch_site)
1755 dnl Calculalate value of CFLAGS:
1756 dnl Use either command line flag, environment var, or autodetection
1757 if test "$cflags_specified" = "no"; then
1758 dnl Following values of CFLAGS are known to work well.
1759 dnl Should we take debugging options into consideration?
1760 if test "$GCC" = "yes"; then
1761 CFLAGS="-g -O3 -Wall -Wno-switch"
1762 dnl I'm not convinced this is a good idea any more. -sb
1763 dnl test "$opsys $machine" = "linux intel386" && \
1764 dnl CFLAGS="$CFLAGS -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2"
1765 dnl cygwin b19 can't cope with -O3, but most people use 20.1 or egcs now.
1766 dnl test "$opsys $machine" = "cygwin32 intel386" && \
1767 dnl CFLAGS="-g -O2 -Wall -Wno-switch"
1768 elif test "$__SUNPRO_C" = "yes"; then
1770 sol2 ) CFLAGS="-v -xO4" ;;
1771 sunos4* ) CFLAGS="-xO2";;
1773 elif test "$__DECC" = "yes"; then
1775 elif test "$CC" = "xlc"; then
1776 CFLAGS="-g -O3 -qstrict -qnoansialias -qlibansi -qinfo -qro -qmaxmem=20000"
1777 dnl ### Add optimal CFLAGS support for other compilers HERE!
1779 CFLAGS="-O" ;dnl The only POSIX-approved flag
1783 dnl Inform compiler that certain flags are meant for the linker
1784 dnl XE_PROTECT_LINKER_FLAGS(shell_var)
1785 define([XE_PROTECT_LINKER_FLAGS], [
1786 if test "$GCC" = "yes"; then
1787 set x $[$1]; shift; [$1]=""
1788 while test -n "[$]1"; do
1790 -L | -l | -u ) [$1]="$[$1] [$]1 [$]2"; shift ;;
1791 -L* | -l* | -u* | -Wl* | -pg ) [$1]="$[$1] [$]1" ;;
1793 * ) [$1]="$[$1] -Xlinker [$]1" ;;
1798 XE_PROTECT_LINKER_FLAGS(ld_switch_system)
1799 XE_PROTECT_LINKER_FLAGS(ld_switch_machine)
1800 XE_PROTECT_LINKER_FLAGS(LDFLAGS)
1801 XE_PROTECT_LINKER_FLAGS(ld_call_shared)
1803 dnl Add s&m-determined objects (including unexec) to link line
1804 test -n "$objects_machine" && XE_ADD_OBJS($objects_machine)
1805 test -n "$objects_system" && XE_ADD_OBJS($objects_system)
1806 test -n "$unexec" && XE_ADD_OBJS($unexec)
1808 dnl Dynodump (Solaris 2.x, x<6)
1809 AC_MSG_CHECKING(for dynodump)
1810 if test "$unexec" != "unexsol2.o"; then
1815 XE_APPEND(dynodump, MAKE_SUBDIR)
1816 XE_APPEND(dynodump, SRC_SUBDIR_DEPS)
1818 sparc ) dynodump_arch=sparc ;;
1819 *86* ) dynodump_arch=i386 ;;
1820 powerpc ) dynodump_arch=ppc ;;
1822 dnl Dynodump requires the system linker
1823 test "$GCC" = "yes" && XE_APPEND(-fno-gnu-linker, ld_switch_site)
1826 dnl Feed s&m crud to src/Makefile
1828 dnl Linux/powerpc needs the following magic for some reason
1829 test "$machine$opsys" = "powerpclinux" && start_flags="-T $srcdir/src/ppc.ldscript"
1831 if test "$unexec" = "unexaix.o"; then
1832 dnl AIX needs various hacks to make static linking work.
1833 if test "$dynamic" = "no"; then
1834 start_flags="-Wl,-bnso,-bnodelcsect"
1835 test "$GCC" = "yes" && start_flags="-B/bin/ ${start_flags}"
1836 for f in "/lib/syscalls.exp" "/lib/threads.exp"; do
1837 if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; fi
1839 for f in "/usr/lpp/X11/bin/smt.exp" "/usr/bin/X11/smt.exp"; do
1840 if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; break; fi
1842 AC_CHECK_LIB(C, terminateAndUnload, XE_APPEND(-lC, libs_system))
1844 elif test -n "$ld_text_start_addr"; then
1845 start_flags="-T $ld_text_start_addr -e __start"
1847 AC_SUBST(start_flags)
1849 AC_SUBST(ld_switch_shared)
1850 AC_SUBST(start_files)
1851 if test "$ordinary_link" = "no" -a "$GCC" = "yes"; then
1852 test -z "$linker" && linker='$(CC) -nostdlib'
1853 test -z "$lib_gcc" && lib_gcc='`$(CC) -print-libgcc-file-name`'
1855 test "$GCC" != "yes" && lib_gcc=
1859 dnl ---------------------------------------------------------------
1860 dnl Add site and system specific flags to compile and link commands
1861 dnl ---------------------------------------------------------------
1863 dnl Allow use of either ":" or spaces for lists of directories
1864 define(COLON_TO_SPACE,
1865 [case "$[$1]" in *:* [)] [$1]="`echo '' $[$1] | sed -e 's/^ //' -e 's/:/ /g'`";; esac])dnl
1867 dnl --site-libraries (multiple dirs)
1868 COLON_TO_SPACE(site_libraries)
1869 if test -n "$site_libraries"; then
1870 for arg in $site_libraries; do
1873 * ) test -d "$arg" || \
1874 XE_DIE("Invalid site library \`$arg': no such directory")
1877 XE_APPEND($arg, ld_switch_site)
1881 dnl --site-includes (multiple dirs)
1882 COLON_TO_SPACE(site_includes)
1883 if test -n "$site_includes"; then
1884 for arg in $site_includes; do
1887 * ) test -d "$arg" || \
1888 XE_DIE("Invalid site include \`$arg': no such directory")
1891 XE_APPEND($arg, c_switch_site)
1895 dnl --site-prefixes (multiple dirs)
1896 dnl --site-prefixes=dir1:dir2 is a convenient shorthand for
1897 dnl --site-libraries=dir1/lib:dir2/lib --site-includes=dir1/include:dir2/include
1898 dnl Site prefixes take precedence over the standard places, but not over
1899 dnl site-includes and site-libraries.
1900 COLON_TO_SPACE(site_prefixes)
1901 if test -n "$site_prefixes"; then
1902 for dir in $site_prefixes; do
1903 inc_dir="${dir}/include"
1904 lib_dir="${dir}/lib"
1905 if test ! -d "$dir"; then
1906 XE_DIE("Invalid site prefix \`$dir': no such directory")
1907 elif test ! -d "$inc_dir"; then
1908 XE_DIE("Invalid site prefix \`$dir': no such directory \`$inc_dir'")
1909 elif test ! -d "$lib_dir"; then
1910 XE_DIE("Invalid site prefix \`$dir': no such directory \`$lib_dir'")
1912 XE_APPEND("-I$inc_dir", c_switch_site)
1913 XE_APPEND("-L$lib_dir", ld_switch_site)
1918 dnl GNU software installs by default into /usr/local/{include,lib}
1919 dnl if test -d "/usr/local/include" -a -d "/usr/local/lib"; then
1920 dnl XE_APPEND("-L/usr/local/lib", ld_switch_site)
1921 dnl XE_APPEND("-I/usr/local/include", c_switch_site)
1924 dnl Extra system-specific library directories - please add to list
1925 for dir in "/usr/ccs/lib"; do
1926 test -d "$dir" && XE_APPEND(-L${dir}, ld_switch_site)
1929 dnl --site-runtime-libraries (multiple dirs)
1930 COLON_TO_SPACE(site_runtime_libraries)
1931 if test -n "$site_runtime_libraries"; then
1932 LD_RUN_PATH="`echo $site_runtime_libraries | sed -e 's/ */:/g'`"
1936 dnl -------------------------------------
1937 dnl Compute runtime library path
1938 dnl -------------------------------------
1940 if test "$dynamic" = "no"; then add_runtime_path=no
1941 elif test -n "$LD_RUN_PATH"; then add_runtime_path=yes
1942 else case "$opsys" in
1943 sol2 | irix* | *bsd* | decosf* ) add_runtime_path=yes ;;
1944 * ) add_runtime_path=no ;;
1948 if test "$add_runtime_path" = "yes"; then
1949 dnl Try to autodetect runtime library flag (usually -R),
1950 dnl and whether it works (or at least does no harm)
1951 AC_MSG_CHECKING("for runtime libraries flag")
1953 sol2 ) dash_r="-R" ;;
1954 decosf* | linux* | irix*) dash_r="-rpath " ;;
1957 for try_dash_r in "-R" "-R " "-rpath "; do
1958 xe_check_libs="${try_dash_r}/no/such/file-or-directory"
1959 XE_PROTECT_LINKER_FLAGS(xe_check_libs)
1960 AC_TRY_LINK(, , dash_r="$try_dash_r")
1962 test -n "$dash_r" && break
1965 if test -n "$dash_r";
1966 then AC_MSG_RESULT("\"${dash_r}\"")
1967 else AC_MSG_RESULT(NONE)
1971 xe_add_unique_runpath_dir='
1973 for xe_dir in $runpath_dirs; do dnl Uniquify
1974 test "$xe_dir" = "$xe_runpath_dir" && xe_add_p=no
1976 if test "$xe_add_p" = "yes"; then
1977 test -n "$runpath" && runpath="${runpath}:"
1978 runpath="${runpath}${xe_runpath_dir}"
1979 runpath_dirs="$runpath_dirs $xe_runpath_dir"
1983 dnl XE_ADD_RUNPATH_DIR(directory)
1984 define([XE_ADD_RUNPATH_DIR],[{
1986 dnl PRINT_VAR(ld_switch_site ld_switch_x_site runpath xe_runpath_dir LD_RUN_PATH xe_ldflags)
1987 test "$xe_runpath_dir" != "/lib" -a \
1988 "$xe_runpath_dir" != "/usr/lib" -a \
1989 -n "`ls ${xe_runpath_dir}/*.s[[ol]] 2>/dev/null`" && \
1990 eval "$xe_add_unique_runpath_dir"
1993 dnl XE_COMPUTE_RUNPATH()
1994 define([XE_COMPUTE_RUNPATH],[
1995 if test "$add_runtime_path" = "yes" -a -n "$dash_r"; then
1996 dnl Remove runtime paths from current ld switches
1997 ld_switch_site=`echo '' $ld_switch_site | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"`
1998 ld_switch_x_site=`echo '' $ld_switch_x_site | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"`
1999 dnl PRINT_VAR(ld_switch_site ld_switch_x_site)
2001 dnl Fix up Runtime path
2002 dnl If LD_RUN_PATH is set in environment, use that.
2003 dnl In this case, assume user has set the right value.
2004 runpath="" runpath_dirs=""
2005 if test -n "$LD_RUN_PATH"; then
2006 runpath="$LD_RUN_PATH"
2007 elif test "$GCC" = "yes"; then
2008 dnl Compute runpath from gcc's -v output
2009 ld_switch_run_save="$ld_switch_run"; ld_switch_run=""
2010 echo "int main(int argc, char *argv[[]]) {return 0;}" > conftest.c
2011 xe_runpath_link='${CC-cc} -o conftest -v $CFLAGS '"$xe_ldflags"' conftest.$ac_ext 2>&1 1>/dev/null'
2012 for arg in `eval "$xe_runpath_link" | grep ' -L'`; do
2013 case "$arg" in P,* | -L* | -R* )
2014 for dir in `echo '' "$arg" | sed -e 's:^ ::' -e 's/^..//' -e 'y/:/ /'`; do
2015 XE_ADD_RUNPATH_DIR("$dir")
2019 ld_switch_run="$ld_switch_run_save"
2022 dnl Add all directories with .so files to runpath
2023 for arg in $ld_switch_site $ld_switch_x_site; do
2024 case "$arg" in -L*) XE_ADD_RUNPATH_DIR(`echo '' "$arg" | sed -e 's:^ ::' -e 's/^-L//'`);; esac
2026 dnl Sometimes /opt/SUNWdt/lib is the only installed Motif available
2027 if test "$opsys $need_motif" = "sol2 yes"; then
2028 xe_runpath_dir="/opt/SUNWdt/lib";
2029 eval "$xe_add_unique_runpath_dir";
2031 fi dnl Compute $runpath
2033 if test -n "$runpath"; then
2034 ld_switch_run="${dash_r}${runpath}"
2035 XE_PROTECT_LINKER_FLAGS(ld_switch_run)
2036 test "$extra_verbose" = "yes" && echo "Setting runpath to $runpath"
2040 XE_COMPUTE_RUNPATH()
2045 dnl -----------------------------------
2046 dnl Do some misc autoconf-special tests
2047 dnl -----------------------------------
2049 dnl Do the opsystem or machine files prohibit the use of the GNU malloc?
2050 dnl Assume not, until told otherwise.
2052 if test "$with_dlmalloc" != "no"; then
2057 after_morecore_hook_exists=yes
2058 AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
2059 AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
2060 AC_MSG_CHECKING(whether __after_morecore_hook exists)
2061 AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
2062 [AC_MSG_RESULT(yes)],
2064 after_morecore_hook_exists=no])
2065 if test "$system_malloc" = "yes" ; then
2068 (The GNU allocators don't work with this system configuration)."
2069 elif test "$with_system_malloc" = "yes" ; then
2072 (User chose not to use GNU allocators)."
2073 elif test "$with_debug_malloc" = "yes" ; then
2076 (User chose to use Debugging Malloc)."
2079 if test "$doug_lea_malloc" = "yes" ; then
2080 if test "$GNU_MALLOC" = yes ; then
2082 (Using Doug Lea's new malloc from the GNU C Library.)"
2084 AC_DEFINE(DOUG_LEA_MALLOC)
2085 if test "$after_morecore_hook_exists" = "no" ; then
2087 (Using Doug Lea's new malloc from the Linux C Library.)"
2088 AC_DEFINE(_NO_MALLOC_WARNING_)
2090 use_minimal_tagbits=yes
2093 dnl #### mcheck is broken in all versions of Linux libc and glibc.
2094 dnl Try this again when 2.1 hits the streets.
2095 dnl Avoid using free-hook.c if support exists for malloc debugging in libc
2096 dnl have_libmcheck=no
2097 dnl if test "$error_check_malloc" = "yes" -a \
2098 dnl "$have_glibc" = "yes" -a \
2099 dnl "$doug_lea_malloc" = "yes"; then
2100 dnl AC_CHECK_HEADERS(mcheck.h)
2101 dnl AC_CHECK_LIB(mcheck, mcheck, have_libmcheck=yes, have_libmcheck=no)
2104 dnl if test "$have_libmcheck" = "yes"; then
2105 dnl AC_DEFINE(HAVE_LIBMCHECK)
2106 dnl libmcheck=-lmcheck
2107 dnl AC_SUBST(libmcheck)
2110 dnl Some other nice autoconf tests. If you add a test here which
2111 dnl should make an entry in src/config.h, do not forget to add an
2112 dnl #undef clause to src/config.h.in for autoconf to modify.
2118 dnl checks for header files
2119 AC_CHECK_HEADERS(mach/mach.h sys/stropts.h sys/timeb.h sys/time.h unistd.h)
2120 AC_CHECK_HEADERS(utime.h locale.h libgen.h fcntl.h ulimit.h cygwin/version.h)
2121 AC_CHECK_HEADERS(kstat.h sys/pstat.h inttypes.h sys/un.h a.out.h)
2127 dnl Some systems have utime.h but do not declare the struct anyplace.
2128 AC_MSG_CHECKING(for struct utimbuf)
2129 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
2130 #include <sys/time.h>
2133 #ifdef HAVE_SYS_TIME_H
2134 #include <sys/time.h>
2141 #endif], [static struct utimbuf x; x.actime = x.modtime;],
2143 AC_DEFINE(HAVE_STRUCT_UTIMBUF)],
2146 dnl checks for typedefs
2154 AC_MSG_CHECKING(for struct timeval)
2155 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
2156 #include <sys/time.h>
2159 #ifdef HAVE_SYS_TIME_H
2160 #include <sys/time.h>
2164 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
2167 AC_DEFINE(HAVE_TIMEVAL)],
2171 dnl checks for structure members
2175 dnl checks for compiler characteristics
2178 dnl check for Make feature
2181 dnl check byte order
2184 dnl define SIZEOF_TYPE
2185 AC_CHECK_SIZEOF(short)
2186 if test "$ac_cv_sizeof_short" = 0; then
2188 echo "*** PANIC *** Configure tests are not working - compiler is broken."
2189 echo "*** PANIC *** Please examine config.log for compilation errors."
2192 AC_CHECK_SIZEOF(int)
2193 AC_CHECK_SIZEOF(long)
2194 AC_CHECK_SIZEOF(long long)
2195 AC_CHECK_SIZEOF(void *)
2197 dnl check for long file names
2198 AC_SYS_LONG_FILE_NAMES
2200 dnl -lm is required by LISP_FLOAT_TYPE, among other things
2201 AC_CHECK_LIB(m, sin)
2203 dnl Floating operation support is now unconditional
2204 AC_DEFINE(LISP_FLOAT_TYPE)
2206 AC_TRY_LINK([#include <math.h>],
2207 [return atanh(1.0) + asinh(1.0) + acosh(1.0); ],
2208 AC_DEFINE(HAVE_INVERSE_HYPERBOLIC))
2210 dnl Determine type of mail locking from configure args and s&m headers
2211 AC_CHECKING(type of mail spool file locking)
2212 test -z "$mail_locking" -a "$mail_use_flock" = "yes" && mail_locking=flock
2213 test -z "$mail_locking" -a "$mail_use_lockf" = "yes" && mail_locking=lockf
2214 if test "$mail_locking" = "lockf"; then AC_DEFINE(REAL_MAIL_USE_LOCKF)
2215 elif test "$mail_locking" = "flock"; then AC_DEFINE(REAL_MAIL_USE_FLOCK)
2216 else mail_locking="dot-locking"
2219 dnl Used by getloadavg() - does not require root priveleges
2220 AC_CHECK_LIB(kstat, kstat_open)
2222 dnl Another way to get the load average
2223 AC_CHECK_LIB(kvm, kvm_read)
2225 case "$opsys" in decosf*)
2226 AC_CHECK_LIB(pthreads, cma_open)
2227 test "$ac_cv_lib_pthreads_cma_open" = "yes" && \
2228 c_switch_site="$c_switch_site -threads" ;;
2231 AC_MSG_CHECKING(whether the -xildoff compiler flag is required)
2232 if ${CC-cc} '-###' -xildon no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then
2233 if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ;
2234 then AC_MSG_RESULT(no);
2235 else AC_MSG_RESULT(yes); XE_APPEND(-xildoff, ld_switch_site)
2237 else AC_MSG_RESULT(no)
2240 dnl Link with "-z ignore" on Solaris if supported
2241 if test "$opsys" = "sol2" && test "$OS_RELEASE" -ge 56; then
2242 AC_MSG_CHECKING(for \"-z ignore\" linker flag)
2243 case "`ld -h 2>&1`" in
2244 *-z\ ignore\|record* ) AC_MSG_RESULT(yes)
2245 XE_PREPEND(-z ignore, ld_switch_site) ;;
2246 *) AC_MSG_RESULT(no) ;;
2250 dnl ----------------------
2251 dnl Choose a window system
2252 dnl ----------------------
2254 AC_CHECKING("for specified window system")
2256 if test "$with_x11" != "no"; then
2257 dnl User-specified --x-includes or --x-libraries implies --with-x11.
2258 test "$x_includes $x_libraries" != "NONE NONE" && \
2259 window_system=x11 with_x11=yes
2261 dnl Autodetection of X11 libraries and includes
2262 dnl -------------------------------------------
2263 dnl AC_PATH_XTRA thinks it can find our X headers and includes, but
2264 dnl it often gets it wrong, so we only use it as a last resort.
2266 dnl $OPENWINHOME implies --x-includes and --x-libraries
2267 dnl Not (yet) handled by autoconf2
2268 if test "$x_includes $x_libraries" = "NONE NONE" \
2269 -a -n "$OPENWINHOME" \
2270 -a "$OPENWINHOME" != "/usr/openwin" \
2271 -a -d "$OPENWINHOME"; then
2272 test -d "$OPENWINHOME/lib" && x_libraries="$OPENWINHOME/lib"
2273 test -d "$OPENWINHOME/include" && x_includes="$OPENWINHOME/include"
2274 test -d "$OPENWINHOME/share/include" && x_includes="$OPENWINHOME/share/include"
2277 if test "$x_includes" = "NONE"; then
2278 dnl AC_PATH_XTRA often guesses /usr/include, when some other
2279 dnl include directory is a MUCH better guess (Linux, HP-UX 10.20).
2280 dnl This is a workaround for idiot (esp. HP) system vendors, who
2281 dnl provide a /usr/include/X11, but DON'T FULLY POPULATE IT.
2282 for dir in "/usr/X11" "/usr/X11R6"; do
2283 if test -d "$dir/include/X11"; then x_includes="$dir/include"; break; fi
2287 if test "$x_libraries" = "NONE"; then
2288 for dir in "/usr/X11/lib" "/usr/X11R6/lib" "/usr/lib/X11R6"; do
2289 if test -r "$dir/libX11.a"; then x_libraries="$dir"; break; fi
2293 AC_PATH_XTRA # Autoconf claims to find X library and include dirs for us.
2294 if test "$no_x" = "yes"
2295 then with_x11=no window_system=none HAVE_X_WINDOWS=no
2296 else with_x11=yes window_system=x11 HAVE_X_WINDOWS=yes
2301 yes ) window_system=x11 HAVE_X_WINDOWS=yes ;;
2302 no ) window_system=none HAVE_X_WINDOWS=no ;;
2305 if test "$with_x11" = "yes"; then
2306 AC_DEFINE(HAVE_X_WINDOWS)
2307 XE_APPEND(lwlib, MAKE_SUBDIR)
2308 XE_APPEND(lwlib, SRC_SUBDIR_DEPS)
2310 dnl Try to find Motif/CDE/Tooltalk dirs
2311 dnl These take precedence over other X libs/includes, so PRE-pend
2312 for lib_dir in "/usr/dt/lib" "/usr/lib/Motif2.1" "/usr/lib/Motif1.2" "/usr/lib/Motif1.1"; do
2313 inc_dir=`echo $lib_dir | sed -e 's/lib/include/'`
2314 if test -d "$lib_dir" -a -d "$inc_dir"; then
2315 case "$x_libraries" in *"$lib_dir"* ) ;; *)
2316 x_libraries="$lib_dir $x_libraries"
2317 XE_PREPEND(-L${lib_dir}, X_LIBS) ;;
2319 case "$x_includes" in "$inc_dir"* ) ;; *)
2320 x_includes="$inc_dir $x_includes"
2321 XE_PREPEND(-I${inc_dir}, X_CFLAGS) ;;
2323 break; dnl only need ONE Motif implementation!
2327 dnl Contrib X libs/includes do NOT take precedence, so AP-pend
2328 for rel in "X11R6" "X11R5" "X11R4"; do
2329 lib_dir="/usr/contrib/$rel/lib" inc_dir="/usr/contrib/$rel/include"
2330 if test -d "$lib_dir" -a -d "$inc_dir"; then
2331 case "$x_libraries" in *"$lib_dir"* ) ;; *)
2332 x_libraries="$x_libraries $lib_dir"
2333 XE_APPEND(-L${lib_dir}, X_LIBS)
2335 case "$x_includes" in "$inc_dir"* ) ;; *)
2336 x_includes="$x_includes $inc_dir"
2337 XE_APPEND(-I${inc_dir}, X_CFLAGS)
2339 break; dnl Only need ONE X11 implementation !
2343 dnl Avoid version mismatch for shared library libXm.so on osf4
2344 if test "$GCC" = yes -a -d /usr/shlib; then XE_APPEND(-L/usr/shlib, X_LIBS); fi
2346 ld_switch_x_site="$X_LIBS"
2348 XE_COMPUTE_RUNPATH()
2350 if test "$extra_verbose" = "yes"; then
2351 echo; echo "X11 compilation variables:"
2352 PRINT_VAR(x_libraries x_includes X_CFLAGS X_LIBS X_PRE_LIBS X_EXTRA_LIBS)
2356 dnl Set up bitmaps search path.
2357 dnl The original suggestion was to unconditionally to append X11/bitmaps
2358 dnl to each element of $x_includes, I'm pretty sure this is the wrong
2359 dnl thing to do. We test for bitmaps and X11/bitmaps directories on each
2360 dnl element and add them to BITMAPDIR if they exist.
2362 if test "$x_includes" != NONE; then
2363 for i in $x_includes; do
2364 if test -d "$i/bitmaps"; then
2365 bitmapdirs="$i/bitmaps:$bitmapdirs"
2367 if test -d "$i/X11/bitmaps"; then
2368 bitmapdirs="$i/X11/bitmaps:$bitmapdirs"
2371 bitmapdirs=`echo "$bitmapdirs" | sed s/.$//`
2373 test ! -z "$bitmapdirs" && AC_DEFINE_UNQUOTED(BITMAPDIR, "$bitmapdirs")
2375 dnl Autodetect defines extracted from X config by xmkmf, e.g. NARROWPROTO
2376 AC_CHECKING(for X defines extracted by xmkmf)
2378 if mkdir conftestdir; then
2380 cat > Imakefile <<'EOF'
2382 @echo ${PROTO_DEFINES} ${STD_DEFINES}
2384 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
2385 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
2386 xmkmf_defines=`${MAKE-make} xetest 2>/dev/null | grep -v make`
2390 for word in $xmkmf_defines; do
2393 -D* ) word=`echo '' $word | sed -e 's:^ *-D::'`
2394 AC_DEFINE_UNQUOTED($word) ;;
2399 dnl make sure we can find Intrinsic.h
2400 AC_CHECK_HEADER(X11/Intrinsic.h, ,
2401 [AC_MSG_ERROR("Unable to find X11 header files.")])
2403 dnl -lXt and -lX11 are required
2404 dnl Some broken systems require the magic "-b i486-linuxaout" flag
2405 AC_CHECK_LIB(X11, XOpenDisplay, have_lib_x11=yes)
2406 if test "$have_lib_x11" != "yes"; then
2407 AC_CHECK_LIB(X11, XGetFontProperty,
2408 ld_switch_x_site="-b i486-linuxaout $ld_switch_x_site",
2409 [AC_MSG_ERROR("Unable to find X11 libraries.")],
2413 test "$extra_verbose" = "yes" && echo " Setting libs_x to \"-lX11\""
2415 dnl Autodetect -lXext
2416 AC_CHECK_LIB(Xext, XShapeSelectInput, XE_PREPEND(-lXext, libs_x))
2419 AC_CHECK_LIB(Xt, XtOpenDisplay, XE_PREPEND(-lXt, libs_x),
2420 AC_MSG_ERROR("Unable to find X11 libraries."))
2422 AC_MSG_CHECKING(the version of X11 being used)
2423 AC_TRY_RUN([#include <X11/Intrinsic.h>
2424 int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }],
2425 [./conftest foobar; x11_release=$?],[x11_release=4],[x11_release=4])
2426 AC_MSG_RESULT(R${x11_release})
2427 AC_DEFINE_UNQUOTED(THIS_IS_X11R${x11_release})
2429 AC_CHECK_HEADERS(X11/Xlocale.h)
2431 dnl remove this - we should avoid checking for specific OS
2432 AC_MSG_CHECKING(for XFree86)
2433 if test -d "/usr/X386/include" -o \
2434 -f "/etc/XF86Config" -o \
2435 -f "/etc/X11/XF86Config" -o \
2436 -f "/usr/X11R6/lib/X11/XF86Config"; then
2438 AC_DEFINE(HAVE_XFREE386)
2443 dnl autodetect -lXmu
2444 test -z "$with_xmu" && { AC_CHECK_LIB(Xmu, XmuReadBitmapDataFromFile,
2445 with_xmu=yes, with_xmu=no) }
2446 if test "$with_xmu" = "no"; then
2449 XE_PREPEND(-lXmu, libs_x)
2453 dnl Autodetect -lXbsd
2454 dnl #### Someone, please add a better function than main
2455 AC_CHECK_LIB(Xbsd, main, XE_PREPEND(-lXbsd, libs_x))
2457 dnl Problem with the MIT distribution of X on AIX
2458 if test "$unexec" = "unexaix.o" -a "$x11_release" = "6"; then
2459 dnl X11R6 requires thread-safe code on AIX for some reason
2460 if test "$GCC" = "yes"; then
2461 XE_PREPEND(-mthreads, X_CFLAGS)
2462 XE_PREPEND(-mthreads, libs_x)
2465 "xlc" ) CC="xlc_r" ;;
2466 "xlC" ) CC="xlC_r" ;;
2472 fi dnl $with_x11 = yes
2474 if test "$with_msw" != "no"; then
2475 AC_CHECKING(for MS-Windows)
2476 AC_CHECK_LIB(gdi32,main,with_msw=yes)
2477 if test "$with_msw" = "yes"; then
2478 AC_DEFINE(HAVE_MS_WINDOWS)
2479 install_pp="$blddir/lib-src/installexe.sh"
2480 XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomctl32, libs_system)
2481 test "$with_dragndrop" != no && XE_APPEND(msw, dragndrop_proto)
2482 if test "$window_system" != x11; then
2484 test "$with_scrollbars" != "no" && with_scrollbars=msw \
2485 && XE_ADD_OBJS(scrollbar-msw.o)
2486 test "$with_menubars" != "no" && with_menubars=msw \
2487 && XE_ADD_OBJS(menubar-msw.o)
2488 test "$with_toolbars" != "no" && with_toolbars=msw \
2489 && XE_ADD_OBJS(toolbar-msw.o)
2490 test "$with_dialogs" != "no" && with_dialogs=msw \
2491 && XE_ADD_OBJS(dialog-msw.o)
2493 test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-msw.o)
2494 test "$with_menubars" != "no" && XE_ADD_OBJS(menubar-msw.o)
2495 test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar-msw.o)
2496 test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog-msw.o)
2498 dnl check for our special version of select
2499 AC_TRY_RUN([#include <fcntl.h>
2500 int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }],
2501 [AC_DEFINE(HAVE_MSG_SELECT)])
2503 with_file_coding=yes
2504 use_minimal_tagbits=yes
2505 use_indexed_lrecord_implementation=yes
2506 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)
2510 AC_SUBST(install_pp)
2512 test -z "$window_system" && window_system="none"
2514 dnl Test for features that require a window system - ANY window system
2515 if test "$window_system" = "none"; then
2516 for feature in menubars scrollbars toolbars dialogs dragndrop xface
2518 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2519 AC_MSG_WARN([--with-$feature ignored: Not valid without window system support])
2521 eval "with_${feature}=no"
2524 test -z "$with_toolbars" && with_toolbars=yes
2527 dnl ### Test for features that require mswindows support - currently none
2528 dnl ### MS-Windows folks: add code here..... (martin)
2529 if test "$with_msw" != "yes"; then
2530 for feature in MARTIN_IS_CLUELESS_ABOUT_MSW_FEATURES
2532 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2533 AC_MSG_WARN([--with-$feature ignored: Not valid without MS-Windows support])
2535 eval "with_${feature}=no"
2541 dnl Test for features that require X11 support
2542 if test "$with_x11" != "yes"; then
2543 dnl It ought to be reasonable to have no output device at all, and only use
2544 dnl XEmacs in --batch mode.
2545 dnl if test "$with_tty" = "no" ; then
2546 dnl AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.])
2548 for feature in tooltalk cde offix session xim xmu
2550 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2551 AC_MSG_WARN([--with-$feature ignored: Not valid without X support])
2553 eval "with_${feature}=no"
2557 dnl FSF 19.29 has some bitmapdir stuff here.
2560 case "$window_system" in
2561 x11 ) HAVE_X_WINDOWS=yes; echo " Using X11." ;;
2562 msw ) HAVE_X_WINDOWS=no ; echo " Using MS-Windows." ;;
2563 none ) HAVE_X_WINDOWS=no ; echo " Using no window system." ;;
2566 case "$x_libraries" in *X11R4* )
2567 test "$opsys" = "hpux9" && opsysfile="s/hpux9-x11r4.h"
2568 test "$opsys" = "hpux9-shr" && opsysfile="s/hpux9shxr4.h"
2571 dnl Enable or disable proper session-management
2572 AC_CHECKING(for session-management option);
2573 dnl if test "$with_session" = "yes"; then
2574 if test "$with_session" != "no"; then
2575 AC_DEFINE(HAVE_SESSION)
2578 dnl Autodetect Xauth
2579 dnl -lXau is only used by gnuclient, so use a special variable for Xauth X libs
2580 test -z "$with_xauth" && test "$window_system" = "none" && with_xauth=no
2581 test -z "$with_xauth" && { AC_CHECK_HEADER(X11/Xauth.h, ,with_xauth=no) }
2582 test -z "$with_xauth" && { AC_CHECK_LIB(Xau, XauGetAuthByAddr,[:],with_xauth=no) }
2583 test -z "$with_xauth" && with_xauth=yes
2584 if test "$with_xauth" = "yes"; then
2585 AC_DEFINE(HAVE_XAUTH)
2586 XE_SPACE(libs_xauth, $X_EXTRA_LIBS -lXau $libs_x $X_PRE_LIBS)
2588 AC_SUBST(libs_xauth)
2590 dnl This one is for the static initializeds variables in
2591 dnl offix.c, so that the thing is dumped after lastfile.o
2594 dnl Autodetect tooltalk
2595 if test "$with_tooltalk" != "no" ; then
2596 dnl autodetect the location of tt_c.h
2597 dnl tt_c.h might be in Tt or desktop include directories
2598 for dir in "" "Tt/" "desktop/" ; do
2599 AC_CHECK_HEADER(${dir}tt_c.h, tt_c_h_path="${dir}tt_c.h"; break)
2601 if test -z "$tt_c_h_path"; then
2602 if test "$with_tooltalk" = "yes"; then
2603 USAGE_ERROR("Unable to find required tooltalk header files.")
2608 if test "$with_tooltalk" != "no" ; then
2609 for extra_libs in "" "-lI18N -lce" "-lcxx"; do
2610 AC_CHECK_LIB(tt, tt_message_create,
2611 tt_libs="-ltt $extra_libs"; break, [:],$extra_libs)
2613 if test -z "$tt_libs"; then
2614 if test "$with_tooltalk" = "yes"; then
2615 USAGE_ERROR("Unable to find required tooltalk libraries.")
2620 test -z "$with_tooltalk" && with_tooltalk=yes
2621 if test "$with_tooltalk" = "yes"; then
2623 AC_DEFINE_UNQUOTED(TT_C_H_PATH, "$tt_c_h_path")
2624 XE_PREPEND($tt_libs, libs_x)
2625 XE_ADD_OBJS(tooltalk.o)
2629 test -z "$with_cde" && { AC_CHECK_HEADER(Dt/Dt.h, , with_cde=no) }
2630 test -z "$with_cde" && { AC_CHECK_LIB(DtSvc, DtDndDragStart, [:], with_cde=no) }
2631 test -z "$with_cde" && with_cde=yes
2632 if test "$with_dragndrop" = no; then
2633 AC_MSG_WARN([No CDE without generic Drag'n'Drop support])
2636 if test "$with_cde" = "yes" ; then
2638 XE_PREPEND(-lDtSvc, libs_x)
2639 XE_APPEND(CDE, dragndrop_proto)
2640 with_tooltalk=yes # CDE requires Tooltalk
2641 need_motif=yes # CDE requires Motif
2644 dnl Always compile OffiX unless --without-offix is given, no
2645 dnl X11 support is compiled in, no standard Xmu is available,
2646 dnl or dragndrop support is disabled
2647 dnl Because OffiX support currently loses when more than one display
2648 dnl is in use, we now disable it by default -slb 07/10/1998.
2649 test "$window_system" != "x11" && with_offix=no
2650 if test "$with_xmu" != yes -a "$with_x11" = yes; then
2651 AC_MSG_WARN([No OffiX without real Xmu support])
2654 if test "$with_dragndrop" = no; then
2655 AC_MSG_WARN([No OffiX without generic Drag'n'Drop support])
2658 if test "$with_cde" = yes; then
2659 AC_MSG_WARN([CDE already found, disabling OffiX support])
2662 test -z "$with_offix" && with_offix=no
2663 if test "$with_offix" = "yes"; then
2664 AC_DEFINE(HAVE_OFFIX_DND)
2665 XE_APPEND(offix.o, dnd_objs)
2666 XE_APPEND(OffiX, dragndrop_proto)
2669 dnl Autodetect Drag'n'Drop support
2670 dnl always included if CDE, Offix, or MSWindows are defined
2671 AC_MSG_CHECKING(if drag and drop API is needed)
2672 if test "$with_dragndrop" != "no" ; then
2673 if test -n "$dragndrop_proto" ; then
2675 AC_MSG_RESULT([yes (${dragndrop_proto} )])
2676 AC_DEFINE(HAVE_DRAGNDROP)
2677 XE_APPEND(dragdrop.o, extra_objs)
2685 AC_CHECKING(for LDAP)
2686 test -z "$with_ldap" && { AC_CHECK_HEADER(ldap.h, ,with_ldap=no) }
2687 test -z "$with_ldap" && { AC_CHECK_HEADER(lber.h, ,with_ldap=no) }
2688 if test "$with_ldap" != "no"; then
2689 test -z "$with_umich_ldap" && { AC_CHECK_LIB(ldap, ldap_open, with_umich_ldap=yes, with_umich_ldap=no, -llber) }
2690 test "$with_umich_ldap" = "no" && { AC_CHECK_LIB(ldap10, ldap_set_option, with_ns_ldap=yes, with_ns_ldap=no) }
2691 test -z "$with_ldap" -a \( "$with_umich_ldap" = "yes" -o "$with_ns_ldap" = "yes" \) && with_ldap=yes
2693 if test "$with_ldap" = "yes"; then
2694 AC_DEFINE(HAVE_LDAP)
2695 XE_ADD_OBJS(eldap.o)
2696 if test "$with_umich_ldap" = "yes" ; then
2697 AC_DEFINE(HAVE_UMICH_LDAP)
2698 XE_PREPEND(-llber, LIBS)
2699 XE_PREPEND(-lldap, LIBS)
2700 elif test "$with_ldap" = "yes" -a "$with_ns_ldap" = "yes" ; then
2701 AC_DEFINE(HAVE_NS_LDAP)
2702 XE_PREPEND(-lldap10, LIBS)
2703 elif test "$with_ldap" = "yes" ; then
2704 XE_PREPEND(-lldap, LIBS)
2708 dnl ----------------------
2709 dnl Graphics libraries
2710 dnl ----------------------
2712 if test "$window_system" != "none"; then
2713 AC_CHECKING(for graphics libraries)
2717 if test -z "$with_xpm"; then
2718 AC_MSG_CHECKING(for Xpm - no older than 3.4f)
2720 AC_TRY_RUN([#include <X11/xpm.h>
2721 int main(int c, char **v) {
2723 XpmIncludeVersion != XpmLibraryVersion() ? 1 :
2724 XpmIncludeVersion < 30406 ? 2 : 0 ;}],
2725 [./conftest dummy_arg; xpm_status=$?;
2726 if test "$xpm_status" = "0"; then
2730 if test "$xpm_status" = "1"; then
2731 xpm_problem="Xpm library version and header file version don't match!"
2732 elif test "$xpm_status" = "2"; then
2733 xpm_problem="Xpm library version is too old!"
2735 xpm_problem="Internal xpm detection logic error!"
2738 *** WARNING *** $xpm_problem
2739 I'm not touching that with a 10-foot pole!
2740 If you really want to use the installed version of Xpm, rerun
2741 configure and add '--with-xpm=yes', but don't blame me if XEmacs crashes!"
2745 AC_MSG_RESULT($with_xpm)
2747 if test "$with_xpm" = "yes"; then
2749 XE_PREPEND(-lXpm, libs_x)
2750 AC_MSG_CHECKING(for \"FOR_MSW\" xpm)
2752 AC_TRY_LINK(, [XpmCreatePixmapFromData()],
2756 AC_MSG_RESULT($xpm_for_msw)
2757 if test "$xpm_for_msw" = "yes"; then
2762 dnl Autodetect XFACE
2763 test -z "$with_xface" && { AC_CHECK_HEADER(compface.h, ,with_xface=no) }
2764 test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) }
2765 test -z "$with_xface" && with_xface=yes
2766 if test "$with_xface" = "yes"; then
2767 AC_DEFINE(HAVE_XFACE)
2768 XE_PREPEND(-lcompface, libs_x)
2771 dnl For a brief period we had the GIF code split out into a separate library,
2772 dnl but patent problems, etc. sort of squashed that idea.
2773 dnl We default to building with builtin GIF decoding
2774 if test "$with_gif" != "no"; then
2777 XE_ADD_OBJS(dgif_lib.o gif_io.o)
2780 dnl Too many stupid linkers can't detect cascaded lib dependencies until runtime
2781 dnl So we always search for libz compression support.
2782 if test "$with_png $with_tiff" != "no no"; then
2783 AC_CHECK_LIB(c, inflate, [:], [
2784 AC_CHECK_LIB(z, inflate, [XE_PREPEND(-lz, libs_x)],[
2785 AC_CHECK_LIB(gz, inflate, [XE_PREPEND(-lgz, libs_x)])])])
2789 test -z "$with_jpeg" && { AC_CHECK_HEADER(jpeglib.h, ,with_jpeg=no) }
2790 test -z "$with_jpeg" && { AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,[:],with_jpeg=no) }
2791 test -z "$with_jpeg" && with_jpeg=yes
2792 if test "$with_jpeg" = "yes"; then
2793 AC_DEFINE(HAVE_JPEG)
2794 XE_PREPEND(-ljpeg, libs_x)
2799 test -z "$with_png" && { AC_CHECK_FUNC(pow, ,with_png=no) }
2800 test -z "$with_png" && { AC_CHECK_HEADER(png.h, ,with_png=no) }
2801 test -z "$with_png" && { AC_CHECK_LIB(png, png_read_image,[:],with_png=no) }
2802 if test -z "$with_png"; then
2803 AC_MSG_CHECKING(for workable png version information)
2804 xe_check_libs="-lpng -lz"
2805 AC_TRY_RUN([#include <png.h>
2806 int main(int c, char **v) {
2807 if (c == 1) return 0;
2808 if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1;
2809 return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}],
2810 [./conftest dummy_arg; png_status=$?;
2811 if test "$png_status" = "0"; then
2815 if test "$png_status" = "1"; then
2816 png_problem="PNG library version and header file don't match!"
2817 elif test "$png_status" = "2"; then
2818 png_problem="PNG library version too old (pre 1.0.2)!"
2821 *** WARNING *** $png_problem
2822 I'm not touching that with a 10-foot pole!
2823 If you really want to use the installed version of libPNG, rerun
2824 configure and add '--with-png=yes', but don't blame me if XEmacs crashes!"
2828 AC_MSG_RESULT($with_png)
2830 if test "$with_png" = "yes"; then
2832 XE_PREPEND(-lpng, libs_x)
2836 test -z "$with_tiff" && { AC_CHECK_HEADER(tiffio.h, ,with_tiff=no) }
2837 test -z "$with_tiff" && { AC_CHECK_LIB(tiff, TIFFClientOpen,[:],with_tiff=no) }
2838 test -z "$with_tiff" && with_tiff=yes
2839 if test "$with_tiff" = "yes"; then
2840 AC_DEFINE(HAVE_TIFF)
2841 XE_PREPEND(-ltiff, libs_x)
2845 dnl ----------------------
2846 dnl X-Specific Graphics libraries
2847 dnl ----------------------
2849 if test "$with_x11" = "yes"; then
2851 AC_CHECKING(for X11 graphics libraries)
2853 dnl Autodetect -lXaw
2854 AC_CHECK_LIB(Xaw, XawScrollbarSetThumb, have_xaw=yes, have_xaw=no)
2855 dnl if test "$have_xaw" = "yes"; then
2856 dnl AC_CHECK_HEADER(X11/Xaw/Reports.h, [
2857 dnl XE_APPEND(pkg-src/tree-x, MAKE_SUBDIR)
2858 dnl XE_APPEND(pkg-src/tree-x, INSTALL_ARCH_DEP_SUBDIR)])
2861 dnl autodetect Motif - but only add to libs_x later (if necessary)
2862 AC_CHECK_HEADER(Xm/Xm.h,
2863 [AC_CHECK_LIB(Xm, XmStringFree, have_motif=yes, have_motif=no)],
2866 if test "$have_motif" = "yes"; then
2867 dnl autodetect lesstif
2868 AC_MSG_CHECKING(for Lesstif)
2871 #ifdef LESSTIF_VERSION
2874 ], have_lesstif=yes, have_lesstif=no)
2875 AC_MSG_RESULT($have_lesstif)
2878 fi dnl "$with_x11" = "yes"
2880 dnl Finish ensuring that we have values for the various toolkit items.
2881 dnl Not all toolkits support all widgets
2882 dnl if Motif is available we use it for the dialog boxes.
2884 case "$with_menubars" in "" | "yes" | "athena" | "athena3d" )
2885 with_menubars="lucid" ;;
2887 case "$with_dialogs" in "" | "yes" | "lucid" )
2888 if test "$have_motif" = "yes"; then with_dialogs="motif"
2889 elif test "$have_xaw" = "yes"; then with_dialogs="athena"
2890 else with_dialogs=no
2893 case "$with_scrollbars" in "" | "yes" )
2894 with_scrollbars="lucid" ;;
2897 all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars"
2899 case "$all_widgets" in *athena* )
2900 AC_DEFINE(LWLIB_USES_ATHENA)
2901 AC_DEFINE(NEED_ATHENA)
2902 XE_APPEND(lwlib-Xaw.o, lwlib_objs)
2903 XE_PREPEND(-lXaw, libs_x) ;;
2906 case "$all_widgets" in *motif* )
2907 AC_DEFINE(LWLIB_USES_MOTIF)
2908 AC_DEFINE(NEED_MOTIF)
2909 XE_APPEND(lwlib-Xm.o, lwlib_objs)
2913 test "$with_menubars" = "lucid" && XE_APPEND(xlwmenu.o, lwlib_objs)
2914 test "$with_menubars" = "motif" && XE_APPEND(xlwmenu.o, lwlib_objs)
2915 test "$with_scrollbars" = "lucid" && XE_APPEND(xlwscrollbar.o, lwlib_objs)
2916 case "$all_widgets" in *lucid* )
2917 AC_DEFINE(NEED_LUCID)
2918 XE_APPEND(lwlib-Xlw.o, lwlib_objs) ;;
2921 AC_SUBST(lwlib_objs)
2923 case "$with_scrollbars" in athena* ) AC_DEFINE(LWLIB_SCROLLBARS_ATHENA);; esac
2924 case "$with_dialogs" in athena* ) AC_DEFINE(LWLIB_DIALOGS_ATHENA) ;; esac
2925 test "$with_scrollbars" = "athena3d" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA3D)
2926 test "$with_dialogs" = "athena3d" && AC_DEFINE(LWLIB_DIALOGS_ATHENA3D)
2928 test "$with_menubars" != "no" && AC_DEFINE(HAVE_MENUBARS)
2929 test "$with_scrollbars" != "no" && AC_DEFINE(HAVE_SCROLLBARS)
2930 test "$with_dialogs" != "no" && AC_DEFINE(HAVE_DIALOGS)
2931 test "$with_toolbars" != "no" && AC_DEFINE(HAVE_TOOLBARS)
2933 test "$with_menubars" = "lucid" && AC_DEFINE(LWLIB_MENUBARS_LUCID)
2934 test "$with_scrollbars" = "lucid" && AC_DEFINE(LWLIB_SCROLLBARS_LUCID)
2936 test "$with_menubars" = "motif" && AC_DEFINE(LWLIB_MENUBARS_MOTIF)
2937 test "$with_scrollbars" = "motif" && AC_DEFINE(LWLIB_SCROLLBARS_MOTIF)
2938 test "$with_dialogs" = "motif" && AC_DEFINE(LWLIB_DIALOGS_MOTIF)
2940 test "$with_menubars" != "no" && XE_ADD_OBJS(menubar.o)
2941 test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar.o)
2942 test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog.o)
2943 test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar.o)
2945 if test "$with_x11" = "yes"; then
2946 test "$with_menubars" != "no" && XE_ADD_OBJS(menubar-x.o)
2947 test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-x.o)
2948 test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog-x.o)
2949 test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar-x.o)
2950 test "$all_widgets" != "no no no no" && XE_ADD_OBJS(gui-x.o)
2952 if test \( "$with_sound" = "nas" \) -o \( "$with_sound" = "both" \); then
2953 echo "Attempt to Build NAS sound without X"
2954 echo "Please remove NAS configuration or build with X"
2959 test "$use_minimal_tagbits" = "yes" && AC_DEFINE(USE_MINIMAL_TAGBITS)
2960 test "$use_indexed_lrecord_implementation" = "yes" && \
2961 AC_DEFINE(USE_INDEXED_LRECORD_IMPLEMENTATION)
2963 dnl ----------------------
2964 dnl Mule-dependent options
2965 dnl ----------------------
2967 test -z "$with_mule" && with_mule=no
2968 test -z "$with_file_coding" && with_file_coding=no
2970 dnl if test "$with_mule" = "yes" && test ! -d "$srcdir/lisp/mule"; then
2971 dnl echo "Attempt to Build with Mule without Mule/Lisp"
2972 dnl echo "Please install the XEmacs/Mule tarball or"
2973 dnl echo "rerun configure with --with-mule=no"
2977 if test "$with_file_coding" = "yes" && test "$with_mule" = "no"; then
2978 AC_DEFINE(FILE_CODING)
2979 XE_ADD_OBJS(file-coding.o)
2982 if test "$with_mule" = "yes" ; then
2983 AC_CHECKING(for Mule-related features)
2985 AC_DEFINE(FILE_CODING)
2986 XE_ADD_OBJS(mule.o mule-ccl.o mule-charset.o mule-coding.o file-coding.o)
2988 dnl Use -lintl to get internationalized strerror for Mule
2989 AC_CHECK_HEADERS(libintl.h)
2990 AC_CHECK_LIB(intl, strerror)
2992 AC_CHECKING(for Mule input methods)
2993 dnl Do we have the XmIm* routines? And if so, do we want to use them?
2994 dnl XIM seems to be flaky except on Solaris...
2995 dnl test -z "$with_xim" -a "$opsys" != "sol2" && with_xim=no
2996 case "$with_xim" in "" | "yes" )
2997 AC_CHECKING(for XIM)
2998 AC_CHECK_LIB(X11, XOpenIM, with_xim=xlib, with_xim=no)
2999 dnl XIM + Lesstif is not (yet?) usable
3000 if test "$have_motif $have_lesstif" = "yes no"; then
3001 AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif)
3004 if test "$with_xim" != "no"; then
3006 if test "$with_xim" = "xlib"; then
3008 XE_ADD_OBJS(input-method-xlib.o)
3010 if test "$with_xim" = "motif"; then
3011 AC_DEFINE(XIM_MOTIF)
3013 XE_ADD_OBJS(input-method-motif.o)
3015 if test "$with_xim" = "motif"; then
3020 dnl "with_xfs" = "yes"
3021 if test "$with_xfs" = "yes" ; then
3022 AC_CHECKING(for XFontSet)
3023 AC_CHECK_LIB(X11, XmbDrawString, [:], with_xfs=no)
3024 if test "$with_xfs" = "yes" && test "$with_menubars" = "lucid"; then
3025 AC_DEFINE(USE_XFONTSET)
3026 if test "$with_xim" = "no" ; then
3027 XE_ADD_OBJS(input-method-xfs.o)
3033 test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
3034 test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/jllib.h, ,with_wnn=no) }
3035 dnl Detour to find crypt
3036 if test "$with_wnn" != "no"; then
3037 AC_CHECK_FUNCS(crypt)
3038 test "$ac_cv_func_crypt" != "yes" && { AC_CHECK_LIB(crypt, crypt) }
3040 dnl Back to our regularly scheduled wnn hunting
3041 if test -z "$with_wnn" -o "$with_wnn" = "yes"; then
3042 AC_CHECK_LIB(wnn,jl_dic_list_e,libwnn=wnn,
3043 AC_CHECK_LIB(wnn4,jl_dic_list_e,libwnn=wnn4,
3044 AC_CHECK_LIB(wnn6,jl_dic_list_e,libwnn=wnn6,
3045 AC_CHECK_LIB(wnn6_fromsrc,dic_list_e,libwnn=wnn6_fromsrc,with_wnn=no))))
3047 test -z "$with_wnn" && with_wnn=yes
3048 if test "$with_wnn" = "yes"; then
3050 XE_PREPEND(-l$libwnn, libs_x)
3051 XE_ADD_OBJS(mule-wnnfns.o)
3052 if test "$with_wnn6" != "no"; then
3053 AC_CHECK_LIB($libwnn, jl_fi_dic_list, with_wnn6=yes)
3054 test "$with_wnn6" = "yes" && AC_DEFINE(WNN6)
3058 dnl Autodetect canna
3059 canna_includes_found=no
3060 if test "$with_canna" != "no"; then
3061 AC_CHECK_HEADER(canna/jrkanji.h,canna_includes_found=yes)
3063 if test "$canna_includes_found" = "no" -a "$with_canna" != "no" -a \
3064 -d "/usr/local/canna/include"; then
3065 save_c_switch_site="$c_switch_site"
3066 c_switch_site="$c_switch_site -I/usr/local/canna/include"
3067 AC_CHECK_HEADER(canna/jrkanji.h,canna_includes_found=yes)
3068 if test "$canna_includes_found" != "yes"; then
3069 c_switch_site="$save_c_switch_site"
3074 test -z "$with_canna" && { AC_CHECK_HEADER(canna/RK.h, , with_canna=no) }
3075 test -z "$with_canna" && { AC_CHECK_LIB(RKC, RkBgnBun, [:],with_canna=no) }
3076 test -z "$with_canna" && { AC_CHECK_LIB(canna,jrKanjiControl,[:],with_canna=no) }
3077 test -z "$with_canna" && with_canna=yes
3078 if test "$with_canna" = "yes"; then
3079 AC_DEFINE(HAVE_CANNA)
3080 XE_PREPEND(-lcanna -lRKC, libs_x)
3081 XE_ADD_OBJS(mule-canna.o)
3084 else dnl "$with_mule" = "no"
3085 for feature in xim canna wnn; do
3086 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
3087 AC_MSG_WARN("--with-${feature} ignored: Not valid without Mule support")
3089 eval "with_${feature}=no"
3094 dnl At this point, we know whether we need the motif lib or not.
3095 if test "$need_motif" = "yes" ; then
3096 XE_PREPEND(-lXm, libs_x)
3097 dnl AIX needs the following library for use with Motif
3098 AC_CHECK_LIB(i18n, layout_object_getvalue, [XE_PREPEND(-li18n, libs_x)])
3099 XE_COMPUTE_RUNPATH()
3102 AC_CHECK_FUNCS(cbrt closedir dup2 eaccess fmod fpathconf frexp ftime gethostname getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf strcasecmp strerror tzset ulimit usleep utimes waitpid vsnprintf)
3104 dnl realpath is buggy on linux, decosf and aix4
3106 dnl The realpath() in linux libc (4.6.27) sometimes fails with ELOOP.
3107 dnl The realpath in ELF linux libc's is O.K.
3108 dnl For example, call realpath on a file thirty-five or so directories deep
3109 dnl and you get ELOOP even if no symlinks at all are involved.
3110 dnl Reports as of 11/1997 indicate BSDi has problems too.
3111 dnl The realpath() in UnixWare2.1.3 could not get any pathname fragment in error condition.
3113 linuxaout* | bsdos3* | freebsd* | decosf4-0* | aix4* ) XE_ADD_OBJS(realpath.o) ;;
3115 case "$canonical" in
3116 *-*-sysv4.2uw2* ) XE_ADD_OBJS(realpath.o) ;;
3117 * ) AC_CHECK_FUNCS(realpath)
3118 test "$ac_cv_func_realpath" != "yes" && XE_ADD_OBJS(realpath.o) ;;
3122 dnl If netdb.h does not declare h_errno, we must declare it by hand.
3123 AC_MSG_CHECKING(whether netdb declares h_errno)
3124 AC_TRY_LINK([#include <netdb.h>],
3127 AC_DEFINE(HAVE_H_ERRNO)],
3128 [AC_MSG_RESULT(no)])
3130 AC_MSG_CHECKING(for sigsetjmp)
3131 AC_TRY_COMPILE([#include <setjmp.h>],
3132 [sigjmp_buf bar; sigsetjmp (bar, 0);],
3134 AC_DEFINE(HAVE_SIGSETJMP)],
3135 [AC_MSG_RESULT(no)])
3137 AC_MSG_CHECKING(whether localtime caches TZ)
3138 AC_CACHE_VAL(emacs_cv_localtime_cache,
3139 [if test "$ac_cv_func_tzset" = "yes"; then
3140 AC_TRY_RUN([#include <time.h>
3142 # include <stdlib.h>
3144 extern char **environ;
3148 for (to = from = environ; (*to = *from); from++)
3149 if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
3152 char TZ_GMT0[] = "TZ=GMT0";
3153 char TZ_PST8[] = "TZ=PST8";
3156 time_t now = time ((time_t *) 0);
3157 int hour_GMT0, hour_unset;
3158 if (putenv (TZ_GMT0) != 0)
3160 hour_GMT0 = localtime (&now)->tm_hour;
3162 hour_unset = localtime (&now)->tm_hour;
3163 if (putenv (TZ_PST8) != 0)
3165 if (localtime (&now)->tm_hour == hour_GMT0)
3168 if (localtime (&now)->tm_hour != hour_unset)
3171 }], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
3172 [# If we have tzset, assume the worst when cross-compiling.
3173 emacs_cv_localtime_cache=yes])
3175 # If we lack tzset, report that localtime does not cache TZ,
3176 # since we can't invalidate the cache if we don't have tzset.
3177 emacs_cv_localtime_cache=no
3179 AC_MSG_RESULT($emacs_cv_localtime_cache)
3180 if test $emacs_cv_localtime_cache = yes; then
3181 AC_DEFINE(LOCALTIME_CACHE)
3184 if test "$HAVE_TIMEVAL" = "yes"; then
3185 AC_MSG_CHECKING(whether gettimeofday accepts one or two arguments)
3187 #ifdef TIME_WITH_SYS_TIME
3188 #include <sys/time.h>
3191 #ifdef HAVE_SYS_TIME_H
3192 #include <sys/time.h>
3199 struct timeval time;
3200 struct timezone dummy;
3201 gettimeofday (&time, &dummy);
3203 [AC_MSG_RESULT(two)],
3205 AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)])
3210 if test "$ac_cv_c_inline" != "no"; then
3211 AC_DEFINE(HAVE_INLINE)
3212 test "$GCC" = "yes" && XE_ADD_OBJS(inline.o)
3215 dnl HP-UX has a working alloca in libPW.
3216 dnl case "${GCC}${opsys}" in hpux* )
3217 dnl AC_CHECK_FUNC(alloca, [:], [AC_CHECK_LIB(PW, alloca)])
3221 test -n "$ALLOCA" && XE_ADD_OBJS($ALLOCA)
3223 dnl Check whether vfork exists and works correctly. (This does more
3224 dnl than just check for its existence.) If so, it defines HAVE_VFORK_H.
3225 dnl If not, it defines vfork to be fork.
3228 dnl Check whether strcoll exists and works correctly. (This does more
3229 dnl than just check for its existence.) If so, it defines HAVE_STRCOLL.
3232 dnl If `getpgrp' takes no argument (the POSIX.1 version), define
3233 dnl `GETPGRP_VOID'. Otherwise, it is the BSD version, which takes a
3234 dnl process ID as an argument.
3235 AC_CHECK_FUNCS(getpgrp)
3238 dnl We used to call AC_FUNC_MMAP here
3239 dnl Instead we now use following, suggested by Neal Becker
3240 AC_MSG_CHECKING(for working mmap)
3241 case "$opsys" in ultrix* ) have_mmap=no ;; *)
3242 AC_TRY_RUN([#include <stdio.h>
3245 #include <sys/mman.h>
3247 #ifndef MAP_VARIABLE
3248 #define MAP_VARIABLE 0
3252 #define MAP_FAILED -1
3255 int main (int argc, char *argv[])
3259 #ifndef MAP_ANONYMOUS
3260 fd = open ("/dev/zero", O_RDWR);
3263 #define MAP_ANONYMOUS 0
3265 if (mmap(0, 1024, PROT_READ | PROT_WRITE,
3266 MAP_PRIVATE | MAP_VARIABLE | MAP_ANONYMOUS,
3267 fd, 0) != (void *) MAP_FAILED)
3269 perror ("conftest: mmap failed");
3271 }], have_mmap=yes, have_mmap=no) ;;
3273 AC_MSG_RESULT($have_mmap)
3274 test "$have_mmap" = "yes" && AC_DEFINE(HAVE_MMAP)
3277 dnl rel_alloc requires either GNU malloc or system malloc with mmap
3278 dnl We only turn rel_alloc on by default if mmap is available.
3279 test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && rel_alloc=no
3280 test "$rel_alloc" = "default" -a "$have_mmap" = "yes" && rel_alloc=yes
3281 test "$rel_alloc" = "yes" && AC_DEFINE(REL_ALLOC)
3283 dnl Check for terminal I/O variants
3284 dnl TERMIOS systems may have termio.h, but not vice-versa, I think.
3285 AC_CHECK_HEADER(termios.h,
3286 AC_DEFINE(HAVE_TERMIOS)
3287 AC_DEFINE(SIGNALS_VIA_CHARACTERS)
3288 AC_DEFINE(NO_TERMIO),
3289 [AC_CHECK_HEADER(termio.h, [AC_DEFINE(HAVE_TERMIO)])])
3292 dnl Check for Internet sockets.
3293 AC_CHECK_FUNC(socket,
3294 [AC_CHECK_HEADER(netinet/in.h,
3295 [AC_CHECK_HEADER(arpa/inet.h, [
3296 AC_DEFINE(HAVE_SOCKETS)
3297 AC_MSG_CHECKING("for sun_len member in struct sockaddr_un")
3299 #include <sys/types.h>
3300 #include <sys/socket.h>
3303 [static struct sockaddr_un x; x.sun_len = 1;],
3304 [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOCKADDR_SUN_LEN)],
3305 [AC_MSG_RESULT(no)])
3306 AC_MSG_CHECKING("for ip_mreq struct in netinet/in.h")
3308 #include <sys/types.h>
3309 #include <netinet/in.h>
3311 [static struct ip_mreq x;],
3312 [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_MULTICAST)],
3313 [AC_MSG_RESULT(no)])])])])
3315 dnl Check for SYS V IPC. (Inferior to sockets.)
3316 AC_CHECK_FUNC(msgget,
3317 [AC_CHECK_HEADER(sys/ipc.h,
3318 [AC_CHECK_HEADER(sys/msg.h,
3319 [AC_DEFINE(HAVE_SYSVIPC)])])])
3321 dnl Check for directory variants
3322 AC_CHECK_HEADER(dirent.h, [AC_DEFINE(SYSV_SYSTEM_DIR)],
3323 [AC_CHECK_HEADER(sys/dir.h, , [AC_DEFINE(NONSYSTEM_DIR_LIBRARY)])])
3325 dnl Check for nlist.h
3326 AC_CHECK_HEADER(nlist.h, AC_DEFINE(NLIST_STRUCT), )
3328 dnl Check for sound of various sorts.
3330 dnl Autodetect native sound
3331 AC_CHECKING("for sound support")
3332 case "$with_sound" in
3333 native | both ) with_native_sound=yes;;
3334 nas | no ) with_native_sound=no;;
3336 test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes
3338 if test "$with_native_sound" != "no"; then
3339 dnl Maybe sound is already on include path...
3340 if test -n "$native_sound_lib"; then
3341 AC_CHECK_HEADER(multimedia/audio_device.h,
3342 [sound_found=yes sound_cflags=""
3343 XE_ADD_OBJS(sunplay.o)])
3346 dnl Autodetect Sun native sound from SUNWaudmo package
3347 if test -z "$sound_found" -a -d "/usr/demo/SOUND"; then
3349 XE_ADD_OBJS(sunplay.o)
3350 if test -d "/usr/demo/SOUND/include"
3351 then sound_cflags="-I/usr/demo/SOUND/include"
3352 else sound_cflags="-I/usr/demo/SOUND"
3354 if test -z "$native_sound_lib" ; then
3355 if test -r "/usr/demo/SOUND/lib/libaudio.a"
3356 then native_sound_lib="/usr/demo/SOUND/lib/libaudio.a"
3357 else native_sound_lib="/usr/demo/SOUND/libaudio.a"
3362 dnl Check for SGI and HP native sound libs
3363 if test -z "$sound_found"; then
3364 case "$canonical" in
3366 if test -z "$native_sound_lib"; then
3367 AC_CHECK_LIB(audio, ALopenport, native_sound_lib="-laudio")
3369 if test -n "$native_sound_lib"; then
3370 sound_found=yes sound_cflags=""
3371 XE_ADD_OBJS(sgiplay.o)
3374 if test -z "$native_sound_lib"; then
3375 AC_CHECK_LIB(Alib, AOpenAudio, native_sound_lib="-lAlib")
3377 if test -n "$native_sound_lib"; then
3379 XE_ADD_OBJS(hpplay.o)
3380 if test "$GCC" = "yes" # Kludge city
3381 then sound_cflags="-Dconst= -Dvolatile= -I/usr/audio/examples"
3382 else sound_cflags="+e -I/usr/audio/examples"
3388 dnl Check for Linux/BSD native sound
3389 if test -z "$sound_found"; then
3390 for dir in "machine" "sys" "linux"; do
3391 AC_CHECK_HEADER(${dir}/soundcard.h,
3393 XE_ADD_OBJS(linuxplay.o)
3394 [AC_DEFINE_UNQUOTED(SOUNDCARD_H_PATH, "${dir}/soundcard.h")]
3399 test "$sound_found" = "yes" && with_native_sound=yes
3402 if test -z "$with_sound"; then
3403 if test "$with_native_sound" = "yes" -o -n "$native_sound_lib"; then
3408 if test "$with_native_sound" = "yes"; then
3409 AC_DEFINE(HAVE_NATIVE_SOUND)
3410 test -n "$native_sound_lib" && XE_PREPEND($native_sound_lib, LIBS)
3413 case "$with_sound" in both | nas )
3414 AC_DEFINE(HAVE_NAS_SOUND)
3416 XE_PREPEND(-laudio, libs_x)
3417 dnl If the nas library does not contain the error jump point,
3418 dnl then we force safer behavior.
3419 AC_EGREP_HEADER(AuXtErrorJump,audio/Xtutil.h,,[AC_DEFINE(NAS_NO_ERROR_JUMP)])
3422 dnl ---------------------
3423 dnl TTY-dependent options
3424 dnl ---------------------
3426 test -z "$with_tty" && with_tty=yes
3428 if test "$with_tty" = "yes" ; then
3429 AC_CHECKING(for TTY-related features)
3431 XE_ADD_OBJS(console-tty.o device-tty.o event-tty.o frame-tty.o objects-tty.o redisplay-tty.o cm.o)
3433 dnl Autodetect ncurses.
3434 if test -z "$with_ncurses"; then
3435 AC_CHECK_LIB(ncurses, tgetent, with_ncurses=yes, with_ncurses=no)
3437 if test "$with_ncurses" = "yes"; then
3438 AC_DEFINE(HAVE_NCURSES)
3439 AC_CHECK_HEADER(ncurses/curses.h, curses_h_path=ncurses/curses.h)
3440 AC_CHECK_HEADER(ncurses/term.h, term_h_path=ncurses/term.h)
3441 XE_ADD_OBJS(terminfo.o)
3442 XE_PREPEND(-lncurses, LIBS)
3444 if test "$ac_cv_header_ncurses_curses_h" != "yes" ; then
3445 dnl Try again, and check for the bogus ncurses/ include bug.
3446 dnl (i.e. ncurses/curses.h bogusly includes <unctrl.h> instead of
3447 dnl <ncurses/unctrl.h>)
3448 save_c_switch_site="$c_switch_site"
3449 c_switch_site="$c_switch_site -I/usr/include/ncurses"
3450 AC_CHECK_HEADER(ncurses/curses.h, curses_h_path=ncurses/curses.h)
3451 if test "$ac_cv_header_ncurses_curses_h" = "yes"
3452 then AC_MSG_WARN("Your system has the bogus ncurses include bug.")
3453 else c_switch_site="$save_c_switch_site"
3456 else dnl "$with_ncurses" = "no"
3457 dnl Autodetect terminfo/-lcurses/-ltermlib/-ltermcap
3458 if test "$have_terminfo" = "yes"; then
3459 XE_ADD_OBJS(terminfo.o)
3460 if test -n "$libs_termcap"; then
3461 XE_PREPEND($libs_termcap, LIBS)
3463 for lib in curses termlib termcap; do
3464 AC_CHECK_LIB($lib, tgetent, XE_PREPEND(-l${lib}, LIBS); break)
3467 else dnl "$have_terminfo" = "no" && "with_ncurses" = "no"
3468 XE_ADD_OBJS(tparam.o)
3469 dnl The HP-UX curses library seems to have a badly broken version of select(2)
3470 dnl that makes "poll: interrupted system call" messages to appear and
3471 dnl Emacs suprocesses to hang (e.g. TeX compilation w/ AUCTeX) */
3472 case "$opsys" in *-hp-hpux* ) libs_termcap="-ltermcap" ;; esac
3473 if test -n "$libs_termcap"; then
3474 XE_PREPEND($libs_termcap, LIBS)
3476 AC_CHECK_LIB(curses, tgetent, XE_PREPEND(-lcurses, LIBS),
3477 AC_CHECK_LIB(termcap, tgetent, XE_PREPEND(-ltermcap, LIBS),
3478 XE_ADD_OBJS(termcap.o)))
3482 AC_DEFINE_UNQUOTED(CURSES_H_PATH, "${curses_h_path-curses.h}")
3483 AC_DEFINE_UNQUOTED(TERM_H_PATH, "${term_h_path-term.h}")
3486 test -z "$with_gpm" && { AC_CHECK_HEADER(gpm.h, , with_gpm=no) }
3487 test -z "$with_gpm" && { AC_CHECK_LIB(gpm, Gpm_Open, with_gpm=yes, with_gpm=no) }
3488 if test "$with_gpm" = "yes"; then
3490 XE_ADD_OBJS(gpmevent.o)
3491 XE_PREPEND(-lgpm, LIBS)
3494 else dnl "$with_tty" = "no"
3495 for feature in ncurses gpm; do
3496 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
3497 AC_MSG_WARN("--with-${feature} ignored: Not valid without TTY support")
3499 eval "with_${feature}=no"
3503 dnl Do we need event-unixoid.o ?
3504 test "$with_x11" = "yes" -o "$with_tty" = "yes" && XE_ADD_OBJS(event-unixoid.o)
3506 dnl Database support
3507 dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support.
3508 dnl On FreeBSD, both DB and DBM are part of libc.
3509 dnl By default, we check for DBM support in libgdbm, then libc, then libdbm.
3511 test "$with_database_gnudbm $with_database_dbm $with_database_berkdb" \
3512 != "no no no" && AC_CHECKING(for database support)
3514 dnl Check for ndbm.h, required for either kind of DBM support.
3515 if test "$with_database_gnudbm $with_database_dbm" != "no no"; then
3516 AC_CHECK_HEADER(ndbm.h, [:], [
3517 test "$with_database_gnudbm" = "yes" -o \
3518 "$with_database_dbm" = "yes" && \
3519 XE_DIE("Required DBM support cannot be provided.")
3520 with_database_gnudbm=no with_database_dbm=no])
3523 dnl Check for DBM support in libgdbm.
3524 if test "$with_database_gnudbm" != "no"; then
3525 AC_CHECK_LIB(gdbm, dbm_open, [
3526 with_database_gnudbm=yes with_database_dbm=no libdbm=-lgdbm], [
3527 if test "$with_database_gnudbm" = "yes"; then
3528 XE_DIE("Required GNU DBM support cannot be provided.")
3530 with_database_gnudbm=no])
3533 dnl Check for DBM support in libc and libdbm.
3534 if test "$with_database_dbm" != "no"; then
3535 AC_CHECK_FUNC(dbm_open, [with_database_dbm=yes libdbm=], [
3536 AC_CHECK_LIB(dbm, dbm_open, [with_database_dbm=yes libdbm=-ldbm], [
3537 test "$with_database_dbm" = "yes" && \
3538 XE_DIE("Required DBM support cannot be provided.")
3539 with_database_dbm=no])])
3542 dnl Tell make about the DBM support we detected.
3543 test -n "$libdbm" && XE_PREPEND("$libdbm", LIBS)
3544 test "$with_database_gnudbm" = "yes" -o \
3545 "$with_database_dbm" = "yes" && \
3548 dnl Check for Berkeley DB.
3549 if test "$with_database_berkdb" != "no"; then
3550 AC_MSG_CHECKING(for Berkeley db.h)
3551 for path in "db/db.h" "db.h"; do
3552 AC_TRY_COMPILE([#ifdef HAVE_INTTYPES_H
3553 #define __BIT_TYPES_DEFINED__
3554 #include <inttypes.h>
3555 typedef uint8_t u_int8_t;
3556 typedef uint16_t u_int16_t;
3557 typedef uint32_t u_int32_t;
3558 #ifdef WE_DONT_NEED_QUADS
3559 typedef uint64_t u_int64_t;
3563 ],[], db_h_path="$path"; break)
3565 if test -z "$db_h_path"
3566 then AC_MSG_RESULT(no); with_database_berkdb=no
3567 else AC_MSG_RESULT($db_h_path)
3570 if test "$with_database_berkdb" != "no"; then
3571 AC_MSG_CHECKING(for Berkeley DB version)
3573 [#include <$db_h_path>
3574 #if DB_VERSION_MAJOR > 1
3577 ], [AC_MSG_RESULT(2); dbfunc=db_open], [AC_MSG_RESULT(1); dbfunc=dbopen])
3578 AC_CHECK_FUNC($dbfunc, with_database_berkdb=yes need_libdb=no, [
3579 AC_CHECK_LIB(db, $dbfunc, with_database_berkdb=yes need_libdb=yes)])
3582 if test "$with_database_berkdb" = "yes"; then
3583 AC_DEFINE_UNQUOTED(DB_H_PATH, "$db_h_path")
3584 AC_DEFINE(HAVE_BERKELEY_DB)
3585 test "$need_libdb" = "yes" && XE_PREPEND(-ldb, LIBS)
3586 else with_database_berkdb=no
3590 if test "$with_database_gnudbm $with_database_dbm $with_database_berkdb" \
3592 AC_DEFINE(HAVE_DATABASE)
3593 XE_ADD_OBJS(database.o)
3597 if test "$with_socks" = "yes"; then
3598 AC_CHECK_LIB(socks, SOCKSinit)
3599 test -n "$ac_cv_lib_socks_SOCKSinit" && AC_DEFINE(HAVE_SOCKS)
3602 dnl Usage tracking (undocumented and likely unused option)
3603 if test "$usage_tracking" = "yes"; then
3604 AC_DEFINE(USAGE_TRACKING)
3605 XE_PREPEND(-Bstatic -lut -Bdynamic, LIBS)
3608 dnl autodetect dll support
3609 AC_CHECK_HEADERS(dlfcn.h, [have_dlfcn=yes
3610 AC_DEFINE(HAVE_DLFCN_H)])
3611 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(dl, dlopen, [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=dl; with_shlib=yes]) }
3612 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c, _dlopen, [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=; with_shlib=yes]) }
3613 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c, dlopen, [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=; with_shlib=yes]) }
3614 test -z "$with_shlib" && { AC_CHECK_LIB(dld, shl_load, [ AC_DEFINE(HAVE_SHL_LOAD) DLL_LIB=dld; with_shlib=yes]) }
3615 test -z "$with_shlib" && { AC_CHECK_LIB(dld, dld_init, [ AC_DEFINE(HAVE_DLD_INIT) DLL_LIB=dld; with_shlib=yes]) }
3616 if test "$with_shlib" = "yes"; then
3618 if test "$can_build_shared" = "yes"; then
3619 AC_DEFINE(HAVE_SHLIB)
3620 XE_ADD_OBJS(sysdll.o)
3621 XE_ADD_OBJS(emodules.o)
3622 XE_APPEND(src, INSTALL_ARCH_DEP_SUBDIR)
3623 test ! -z "$DLL_LIB" && XE_PREPEND(-l${DLL_LIB}, LIBS)
3624 AC_CHECK_FUNCS(dlerror _dlerror)
3626 AC_MSG_WARN(disabling shared library support)
3631 dnl Unfortunately, just because we can link doesn't mean we can run.
3632 dnl One of the above link tests may have succeeded but caused resulting
3633 dnl executables to fail to run. Also any tests using AC_TRY_RUN will
3634 dnl have reported incorrect results.
3635 AC_TRY_RUN([int main(int c,char *v[]){return 0;}],[:],[
3637 echo "*** PANIC *** The C compiler can no longer build working executables."
3638 echo "*** PANIC *** Please examine the tail of config.log for runtime errors."
3639 echo "*** PANIC *** The most likely reason for this problem is that configure"
3640 echo "*** PANIC *** links with shared libraries, but those libraries cannot be"
3641 echo "*** PANIC *** found at run time."
3642 echo "*** PANIC ***"
3643 echo "*** PANIC *** On a Linux system, edit /etc/ld.so.conf and re-run ldconfig."
3644 echo "*** PANIC *** On other systems, try telling configure where to find the"
3645 echo "*** PANIC *** shared libraries using the --site-runtime-libraries option"
3646 echo "*** PANIC ***"
3647 echo "*** PANIC *** Another way to shoot yourself in the foot is to specify"
3648 echo "*** PANIC *** --with-FEATURE when FEATURE is not actually installed"
3649 echo "*** PANIC *** on your system. Don't do that."
3652 dnl Process support (hardcoded)
3653 dnl every system that supports this runs configure, the others don't
3655 dnl We're not ready for this yet.
3656 AC_DEFINE(HAVE_UNIX_PROCESSES)
3657 XE_ADD_OBJS(process-unix.o)
3659 dnl --------------------------------
3660 dnl Compute SUBST-itutable variables
3661 dnl --------------------------------
3663 dnl We ignore (C|LD)_SWITCH_X_(MACHINE|SYSTEM)
3664 dnl Use XE_SPACE instead of plain assignment statements to remove extraneous blanks
3665 XE_SPACE(CFLAGS, $CFLAGS)
3666 XE_SPACE(extra_objs, $extra_objs)
3667 XE_SPACE(c_switch_general, -DHAVE_CONFIG_H $c_switch_site $c_switch_machine $c_switch_system)
3668 XE_SPACE(c_switch_window_system, $c_switch_x_site $X_CFLAGS)
3669 XE_SPACE(c_switch_all, $c_switch_general $c_switch_window_system)
3670 XE_SPACE(ld_switch_general, $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_run)
3671 XE_SPACE(ld_switch_window_system, $ld_switch_x_site)
3672 XE_SPACE(ld_switch_all, $ld_switch_general $ld_switch_window_system)
3673 XE_SPACE(ld_libs_general, $LIBS $libs_machine $libs_system $libs_standard)
3674 XE_SPACE(ld_libs_window_system, $X_EXTRA_LIBS $libs_x $X_PRE_LIBS)
3675 XE_SPACE(ld_libs_all, $ld_libs_window_system $ld_libs_general)
3677 dnl Compute lists of Makefiles and subdirs
3678 AC_SUBST(SRC_SUBDIR_DEPS)
3679 XE_APPEND(src, MAKE_SUBDIR)
3680 internal_makefile_list="Makefile.in"
3682 test -d lock || mkdir lock
3683 for dir in $MAKE_SUBDIR; do
3684 case "$dir" in */* ) dnl Implement mkdir -p
3685 ( for d in `echo $dir | sed 's:/: :g'` ; do
3686 test -d "$d" || mkdir "$d"; cd "$d"
3688 * ) test -d "$dir" || mkdir "$dir" ;;
3690 XE_SPACE(SUBDIR_MAKEFILES, $SUBDIR_MAKEFILES $dir/Makefile $dir/GNUmakefile)
3691 XE_SPACE(internal_makefile_list, $internal_makefile_list $dir/Makefile.in)
3693 AC_SUBST(INSTALL_ARCH_DEP_SUBDIR)
3694 AC_SUBST(MAKE_SUBDIR)
3695 AC_SUBST(SUBDIR_MAKEFILES)
3697 dnl Make s&m symlinks in the src directory, for config.h
3698 for dir in src/s src/m; do
3699 if test ! -d "$dir" ; then
3700 echo Making symbolic link to "$srcdir/$dir"
3701 ${LN_S} "$srcdir/$dir" "$dir"
3705 if test "$extra_verbose" = "yes"; then
3707 PRINT_VAR(extra_objs
3708 c_switch_general c_switch_window_system c_switch_all
3709 ld_switch_general ld_switch_window_system ld_switch_all
3710 ld_libs_general ld_libs_window_system ld_libs_all)
3714 dnl Create some auxiliary files
3715 if test -f $srcdir/src/gdbinit -a ! -f src/gdbinit ; then
3716 echo "creating src/gdbinit"; echo ""
3717 echo "source $srcdir/src/gdbinit" > src/gdbinit
3720 dnl Create top level .sbinit for Sun compilers
3721 if test "$__SUNPRO_C" = "yes"; then
3722 echo "creating .sbinit"; echo ""
3723 ( echo "# For use with Sun WorkShop's Source browser."
3724 echo "# See sbquery(1) and sbinit(4) for more information"
3725 for dir in $MAKE_SUBDIR; do echo "import $dir"; done
3729 dnl There are no more compile tests; remove the core they created.
3732 dnl ----------------------------------------------
3733 dnl Substitute into Makefile, config.h and paths.h
3734 dnl ----------------------------------------------
3736 dnl what sort of things to edit into Makefile, config.h and paths.h
3737 dnl configuration here uncanonicalized to avoid exceeding size limits.
3741 AC_SUBST(configuration)
3752 dnl Yo, Stephen Bourne! I want to marry you!
3756 *\$* ) eval "PREFIX=$PREFIX" ;;
3762 AC_SUBST(exec_prefix)
3763 EXEC_PREFIX=$exec_prefix
3765 case "$EXEC_PREFIX" in
3766 *\$* ) eval "EXEC_PREFIX=$EXEC_PREFIX" ;;
3770 AC_SUBST(EXEC_PREFIX)
3773 AC_SUBST(INFODIR_USER_DEFINED)
3777 *\$* ) eval "INFODIR=$INFODIR" ;;
3784 AC_SUBST(INFOPATH_USER_DEFINED)
3788 *\$* ) eval "INFOPATH=$INFOPATH" ;;
3794 AC_SUBST(package_path)
3795 AC_SUBST(PACKAGE_PATH_USER_DEFINED)
3796 PACKAGE_PATH=$package_path
3798 case "$PACKAGE_PATH" in
3799 *\$* ) eval "PACKAGE_PATH=$PACKAGE_PATH" ;;
3803 AC_SUBST(PACKAGE_PATH)
3806 AC_SUBST(LISPDIR_USER_DEFINED)
3810 *\$* ) eval "LISPDIR=$LISPDIR" ;;
3817 AC_SUBST(MODULEDIR_USER_DEFINED)
3818 MODULEDIR=$moduledir
3820 case "$MODULEDIR" in
3821 *\$* ) eval "MODULEDIR=$MODULEDIR" ;;
3827 AC_SUBST(sitelispdir)
3828 AC_SUBST(SITELISPDIR_USER_DEFINED)
3829 SITELISPDIR=$sitelispdir
3831 case "$SITELISPDIR" in
3832 *\$* ) eval "SITELISPDIR=$SITELISPDIR" ;;
3836 AC_SUBST(SITELISPDIR)
3838 AC_SUBST(sitemoduledir)
3839 AC_SUBST(SITEMODULEDIR_USER_DEFINED)
3840 SITEMODULEDIR=$sitemoduledir
3842 case "$SITEMODULEDIR" in
3843 *\$* ) eval "SITEMODULEDIR=$SITEMODULEDIR" ;;
3847 AC_SUBST(SITEMODULEDIR)
3850 AC_SUBST(ETCDIR_USER_DEFINED)
3854 *\$* ) eval "ETCDIR=$ETCDIR" ;;
3861 AC_SUBST(LOCKDIR_USER_DEFINED)
3865 *\$* ) eval "LOCKDIR=$LOCKDIR" ;;
3871 AC_SUBST(archlibdir)
3872 AC_SUBST(ARCHLIBDIR_USER_DEFINED)
3873 ARCHLIBDIR=$archlibdir
3875 case "$ARCHLIBDIR" in
3876 *\$* ) eval "ARCHLIBDIR=$ARCHLIBDIR" ;;
3880 AC_SUBST(ARCHLIBDIR)
3884 AC_SUBST(extra_objs)
3886 dnl The following flags combine all the information from:
3887 dnl - command line options (user always gets priority)
3888 dnl - user environment variables
3889 dnl - determined by configure
3890 dnl - the s&m header files (required for ellcc)
3893 AC_SUBST(c_switch_general)
3894 AC_SUBST(c_switch_window_system)
3895 AC_SUBST(c_switch_all)
3896 AC_SUBST(ld_switch_general)
3897 AC_SUBST(ld_switch_window_system)
3898 AC_SUBST(ld_switch_all)
3899 AC_SUBST(ld_libs_general)
3900 AC_SUBST(ld_libs_window_system)
3901 AC_SUBST(ld_libs_all)
3905 RECURSIVE_MAKE="\$(MAKE) \$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'"
3906 AC_SUBST(RECURSIVE_MAKE)
3908 AC_SUBST(native_sound_lib)
3909 AC_SUBST(sound_cflags)
3911 AC_SUBST(dynodump_arch)
3913 dnl Preliminary support for using a different compiler for xemacs itself.
3914 dnl Useful for building XEmacs with a C++ or 64-bit compiler.
3919 dnl The default is no
3920 if test "$with_site_lisp" = "no"; then
3921 AC_DEFINE(INHIBIT_SITE_LISP)
3923 dnl The default is yes
3924 if test "$with_site_modules" = "no"; then
3925 AC_DEFINE(INHIBIT_SITE_MODULES)
3928 XE_SPACE(ac_configure_args, $ac_configure_args)
3929 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "$canonical")
3930 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "$ac_configure_args")
3931 AC_DEFINE_UNQUOTED(config_machfile, "$machfile")
3932 AC_DEFINE_UNQUOTED(config_opsysfile, "$opsysfile")
3934 dnl Following are deprecated
3937 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, $null_string)
3938 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, $null_string)
3939 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, $null_string)
3940 AC_DEFINE_UNQUOTED(LD_SWITCH_SITE, $null_string)
3941 AC_DEFINE_UNQUOTED(C_SWITCH_SITE, $null_string)
3943 dnl Note: as a general rule, *only* define things here that are not
3944 dnl autodetected. For things that are autodetected, define them
3945 dnl at the point where the autodetection occurs or would occur,
3946 dnl so that the user gets immediate feedback on the results of the
3949 test -n "$puresize" && AC_DEFINE_UNQUOTED(RAW_PURESIZE, $puresize)
3951 if test "$GNU_MALLOC" = "yes"; then AC_DEFINE(GNU_MALLOC)
3952 elif test "$with_system_malloc" = "yes"; then AC_DEFINE(USE_SYSTEM_MALLOC)
3953 elif test "$with_debug_malloc" = "yes"; then AC_DEFINE(USE_DEBUG_MALLOC)
3954 AC_DEFINE(USE_SYSTEM_MALLOC)
3956 test "$with_i18n3" = "yes" && AC_DEFINE(I18N3)
3957 test "$GCC" = "yes" && AC_DEFINE(USE_GCC)
3958 test "$external_widget" = "yes" && AC_DEFINE(EXTERNAL_WIDGET)
3959 test "$no_doc_file" = "yes" && AC_DEFINE(NO_DOC_FILE)
3960 dnl test "$const_is_losing" = "yes" && AC_DEFINE(CONST_IS_LOSING)
3961 test "$with_purify" = "yes" && AC_DEFINE(PURIFY)
3962 test "$with_quantify" = "yes" && AC_DEFINE(QUANTIFY)
3963 test "$with_pop" = "yes" && AC_DEFINE(MAIL_USE_POP)
3964 test "$with_kerberos" = "yes" && AC_DEFINE(KERBEROS)
3965 test "$with_hesiod" = "yes" && AC_DEFINE(HESIOD)
3966 test "$use_union_type" = "yes" && AC_DEFINE(USE_UNION_TYPE)
3968 dnl -------------------------------
3969 dnl Report on what we decided to do
3970 dnl -------------------------------
3973 dnl /etc/osversion is on SONY NEWS-OS
3974 if test -f /etc/osversion; then dnl SONY NEWS-OS
3975 echo "osversion: `cat /etc/osversion`"
3977 echo "uname -a: `uname -a`"
3980 echo "$0 $quoted_arguments"
3984 test ! -z "${emacs_beta_version}" && xemacs_betaname="-b${emacs_beta_version}"
3986 dnl Start stdout redirection to '| tee -a Installation'
3990 XEmacs ${emacs_major_version}.${emacs_minor_version}${xemacs_betaname} \"$xemacs_codename\" configured for \`$canonical'.
3992 Where should the build process find the source code? $srcdir
3993 What installation prefix should install use? $prefix
3994 What operating system and machine description files should XEmacs use?
3995 \`$opsysfile' and \`$machfile'
3996 What compiler should XEmacs be built with? $CC $CFLAGS
3997 Should XEmacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason}
3998 Should XEmacs use the relocating allocator for buffers? $rel_alloc
3999 What window system should XEmacs use? ${window_system}"
4000 if test "$with_x11" = "yes"; then
4001 echo " Where do we find X Windows header files? $x_includes"
4002 echo " Where do we find X Windows libraries? $x_libraries"
4004 if test -n "$site_includes"; then
4005 echo " Additional header files: $site_includes"
4007 if test -n "$site_libraries"; then
4008 echo " Additional libraries: $site_libraries"
4010 if test -n "$site_prefixes"; then
4011 echo " Additional prefixes: $site_prefixes"
4013 if test -n "$runpath"; then
4014 echo " Runtime library search path: $runpath"
4016 test "$with_dnet" = yes && echo " Compiling in support for DNET."
4017 test "$with_socks" = yes && echo " Compiling in support for SOCKS."
4018 test "$with_xauth" = yes && echo " Compiling in support for XAUTH."
4019 if test "$with_xmu" != yes -a "$with_x11" = yes; then
4020 echo " No Xmu; substituting equivalent routines."
4023 if test "$with_xpm" = yes; then
4024 echo " Compiling in support for XPM images."
4025 elif test "$with_x11" = yes; then
4026 echo " --------------------------------------------------------------------"
4027 echo " WARNING: Compiling without XPM support."
4028 if test "$xpm_problem" != ""; then
4029 echo " Reason: $xpm_problem"
4031 echo " WARNING: You should strongly consider installing XPM."
4032 echo " WARNING: Otherwise toolbars and other graphics will look suboptimal."
4033 echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
4034 echo " --------------------------------------------------------------------"
4036 if test "$with_png" = yes; then
4037 echo " Compiling in support for PNG image handling."
4038 elif test "$window_system" != "none"; then
4039 echo " --------------------------------------------------------------------"
4040 echo " WARNING: Compiling without PNG image support."
4041 if test "$png_problem" != ""; then
4042 echo " Reason: $png_problem"
4044 echo " WARNING: You should strongly consider installing the PNG libraries."
4045 echo " WARNING: Otherwise certain images and glyphs may not display."
4046 echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
4047 echo " --------------------------------------------------------------------"
4049 test "$with_gif" = yes && echo " Compiling in support for (builtin) GIF image handling."
4050 test "$with_jpeg" = yes && echo " Compiling in support for JPEG image handling."
4051 test "$with_tiff" = yes && echo " Compiling in support for TIFF image handling."
4052 test "$with_xface" = yes && echo " Compiling in support for X-Face message headers."
4053 case "$with_sound" in
4054 nas ) echo " Compiling in network sound (NAS) support." ;;
4055 native ) echo " Compiling in native sound support." ;;
4056 both ) echo " Compiling in both network and native sound support." ;;
4058 test "$old_nas" = yes && echo " nas library lacks error trapping, will play synchronously."
4060 test "$with_database_berkdb" = yes && echo " Compiling in support for Berkeley DB."
4061 test "$with_database_dbm" = yes && echo " Compiling in support for DBM."
4062 test "$with_database_gnudbm" = yes && echo " Compiling in support for GNU DBM."
4064 test "$with_umich_ldap" = yes && echo " Compiling in support for LDAP (UMich libs)."
4065 test "$with_ns_ldap" = yes && echo " Compiling in support for LDAP (Netscape SDK)."
4066 test "$with_ldap" = yes -a "$with_umich_ldap" = no -a "$with_ns_ldap" = no && echo " Compiling in support for LDAP (Generic)."
4068 test "$with_ncurses" = yes && echo " Compiling in support for ncurses."
4069 test "$with_gpm" = yes && echo " Compiling in support for GPM (General Purpose Mouse)."
4071 test "$with_mule" = yes && echo " Compiling in Mule (multi-lingual) support."
4072 test "$with_file_coding" = yes && echo " Compiling in File coding support."
4073 test "$with_xim" != no && echo " Compiling in XIM (X11R5+ I18N input method) support."
4074 test "$with_xim" = motif && echo " Using Motif to provide XIM support."
4075 test "$with_xim" = xlib && echo " Using raw Xlib to provide XIM support."
4076 test "$with_xfs" = yes && echo " Using XFontSet to provide bilingual menubar."
4077 test "$with_canna" = yes && echo " Compiling in support for Canna on Mule."
4078 if test "$with_wnn" = yes; then
4079 echo " Compiling in support for the WNN input method on Mule."
4080 test "$with_wnn6" = yes && echo " Using WNN version 6."
4082 test "$with_i18n3" = yes && echo " Compiling in I18N support, level 3 (doesn't currently work)."
4084 test "$with_cde" = yes && echo " Compiling in support for CDE."
4085 test "$with_tooltalk" = yes && echo " Compiling in support for ToolTalk."
4086 test "$with_offix" = yes && echo " Compiling in support for OffiX."
4087 test "$with_dragndrop" = yes && echo " Compiling in EXPERIMENTAL support for Drag'n'Drop ($dragndrop_proto )."
4088 test "$with_workshop" = yes && echo " Compiling in support for Sun WorkShop."
4089 test "$with_session" != no && echo " Compiling in support for proper session-management."
4090 case "$with_menubars" in
4091 lucid ) echo " Using Lucid menubars." ;;
4092 motif ) echo " Using Motif menubars."
4093 echo " *WARNING* The Motif menubar implementation is currently buggy."
4094 echo " We recommend using the Lucid menubar instead."
4095 echo " Re-run configure with --with-menubars='lucid'." ;;
4097 case "$with_scrollbars" in
4098 lucid ) echo " Using Lucid scrollbars." ;;
4099 motif ) echo " Using Motif scrollbars." ;;
4100 athena ) echo " Using Athena scrollbars." ;;
4101 athena3d ) echo " Using Athena-3d scrollbars." ;;
4103 case "$with_dialogs" in
4105 echo " Using Motif dialog boxes."
4106 if test "$unexec" = "unexaix.o" -a `uname -v` = 4 -a `uname -r` -ge 3; then
4107 echo " *WARNING* The Motif dialog boxes cause problems on AIX 4.3 and higher."
4108 echo " We recommend using the Athena dialog boxes instead."
4109 echo " Install libXaw and re-run configure with --with-dialogs='athena'."
4110 echo " Read the PROBLEMS file for more information."
4113 athena ) echo " Using Athena dialog boxes." ;;
4114 athena3d ) echo " Using Athena-3d dialog boxes." ;;
4116 test "$with_shlib" = "yes" && echo " Compiling in DLL support."
4117 test "$with_clash_detection" = yes && \
4118 echo " Clash detection will use \"$lockdir\" for locking files."
4119 echo " movemail will use \"$mail_locking\" for locking mail spool files."
4120 test "$with_pop" = yes && echo " Using POP for mail access."
4121 test "$with_kerberos" = yes && echo " Using Kerberos for POP authentication."
4122 test "$with_hesiod" = yes && echo " Using Hesiod to get POP server host."
4123 test "$use_union_type" = yes && echo " Using the union type for Lisp_Objects."
4124 test "$use_minimal_tagbits" = yes && echo " Using Lisp_Objects with minimal tagbits."
4125 test "$use_indexed_lrecord_implementation" = yes && echo " Using indexed lrecord implementation."
4126 test "$debug" = yes && echo " Compiling in extra code for debugging."
4127 test "$memory_usage_stats" = yes && echo " Compiling in code for checking XEmacs memory usage."
4128 test "$usage_tracking" = yes && echo " Compiling with usage tracking active (Sun internal)."
4129 if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc" \
4130 != "no no no no no"; then
4131 echo " WARNING: ---------------------------------------------------------"
4132 echo " WARNING: Compiling in support for runtime error checking."
4133 echo " WARNING: XEmacs will run noticeably more slowly as a result."
4134 echo " WARNING: Error checking is on by default for XEmacs beta releases."
4135 echo " WARNING: ---------------------------------------------------------"
4138 ) | tee -a Installation
4139 dnl echo "The above configure report is appended to \"Installation\" file."
4142 dnl Generate Installation.el
4143 echo '(setq Installation-string "' > Installation.el
4144 sed 's/"/\\"/g' Installation >> Installation.el
4145 echo '")' >> Installation.el
4147 dnl -----------------------------------
4148 dnl Now generate config.h and Makefiles
4149 dnl -----------------------------------
4150 dnl This has to be called in order for this variable to get into config.status
4151 AC_SUBST(internal_makefile_list)
4152 # Remove any trailing slashes in these variables.
4153 test -n "$prefix" &&
4154 prefix=`echo '' "$prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4155 test -n "$exec_prefix" &&
4156 exec_prefix=`echo '' "$exec_prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4158 dnl Build Makefile.in's from Makefile.in.in's
4159 dnl except ./Makefile from $srcdir/Makefile.in
4161 for file in $internal_makefile_list; do
4162 test "$file" = src/Makefile.in && \
4163 file="src/Makefile.in:src/Makefile.in.in:src/depend"
4164 ac_output_files="${ac_output_files+$ac_output_files }$file"
4166 ac_output_files="$ac_output_files src/paths.h lib-src/config.values"
4167 if test "$with_shlib" = "yes"; then
4168 ac_output_files="$ac_output_files lib-src/ellcc.h"
4171 AC_OUTPUT($ac_output_files,
4172 [for dir in . $MAKE_SUBDIR; do
4177 sed -e '/^# Generated/d' \
4178 -e 's%/\*\*/#.*%%' \
4180 dnl Delete Makefile.in.in comment lines
4182 dnl Pass through CPP directives unchanged
4187 dnl Quote other lines to protect from CPP substitution
4194 dnl Create a GNUmakefile and Makefile from Makefile.in.
4196 changequote(<<,>>)dnl
4197 dnl CPP_MAKEFILE(CPPFLAGS,filename)
4198 define(<<CPP_MAKEFILE>>,
4199 echo creating $dir/<<$2>>
4200 $CPP -I. -I${top_srcdir}/src <<$1>> junk.c \
4201 dnl Delete line directives inserted by $CPP
4202 | sed -e 's/^\#.*//' \
4203 dnl Delete spurious blanks inserted by $CPP
4204 -e 's/^[ TAB][ TAB]*$//'\
4206 dnl Delete blank lines
4207 | sed -n -e '/^..*$/p' \
4208 dnl Restore lines quoted above to original contents.
4214 chmod 444 Makefile.new
4215 mv -f Makefile.new <<$2>>
4218 CPP_MAKEFILE(,Makefile)
4219 CPP_MAKEFILE(-DUSE_GNU_MAKE,GNUmakefile)
4225 dnl Append AC_DEFINE information to lib-src/config.values
4226 dnl (AC_SUBST information is already there (see config.values.sh).
4227 sed < config.status >> lib-src/config.values \
4228 -e '/{ac_dA}.*{ac_dB}.*{ac_dC}.*{ac_dD}$/!d' \
4229 -e 's/\${ac_dA}\(.*\)\${ac_dB}.*\${ac_dC}\(.*\)\${ac_dD}/\1 \2/' \
4230 -e 's/^\([[^ ]]*\) $/\1 ""/' \
4235 top_srcdir="$srcdir"
4236 MAKE_SUBDIR="$MAKE_SUBDIR"