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 inststaticdir='${PROGNAME}'
349 instvardir='${PROGNAME}-${version}'
350 infodir='${datadir}/${instvardir}/info'
353 lispdir='${datadir}/${instvardir}/lisp'
354 moduledir='${datadir}/${instvardir}/${configuration}/modules'
355 sitelispdir='${datadir}/${inststaticdir}/site-lisp'
356 sitemoduledir='${datadir}/${inststaticdir}/site-modules'
357 pkgdir='${datadir}/${instvardir}/lisp'
359 etcdir='${datadir}/${instvardir}/etc'
360 lockdir='${statedir}/${inststaticdir}/lock'
361 archlibdir='${datadir}/${instvardir}/${configuration}'
362 docdir='${archlibdir}'
365 with_site_modules='yes'
371 dnl const_is_losing is removed - we rely on AC_C_CONST instead.
372 dnl We accept (and ignore) the --const-is-losing option for compatibility.
373 dnl const_is_losing='yes'
374 cpp='' cppflags='' libs='' ldflags=''
379 with_system_malloc='default'
380 with_dlmalloc='default'
382 dnl use_assertions should be 'yes' by default. Too many people in this
383 dnl world have core dumps turned off by default or \"cannot find where the
384 dnl core file went\". At least we should get some useful output ...
386 dnl the following is set to yes or no later.
392 dnl ------------------
393 dnl Options Processing
394 dnl ------------------
396 define([USAGE_ERROR],
397 [(echo "$progname: Usage error:"
399 echo " Use \`$progname --help' to show usage.") >&2 && exit 1])
401 dnl Record all the arguments, so we can save them in config.status.
404 dnl Shell Magic: Quote the quoted arguments in ARGUMENTS. At a later date,
405 dnl in order to get the arguments back in $@, we have to do an
406 dnl 'eval set x "$quoted_arguments"; shift'
407 dnl # We use sed to turn embedded ' into '"'"'. I truly hate sh quoting.
408 quoted_sed_magic=s/"'"/"'"'"'"'"'"'"'"/g
412 -no-create | --no-create | --no-creat | --no-crea | --no-cre \
413 | --no-cr | --no-c) ;;
414 -no-recursion | --no-recursion | --no-recursio | --no-recursi \
415 | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
417 quoted_i="`echo '' $i | sed -e 's:^ ::' -e $quoted_sed_magic`"
418 quoted_arguments="$quoted_arguments '$quoted_i'" ;;
422 dnl Do not use shift -- that destroys the argument list, which autoconf needs
423 dnl to produce config.status. It turns out that "set - $arguments" does not
425 dnl However, it also turns out that many shells cannot expand ${10} at all.
426 dnl So using an index variable does not work either. It is possible to use
427 dnl some shell magic to make 'set x "$arguments"; shift' work portably.
428 while test $# != 0; do
431 --no-create|--no-recursion) ;;
432 dnl Anything starting with a hyphen we assume is an option.
434 dnl Separate the switch name from the value it is being given.
437 opt=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*\([[^=]]*\)=.*$:\1:'`
438 val=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*[[^=]]*=\(.*\)$:\1:'`
441 dnl special case these strings since echo may silently eat them:
442 dnl --help ) opt=help val=yes valomitted=yes ;;
443 dnl --version ) opt=version val=yes valomitted=yes ;;
444 dnl -e ) opt=e val=yes valomitted=yes ;;
445 dnl -E ) opt=E val=yes valomitted=yes ;;
446 dnl -n ) opt=n val=yes valomitted=yes ;;
448 dnl If FOO is a boolean argument, --FOO is equivalent to
449 dnl --FOO=yes. Otherwise, the value comes from the next
450 dnl argument - see below.
451 opt=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*\(.*\)$:\1:'`
452 val="yes" valomitted=yes
456 dnl translate "-" in option string to "_"
458 opt="`echo '' $opt | sed -e 's:^ ::' | tr - _`"
460 dnl Support --without-FOO as a synonym for --with-FOO=no
461 case "${valomitted}-${opt}" in yes-without_* )
462 opt=`echo $opt | sed 's/without/with/'`
463 valomitted="no" val="no" ;;
466 dnl Process the option.
469 dnl Process (many) boolean options
472 with_site_modules | \
522 memory_usage_stats | \
523 with_clash_detection | \
526 dnl Make sure the value given was either "yes" or "no".
528 y | ye | yes ) val=yes ;;
530 * ) USAGE_ERROR("The \`--$optname' option requires a boolean value: \`yes' or \`no'.") ;;
532 eval "$opt=\"$val\"" ;;
535 dnl Options that take a user-supplied value, as in --x-includes=/usr/X11R6/include
536 dnl The cache-file option is ignored (for compatibility with other configures)
552 site_runtime_libraries )
553 dnl If the value was omitted, get it from the next argument.
554 if test "$valomitted" = "yes" ; then
555 dnl Get the next argument from the argument list, if there is one.
556 if test "$#" = 0 ; then
557 USAGE_ERROR("The \`--$optname' option requires a value.");
564 dnl Options that take "yes", "no", or "default" values
567 with_debug_malloc | use_debug_malloc | \
568 with_system_malloc | use_system_malloc )
570 y | ye | yes ) val=yes ;;
572 d | de | def | defa | defau | defaul | default ) val=default ;;
573 * ) USAGE_ERROR(["The \`--$optname' option requires one of these values:
574 \`yes', \`no', or \`default'."]) ;;
576 case "$opt" in use_* ) opt="`echo $opt | sed s/use/with/`" ;; esac
580 dnl Has the user requested database support?
582 with_database_berkdb=no
584 with_database_gnudbm=no
585 for x in `echo "$val" | sed -e 's/,/ /g'` ; do
588 b | be | ber | berk | berkd | berkdb ) with_database_berkdb=yes ;;
589 d | db | dbm ) with_database_dbm=yes ;;
590 g | gn | gnu | gnud | gnudb | gnudbm ) with_database_gnudbm=yes ;;
591 * ) USAGE_ERROR(["The \`--$optname' option value
592 must be either \`no' or a comma-separated list
593 of one or more of \`berkdb' and either \`dbm' or \`gnudbm'."]) ;;
596 if test "$with_database_dbm" = "yes" -a \
597 "$with_database_gnudbm" = "yes"; then
598 USAGE_ERROR("Only one of \`dbm' and \`gnudbm' may be specified
599 with the \`--$optname' option.")
603 dnl Has the user requested sound support?
605 dnl value can be native, nas or both. yes is allowed
606 dnl as a backwards compatible synonym for native
608 y | ye | yes ) val=native ;;
609 n | no | non | none ) val=no;;
610 na | nat | nati | nativ | native ) val=native ;;
611 ne | net | neta | netau | netaud | netaudi | netaudio | nas ) val=nas ;;
612 b | bo | bot | both ) val=both;;
613 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
614 \`native', \`nas', \`both', or \`none'."]) ;;
619 dnl Has the user requested XIM support?
622 y | ye | yes ) val=yes ;;
623 n | no | non | none ) val=no ;;
624 x | xl | xli | xlib ) val=xlib ;;
625 m | mo | mot | moti | motif ) val=motif ;;
626 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
627 \`motif', \`xlib', \`yes', or \`no'."]) ;;
632 dnl Mail locking specification
638 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
639 \`lockf', \`flock', or \`file'."]) ;;
644 dnl Has the user requested error-checking?
646 dnl value can be all, none, and/or a list of categories to check.
647 dnl Example: --error-checking=all,noextents,nobufpos
648 dnl Example: --error-checking=none,malloc,gc
650 for x in `echo "$val" | sed -e 's/,/ /g'` ; do
652 dnl all and none are only permitted as the first in the list.
653 n | no | non | none ) new_default=no ;;
654 a | al | all ) new_default=yes ;;
656 extents ) error_check_extents=yes ;;
657 noextents ) error_check_extents=no ;;
659 typecheck ) error_check_typecheck=yes ;;
660 notypecheck ) error_check_typecheck=no ;;
662 bufpos ) error_check_bufpos=yes ;;
663 nobufpos ) error_check_bufpos=no ;;
665 gc ) error_check_gc=yes ;;
666 nogc ) error_check_gc=no ;;
668 malloc ) error_check_malloc=yes ;;
669 nomalloc ) error_check_malloc=no ;;
671 byte_code ) error_check_byte_code=yes ;;
672 nobyte_code ) error_check_byte_code=no ;;
674 * ) bogus_error_check=yes ;;
676 if test "$bogus_error_check" -o \
677 \( -n "$new_default" -a -n "$echeck_notfirst" \) ; then
678 if test "$error_check_default" = yes ; then
679 types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nobufpos', \`nogc', \`nomalloc', and \`nobyte-code'."
681 types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', \`malloc', and \`byte-code'."
683 USAGE_ERROR(["Valid types for the \`--$optname' option are:
685 elif test -n "$new_default" ; then
686 error_check_extents=$new_default
687 error_check_typecheck=$new_default
688 error_check_bufpos=$new_default
689 error_check_gc=$new_default
690 error_check_malloc=$new_default
691 error_check_byte_code=$new_default
692 new_default= # reset this
698 dnl Has the user tried to tell us where the X files are?
699 dnl I think these are dopey, but no less than three alpha
700 dnl testers, at large sites, have said they have their X files
701 dnl installed in odd places.
703 dnl Has the user specified one of the path options?
704 prefix | exec_prefix | bindir | datadir | statedir | libdir | \
705 mandir | infodir | infopath | lispdir | etcdir | lockdir | pkgdir | \
706 archlibdir | docdir | package_path )
707 dnl If the value was omitted, get it from the next argument.
708 if test "$valomitted" = "yes"; then
709 if test "$#" = 0; then
710 USAGE_ERROR("The \`--$optname' option requires a value.");
716 dnl You need to synchronize this with the way the
717 dnl default values are built.
719 dnl prefix is taken care of by --with-prefix
720 exec_prefix ) AC_DEFINE(EXEC_PREFIX_USER_DEFINED) ;;
721 lispdir ) AC_DEFINE(LISPDIR_USER_DEFINED) ;;
722 sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
723 moduledir ) AC_DEFINE(MODULEDIR_USER_DEFINED) ;;
724 etcdir ) AC_DEFINE(ETCDIR_USER_DEFINED) ;;
725 infodir ) AC_DEFINE(INFODIR_USER_DEFINED) ;;
726 infopath ) AC_DEFINE(INFOPATH_USER_DEFINED) ;;
727 package_path ) AC_DEFINE(PACKAGE_PATH_USER_DEFINED) ;;
729 AC_DEFINE(INFODIR_USER_DEFINED)
730 AC_DEFINE(LISPDIR_USER_DEFINED)
731 AC_DEFINE(MODULEDIR_USER_DEFINED)
732 AC_DEFINE(ETCDIR_USER_DEFINED) ;;
733 statedir | lockdir ) AC_DEFINE(LOCKDIR_USER_DEFINED) ;;
734 docdir ) AC_DEFINE(DOCDIR_USER_DEFINED) ;;
735 exec_prefix | libdir | archlibdir ) AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;;
739 dnl --no-create added by autoconf for use by config.status
742 dnl Has the user asked for some help?
743 "usage" | "help" ) ${PAGER-more} ${srcdir}/configure.usage; exit 0 ;;
745 dnl Has the user specified the toolkit(s) to use for GUI elements?
747 "with_scrollbars" | \
751 l | lu | luc | luci | lucid ) val=lucid ;;
752 m | mo | mot | moti | motif ) val=motif ;;
753 athena3d | athena-3d ) val=athena3d ;;
754 a | at | ath | athe | athen | athena ) val=athena ;;
755 n | no | non | none ) val=no ;;
756 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
757 \`lucid', \`motif', \`athena', \`athena3d', or \`no'."]) ;;
762 dnl Obsolete legacy argument? Warn, but otherwise ignore.
765 AC_MSG_WARN([Obsolete option \`--$optname' ignored.])
768 dnl Unrecognized option? No mercy for user errors.
769 * ) USAGE_ERROR("Unrecognized option: $arg") ;;
774 dnl Assume anything with multiple hyphens is a configuration name.
775 *-*-*) configuration="$arg" ;;
777 dnl Unrecognized argument? No mercy for user errors.
778 *) USAGE_ERROR("Unrecognized argument: $arg") ;;
783 dnl -------------------------
784 dnl Finish options processing
785 dnl -------------------------
787 dnl Several options are equivalent to, and override, environment variables.
788 test -n "$cpp" && CPP="$cpp"
789 test -n "$cppflags" && CPPFLAGS="$cppflags"
790 test -n "$libs" && LIBS="$libs"
791 test -n "$ldflags" && LDFLAGS="$ldflags"
793 dnl Get the arguments back. See the diatribe on Shell Magic above.
794 eval set x "$quoted_arguments"; shift
796 dnl --extra-verbose implies --verbose
797 test "$extra_verbose" = "yes" && verbose=yes
799 dnl with_x is an obsolete synonym for with_x11
800 test -n "$with_x" && with_x11="$with_x"
802 dnl --with-quantify or --with-purify imply --use-system-malloc
803 if test "$with_purify" = "yes" -o "$with_quantify" = "yes"; then
804 test "$with_system_malloc" = "default" && with_system_malloc=yes
807 dnl XE_CHECK_FEATURE_DEPENDENCY(feature1, feature2)
808 define([XE_CHECK_FEATURE_DEPENDENCY],
809 [if test "$with_$1 $with_$2" = "yes no"; then
810 USAGE_ERROR("--with-$1 requires --with-$2")
811 elif test "$with_$2" = "no" ; then with_$1=no
812 elif test "$with_$1" = "yes"; then with_$2=yes
816 dnl CDE requires tooltalk
817 XE_CHECK_FEATURE_DEPENDENCY(cde, tooltalk)
819 dnl Find the source directory.
822 dnl If srcdir is not specified, see if "." or ".." might work.
824 for dir in "`echo $0 | sed 's|//|/|' | sed 's|/[[^/]]*$||'`" "." ".." ; do
825 if test -f "$dir/src/lisp.h" -a \
826 -f "$dir/lisp/version.el" ; then
831 if test -z "$srcdir" ; then
832 USAGE_ERROR(["Neither the current directory nor its parent seem to
833 contain the XEmacs sources. If you do not want to build XEmacs in its
834 source tree, you should run \`$progname' in the directory in which
835 you wish to build XEmacs, using the \`--srcdir' option to say where the
836 sources may be found."])
840 dnl Otherwise, check if the directory they specified is okay.
842 if test ! -f "$srcdir/src/lisp.h" -o \
843 ! -f "$srcdir/lisp/version.el" ; then
844 USAGE_ERROR(["The directory specified with the \`--srcdir' option,
845 \`$srcdir', doesn't seem to contain the XEmacs sources. You should
846 either run the \`$progname' script at the top of the XEmacs source
847 tree, or use the \`--srcdir' option to specify the XEmacs source directory."])
852 dnl ###########################################################################
853 if test -z "$configuration"; then
854 dnl Guess the configuration
855 configuration=`${CONFIG_SHELL-/bin/sh} $srcdir/config.guess`
856 if test -z "$configuration"; then
857 USAGE_ERROR(["XEmacs has not been ported to this host type.
858 Try explicitly specifying the CONFIGURATION when rerunning configure."])
864 dnl Make symlinks for etc, lisp, and info directories while the path
865 dnl is still relative. We do not symlink lock because someone may
866 dnl have stuck the source on a read-only partition. Instead we
867 dnl create it as an actual directory later on if it does not already
869 for dir in lisp etc man info; do
870 if test ! -d "$dir" ; then
871 echo Making symbolic link to "$srcdir/$dir"
872 ${LN_S} "$srcdir/$dir" "$dir"
876 dnl Do our best to deal with automounter brokenness
877 dnl CANONICALIZE_PATH(varname)
878 define([CANONICALIZE_PATH],
879 [if test -d "/net"; then
880 if test -d "/tmp_mnt/net"; then tdir="tmp_mnt/net"; else tdir="tmp_mnt"; fi
882 sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
885 dnl Calculate canonical name for blddir (i.e. current directory).
886 dnl PWD may already be the preferable absolute name for ".",
887 dnl but we can't trust it - it is sometimes inaccurate.
888 absolute_pwd="`pwd`";
889 if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd"
891 else blddir="$absolute_pwd"; CANONICALIZE_PATH(blddir)
895 dnl Make srcdir absolute, if not already. It is important to
896 dnl avoid running the path through pwd unnecessary, since pwd can
897 dnl give you automounter prefixes, which can go away.
900 . ) srcdir="$blddir" ;;
901 * ) srcdir="`cd $srcdir && pwd`"; CANONICALIZE_PATH(srcdir) ;;
904 dnl Check if the source directory already has a configured system in it.
905 if test `pwd` != `sh -c cd $srcdir && pwd` \
906 && test -f "$srcdir/src/config.h"; then
907 (echo "$progname: WARNING: The directory tree \`$srcdir' is being used"
908 echo " as a build directory right now; it has been configured in its own"
909 echo " right. To configure in another directory as well, you MUST"
910 echo " use GNU make. If you do not have GNU make, then you must"
911 echo " now do \`make distclean' in $srcdir,"
912 echo " and then run $progname again.") >&2
913 extrasub='/^VPATH[[ ]]*=/c\
919 vpath %.in $(srcdir)'
922 dnl ----------------------------------------
923 dnl Find out which version of XEmacs this is
924 dnl ----------------------------------------
925 . "$srcdir/version.sh" || exit 1;
926 dnl Must do the following first to determine verbosity for AC_DEFINE
927 if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi
928 : "${extra_verbose=$beta}"
929 version="${emacs_major_version}.${emacs_minor_version}"
930 AC_DEFINE_UNQUOTED(EMACS_MAJOR_VERSION, $emacs_major_version)
931 AC_DEFINE_UNQUOTED(EMACS_MINOR_VERSION, $emacs_minor_version)
932 if test -n "$emacs_beta_version" ; then
933 if test "$beta" = "yes"; then
934 version="${version}-b${emacs_beta_version}"
935 AC_DEFINE_UNQUOTED(EMACS_BETA_VERSION, $emacs_beta_version)
937 version="${version}.${emacs_beta_version}"
938 AC_DEFINE_UNQUOTED(EMACS_PATCH_LEVEL, $emacs_beta_version)
941 AC_DEFINE_UNQUOTED(XEMACS_CODENAME, "$xemacs_codename")
942 AC_DEFINE_UNQUOTED(EMACS_VERSION, "$version")
944 if test "$with_infodock" = "yes"; then
945 if test ! -f ../../ID-INSTALL; then
946 echo "Cannot build InfoDock without InfoDock sources"
951 if test "$with_infodock" = "yes"; then
952 dnl InfoDock version numbers. XEmacs will use the same style of numbering
953 dnl after the release of XEmacs 21.0.
954 AC_DEFINE_UNQUOTED(INFODOCK_MAJOR_VERSION, $infodock_major_version)
955 AC_DEFINE_UNQUOTED(INFODOCK_MINOR_VERSION, $infodock_minor_version)
956 AC_DEFINE_UNQUOTED(INFODOCK_BUILD_VERSION, $infodock_build_version)
957 version=${infodock_major_version}.${infodock_minor_version}.${infodock_build_version}
959 CPPFLAGS="$CPPFLAGS -DINFODOCK"
964 dnl ----------------------------------
965 dnl Error checking and debugging flags
966 dnl ----------------------------------
967 dnl Error checking default to "yes" in beta versions, to "no" in releases.
968 dnl Same goes for --debug and --extra-verbosity.
969 if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi
970 test "${error_check_extents=$beta}" = yes && AC_DEFINE(ERROR_CHECK_EXTENTS)
971 test "${error_check_typecheck=$beta}" = yes && AC_DEFINE(ERROR_CHECK_TYPECHECK)
972 test "${error_check_bufpos=$beta}" = yes && AC_DEFINE(ERROR_CHECK_BUFPOS)
973 test "${error_check_gc=$beta}" = yes && AC_DEFINE(ERROR_CHECK_GC)
974 test "${error_check_malloc=$beta}" = yes && AC_DEFINE(ERROR_CHECK_MALLOC)
975 test "${error_check_byte_code=$beta}" = yes && AC_DEFINE(ERROR_CHECK_BYTE_CODE)
976 dnl debug=yes must be set when error checking is present. This should be
978 dnl debug implies other options
979 if test "${debug:=$beta}" = "yes"; then
980 use_assertions=yes memory_usage_stats=yes
982 AC_DEFINE(DEBUG_XEMACS)
984 test "$use_assertions" = "yes" && AC_DEFINE(USE_ASSERTIONS)
985 test "$memory_usage_stats" = "yes" && AC_DEFINE(MEMORY_USAGE_STATS)
987 dnl ------------------------------
988 dnl Determine the s&m files to use
989 dnl ------------------------------
990 dnl Given the configuration name, set machfile and opsysfile to the
991 dnl names of the m/*.h and s/*.h files we should use.
993 dnl Canonicalize the configuration name.
994 AC_MSG_CHECKING("host system type")
995 dnl allow -workshop suffix on configuration name
996 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'`
997 canonical=`${CONFIG_SHELL-/bin/sh} $srcdir/config.sub "$internal_configuration"`
998 XE_STRIP_4TH_COMPONENT(configuration)
999 XE_STRIP_4TH_COMPONENT(canonical)
1000 AC_MSG_RESULT($configuration)
1002 dnl If you add support for a new configuration, add code to this
1003 dnl switch statement to recognize your configuration name and select
1004 dnl the appropriate operating system and machine description files.
1006 dnl You would hope that you could choose an m/*.h file pretty much
1007 dnl based on the machine portion of the configuration name, and an s-
1008 dnl file based on the operating system portion. However, it turns out
1009 dnl that each m/*.h file is pretty manufacturer-specific - for
1010 dnl example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are
1011 dnl all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
1012 dnl machines. So we basically have to have a special case for each
1013 dnl configuration name.
1015 dnl As far as handling version numbers on operating systems is
1016 dnl concerned, make sure things will fail in a fixable way. If
1017 dnl /etc/MACHINES says nothing about version numbers, be
1018 dnl prepared to handle anything reasonably. If version numbers
1019 dnl matter, be sure /etc/MACHINES says something about it.
1021 dnl Eric Raymond says we should accept strings like "sysvr4" to mean
1022 dnl "System V Release 4"; he writes, "The old convention encouraged"
1023 dnl "confusion between `system' and `release' levels'."
1027 dnl Straightforward machine determination
1028 case "$canonical" in
1029 sparc-*-* ) machine=sparc ;;
1030 alpha*-*-* ) machine=alpha ;;
1031 vax-*-* ) machine=vax ;;
1032 mips-dec-* ) machine=pmax ;;
1033 mips-sgi-* ) machine=iris4d ;;
1034 romp-ibm-* ) machine=ibmrt ;;
1035 rs6000-ibm-aix* ) machine=ibmrs6000 ;;
1036 powerpc-ibm-aix* ) machine=ibmrs6000 ;;
1037 powerpc*-* ) machine=powerpc ;;
1038 hppa-*-* ) machine=hp800 ;;
1039 m88k-dg-* ) machine=aviion ;;
1040 m68*-sony-* ) machine=news ;;
1041 mips-sony-* ) machine=news-risc ;;
1042 clipper-* ) machine=clipper ;;
1043 arm-* ) machine=arm ;;
1044 ns32k-* ) machine=ns32000 ;;
1047 dnl Straightforward OS determination
1048 case "$canonical" in
1049 *-*-linux* ) opsys=linux ;;
1050 *-*-netbsd* ) opsys=netbsd ;;
1051 *-*-openbsd* ) opsys=openbsd ;;
1052 *-*-nextstep* ) opsys=nextstep ;;
1053 *-*-vms ) opsys=vms ;;
1056 *-dec-osf1.3 | *-dec-osf2* ) opsys=decosf1-3 ;;
1057 *-dec-osf1.2 | *-dec-osf1* ) opsys=decosf1-2 ;;
1058 *-dec-osf3.[[2-9]] ) opsys=decosf3-2 ;;
1059 *-dec-osf3* ) opsys=decosf3-1 ;;
1060 *-dec-osf4* ) opsys=decosf4-0 ;;
1063 *-*-ultrix[[0-3]].* | *-*-ultrix4.0* ) opsys=bsd4-2 ;;
1064 *-*-ultrix4.[[12]]* ) opsys=bsd4-3 ;;
1065 *-*-ultrix* ) opsys=ultrix4-3 ;;
1068 *-*-aix3.1* ) opsys=aix3-1 ;;
1069 *-*-aix3.2.5 ) opsys=aix3-2-5 ;;
1070 *-*-aix3* ) opsys=aix3-2 ;;
1071 *-*-aix4.0* ) opsys=aix4 ;;
1072 *-*-aix4.1* ) opsys=aix4-1 ;;
1073 *-*-aix4* ) opsys=aix4-2 ;;
1075 dnl Other generic OSes
1076 *-gnu* ) opsys=gnu ;;
1077 *-*-bsd4.[[01]] ) opsys=bsd4-1 ;;
1078 *-*-bsd4.2 ) opsys=bsd4-2 ;;
1079 *-*-bsd4.3 ) opsys=bsd4-3 ;;
1080 *-*-aos4.2 ) opsys=bsd4-2 ;;
1081 *-*-aos* ) opsys=bsd4-3 ;;
1082 *-*-sysv0 | *-*-sysvr0 ) opsys=usg5-0 ;;
1083 *-*-sysv2 | *-*-sysvr2 ) opsys=usg5-2 ;;
1084 *-*-sysv2.2 | *-*-sysvr2.2 ) opsys=usg5-2-2 ;;
1085 *-*-sysv3* | *-*-sysvr3* ) opsys=usg5-3 ;;
1086 *-*-sysv4.1* | *-*-sysvr4.1* )opsys=usg5-4 NON_GNU_CPP=/usr/lib/cpp ;;
1087 *-*-sysv4.[[2-9]]* | *-sysvr4.[[2-9]]* )
1088 if test -z "$NON_GNU_CPP" ; then
1089 for prog in "/usr/ccs/lib/cpp" "/lib/cpp"; do
1090 if test -f "$prog"; then NON_GNU_CPP="$prog"; break; fi
1094 *-sysv4* | *-sysvr4* ) opsys=usg5-4 ;;
1095 *-*-mach_bsd4.3* ) opsys=mach-bsd4-3 ;;
1098 case "$canonical" in
1102 case "$canonical" in
1103 i[[3-9]]86-*-netbsd*) machine=intel386 ;;
1104 hp300-*-netbsd* | amiga-*-netbsd* | sun3-*-netbsd* | mac68k-*-netbsd* | da30-*-netbsd* | m68k-*-netbsd* )
1105 dnl Yes, this is somewhat bogus.
1106 machine=hp9000s300 ;;
1107 pc532-*-netbsd* | ns32k-*-netbsd* ) machine=ns32000 ;;
1108 pmax-*-netbsd* | mips-*-netbsd* ) machine=pmax ;;
1114 case "${canonical}" in
1115 i386-*-openbsd*) machine=intel386 ;;
1116 m68k-*-openbsd*) machine=hp9000s300 ;;
1117 mipsel-*-openbsd*) machine=pmax ;;
1122 arm-acorn-riscix1.1* ) machine=acorn opsys=riscix1-1 ;;
1123 arm-acorn-riscix1.2* | arm-acorn-riscix ) machine=acorn opsys=riscix1-2 ;;
1125 dnl Alliant machines
1126 fx80-alliant-* ) machine=alliant4 opsys=bsd4-2 ;;
1127 i860-alliant-* ) machine=alliant-2800 opsys=bsd4-3 ;;
1130 m68*-altos-sysv* ) machine=altos opsys=usg5-2 ;;
1133 580-amdahl-sysv* ) machine=amdahl opsys=usg5-2-2 ;;
1135 dnl Apollo, Domain/OS
1136 m68*-apollo-* ) machine=apollo opsys=bsd4-3 ;;
1138 dnl AT&T 3b2, 3b5, 3b15, 3b20
1139 we32k-att-sysv* ) machine=att3b opsys=usg5-2-2 ;;
1141 dnl AT&T 3b1 - The Mighty Unix PC!
1142 m68*-att-sysv* ) machine=7300 opsys=usg5-2-2 ;;
1145 rs6000-bull-bosx* ) machine=ibmrs6000 opsys=aix3-2 ;; # dpx20
1146 m68*-bull-sysv3* ) machine=dpx2 opsys=usg5-3 ;; # dpx2
1147 m68*-bull-sysv2* ) machine=sps7 opsys=usg5-2 ;; # sps7
1149 dnl CCI 5/32, 6/32 -- see "Tahoe".
1152 celerity-celerity-bsd* ) machine=celerity opsys=bsd4-2 ;;
1155 *-convex-bsd* | *-convex-convexos* )
1156 machine=convex opsys=bsd4-3
1157 NON_GNU_CPP="cc -E -P"
1161 i[[3-9]]86-cubix-sysv* ) machine=intel386 opsys=usg5-3 ;;
1163 dnl Data General AViiON Machines
1164 i586-dg-dgux*R4* | i586-dg-dgux5.4.4* ) machine=aviion opsys=dgux5-4r4 ;;
1165 m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* ) opsys=dgux5-4r3 ;;
1166 m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* ) opsys=dgux5-4r2 ;;
1167 m88k-dg-dgux* ) opsys=dgux ;;
1169 dnl Motorola Delta machines
1170 m68k-motorola-sysv* | m68000-motorola-sysv* ) machine=delta opsys=usg5-3 ;;
1171 m88k-motorola-sysv4* )
1172 dnl jbotte@bnr.ca says that UNIX_System_V <hostName> 4.0 R40V4.3 m88k mc88110
1173 dnl needs POSIX_SIGNALS and therefore needs usg5-4-2.
1174 dnl I hope there are not other 4.0 versions for this machine
1175 dnl which really need usg5-4 instead.
1176 machine=delta88k opsys=usg5-4-2
1178 m88k-motorola-sysv* | m88k-motorola-m88kbcs* ) machine=delta88k opsys=usg5-3 ;;
1181 m68*-dual-sysv* ) machine=dual opsys=usg5-2 ;;
1182 m68*-dual-uniplus* ) machine=dual opsys=unipl5-2 ;;
1185 ns16k-encore-bsd* ) machine=ns16000 opsys=umax ;;
1187 dnl Gould Power Node and NP1
1188 pn-gould-bsd4.2* ) machine=gould opsys=bsd4-2 ;;
1189 pn-gould-bsd4.3* ) machine=gould opsys=bsd4-3 ;;
1190 np1-gould-bsd* ) machine=gould-np1 opsys=bsd4-3 ;;
1192 dnl Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000
1193 dnl as far as XEmacs is concerned).
1195 dnl Build needs to be different on 7.0 and later releases
1196 case "`uname -r`" in
1197 [[56]].[[0-9]] ) machine=nh4000 opsys=cxux ;;
1198 [[7]].[[0-9]] ) machine=nh4000 opsys=cxux7 ;;
1200 NON_GNU_CPP="/lib/cpp"
1202 dnl Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
1203 m68k-harris-cxux* ) machine=nh3000 opsys=cxux ;;
1204 dnl Harris power pc NightHawk running Power UNIX (Series 6000)
1205 powerpc-harris-powerunix ) machine=nh6000 opsys=powerunix NON_GNU_CPP="cc -Xo -E -P" ;;
1207 dnl Honeywell XPS100
1208 xps*-honeywell-sysv* ) machine=xps100 opsys=usg5-2 ;;
1210 dnl HP 9000 series 200 or 300
1211 m68*-hp-bsd* ) machine=hp9000s300 opsys=bsd4-3 ;;
1215 dnl Figure out machine and opsys orthogonally
1216 case "$canonical" in
1217 m68* ) machine=hp9000s300 ;;
1218 hppa* ) machine=hp800 ;;
1221 case "$canonical" in
1222 *-hp-hpux7* ) opsys=hpux ;;
1223 *-hp-hpux8* ) opsys=hpux8 ;;
1224 *-hp-hpux9* ) opsys=hpux9 ;;
1225 *-hp-hpux10* ) opsys=hpux10 ;;
1226 *-hp-hpux11* ) opsys=hpux11 ;;
1230 dnl HP has a broken "strcat"
1231 case "$opsys" in hpux9 | hpux10 ) XE_ADD_OBJS(strcat.o) ;; esac
1233 if test "$opsys" = "hpux10" -o "$opsys" = "hpux11"; then \
1234 ansi_flag="-Ae"; else ansi_flag="-Aa"; fi
1235 NON_GNU_CC="cc $ansi_flag" NON_GNU_CPP="cc $ansi_flag -E"
1237 case "$canonical" in *-hp-hpux*shr* ) opsys="${opsys}-shr" ;; esac
1241 orion-orion-bsd* ) machine=orion opsys=bsd4-2 ;;
1242 clipper-orion-bsd* ) machine=orion105 opsys=bsd4-2 ;;
1245 i[[3-9]]86-ibm-aix1.1* ) machine=ibmps2-aix opsys=usg5-2-2 ;;
1246 i[[3-9]]86-ibm-aix1.[[23]]* | i[[3-9]]86-ibm-aix* ) machine=ibmps2-aix opsys=usg5-3 ;;
1247 i370-ibm-aix*) machine=ibm370aix opsys=usg5-3 ;;
1248 romp-ibm-aos* ) opsys=bsd4-3 ;;
1249 romp-ibm-bsd* ) opsys=bsd4-3 ;;
1250 romp-ibm-mach* ) opsys=mach-bsd4-3 ;;
1252 dnl Integrated Solutions "Optimum V"
1253 m68*-isi-bsd4.2* ) machine=isi-ov opsys=bsd4-2 ;;
1254 m68*-isi-bsd4.3* ) machine=isi-ov opsys=bsd4-3 ;;
1256 dnl Intel 386 machines where we do care about the manufacturer
1257 i[[3-9]]86-intsys-sysv* ) machine=is386 opsys=usg5-2-2 ;;
1260 i[[3-9]]86-prime-sysv* ) machine=i386 opsys=usg5-3 ;;
1262 dnl Sequent Symmetry running Dynix
1263 i[[3-9]]86-sequent-bsd* ) machine=symmetry opsys=bsd4-3 ;;
1265 dnl Sequent Symmetry running DYNIX/ptx
1266 i[[3-9]]86-sequent-ptx* ) machine=sequent-ptx opsys=ptx NON_GNU_CPP="/lib/cpp" ;;
1268 dnl Unspecified sysv on an ncr machine defaults to svr4.2.
1269 dnl (Plain usg5-4 does not turn on POSIX signals, which we need.)
1270 i[[3-9]]86-ncr-sysv* ) machine=ncr386 opsys=usg5-4-2 ;;
1272 dnl Intel Paragon OSF/1
1273 i860-intel-osf1* ) machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp ;;
1276 i860-*-sysv4* ) machine=i860 opsys=usg5-4 NON_GNU_CC="/bin/cc" NON_GNU_CPP="/usr/ccs/lib/cpp" ;;
1278 dnl Masscomp machines
1279 m68*-masscomp-rtu* ) machine=masscomp opsys=rtu ;;
1281 dnl Megatest machines
1282 m68*-megatest-bsd* ) machine=mega68 opsys=bsd4-2 ;;
1284 dnl Workstations sold by MIPS
1285 dnl This is not necessarily all workstations using the MIPS processor -
1286 dnl Irises are produced by SGI, and DECstations by DEC.
1287 mips-mips-usg* ) machine=mips4 ;;
1290 NON_GNU_CC="cc -systype bsd43"
1291 NON_GNU_CPP="cc -systype bsd43 -E"
1292 case "$canonical" in
1293 mips-mips-riscos4* ) opsys=bsd4-3 ;;
1294 mips-mips-riscos5* ) opsys=riscos5 ;;
1297 mips-mips-bsd* ) machine=mips opsys=bsd4-3 ;;
1298 mips-mips-* ) machine=mips opsys=usg5-2-2 ;;
1301 m68*-next-* | m68k-*-nextstep* ) machine=m68k opsys=nextstep ;;
1303 dnl The complete machine from National Semiconductor
1304 ns32k-ns-genix* ) machine=ns32000 opsys=usg5-2 ;;
1307 m68*-ncr-sysv2* | m68*-ncr-sysvr2* ) machine=tower32 opsys=usg5-2-2 ;;
1308 m68*-ncr-sysv3* | m68*-ncr-sysvr3* ) machine=tower32v3 opsys=usg5-3 ;;
1310 dnl Nixdorf Targon 31
1311 m68*-nixdorf-sysv* ) machine=targon31 opsys=usg5-2-2 ;;
1314 m68*-nu-sysv* ) machine=nu opsys=usg5-2 ;;
1317 m68*-plexus-sysv* ) machine=plexus opsys=usg5-2 ;;
1319 dnl Pyramid machines
1320 pyramid-pyramid-bsd* ) machine=pyramid opsys=bsd4-2 ;;
1323 ns32k-sequent-bsd4.2* ) machine=sequent opsys=bsd4-2 ;;
1324 ns32k-sequent-bsd4.3* ) machine=sequent opsys=bsd4-3 ;;
1327 mips-siemens-sysv* | mips-sni-sysv*)
1328 machine=mips-siemens opsys=usg5-4
1329 NON_GNU_CC=/usr/ccs/bin/cc
1330 NON_GNU_CPP=/usr/ccs/lib/cpp
1336 NON_GNU_CC=/usr/ccs/bin/cc
1337 NON_GNU_CPP=/usr/ccs/lib/cpp
1340 dnl Silicon Graphics machines
1341 dnl Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
1342 m68*-sgi-iris3.5* ) machine=irist opsys=iris3-5 ;;
1343 m68*-sgi-iris3.6* | m68*-sgi-iris*) machine=irist opsys=iris3-6 ;;
1345 mips-sgi-irix3.* ) opsys=irix3-3 ;;
1346 mips-sgi-irix4.* ) opsys=irix4-0 ;;
1347 mips-sgi-irix6* ) opsys=irix6-0 ;;
1348 mips-sgi-irix5.1* ) opsys=irix5-1 ;;
1349 mips-sgi-irix5.2* ) opsys=irix5-2 ;;
1350 mips-sgi-irix5.* ) opsys=irix5-3 ;;
1351 mips-sgi-irix* ) opsys=irix5-0 ;;
1354 *-sony-newsos[[34]]* | *-sony-news[[34]]* ) opsys=bsd4-3 ;;
1355 *-sony-news* ) opsys=newsos5 ;;
1358 m68*-stride-sysv* ) machine=stride opsys=usg5-2 ;;
1361 *-*-solaris* | *-*-sunos* | *-sun-mach* | *-sun-bsd* )
1363 case "$canonical" in
1364 m68*-sunos1* ) machine=sun1 ;;
1365 m68*-sunos2* ) machine=sun2 ;;
1366 m68* ) machine=sun3 ;;
1367 i*86*-sun-sunos[[34]]* ) machine=sun386 ;;
1368 i*86-*-* ) machine=intel386 ;;
1369 rs6000* ) machine=rs6000 ;;
1372 dnl Make $canonical even more so.
1373 case "$canonical" in *-sunos5*)
1374 canonical=`echo $canonical | sed -e s/sunos5/solaris2/`;;
1377 dnl On SunOS 4, use /usr/lib/cpp, sans dynodump, /bin/ranlib
1378 dnl On SunOS 5, use cc -E, need dynodump, RANLIB not needed
1379 dnl But, SunOS 5.6 no longer needs dynodump because it has a similar
1380 dnl function integrated.
1381 case "$canonical" in
1383 #test -f /usr/lib/cpp && NON_GNU_CPP=/usr/lib/cpp ;;
1386 #test -f /usr/ccs/lib/cpp && NON_GNU_CPP=/usr/ccs/lib/cpp
1390 case "$canonical" in
1393 os_release=`uname -r | sed -e 's/^\([[0-9]]\)\.\([[0-9]]\).*/\1\2/'`
1394 AC_DEFINE_UNQUOTED(OS_RELEASE, $os_release) ;;
1396 dnl The last Sun386 ran 4.0.
1397 i*86-*-sunos4* ) opsys=sunos4-0 ;;
1398 *-sunos4.0* ) opsys=sunos4-0 ;;
1399 *-sunos4.1.2* ) opsys=sunos4-1-2 ;;
1400 *-sunos4.1.3* ) opsys=sunos4-1-3 ;;
1401 *-sunos4.1.[[4-9]]* ) opsys=sunos4-1-4 ;;
1402 *-sunos4* | *-sunos ) opsys=sunos4-1 ;;
1403 *-mach* ) opsys=mach-bsd4-3 ;;
1407 case "$canonical" in *-sunos4*shr* ) opsys="${opsys}-shr" ;; esac
1409 dnl Watch out for a compiler guaranteed not to work.
1410 test "$opsys $CC" = "sol2 /usr/ucb/cc" && CC=""
1414 m68*-tadpole-sysv* ) machine=tad68k opsys=usg5-3 ;;
1417 tahoe-tahoe-bsd4.2* ) machine=tahoe opsys=bsd4-2 ;;
1418 tahoe-tahoe-bsd4.3* ) machine=tahoe opsys=bsd4-3 ;;
1420 dnl Tandem Integrity S2
1421 mips-tandem-sysv* ) machine=tandem-s2 opsys=usg5-3 ;;
1424 m88k-tektronix-sysv3* ) machine=tekxd88 opsys=usg5-3 ;;
1426 dnl Tektronix 16000 box (6130?)
1427 ns16k-tektronix-bsd* ) machine=ns16000 opsys=bsd4-2 ;;
1429 dnl src/m/tek4300.h hints that this is a m68k machine.
1430 m68*-tektronix-bsd* ) machine=tek4300 opsys=bsd4-3 ;;
1433 titan-titan-sysv* ) machine=titan opsys=usg5-3 ;;
1435 dnl Ustation E30 (SS5E)
1436 m68*-unisys-uniplus* ) machine=ustation opsystem=unipl5-2 ;;
1440 case "$canonical" in
1441 *-sysv[[01]]* | *-sysvr[[01]]* ) opsys=usg5-0 ;;
1442 *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;;
1443 *-mach* ) opsys=mach-bsd4-3 ;;
1448 ns16k-whitechapel-* ) machine=mg1 ;;
1451 m68*-wicat-sysv* ) machine=wicat opsys=usg5-2 ;;
1453 dnl Intel 386 machines where we do not care about the manufacturer
1456 case "$canonical" in
1457 *-isc1.* | *-isc2.[[01]]* ) opsys=386-ix ;;
1458 *-isc2.2* ) opsys=isc2-2 ;;
1459 *-isc4.0* ) opsys=isc4-0 ;;
1460 *-isc4.* ) opsys=isc4-1
1461 GCC_TEST_OPTIONS=-posix
1462 NON_GCC_TEST_OPTIONS=-Xp
1464 *-isc* ) opsys=isc3-0 ;;
1465 *-esix5* ) opsys=esix5r4 NON_GNU_CPP=/usr/lib/cpp ;;
1466 *-esix* ) opsys=esix ;;
1467 *-mach* ) opsys=mach-bsd4-3 ;;
1468 *-xenix* ) opsys=xenix ;;
1469 *-sco3.2v4* ) opsys=sco4 NON_GNU_CPP=/lib/cpp ;;
1470 *-bsd386* | *-bsdi1* ) opsys=bsd386 ;;
1471 *-bsdi4* ) opsys=bsdos4 ;;
1472 *-bsdi3* ) opsys=bsdos3 ;;
1473 *-bsdi2.1* ) opsys=bsdos2-1 ;;
1474 *-bsdi2* ) opsys=bsdos2 ;;
1475 *-sco3.2v5* ) opsys=sco5 ;
1476 dnl This is a pain. Like the current USL cc, SCO cc -E
1477 dnl tokenizes as it preprocesses, making configure very
1478 dnl unhappy. Unfortunately, /lib/cpp does not understand
1479 dnl flags like "-b elf", so we have to cheat in order to
1480 dnl pick up the right defines for UNEXEC from the s-file.
1481 dnl 01/05/95 robertl@dgii.com
1482 if test "$dynamic" = "yes" ; then
1483 NON_GNU_CPP="/lib/cpp -D_XOPEN_SOURCE -D_SCO_ELF" ;
1485 NON_GNU_CPP="/lib/cpp -D_XOPEN_SOURCE" ;
1487 *-sysv5* ) opsys=sco7 ;;
1488 *-386bsd* ) opsys=386bsd ;;
1489 *-freebsd* ) opsys=freebsd ;;
1490 *-nextstep* ) opsys=nextstep ;;
1491 *-pc-cygwin* ) opsys=cygwin32 ;;
1492 *-pc-mingw* ) opsys=mingw32 ;
1493 test -z "$with_tty" && with_tty="no";;
1494 dnl Otherwise, we fall through to the generic opsys code at the bottom.
1499 m68k-*-linux* ) machine=m68k opsys=linux ;;
1503 if test -z "$machine" -o -z "$opsys"; then
1504 (echo "$progname: XEmacs hasn't been ported to \`$canonical' systems."
1505 echo "$progname: Check \`etc/MACHINES' for recognized configuration names."
1510 if test -z "$dynamic"; then
1512 hpux* | sunos4* ) dynamic=no ;;
1516 if test "$dynamic" = "yes"; then
1518 hpux* | sunos4* | sco5 ) opsys="${opsys}-shr" ;;
1519 decosf* ) ld_call_shared="-call_shared" ;;
1521 else dnl "$dynamic" = "no"
1524 echo "Static linking is not supported on Solaris 2."
1525 echo "Rerun configure without specifying --dynamic=no."
1527 linux ) ld_call_shared="-Bstatic" ;;
1528 decosf* ) ld_call_shared="-non_shared" ;;
1532 dnl Use xlc by default on AIX
1533 case "$opsys" in aix*) NON_GNU_CC=xlc ;; esac
1535 stack_trace_eye_catcher=`echo ${PROGNAME}_${version}_${canonical} | sed 'y/.-/__/'`
1536 AC_DEFINE_UNQUOTED(STACK_TRACE_EYE_CATCHER, $stack_trace_eye_catcher)
1538 machfile="m/${machine}.h"
1539 opsysfile="s/${opsys}.h"
1541 dnl --------------------------------------------------
1542 dnl Determine the compiler, set up for feature testing
1543 dnl --------------------------------------------------
1545 dnl Sun Development environment support
1546 test "$with_sparcworks" = "yes" && with_workshop=yes # compatibility alias
1547 XE_CHECK_FEATURE_DEPENDENCY(workshop, tooltalk)
1548 if test "$with_workshop" = "yes"; then
1550 XE_ADD_OBJS(sunpro.o)
1553 if test "$with_clash_detection" = "yes"; then
1554 AC_DEFINE(CLASH_DETECTION)
1555 XE_ADD_OBJS(filelock.o)
1558 dnl Choose a compiler from (in order)
1559 dnl --compiler, env var CC, with_gcc=no && ${NON_GNU_CC:-cc}, AC_PROG_CC
1560 test -n "$compiler" && CC="$compiler"
1561 if test "$with_gcc" = "no"; then dnl Try to find a non-gcc compiler
1562 case "$CC" in "" | *gcc* ) CC="${NON_GNU_CC-cc}" ;; esac
1565 dnl If we don't set CFLAGS here, AC_PROG_CC will set it.
1566 dnl But we know better what's good for us, so we do our own
1567 dnl computation of real CFLAGS later.
1568 dnl --cflags overrides environment variable CFLAGS
1569 test "${cflags-unset}" != unset && CFLAGS="$cflags"
1570 if test "${CFLAGS-unset}" != unset
1571 then cflags_specified=yes;
1572 else cflags_specified=no;
1575 xe_save_CFLAGS="$CFLAGS"
1577 AC_PROG_CC dnl Autoconf has its own magic for compiler autodetection
1579 dnl Retry using random guesswork if AC_PROG_CC got it wrong...
1580 if test "$with_gcc" = "no" -a "$GCC" = "yes"; then
1583 elif test "$with_gcc" = "yes" -a "$GCC" != "yes" ; then
1587 CFLAGS="$xe_save_CFLAGS"
1589 dnl Figure out what C preprocessor to use.
1591 dnl On Sun systems, people sometimes set up the variable CPP
1592 dnl with a value that is a directory, not an executable at all.
1593 dnl Detect that case, and ignore that value.
1594 test -n "$CPP" -a -d "$CPP" && CPP=
1596 test -n "$NON_GNU_CPP" -a "$GCC" != "yes" -a -z "$CPP" && CPP="$NON_GNU_CPP"
1602 AC_MSG_CHECKING(for GNU libc)
1603 AC_TRY_COMPILE([#include <features.h>],[
1604 #if ! (defined __GLIBC__ || defined __GNU_LIBRARY__)
1605 #error Not a GNU libc system :-(
1606 ******* ======= ******** &&&&&&&&
1608 ], have_glibc=yes, have_glibc=no)
1609 AC_MSG_RESULT($have_glibc)
1610 dnl I'm tired of pop being broken with GLIBC -slb
1611 dnl Well. then why not fix fucking pop?
1612 test "$have_glibc" = "yes" && AC_DEFINE(_GNU_SOURCE)
1615 dnl Identify compilers to enable compiler-specific hacks.
1616 dnl Add support for other compilers HERE!
1617 dnl GCC is already identified elsewhere.
1618 AC_TRY_RUN([int main () {
1619 #if defined __SUNPRO_C
1621 #elif defined __DECC
1627 [case "$conftest_rc" in
1628 11) echo "You appear to be using the SunPro C compiler."; __SUNPRO_C=yes ;;
1629 12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;;
1633 dnl case "$canonical" in
1634 dnl *-sun-sunos* ) test "$CPP" = "acc -E" && CPP="acc -E -Xs" ;;
1637 dnl --------------------------------------------------------------------
1638 dnl Extract some information from the operating system and machine files
1639 dnl --------------------------------------------------------------------
1641 echo "Extracting information from the machine- and system-dependent headers..."
1643 dnl It is not important that this name contain the PID; you cannot run
1644 dnl two configures in the same directory and have anything work
1646 tempcname="conftest.c"
1648 dnl CPP_to_sh(CPP_SYMBOL, SH_VAR, DEFAULT_VALUE)
1651 [#]define [$1]ifelse([$3],,, [ "$3"])
1653 configure___ [$2]=[$1]
1656 dnl CPP_boolean_to_sh(CPP_SYMBOL, SH_VAR)
1657 define([CPP_boolean_to_sh],
1659 configure___ [$2]=yes
1661 configure___ [$2]=no
1663 ])dnl CPP_boolean_to_sh
1665 cat > $tempcname <<EOF
1667 #define C_SWITCH_SITE
1668 #define C_SWITCH_X_SITE
1669 #define LD_SWITCH_SITE
1670 #define LD_SWITCH_X_SITE
1671 #define LD_SWITCH_X_SITE_AUX
1672 #define OS_RELEASE $os_release
1673 #include "$srcdir/src/$opsysfile"
1674 #include "$srcdir/src/$machfile"
1676 CPP_to_sh(LIBS_MACHINE, libs_machine)
1677 CPP_to_sh(LIBS_SYSTEM, libs_system)
1678 CPP_to_sh(LIBS_TERMCAP, libs_termcap)
1679 CPP_to_sh(LIB_STANDARD, libs_standard)
1681 CPP_to_sh(OBJECTS_MACHINE, objects_machine)
1682 CPP_to_sh(OBJECTS_SYSTEM, objects_system)
1684 CPP_to_sh(C_SWITCH_MACHINE, c_switch_machine)
1685 CPP_to_sh(C_SWITCH_SYSTEM, c_switch_system)
1687 CPP_to_sh(LD_SWITCH_MACHINE, ld_switch_machine)
1688 CPP_to_sh(LD_SWITCH_SYSTEM, ld_switch_system)
1690 CPP_to_sh(UNEXEC, unexec, unexec.o)
1692 CPP_to_sh(LD_SWITCH_SHARED, ld_switch_shared, -c)
1694 #ifdef ORDINARY_LINK
1695 #define LD "\$(CC) \$(CFLAGS)"
1696 #else /* no ORDINARY LINK */
1697 #ifdef COFF_ENCAPSULATE
1698 #define LD "\$(CC) -nostdlib"
1699 #else /* not COFF_ENCAPSULATE */
1702 #else /* ! defined (LINKER) */
1704 #endif /* ! defined (LINKER) */
1705 #endif /* ! defined (COFF_ENCAPSULATE) */
1706 #endif /* not ORDINARY_LINK */
1709 CPP_to_sh(LIB_GCC, lib_gcc)
1710 CPP_to_sh(LD_TEXT_START_ADDR, ld_text_start_addr)
1712 #if ! defined (ORDINARY_LINK) && !defined (START_FILES)
1714 #ifdef COFF_ENCAPSULATE
1715 #define START_FILES "pre-crt0.o /usr/local/lib/gcc-crt0.o"
1716 #else /* ! defined (COFF_ENCAPSULATE) */
1717 #define START_FILES "pre-crt0.o /lib/crt0.o"
1718 #endif /* ! defined (COFF_ENCAPSULATE) */
1719 #else /* ! defined (NO_REMAP) */
1720 #define START_FILES "ecrt0.o"
1721 #endif /* ! defined (NO_REMAP) */
1722 #endif /* no ORDINARY_LINK */
1726 configure___ start_files=START_FILES
1728 CPP_boolean_to_sh(ORDINARY_LINK, ordinary_link)
1729 CPP_boolean_to_sh(SYSTEM_MALLOC, system_malloc)
1730 CPP_boolean_to_sh(TERMINFO, have_terminfo)
1731 CPP_boolean_to_sh(MAIL_USE_FLOCK, mail_use_flock)
1732 CPP_boolean_to_sh(MAIL_USE_LOCKF, mail_use_lockf)
1733 CPP_boolean_to_sh(HAVE_WIN32_PROCESSES, win32_processes)
1736 dnl The value of CPP is a quoted variable reference, so we need to do this
1737 dnl to get its actual value...
1738 CPP=`eval "echo $CPP $CPPFLAGS"`
1741 eval `$CPP -Isrc $tempcname \
1742 | sed -n -e "s/[ TAB]*=[ TAB\"]*/='/" -e "s/[ TAB\"]*\$/'/" -e "s/^configure___//p"`
1743 changequote([, ])dnl
1747 dnl For debugging...
1748 test "$extra_verbose" = "yes" && \
1749 PRINT_VAR(libs_machine libs_system libs_termcap libs_standard
1750 objects_machine objects_system c_switch_machine c_switch_system
1751 ld_switch_machine ld_switch_system unexec ld_switch_shared
1752 ld lib_gcc ld_text_start_addr start_files ordinary_link
1753 have_terminfo mail_use_flock mail_use_lockf) && echo ""
1755 dnl Non-ordinary link usually requires -lc
1756 test "$ordinary_link" = "no" -a -z "$libs_standard" && libs_standard="-lc"
1758 dnl Compiler-specific hacks
1759 dnl DEC C requires -std
1760 test "$__DECC" = "yes" && XE_APPEND(-std, c_switch_site)
1762 dnl Calculalate value of CFLAGS:
1763 dnl Use either command line flag, environment var, or autodetection
1764 if test "$cflags_specified" = "no"; then
1765 dnl Following values of CFLAGS are known to work well.
1766 dnl Should we take debugging options into consideration?
1767 if test "$GCC" = "yes"; then
1768 CFLAGS="-g -O3 -Wall -Wno-switch"
1769 dnl I'm not convinced this is a good idea any more. -sb
1770 dnl test "$opsys $machine" = "linux intel386" && \
1771 dnl CFLAGS="$CFLAGS -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2"
1772 elif test "$__SUNPRO_C" = "yes"; then
1774 sol2 ) CFLAGS="-v -xO4" ;;
1775 sunos4* ) CFLAGS="-xO2";;
1777 elif test "$__DECC" = "yes"; then
1779 elif test "$CC" = "xlc"; then
1780 CFLAGS="-g -O3 -qstrict -qnoansialias -qlibansi -qinfo -qro -qmaxmem=20000"
1781 dnl ### Add optimal CFLAGS support for other compilers HERE!
1783 CFLAGS="-O" ;dnl The only POSIX-approved flag
1787 dnl Inform compiler that certain flags are meant for the linker
1788 dnl XE_PROTECT_LINKER_FLAGS(shell_var)
1789 define([XE_PROTECT_LINKER_FLAGS], [
1790 if test "$GCC" = "yes"; then
1791 set x $[$1]; shift; [$1]=""
1792 while test -n "[$]1"; do
1794 -L | -l | -u ) [$1]="$[$1] [$]1 [$]2"; shift ;;
1795 -L* | -l* | -u* | -Wl* | -pg ) [$1]="$[$1] [$]1" ;;
1797 * ) [$1]="$[$1] -Xlinker [$]1" ;;
1802 XE_PROTECT_LINKER_FLAGS(ld_switch_system)
1803 XE_PROTECT_LINKER_FLAGS(ld_switch_machine)
1804 XE_PROTECT_LINKER_FLAGS(LDFLAGS)
1805 XE_PROTECT_LINKER_FLAGS(ld_call_shared)
1807 dnl Add s&m-determined objects (including unexec) to link line
1808 test -n "$objects_machine" && XE_ADD_OBJS($objects_machine)
1809 test -n "$objects_system" && XE_ADD_OBJS($objects_system)
1810 test -n "$unexec" && XE_ADD_OBJS($unexec)
1812 dnl Dynodump (Solaris 2.x, x<6)
1813 AC_MSG_CHECKING(for dynodump)
1814 if test "$unexec" != "unexsol2.o"; then
1819 XE_APPEND(dynodump, MAKE_SUBDIR)
1820 XE_APPEND(dynodump, SRC_SUBDIR_DEPS)
1822 sparc ) dynodump_arch=sparc ;;
1823 *86* ) dynodump_arch=i386 ;;
1824 powerpc ) dynodump_arch=ppc ;;
1826 dnl Dynodump requires the system linker
1827 test "$GCC" = "yes" && XE_APPEND(-fno-gnu-linker, ld_switch_site)
1830 dnl Feed s&m crud to src/Makefile
1832 dnl Linux/powerpc needs the following magic for some reason
1833 test "$machine$opsys" = "powerpclinux" && start_flags="-T $srcdir/src/ppc.ldscript"
1835 if test "$unexec" = "unexaix.o"; then
1836 dnl AIX needs various hacks to make static linking work.
1837 if test "$dynamic" = "no"; then
1838 start_flags="-Wl,-bnso,-bnodelcsect"
1839 test "$GCC" = "yes" && start_flags="-B/bin/ ${start_flags}"
1840 for f in "/lib/syscalls.exp" "/lib/threads.exp"; do
1841 if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; fi
1843 for f in "/usr/lpp/X11/bin/smt.exp" "/usr/bin/X11/smt.exp"; do
1844 if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; break; fi
1846 AC_CHECK_LIB(C, terminateAndUnload, XE_APPEND(-lC, libs_system))
1848 elif test -n "$ld_text_start_addr"; then
1849 start_flags="-T $ld_text_start_addr -e __start"
1851 AC_SUBST(start_flags)
1853 AC_SUBST(ld_switch_shared)
1854 AC_SUBST(start_files)
1855 if test "$ordinary_link" = "no" -a "$GCC" = "yes"; then
1856 test -z "$linker" && linker='$(CC) -nostdlib'
1857 test -z "$lib_gcc" && lib_gcc='`$(CC) -print-libgcc-file-name`'
1859 test "$GCC" != "yes" && lib_gcc=
1863 dnl ---------------------------------------------------------------
1864 dnl Add site and system specific flags to compile and link commands
1865 dnl ---------------------------------------------------------------
1867 dnl Allow use of either ":" or spaces for lists of directories
1868 define(COLON_TO_SPACE,
1869 [case "$[$1]" in *:* [)] [$1]="`echo '' $[$1] | sed -e 's/^ //' -e 's/:/ /g'`";; esac])dnl
1871 dnl --site-libraries (multiple dirs)
1872 COLON_TO_SPACE(site_libraries)
1873 if test -n "$site_libraries"; then
1874 for arg in $site_libraries; do
1877 * ) test -d "$arg" || \
1878 XE_DIE("Invalid site library \`$arg': no such directory")
1881 XE_APPEND($arg, ld_switch_site)
1885 dnl --site-includes (multiple dirs)
1886 COLON_TO_SPACE(site_includes)
1887 if test -n "$site_includes"; then
1888 for arg in $site_includes; do
1891 * ) test -d "$arg" || \
1892 XE_DIE("Invalid site include \`$arg': no such directory")
1895 XE_APPEND($arg, c_switch_site)
1899 dnl --site-prefixes (multiple dirs)
1900 dnl --site-prefixes=dir1:dir2 is a convenient shorthand for
1901 dnl --site-libraries=dir1/lib:dir2/lib --site-includes=dir1/include:dir2/include
1902 dnl Site prefixes take precedence over the standard places, but not over
1903 dnl site-includes and site-libraries.
1904 COLON_TO_SPACE(site_prefixes)
1905 if test -n "$site_prefixes"; then
1906 for dir in $site_prefixes; do
1907 lib_dir="${dir}/lib"
1908 inc_dir="${dir}/include"
1909 if test ! -d "$dir"; then
1910 XE_DIE("Invalid site prefix \`$dir': no such directory")
1911 elif test ! -d "$lib_dir"; then
1912 XE_DIE("Invalid site prefix \`$dir': no such directory \`$lib_dir'")
1914 if test -d "$inc_dir"; then
1915 XE_APPEND("-I$inc_dir", c_switch_site)
1917 XE_APPEND("-L$lib_dir", ld_switch_site)
1922 dnl GNU software installs by default into /usr/local/{include,lib}
1923 dnl if test -d "/usr/local/include" -a -d "/usr/local/lib"; then
1924 dnl XE_APPEND("-L/usr/local/lib", ld_switch_site)
1925 dnl XE_APPEND("-I/usr/local/include", c_switch_site)
1928 dnl Extra system-specific library directories - please add to list
1929 for dir in "/usr/ccs/lib"; do
1930 test -d "$dir" && XE_APPEND(-L${dir}, ld_switch_site)
1933 dnl --site-runtime-libraries (multiple dirs)
1934 COLON_TO_SPACE(site_runtime_libraries)
1935 if test -n "$site_runtime_libraries"; then
1936 LD_RUN_PATH="`echo $site_runtime_libraries | sed -e 's/ */:/g'`"
1940 dnl -------------------------------------
1941 dnl Compute runtime library path
1942 dnl -------------------------------------
1944 if test "$dynamic" = "no"; then add_runtime_path=no
1945 elif test -n "$LD_RUN_PATH"; then add_runtime_path=yes
1946 else case "$opsys" in
1947 sol2 | irix* | *bsd* | decosf* ) add_runtime_path=yes ;;
1948 * ) add_runtime_path=no ;;
1952 if test "$add_runtime_path" = "yes"; then
1953 dnl Try to autodetect runtime library flag (usually -R),
1954 dnl and whether it works (or at least does no harm)
1955 AC_MSG_CHECKING("for runtime libraries flag")
1957 sol2 ) dash_r="-R" ;;
1958 decosf* | linux* | irix*) dash_r="-rpath " ;;
1961 for try_dash_r in "-R" "-R " "-rpath "; do
1962 xe_check_libs="${try_dash_r}/no/such/file-or-directory"
1963 XE_PROTECT_LINKER_FLAGS(xe_check_libs)
1964 AC_TRY_LINK(, , dash_r="$try_dash_r")
1966 test -n "$dash_r" && break
1969 if test -n "$dash_r";
1970 then AC_MSG_RESULT("\"${dash_r}\"")
1971 else AC_MSG_RESULT(NONE)
1975 xe_add_unique_runpath_dir='
1977 for xe_dir in $runpath_dirs; do dnl Uniquify
1978 test "$xe_dir" = "$xe_runpath_dir" && xe_add_p=no
1980 if test "$xe_add_p" = "yes"; then
1981 test -n "$runpath" && runpath="${runpath}:"
1982 runpath="${runpath}${xe_runpath_dir}"
1983 runpath_dirs="$runpath_dirs $xe_runpath_dir"
1987 dnl XE_ADD_RUNPATH_DIR(directory)
1988 define([XE_ADD_RUNPATH_DIR],[{
1990 dnl PRINT_VAR(ld_switch_site ld_switch_x_site runpath xe_runpath_dir LD_RUN_PATH xe_ldflags)
1991 test "$xe_runpath_dir" != "/lib" -a \
1992 "$xe_runpath_dir" != "/usr/lib" -a \
1993 -n "`ls ${xe_runpath_dir}/*.s[[ol]] 2>/dev/null`" && \
1994 eval "$xe_add_unique_runpath_dir"
1997 dnl XE_COMPUTE_RUNPATH()
1998 define([XE_COMPUTE_RUNPATH],[
1999 if test "$add_runtime_path" = "yes" -a -n "$dash_r"; then
2000 dnl Remove runtime paths from current ld switches
2001 ld_switch_site=`echo '' $ld_switch_site | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"`
2002 ld_switch_x_site=`echo '' $ld_switch_x_site | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"`
2003 dnl PRINT_VAR(ld_switch_site ld_switch_x_site)
2005 dnl Fix up Runtime path
2006 dnl If LD_RUN_PATH is set in environment, use that.
2007 dnl In this case, assume user has set the right value.
2008 runpath="" runpath_dirs=""
2009 if test -n "$LD_RUN_PATH"; then
2010 runpath="$LD_RUN_PATH"
2011 elif test "$GCC" = "yes"; then
2012 dnl Compute runpath from gcc's -v output
2013 ld_switch_run_save="$ld_switch_run"; ld_switch_run=""
2014 echo "int main(int argc, char *argv[[]]) {return 0;}" > conftest.c
2015 xe_runpath_link='${CC-cc} -o conftest -v $CFLAGS '"$xe_ldflags"' conftest.$ac_ext 2>&1 1>/dev/null'
2016 for arg in `eval "$xe_runpath_link" | grep ' -L'`; do
2017 case "$arg" in P,* | -L* | -R* )
2018 for dir in `echo '' "$arg" | sed -e 's:^ ::' -e 's/^..//' -e 'y/:/ /'`; do
2019 XE_ADD_RUNPATH_DIR("$dir")
2023 ld_switch_run="$ld_switch_run_save"
2026 dnl Add all directories with .so files to runpath
2027 for arg in $ld_switch_site $ld_switch_x_site; do
2028 case "$arg" in -L*) XE_ADD_RUNPATH_DIR(`echo '' "$arg" | sed -e 's:^ ::' -e 's/^-L//'`);; esac
2030 dnl Sometimes /opt/SUNWdt/lib is the only installed Motif available
2031 if test "$opsys $need_motif" = "sol2 yes"; then
2032 xe_runpath_dir="/opt/SUNWdt/lib";
2033 eval "$xe_add_unique_runpath_dir";
2035 fi dnl Compute $runpath
2037 if test -n "$runpath"; then
2038 ld_switch_run="${dash_r}${runpath}"
2039 XE_PROTECT_LINKER_FLAGS(ld_switch_run)
2040 test "$extra_verbose" = "yes" && echo "Setting runpath to $runpath"
2044 XE_COMPUTE_RUNPATH()
2049 dnl -----------------------------------
2050 dnl Do some misc autoconf-special tests
2051 dnl -----------------------------------
2053 dnl Do the opsystem or machine files prohibit the use of the GNU malloc?
2054 dnl Assume not, until told otherwise.
2056 if test "$with_dlmalloc" != "no"; then
2061 after_morecore_hook_exists=yes
2062 AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
2063 AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
2064 AC_MSG_CHECKING(whether __after_morecore_hook exists)
2065 AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
2066 [AC_MSG_RESULT(yes)],
2068 after_morecore_hook_exists=no])
2069 if test "$system_malloc" = "yes" ; then
2072 (The GNU allocators don't work with this system configuration)."
2073 elif test "$with_system_malloc" = "yes" ; then
2076 (User chose not to use GNU allocators)."
2077 elif test "$with_debug_malloc" = "yes" ; then
2080 (User chose to use Debugging Malloc)."
2083 if test "$doug_lea_malloc" = "yes" ; then
2084 if test "$GNU_MALLOC" = yes ; then
2086 (Using Doug Lea's new malloc from the GNU C Library.)"
2088 AC_DEFINE(DOUG_LEA_MALLOC)
2089 if test "$after_morecore_hook_exists" = "no" ; then
2091 (Using Doug Lea's new malloc from the Linux C Library.)"
2092 AC_DEFINE(_NO_MALLOC_WARNING_)
2094 use_minimal_tagbits=yes
2097 dnl #### mcheck is broken in all versions of Linux libc and glibc.
2098 dnl Try this again when 2.1 hits the streets.
2099 dnl Avoid using free-hook.c if support exists for malloc debugging in libc
2100 dnl have_libmcheck=no
2101 dnl if test "$error_check_malloc" = "yes" -a \
2102 dnl "$have_glibc" = "yes" -a \
2103 dnl "$doug_lea_malloc" = "yes"; then
2104 dnl AC_CHECK_HEADERS(mcheck.h)
2105 dnl AC_CHECK_LIB(mcheck, mcheck, have_libmcheck=yes, have_libmcheck=no)
2108 dnl if test "$have_libmcheck" = "yes"; then
2109 dnl AC_DEFINE(HAVE_LIBMCHECK)
2110 dnl libmcheck=-lmcheck
2111 dnl AC_SUBST(libmcheck)
2114 dnl Some other nice autoconf tests. If you add a test here which
2115 dnl should make an entry in src/config.h, do not forget to add an
2116 dnl #undef clause to src/config.h.in for autoconf to modify.
2122 dnl checks for header files
2123 AC_CHECK_HEADERS(mach/mach.h sys/stropts.h sys/timeb.h sys/time.h unistd.h)
2124 AC_CHECK_HEADERS(utime.h locale.h libgen.h fcntl.h ulimit.h cygwin/version.h)
2125 AC_CHECK_HEADERS(kstat.h sys/pstat.h inttypes.h sys/un.h a.out.h)
2131 dnl Some systems have utime.h but do not declare the struct anyplace.
2132 AC_MSG_CHECKING(for struct utimbuf)
2133 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
2134 #include <sys/time.h>
2137 #ifdef HAVE_SYS_TIME_H
2138 #include <sys/time.h>
2145 #endif], [static struct utimbuf x; x.actime = x.modtime;],
2147 AC_DEFINE(HAVE_STRUCT_UTIMBUF)],
2150 dnl checks for typedefs
2158 AC_MSG_CHECKING(for struct timeval)
2159 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
2160 #include <sys/time.h>
2163 #ifdef HAVE_SYS_TIME_H
2164 #include <sys/time.h>
2168 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
2171 AC_DEFINE(HAVE_TIMEVAL)],
2175 dnl checks for structure members
2179 dnl checks for compiler characteristics
2182 dnl check for Make feature
2185 dnl check byte order
2188 dnl define SIZEOF_TYPE
2189 AC_CHECK_SIZEOF(short)
2190 if test "$ac_cv_sizeof_short" = 0; then
2192 echo "*** PANIC *** Configure tests are not working - compiler is broken."
2193 echo "*** PANIC *** Please examine config.log for compilation errors."
2196 AC_CHECK_SIZEOF(int)
2197 AC_CHECK_SIZEOF(long)
2198 AC_CHECK_SIZEOF(long long)
2199 AC_CHECK_SIZEOF(void *)
2201 dnl check for long file names
2202 AC_SYS_LONG_FILE_NAMES
2204 dnl -lm is required by LISP_FLOAT_TYPE, among other things
2205 AC_CHECK_FUNC(sin, ,AC_CHECK_LIB(m, sin))
2207 dnl Floating operation support is now unconditional
2208 AC_DEFINE(LISP_FLOAT_TYPE)
2210 AC_TRY_LINK([#include <math.h>],
2211 [return atanh(1.0) + asinh(1.0) + acosh(1.0); ],
2212 AC_DEFINE(HAVE_INVERSE_HYPERBOLIC))
2214 dnl Determine type of mail locking from configure args and s&m headers
2215 AC_CHECKING(type of mail spool file locking)
2216 test -z "$mail_locking" -a "$mail_use_flock" = "yes" && mail_locking=flock
2217 test -z "$mail_locking" -a "$mail_use_lockf" = "yes" && mail_locking=lockf
2218 if test "$mail_locking" = "lockf"; then AC_DEFINE(REAL_MAIL_USE_LOCKF)
2219 elif test "$mail_locking" = "flock"; then AC_DEFINE(REAL_MAIL_USE_FLOCK)
2220 else mail_locking="dot-locking"
2223 case "$opsys" in decosf*)
2224 AC_CHECK_LIB(pthreads, cma_open)
2225 test "$ac_cv_lib_pthreads_cma_open" = "yes" && \
2226 c_switch_site="$c_switch_site -threads" ;;
2229 AC_MSG_CHECKING(whether the -xildoff compiler flag is required)
2230 if ${CC-cc} '-###' -xildon no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then
2231 if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ;
2232 then AC_MSG_RESULT(no);
2233 else AC_MSG_RESULT(yes); XE_APPEND(-xildoff, ld_switch_site)
2235 else AC_MSG_RESULT(no)
2238 dnl Link with "-z ignore" on Solaris if supported
2239 if test "$opsys" = "sol2" && test "$OS_RELEASE" -ge 56; then
2240 AC_MSG_CHECKING(for \"-z ignore\" linker flag)
2241 case "`ld -h 2>&1`" in
2242 *-z\ ignore\|record* ) AC_MSG_RESULT(yes)
2243 XE_PREPEND(-z ignore, ld_switch_site) ;;
2244 *) AC_MSG_RESULT(no) ;;
2248 dnl ----------------------
2249 dnl Choose a window system
2250 dnl ----------------------
2252 AC_CHECKING("for specified window system")
2254 if test "$with_x11" != "no"; then
2255 dnl User-specified --x-includes or --x-libraries implies --with-x11.
2256 test "$x_includes $x_libraries" != "NONE NONE" && \
2257 window_system=x11 with_x11=yes
2259 dnl Autodetection of X11 libraries and includes
2260 dnl -------------------------------------------
2261 dnl AC_PATH_XTRA thinks it can find our X headers and includes, but
2262 dnl it often gets it wrong, so we only use it as a last resort.
2264 dnl $OPENWINHOME implies --x-includes and --x-libraries
2265 dnl Not (yet) handled by autoconf2
2266 if test "$x_includes $x_libraries" = "NONE NONE" \
2267 -a -n "$OPENWINHOME" \
2268 -a "$OPENWINHOME" != "/usr/openwin" \
2269 -a -d "$OPENWINHOME"; then
2270 test -d "$OPENWINHOME/lib" && x_libraries="$OPENWINHOME/lib"
2271 test -d "$OPENWINHOME/include" && x_includes="$OPENWINHOME/include"
2272 test -d "$OPENWINHOME/share/include" && x_includes="$OPENWINHOME/share/include"
2275 if test "$x_includes" = "NONE"; then
2276 dnl AC_PATH_XTRA often guesses /usr/include, when some other
2277 dnl include directory is a MUCH better guess (Linux, HP-UX 10.20).
2278 dnl This is a workaround for idiot (esp. HP) system vendors, who
2279 dnl provide a /usr/include/X11, but DON'T FULLY POPULATE IT.
2280 for dir in "/usr/X11" "/usr/X11R6"; do
2281 if test -d "$dir/include/X11"; then x_includes="$dir/include"; break; fi
2285 if test "$x_libraries" = "NONE"; then
2286 for dir in "/usr/X11/lib" "/usr/X11R6/lib" "/usr/lib/X11R6"; do
2287 if test -r "$dir/libX11.a"; then x_libraries="$dir"; break; fi
2291 AC_PATH_XTRA # Autoconf claims to find X library and include dirs for us.
2292 if test "$no_x" = "yes"
2293 then with_x11=no window_system=none HAVE_X_WINDOWS=no
2294 else with_x11=yes window_system=x11 HAVE_X_WINDOWS=yes
2299 yes ) window_system=x11 HAVE_X_WINDOWS=yes ;;
2300 no ) window_system=none HAVE_X_WINDOWS=no ;;
2303 if test "$with_x11" = "yes"; then
2304 AC_DEFINE(HAVE_X_WINDOWS)
2305 XE_APPEND(lwlib, MAKE_SUBDIR)
2306 XE_APPEND(lwlib, SRC_SUBDIR_DEPS)
2308 dnl Try to find Motif/CDE/Tooltalk dirs
2309 dnl These take precedence over other X libs/includes, so PRE-pend
2310 for lib_dir in "/usr/dt/lib" "/usr/lib/Motif2.1" "/usr/lib/Motif1.2" "/usr/lib/Motif1.1"; do
2311 inc_dir=`echo $lib_dir | sed -e 's/lib/include/'`
2312 if test -d "$lib_dir" -a -d "$inc_dir"; then
2313 case "$x_libraries" in *"$lib_dir"* ) ;; *)
2314 x_libraries="$lib_dir $x_libraries"
2315 XE_PREPEND(-L${lib_dir}, X_LIBS) ;;
2317 case "$x_includes" in "$inc_dir"* ) ;; *)
2318 x_includes="$inc_dir $x_includes"
2319 XE_PREPEND(-I${inc_dir}, X_CFLAGS) ;;
2321 break; dnl only need ONE Motif implementation!
2325 dnl Contrib X libs/includes do NOT take precedence, so AP-pend
2326 for rel in "X11R6" "X11R5" "X11R4"; do
2327 lib_dir="/usr/contrib/$rel/lib" inc_dir="/usr/contrib/$rel/include"
2328 if test -d "$lib_dir" -a -d "$inc_dir"; then
2329 case "$x_libraries" in *"$lib_dir"* ) ;; *)
2330 x_libraries="$x_libraries $lib_dir"
2331 XE_APPEND(-L${lib_dir}, X_LIBS)
2333 case "$x_includes" in "$inc_dir"* ) ;; *)
2334 x_includes="$x_includes $inc_dir"
2335 XE_APPEND(-I${inc_dir}, X_CFLAGS)
2337 break; dnl Only need ONE X11 implementation !
2341 dnl Avoid version mismatch for shared library libXm.so on osf4
2342 if test "$GCC" = yes -a -d /usr/shlib; then XE_APPEND(-L/usr/shlib, X_LIBS); fi
2344 ld_switch_x_site="$X_LIBS"
2346 XE_COMPUTE_RUNPATH()
2348 if test "$extra_verbose" = "yes"; then
2349 echo; echo "X11 compilation variables:"
2350 PRINT_VAR(x_libraries x_includes X_CFLAGS X_LIBS X_PRE_LIBS X_EXTRA_LIBS)
2354 dnl Set up bitmaps search path.
2355 dnl The original suggestion was to unconditionally to append X11/bitmaps
2356 dnl to each element of $x_includes, I'm pretty sure this is the wrong
2357 dnl thing to do. We test for bitmaps and X11/bitmaps directories on each
2358 dnl element and add them to BITMAPDIR if they exist.
2360 if test "$x_includes" != NONE; then
2361 for i in $x_includes; do
2362 if test -d "$i/bitmaps"; then
2363 bitmapdirs="$i/bitmaps:$bitmapdirs"
2365 if test -d "$i/X11/bitmaps"; then
2366 bitmapdirs="$i/X11/bitmaps:$bitmapdirs"
2369 bitmapdirs=`echo "$bitmapdirs" | sed s/.$//`
2371 test ! -z "$bitmapdirs" && AC_DEFINE_UNQUOTED(BITMAPDIR, "$bitmapdirs")
2373 dnl Autodetect defines extracted from X config by xmkmf, e.g. NARROWPROTO
2374 AC_CHECKING(for X defines extracted by xmkmf)
2376 if mkdir conftestdir; then
2378 cat > Imakefile <<'EOF'
2380 @echo ${PROTO_DEFINES} ${STD_DEFINES}
2382 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
2383 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
2384 xmkmf_defines=`${MAKE-make} xetest 2>/dev/null | grep -v make`
2388 for word in $xmkmf_defines; do
2391 -D* ) word=`echo '' $word | sed -e 's:^ *-D::'`
2392 AC_DEFINE_UNQUOTED($word) ;;
2397 dnl make sure we can find Intrinsic.h
2398 AC_CHECK_HEADER(X11/Intrinsic.h, ,
2399 [AC_MSG_ERROR("Unable to find X11 header files.")])
2401 dnl -lXt and -lX11 are required
2402 dnl Some broken systems require the magic "-b i486-linuxaout" flag
2403 AC_CHECK_LIB(X11, XOpenDisplay, have_lib_x11=yes)
2404 if test "$have_lib_x11" != "yes"; then
2405 AC_CHECK_LIB(X11, XGetFontProperty,
2406 ld_switch_x_site="-b i486-linuxaout $ld_switch_x_site",
2407 [AC_MSG_ERROR("Unable to find X11 libraries.")],
2411 test "$extra_verbose" = "yes" && echo " Setting libs_x to \"-lX11\""
2413 dnl Autodetect -lXext
2414 AC_CHECK_LIB(Xext, XShapeSelectInput, XE_PREPEND(-lXext, libs_x))
2417 AC_CHECK_LIB(Xt, XtOpenDisplay, XE_PREPEND(-lXt, libs_x),
2418 AC_MSG_ERROR("Unable to find X11 libraries."))
2420 AC_MSG_CHECKING(the version of X11 being used)
2421 AC_TRY_RUN([#include <X11/Intrinsic.h>
2422 int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }],
2423 [./conftest foobar; x11_release=$?],[x11_release=4],[x11_release=4])
2424 AC_MSG_RESULT(R${x11_release})
2425 AC_DEFINE_UNQUOTED(THIS_IS_X11R${x11_release})
2427 AC_CHECK_HEADERS(X11/Xlocale.h)
2429 dnl remove this - we should avoid checking for specific OS
2430 AC_MSG_CHECKING(for XFree86)
2431 if test -d "/usr/X386/include" -o \
2432 -f "/etc/XF86Config" -o \
2433 -f "/etc/X11/XF86Config" -o \
2434 -f "/usr/X11R6/lib/X11/XF86Config"; then
2436 AC_DEFINE(HAVE_XFREE386)
2441 dnl autodetect -lXmu
2442 test -z "$with_xmu" && { AC_CHECK_LIB(Xmu, XmuReadBitmapDataFromFile,
2443 with_xmu=yes, with_xmu=no) }
2444 if test "$with_xmu" = "no"; then
2447 XE_PREPEND(-lXmu, libs_x)
2451 dnl Autodetect -lXbsd
2452 dnl #### Someone, please add a better function than main
2453 AC_CHECK_LIB(Xbsd, main, XE_PREPEND(-lXbsd, libs_x))
2455 dnl Problem with the MIT distribution of X on AIX
2456 if test "$unexec" = "unexaix.o" -a "$x11_release" = "6"; then
2457 dnl X11R6 requires thread-safe code on AIX for some reason
2458 if test "$GCC" = "yes"; then
2459 XE_PREPEND(-mthreads, X_CFLAGS)
2460 XE_PREPEND(-mthreads, libs_x)
2463 "xlc" ) CC="xlc_r" ;;
2464 "xlC" ) CC="xlC_r" ;;
2470 fi dnl $with_x11 = yes
2472 if test "$with_msw" != "no"; then
2473 AC_CHECKING(for MS-Windows)
2474 AC_CHECK_LIB(gdi32,main,with_msw=yes)
2475 if test "$with_msw" = "yes"; then
2476 AC_DEFINE(HAVE_MS_WINDOWS)
2477 install_pp="$blddir/lib-src/installexe.sh"
2478 XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomctl32, libs_system)
2479 test "$with_dragndrop" != no && XE_APPEND(msw, dragndrop_proto)
2480 if test "$window_system" != x11; then
2482 test "$with_scrollbars" != "no" && with_scrollbars=msw \
2483 && XE_ADD_OBJS(scrollbar-msw.o)
2484 test "$with_menubars" != "no" && with_menubars=msw \
2485 && XE_ADD_OBJS(menubar-msw.o)
2486 test "$with_toolbars" != "no" && with_toolbars=msw \
2487 && XE_ADD_OBJS(toolbar-msw.o)
2488 test "$with_dialogs" != "no" && with_dialogs=msw \
2489 && XE_ADD_OBJS(dialog-msw.o)
2490 test "$with_widgets" != "no" && with_widgets=msw
2492 test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-msw.o)
2493 test "$with_menubars" != "no" && XE_ADD_OBJS(menubar-msw.o)
2494 test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar-msw.o)
2495 test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog-msw.o)
2497 dnl check for our special version of select
2498 AC_TRY_RUN([#include <fcntl.h>
2499 int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }],
2500 [AC_DEFINE(HAVE_MSG_SELECT)])
2502 with_file_coding=yes
2503 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)
2507 AC_SUBST(install_pp)
2509 test -z "$window_system" && window_system="none"
2511 dnl Test for features that require a window system - ANY window system
2512 if test "$window_system" = "none"; then
2513 for feature in menubars scrollbars toolbars dialogs dragndrop xface
2515 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2516 AC_MSG_WARN([--with-$feature ignored: Not valid without window system support])
2518 eval "with_${feature}=no"
2521 test -z "$with_toolbars" && with_toolbars=yes
2524 dnl ### Test for features that require mswindows support - currently none
2525 dnl ### MS-Windows folks: add code here..... (martin)
2526 if test "$with_msw" != "yes"; then
2527 for feature in MARTIN_IS_CLUELESS_ABOUT_MSW_FEATURES
2529 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2530 AC_MSG_WARN([--with-$feature ignored: Not valid without MS-Windows support])
2532 eval "with_${feature}=no"
2538 dnl Test for features that require X11 support
2539 if test "$with_x11" != "yes"; then
2540 dnl It ought to be reasonable to have no output device at all, and only use
2541 dnl XEmacs in --batch mode.
2542 dnl if test "$with_tty" = "no" ; then
2543 dnl AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.])
2545 for feature in tooltalk cde offix wmcommand xim xmu
2547 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2548 AC_MSG_WARN([--with-$feature ignored: Not valid without X support])
2550 eval "with_${feature}=no"
2554 dnl FSF 19.29 has some bitmapdir stuff here.
2557 case "$window_system" in
2558 x11 ) HAVE_X_WINDOWS=yes; echo " Using X11." ;;
2559 msw ) HAVE_X_WINDOWS=no ; echo " Using MS-Windows." ;;
2560 none ) HAVE_X_WINDOWS=no ; echo " Using no window system." ;;
2563 case "$x_libraries" in *X11R4* )
2564 test "$opsys" = "hpux9" && opsysfile="s/hpux9-x11r4.h"
2565 test "$opsys" = "hpux9-shr" && opsysfile="s/hpux9shxr4.h"
2568 dnl Enable or disable proper handling of WM_COMMAND
2569 AC_CHECKING(for WM_COMMAND option);
2570 dnl if test "$with_wmcommand" = "yes"; then
2571 if test "$with_wmcommand" != "no"; then
2572 AC_DEFINE(HAVE_WMCOMMAND)
2575 dnl Autodetect Xauth
2576 dnl -lXau is only used by gnuclient, so use a special variable for Xauth X libs
2577 test -z "$with_xauth" && test "$window_system" = "none" && with_xauth=no
2578 test -z "$with_xauth" && { AC_CHECK_HEADER(X11/Xauth.h, ,with_xauth=no) }
2579 test -z "$with_xauth" && { AC_CHECK_LIB(Xau, XauGetAuthByAddr,[:],with_xauth=no) }
2580 test -z "$with_xauth" && with_xauth=yes
2581 if test "$with_xauth" = "yes"; then
2582 AC_DEFINE(HAVE_XAUTH)
2583 XE_SPACE(libs_xauth, $X_EXTRA_LIBS -lXau $libs_x $X_PRE_LIBS)
2585 AC_SUBST(libs_xauth)
2587 dnl This one is for the static initializeds variables in
2588 dnl offix.c, so that the thing is dumped after lastfile.o
2591 dnl Autodetect tooltalk
2592 if test "$with_tooltalk" != "no" ; then
2593 dnl autodetect the location of tt_c.h
2594 dnl tt_c.h might be in Tt or desktop include directories
2595 for dir in "" "Tt/" "desktop/" ; do
2596 AC_CHECK_HEADER(${dir}tt_c.h, tt_c_h_path="${dir}tt_c.h"; break)
2598 if test -z "$tt_c_h_path"; then
2599 if test "$with_tooltalk" = "yes"; then
2600 USAGE_ERROR("Unable to find required tooltalk header files.")
2605 if test "$with_tooltalk" != "no" ; then
2606 for extra_libs in "" "-lI18N -lce" "-lcxx"; do
2607 AC_CHECK_LIB(tt, tt_message_create,
2608 tt_libs="-ltt $extra_libs"; break, [:],$extra_libs)
2610 if test -z "$tt_libs"; then
2611 if test "$with_tooltalk" = "yes"; then
2612 USAGE_ERROR("Unable to find required tooltalk libraries.")
2617 test -z "$with_tooltalk" && with_tooltalk=yes
2618 if test "$with_tooltalk" = "yes"; then
2620 AC_DEFINE_UNQUOTED(TT_C_H_PATH, "$tt_c_h_path")
2621 XE_PREPEND($tt_libs, libs_x)
2622 XE_ADD_OBJS(tooltalk.o)
2626 test -z "$with_cde" && { AC_CHECK_HEADER(Dt/Dt.h, , with_cde=no) }
2627 test -z "$with_cde" && { AC_CHECK_LIB(DtSvc, DtDndDragStart, [:], with_cde=no) }
2628 test -z "$with_cde" && with_cde=yes
2629 if test "$with_dragndrop" = no; then
2630 AC_MSG_WARN([No CDE without generic Drag'n'Drop support])
2633 if test "$with_cde" = "yes" ; then
2635 XE_PREPEND(-lDtSvc, libs_x)
2636 XE_APPEND(CDE, dragndrop_proto)
2637 with_tooltalk=yes # CDE requires Tooltalk
2638 need_motif=yes # CDE requires Motif
2641 dnl Always compile OffiX unless --without-offix is given, no
2642 dnl X11 support is compiled in, no standard Xmu is available,
2643 dnl or dragndrop support is disabled
2644 dnl Because OffiX support currently loses when more than one display
2645 dnl is in use, we now disable it by default -slb 07/10/1998.
2646 test "$window_system" != "x11" && with_offix=no
2647 if test "$with_xmu" != yes -a "$with_x11" = yes; then
2648 AC_MSG_WARN([No OffiX without real Xmu support])
2651 if test "$with_dragndrop" = no; then
2652 AC_MSG_WARN([No OffiX without generic Drag'n'Drop support])
2655 if test "$with_cde" = yes; then
2656 AC_MSG_WARN([CDE already found, disabling OffiX support])
2659 test -z "$with_offix" && with_offix=no
2660 if test "$with_offix" = "yes"; then
2661 AC_DEFINE(HAVE_OFFIX_DND)
2662 XE_APPEND(offix.o, dnd_objs)
2663 XE_APPEND(OffiX, dragndrop_proto)
2666 dnl Autodetect Drag'n'Drop support
2667 dnl always included if CDE, Offix, or MSWindows are defined
2668 AC_MSG_CHECKING(if drag and drop API is needed)
2669 if test "$with_dragndrop" != "no" ; then
2670 if test -n "$dragndrop_proto" ; then
2672 AC_MSG_RESULT([yes (${dragndrop_proto} )])
2673 AC_DEFINE(HAVE_DRAGNDROP)
2674 XE_APPEND(dragdrop.o, extra_objs)
2682 AC_CHECKING(for LDAP)
2683 test -z "$with_ldap" && { AC_CHECK_HEADER(ldap.h, ,with_ldap=no) }
2684 test -z "$with_ldap" && { AC_CHECK_HEADER(lber.h, ,with_ldap=no) }
2685 if test "$with_ldap" != "no"; then
2686 AC_CHECK_LIB(ldap, ldap_search, with_ldap_nolber=yes, with_ldap_nolber=no)
2687 test "$with_ldap_nolber" = "no" && { AC_CHECK_LIB(ldap, ldap_open, with_ldap_lber=yes, with_ldap_lber=no, -llber) }
2688 test "$with_ldap_nolber" = "no" -a "$with_ldap_lber" = "no" && { AC_CHECK_LIB(ldap, ldap_open, with_ldap_krb=yes, with_ldap_krb=no, -llber -lkrb) }
2689 test "$with_ldap_nolber" = "no" -a "$with_ldap_lber" = "no" -a "$with_ldap_krb" = "no" && { AC_CHECK_LIB(ldap, ldap_open, with_ldap_krbdes=yes, with_ldap_krbdes=no, -llber -lkrb -ldes) }
2690 test -z "$with_ldap" -a \( "$with_ldap_lber" = "yes" -o "$with_ldap_nolber" = "yes" -o "$with_ldap_krb" = "yes" -o "$with_ldap_krbdes" = "yes" \) && with_ldap=yes
2692 if test "$with_ldap" = "yes"; then
2693 AC_DEFINE(HAVE_LDAP)
2694 XE_ADD_OBJS(eldap.o)
2695 if test "$with_ldap_nolber" = "yes" ; then
2696 XE_PREPEND(-lldap, LIBS)
2698 if test "$with_ldap_krb" = "yes" ; then
2699 XE_PREPEND(-lkrb, LIBS)
2701 if test "$with_ldap_krbdes" = "yes" ; then
2702 XE_PREPEND(-ldes, LIBS)
2703 XE_PREPEND(-lkrb, LIBS)
2705 XE_PREPEND(-llber, LIBS)
2706 XE_PREPEND(-lldap, LIBS)
2708 AC_CHECK_FUNCS(ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result)
2711 dnl ----------------------
2712 dnl Graphics libraries
2713 dnl ----------------------
2715 if test "$window_system" != "none"; then
2716 AC_CHECKING(for graphics libraries)
2720 if test -z "$with_xpm"; then
2721 AC_MSG_CHECKING(for Xpm - no older than 3.4f)
2723 AC_TRY_RUN([#include <X11/xpm.h>
2724 int main(int c, char **v) {
2726 XpmIncludeVersion != XpmLibraryVersion() ? 1 :
2727 XpmIncludeVersion < 30406 ? 2 : 0 ;}],
2728 [./conftest dummy_arg; xpm_status=$?;
2729 if test "$xpm_status" = "0"; then
2733 if test "$xpm_status" = "1"; then
2734 xpm_problem="Xpm library version and header file version don't match!"
2735 elif test "$xpm_status" = "2"; then
2736 xpm_problem="Xpm library version is too old!"
2738 xpm_problem="Internal xpm detection logic error!"
2741 *** WARNING *** $xpm_problem
2742 I'm not touching that with a 10-foot pole!
2743 If you really want to use the installed version of Xpm, rerun
2744 configure and add '--with-xpm=yes', but don't blame me if XEmacs crashes!"
2748 AC_MSG_RESULT($with_xpm)
2750 if test "$with_xpm" = "yes"; then
2752 XE_PREPEND(-lXpm, libs_x)
2753 AC_MSG_CHECKING(for \"FOR_MSW\" xpm)
2755 AC_TRY_LINK(, [XpmCreatePixmapFromData()],
2759 AC_MSG_RESULT($xpm_for_msw)
2760 if test "$xpm_for_msw" = "yes"; then
2765 dnl Autodetect XFACE
2766 test -z "$with_xface" && { AC_CHECK_HEADER(compface.h, ,with_xface=no) }
2767 test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) }
2768 test -z "$with_xface" && with_xface=yes
2769 if test "$with_xface" = "yes"; then
2770 AC_DEFINE(HAVE_XFACE)
2771 XE_PREPEND(-lcompface, libs_x)
2774 dnl For a brief period we had the GIF code split out into a separate library,
2775 dnl but patent problems, etc. sort of squashed that idea.
2776 dnl We default to building with builtin GIF decoding
2777 if test "$with_gif" != "no"; then
2780 XE_ADD_OBJS(dgif_lib.o gif_io.o)
2783 dnl Too many stupid linkers can't detect cascaded lib dependencies until runtime
2784 dnl So we always search for libz compression support.
2785 if test "$with_png $with_tiff" != "no no"; then
2786 AC_CHECK_LIB(c, inflate, [:], [
2787 AC_CHECK_LIB(z, inflate, [XE_PREPEND(-lz, libs_x)],[
2788 AC_CHECK_LIB(gz, inflate, [XE_PREPEND(-lgz, libs_x)])])])
2792 test -z "$with_jpeg" && { AC_CHECK_HEADER(jpeglib.h, ,with_jpeg=no) }
2793 test -z "$with_jpeg" && { AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,[:],with_jpeg=no) }
2794 test -z "$with_jpeg" && with_jpeg=yes
2795 if test "$with_jpeg" = "yes"; then
2796 AC_DEFINE(HAVE_JPEG)
2797 XE_PREPEND(-ljpeg, libs_x)
2802 test -z "$with_png" && { AC_CHECK_FUNC(pow, ,with_png=no) }
2803 test -z "$with_png" && { AC_CHECK_HEADER(png.h, ,with_png=no) }
2804 test -z "$with_png" && { AC_CHECK_LIB(png, png_read_image,[:],with_png=no) }
2805 if test -z "$with_png"; then
2806 AC_MSG_CHECKING(for workable png version information)
2807 xe_check_libs="-lpng -lz"
2808 AC_TRY_RUN([#include <png.h>
2809 int main(int c, char **v) {
2810 if (c == 1) return 0;
2811 if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1;
2812 return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}],
2813 [./conftest dummy_arg; png_status=$?;
2814 if test "$png_status" = "0"; then
2818 if test "$png_status" = "1"; then
2819 png_problem="PNG library version and header file don't match!"
2820 elif test "$png_status" = "2"; then
2821 png_problem="PNG library version too old (pre 1.0.2)!"
2824 *** WARNING *** $png_problem
2825 I'm not touching that with a 10-foot pole!
2826 If you really want to use the installed version of libPNG, rerun
2827 configure and add '--with-png=yes', but don't blame me if XEmacs crashes!"
2831 AC_MSG_RESULT($with_png)
2833 if test "$with_png" = "yes"; then
2835 XE_PREPEND(-lpng, libs_x)
2839 test -z "$with_tiff" && { AC_CHECK_HEADER(tiffio.h, ,with_tiff=no) }
2840 test -z "$with_tiff" && { AC_CHECK_LIB(tiff, TIFFClientOpen,[:],with_tiff=no) }
2841 test -z "$with_tiff" && with_tiff=yes
2842 if test "$with_tiff" = "yes"; then
2843 AC_DEFINE(HAVE_TIFF)
2844 XE_PREPEND(-ltiff, libs_x)
2848 dnl ----------------------
2849 dnl X-Specific Graphics libraries
2850 dnl ----------------------
2852 if test "$with_x11" = "yes"; then
2854 AC_CHECKING(for X11 graphics libraries)
2856 dnl Autodetect -lXaw
2857 AC_CHECK_LIB(Xaw, XawScrollbarSetThumb, have_xaw=yes, have_xaw=no)
2858 dnl if test "$have_xaw" = "yes"; then
2859 dnl AC_CHECK_HEADER(X11/Xaw/Reports.h, [
2860 dnl XE_APPEND(pkg-src/tree-x, MAKE_SUBDIR)
2861 dnl XE_APPEND(pkg-src/tree-x, INSTALL_ARCH_DEP_SUBDIR)])
2864 dnl autodetect Motif - but only add to libs_x later (if necessary)
2865 AC_CHECK_HEADER(Xm/Xm.h,
2866 [AC_CHECK_LIB(Xm, XmStringFree, have_motif=yes, have_motif=no)],
2869 if test "$have_motif" = "yes"; then
2870 dnl autodetect lesstif
2871 AC_MSG_CHECKING(for Lesstif)
2874 #ifdef LESSTIF_VERSION
2877 ], have_lesstif=yes, have_lesstif=no)
2878 AC_MSG_RESULT($have_lesstif)
2881 fi dnl "$with_x11" = "yes"
2883 dnl Finish ensuring that we have values for the various toolkit items.
2884 dnl Not all toolkits support all widgets
2885 dnl if Motif is available we use it for the dialog boxes.
2887 case "$with_menubars" in "" | "yes" | "athena" | "athena3d" )
2888 with_menubars="lucid" ;;
2890 case "$with_dialogs" in "" | "yes" | "lucid" )
2891 if test "$have_motif" = "yes"; then with_dialogs="motif"
2892 elif test "$have_xaw" = "yes"; then with_dialogs="athena"
2893 else with_dialogs=no
2896 case "$with_scrollbars" in "" | "yes" )
2897 with_scrollbars="lucid" ;;
2899 case "$with_widgets" in "" | "yes" )
2900 if test "$have_motif" = "yes"; then with_widgets="motif"
2901 else with_widgets=no
2905 all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars $with_widgets"
2907 case "$all_widgets" in *athena* )
2908 AC_DEFINE(LWLIB_USES_ATHENA)
2909 AC_DEFINE(NEED_ATHENA)
2910 XE_APPEND(lwlib-Xaw.o, lwlib_objs)
2911 XE_PREPEND(-lXaw, libs_x) ;;
2914 case "$all_widgets" in *motif* )
2915 AC_DEFINE(LWLIB_USES_MOTIF)
2916 AC_DEFINE(NEED_MOTIF)
2917 XE_APPEND(lwlib-Xm.o, lwlib_objs)
2921 test "$with_menubars" = "lucid" && XE_APPEND(xlwmenu.o, lwlib_objs)
2922 test "$with_menubars" = "motif" && XE_APPEND(xlwmenu.o, lwlib_objs)
2923 test "$with_scrollbars" = "lucid" && XE_APPEND(xlwscrollbar.o, lwlib_objs)
2924 case "$all_widgets" in *lucid* )
2925 AC_DEFINE(NEED_LUCID)
2926 XE_APPEND(lwlib-Xlw.o, lwlib_objs) ;;
2929 AC_SUBST(lwlib_objs)
2931 case "$with_scrollbars" in athena* ) AC_DEFINE(LWLIB_SCROLLBARS_ATHENA);; esac
2932 case "$with_dialogs" in athena* ) AC_DEFINE(LWLIB_DIALOGS_ATHENA) ;; esac
2933 test "$with_scrollbars" = "athena3d" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA3D)
2934 test "$with_dialogs" = "athena3d" && AC_DEFINE(LWLIB_DIALOGS_ATHENA3D)
2936 test "$with_menubars" != "no" && AC_DEFINE(HAVE_MENUBARS)
2937 test "$with_scrollbars" != "no" && AC_DEFINE(HAVE_SCROLLBARS)
2938 test "$with_dialogs" != "no" && AC_DEFINE(HAVE_DIALOGS)
2939 test "$with_toolbars" != "no" && AC_DEFINE(HAVE_TOOLBARS)
2941 test "$with_menubars" = "lucid" && AC_DEFINE(LWLIB_MENUBARS_LUCID)
2942 test "$with_scrollbars" = "lucid" && AC_DEFINE(LWLIB_SCROLLBARS_LUCID)
2944 test "$with_menubars" = "motif" && AC_DEFINE(LWLIB_MENUBARS_MOTIF)
2945 test "$with_scrollbars" = "motif" && AC_DEFINE(LWLIB_SCROLLBARS_MOTIF)
2946 test "$with_dialogs" = "motif" && AC_DEFINE(LWLIB_DIALOGS_MOTIF)
2948 test "$with_menubars" != "no" && XE_ADD_OBJS(menubar.o)
2949 test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar.o)
2950 test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog.o)
2951 test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar.o)
2953 if test "$with_x11" = "yes"; then
2954 test "$with_menubars" != "no" && XE_ADD_OBJS(menubar-x.o)
2955 test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-x.o)
2956 test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog-x.o)
2957 test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar-x.o)
2958 test "$all_widgets" != "no no no no no" && XE_ADD_OBJS(gui-x.o)
2960 if test \( "$with_sound" = "nas" \) -o \( "$with_sound" = "both" \); then
2961 echo "Attempt to Build NAS sound without X"
2962 echo "Please remove NAS configuration or build with X"
2967 dnl ----------------------
2968 dnl Mule-dependent options
2969 dnl ----------------------
2971 test -z "$with_mule" && with_mule=no
2972 test -z "$with_file_coding" && with_file_coding=no
2974 dnl if test "$with_mule" = "yes" && test ! -d "$srcdir/lisp/mule"; then
2975 dnl echo "Attempt to Build with Mule without Mule/Lisp"
2976 dnl echo "Please install the XEmacs/Mule tarball or"
2977 dnl echo "rerun configure with --with-mule=no"
2981 if test "$with_file_coding" = "yes" && test "$with_mule" = "no"; then
2982 AC_DEFINE(FILE_CODING)
2983 XE_ADD_OBJS(file-coding.o)
2986 if test "$with_mule" = "yes" ; then
2987 AC_CHECKING(for Mule-related features)
2989 AC_DEFINE(FILE_CODING)
2990 XE_ADD_OBJS(mule.o mule-ccl.o mule-charset.o file-coding.o)
2992 dnl Use -lintl to get internationalized strerror for Mule
2993 AC_CHECK_HEADERS(libintl.h)
2994 AC_CHECK_LIB(intl, strerror)
2996 if test "$with_utf_2000" = "yes" ; then
2997 AC_DEFINE(CHAR_IS_UCS4)
3001 AC_CHECKING(for Mule input methods)
3002 dnl Do we have the XmIm* routines? And if so, do we want to use them?
3003 dnl XIM seems to be flaky except on Solaris...
3004 dnl test -z "$with_xim" -a "$opsys" != "sol2" && with_xim=no
3005 case "$with_xim" in "" | "yes" )
3006 AC_CHECKING(for XIM)
3007 AC_CHECK_LIB(X11, XOpenIM, with_xim=xlib, with_xim=no)
3008 dnl XIM + Lesstif is not (yet?) usable
3009 if test "$have_motif $have_lesstif" = "yes no"; then
3010 AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif)
3013 if test "$with_xim" != "no"; then
3015 if test "$with_xim" = "xlib"; then
3017 XE_ADD_OBJS(input-method-xlib.o)
3019 if test "$with_xim" = "motif"; then
3020 AC_DEFINE(XIM_MOTIF)
3022 XE_ADD_OBJS(input-method-motif.o)
3024 if test "$with_xim" = "motif"; then
3029 dnl "with_xfs" = "yes"
3030 if test "$with_xfs" = "yes" ; then
3031 AC_CHECKING(for XFontSet)
3032 AC_CHECK_LIB(X11, XmbDrawString, [:], with_xfs=no)
3033 if test "$with_xfs" = "yes" && test "$with_menubars" = "lucid"; then
3034 AC_DEFINE(USE_XFONTSET)
3035 if test "$with_xim" = "no" ; then
3036 XE_ADD_OBJS(input-method-xfs.o)
3042 test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
3043 test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/jllib.h, ,with_wnn=no) }
3044 dnl Detour to find crypt
3045 if test "$with_wnn" != "no"; then
3046 AC_CHECK_FUNCS(crypt)
3047 test "$ac_cv_func_crypt" != "yes" && { AC_CHECK_LIB(crypt, crypt) }
3049 dnl Back to our regularly scheduled wnn hunting
3050 if test -z "$with_wnn" -o "$with_wnn" = "yes"; then
3051 AC_CHECK_LIB(wnn,jl_dic_list_e,libwnn=wnn,
3052 AC_CHECK_LIB(wnn4,jl_dic_list_e,libwnn=wnn4,
3053 AC_CHECK_LIB(wnn6,jl_dic_list_e,libwnn=wnn6,
3054 AC_CHECK_LIB(wnn6_fromsrc,dic_list_e,libwnn=wnn6_fromsrc,with_wnn=no))))
3056 test -z "$with_wnn" && with_wnn=yes
3057 if test "$with_wnn" = "yes"; then
3059 XE_PREPEND(-l$libwnn, libs_x)
3060 XE_ADD_OBJS(mule-wnnfns.o)
3061 if test "$with_wnn6" != "no"; then
3062 AC_CHECK_LIB($libwnn, jl_fi_dic_list, with_wnn6=yes)
3063 test "$with_wnn6" = "yes" && AC_DEFINE(WNN6)
3067 dnl Autodetect canna
3068 canna_includes_found=no
3069 if test "$with_canna" != "no"; then
3070 AC_CHECK_HEADER(canna/jrkanji.h,canna_includes_found=yes)
3072 if test "$canna_includes_found" = "no" -a "$with_canna" != "no" -a \
3073 -d "/usr/local/canna/include"; then
3074 save_c_switch_site="$c_switch_site"
3075 c_switch_site="$c_switch_site -I/usr/local/canna/include"
3076 AC_CHECK_HEADER(canna/jrkanji.h,canna_includes_found=yes)
3077 if test "$canna_includes_found" != "yes"; then
3078 c_switch_site="$save_c_switch_site"
3083 test -z "$with_canna" && { AC_CHECK_HEADER(canna/RK.h, , with_canna=no) }
3084 test -z "$with_canna" && { AC_CHECK_LIB(RKC, RkBgnBun, [:],with_canna=no) }
3085 test -z "$with_canna" && { AC_CHECK_LIB(canna,jrKanjiControl,[:],with_canna=no) }
3086 test -z "$with_canna" && with_canna=yes
3087 if test "$with_canna" = "yes"; then
3088 AC_DEFINE(HAVE_CANNA)
3089 XE_PREPEND(-lcanna -lRKC, libs_x)
3090 XE_ADD_OBJS(mule-canna.o)
3093 else dnl "$with_mule" = "no"
3094 for feature in xim canna wnn; do
3095 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
3096 AC_MSG_WARN("--with-${feature} ignored: Not valid without Mule support")
3098 eval "with_${feature}=no"
3103 dnl At this point, we know whether we need the motif lib or not.
3104 if test "$need_motif" = "yes" ; then
3105 XE_PREPEND(-lXm, libs_x)
3106 dnl AIX needs the following library for use with Motif
3107 AC_CHECK_LIB(i18n, layout_object_getvalue, [XE_PREPEND(-li18n, libs_x)])
3108 XE_COMPUTE_RUNPATH()
3111 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)
3113 dnl realpath is buggy on linux, decosf and aix4
3115 dnl The realpath() in linux libc (4.6.27) sometimes fails with ELOOP.
3116 dnl The realpath in ELF linux libc's is O.K.
3117 dnl For example, call realpath on a file thirty-five or so directories deep
3118 dnl and you get ELOOP even if no symlinks at all are involved.
3119 dnl Reports as of 11/1997 indicate BSDi has problems too.
3120 dnl The realpath() in UnixWare2.1.3 could not get any pathname fragment in error condition.
3122 linuxaout* | bsdos3* | freebsd* | decosf4-0* | aix4* ) XE_ADD_OBJS(realpath.o) ;;
3124 case "$canonical" in
3125 *-*-sysv4.2uw2* ) XE_ADD_OBJS(realpath.o) ;;
3126 * ) AC_CHECK_FUNCS(realpath)
3127 test "$ac_cv_func_realpath" != "yes" && XE_ADD_OBJS(realpath.o) ;;
3131 dnl Check whether the system provides getloadavg (Solaris 7 has it)
3132 AC_CHECK_FUNCS(getloadavg)
3134 if test "$ac_cv_func_getloadavg" != "yes"
3136 XE_ADD_OBJS(getloadavg.o)
3138 dnl Used by getloadavg() - does not require root priveleges
3139 AC_CHECK_LIB(kstat, kstat_open)
3141 dnl Another way to get the load average
3142 AC_CHECK_LIB(kvm, kvm_read)
3145 dnl If netdb.h does not declare h_errno, we must declare it by hand.
3146 AC_MSG_CHECKING(whether netdb declares h_errno)
3147 AC_TRY_LINK([#include <netdb.h>],
3150 AC_DEFINE(HAVE_H_ERRNO)],
3151 [AC_MSG_RESULT(no)])
3153 AC_MSG_CHECKING(for sigsetjmp)
3154 AC_TRY_COMPILE([#include <setjmp.h>],
3155 [sigjmp_buf bar; sigsetjmp (bar, 0);],
3157 AC_DEFINE(HAVE_SIGSETJMP)],
3158 [AC_MSG_RESULT(no)])
3160 AC_MSG_CHECKING(whether localtime caches TZ)
3161 AC_CACHE_VAL(emacs_cv_localtime_cache,
3162 [if test "$ac_cv_func_tzset" = "yes"; then
3163 AC_TRY_RUN([#include <time.h>
3165 # include <stdlib.h>
3167 extern char **environ;
3171 for (to = from = environ; (*to = *from); from++)
3172 if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
3175 char TZ_GMT0[] = "TZ=GMT0";
3176 char TZ_PST8[] = "TZ=PST8";
3179 time_t now = time ((time_t *) 0);
3180 int hour_GMT0, hour_unset;
3181 if (putenv (TZ_GMT0) != 0)
3183 hour_GMT0 = localtime (&now)->tm_hour;
3185 hour_unset = localtime (&now)->tm_hour;
3186 if (putenv (TZ_PST8) != 0)
3188 if (localtime (&now)->tm_hour == hour_GMT0)
3191 if (localtime (&now)->tm_hour != hour_unset)
3194 }], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
3195 [# If we have tzset, assume the worst when cross-compiling.
3196 emacs_cv_localtime_cache=yes])
3198 # If we lack tzset, report that localtime does not cache TZ,
3199 # since we can't invalidate the cache if we don't have tzset.
3200 emacs_cv_localtime_cache=no
3202 AC_MSG_RESULT($emacs_cv_localtime_cache)
3203 if test $emacs_cv_localtime_cache = yes; then
3204 AC_DEFINE(LOCALTIME_CACHE)
3207 if test "$HAVE_TIMEVAL" = "yes"; then
3208 AC_MSG_CHECKING(whether gettimeofday accepts one or two arguments)
3210 #ifdef TIME_WITH_SYS_TIME
3211 #include <sys/time.h>
3214 #ifdef HAVE_SYS_TIME_H
3215 #include <sys/time.h>
3222 struct timeval time;
3223 struct timezone dummy;
3224 gettimeofday (&time, &dummy);
3226 [AC_MSG_RESULT(two)],
3228 AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)])
3233 if test "$ac_cv_c_inline" != "no"; then
3234 AC_DEFINE(HAVE_INLINE)
3235 test "$GCC" = "yes" && XE_ADD_OBJS(inline.o)
3238 dnl HP-UX has a working alloca in libPW.
3239 dnl case "${GCC}${opsys}" in hpux* )
3240 dnl AC_CHECK_FUNC(alloca, [:], [AC_CHECK_LIB(PW, alloca)])
3244 test -n "$ALLOCA" && XE_ADD_OBJS($ALLOCA)
3246 dnl Check whether vfork exists and works correctly. (This does more
3247 dnl than just check for its existence.) If so, it defines HAVE_VFORK_H.
3248 dnl If not, it defines vfork to be fork.
3251 dnl Check whether strcoll exists and works correctly. (This does more
3252 dnl than just check for its existence.) If so, it defines HAVE_STRCOLL.
3255 dnl If `getpgrp' takes no argument (the POSIX.1 version), define
3256 dnl `GETPGRP_VOID'. Otherwise, it is the BSD version, which takes a
3257 dnl process ID as an argument.
3258 AC_CHECK_FUNCS(getpgrp)
3261 dnl We used to call AC_FUNC_MMAP here
3262 dnl Instead we now use following, suggested by Neal Becker
3263 AC_MSG_CHECKING(for working mmap)
3264 case "$opsys" in ultrix* ) have_mmap=no ;; *)
3265 AC_TRY_RUN([#include <stdio.h>
3268 #include <sys/mman.h>
3270 #ifndef MAP_VARIABLE
3271 #define MAP_VARIABLE 0
3275 #define MAP_FAILED -1
3278 int main (int argc, char *argv[])
3282 #ifndef MAP_ANONYMOUS
3283 fd = open ("/dev/zero", O_RDWR);
3286 #define MAP_ANONYMOUS 0
3288 if (mmap(0, 1024, PROT_READ | PROT_WRITE,
3289 MAP_PRIVATE | MAP_VARIABLE | MAP_ANONYMOUS,
3290 fd, 0) != (void *) MAP_FAILED)
3292 perror ("conftest: mmap failed");
3294 }], have_mmap=yes, have_mmap=no) ;;
3296 AC_MSG_RESULT($have_mmap)
3297 test "$have_mmap" = "yes" && AC_DEFINE(HAVE_MMAP)
3299 dnl rel_alloc requires either GNU malloc or system malloc with mmap
3300 dnl We only turn rel_alloc on by default if mmap is available.
3301 test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && rel_alloc=no
3302 test "$rel_alloc" = "default" -a "$have_mmap" = "yes" && rel_alloc=yes
3303 test "$rel_alloc" = "yes" && AC_DEFINE(REL_ALLOC)
3305 dnl Check for terminal I/O variants
3306 dnl TERMIOS systems may have termio.h, but not vice-versa, I think.
3307 AC_CHECK_HEADER(termios.h,
3308 AC_DEFINE(HAVE_TERMIOS)
3309 AC_DEFINE(SIGNALS_VIA_CHARACTERS)
3310 AC_DEFINE(NO_TERMIO),
3311 [AC_CHECK_HEADER(termio.h, [AC_DEFINE(HAVE_TERMIO)])])
3314 dnl Check for Internet sockets.
3315 AC_CHECK_FUNC(socket,
3316 [AC_CHECK_HEADER(netinet/in.h,
3317 [AC_CHECK_HEADER(arpa/inet.h, [
3318 AC_DEFINE(HAVE_SOCKETS)
3319 AC_MSG_CHECKING("for sun_len member in struct sockaddr_un")
3321 #include <sys/types.h>
3322 #include <sys/socket.h>
3325 [static struct sockaddr_un x; x.sun_len = 1;],
3326 [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOCKADDR_SUN_LEN)],
3327 [AC_MSG_RESULT(no)])
3328 AC_MSG_CHECKING("for ip_mreq struct in netinet/in.h")
3330 #include <sys/types.h>
3331 #include <netinet/in.h>
3333 [static struct ip_mreq x;],
3334 [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_MULTICAST)],
3335 [AC_MSG_RESULT(no)])])])])
3337 dnl Check for SYS V IPC. (Inferior to sockets.)
3338 AC_CHECK_FUNC(msgget,
3339 [AC_CHECK_HEADER(sys/ipc.h,
3340 [AC_CHECK_HEADER(sys/msg.h,
3341 [AC_DEFINE(HAVE_SYSVIPC)])])])
3343 dnl Check for directory variants
3344 AC_CHECK_HEADER(dirent.h, [AC_DEFINE(SYSV_SYSTEM_DIR)],
3345 [AC_CHECK_HEADER(sys/dir.h, , [AC_DEFINE(NONSYSTEM_DIR_LIBRARY)])])
3347 dnl Check for nlist.h
3348 AC_CHECK_HEADER(nlist.h, AC_DEFINE(NLIST_STRUCT), )
3350 dnl Check for sound of various sorts.
3352 dnl Autodetect native sound
3353 AC_CHECKING("for sound support")
3354 case "$with_sound" in
3355 native | both ) with_native_sound=yes;;
3356 nas | no ) with_native_sound=no;;
3358 test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes
3360 if test "$with_native_sound" != "no"; then
3361 dnl Maybe sound is already on include path...
3362 if test -n "$native_sound_lib"; then
3363 AC_CHECK_HEADER(multimedia/audio_device.h,
3364 [sound_found=yes sound_cflags=""
3365 XE_ADD_OBJS(sunplay.o)])
3368 dnl Autodetect Sun native sound from SUNWaudmo package
3369 if test -z "$sound_found" -a -d "/usr/demo/SOUND"; then
3371 XE_ADD_OBJS(sunplay.o)
3372 if test -d "/usr/demo/SOUND/include"
3373 then sound_cflags="-I/usr/demo/SOUND/include"
3374 else sound_cflags="-I/usr/demo/SOUND"
3376 if test -z "$native_sound_lib" ; then
3377 if test -r "/usr/demo/SOUND/lib/libaudio.a"
3378 then native_sound_lib="/usr/demo/SOUND/lib/libaudio.a"
3379 else native_sound_lib="/usr/demo/SOUND/libaudio.a"
3384 dnl Check for SGI and HP native sound libs
3385 if test -z "$sound_found"; then
3386 case "$canonical" in
3388 if test -z "$native_sound_lib"; then
3389 AC_CHECK_LIB(audio, ALopenport, native_sound_lib="-laudio")
3391 if test -n "$native_sound_lib"; then
3392 sound_found=yes sound_cflags=""
3393 XE_ADD_OBJS(sgiplay.o)
3396 if test -z "$native_sound_lib"; then
3397 AC_CHECK_LIB(Alib, AOpenAudio, native_sound_lib="-lAlib")
3399 if test -n "$native_sound_lib"; then
3401 XE_ADD_OBJS(hpplay.o)
3402 if test "$GCC" = "yes" # Kludge city
3403 then sound_cflags="-Dconst= -Dvolatile= -I/usr/audio/examples"
3404 else sound_cflags="+e -I/usr/audio/examples"
3410 dnl Check for Linux/BSD native sound
3411 if test -z "$sound_found"; then
3412 for dir in "machine" "sys" "linux"; do
3413 AC_CHECK_HEADER(${dir}/soundcard.h,
3415 XE_ADD_OBJS(linuxplay.o)
3416 [AC_DEFINE_UNQUOTED(SOUNDCARD_H_PATH, "${dir}/soundcard.h")]
3421 test "$sound_found" = "yes" && with_native_sound=yes
3424 if test -z "$with_sound"; then
3425 if test "$with_native_sound" = "yes" -o -n "$native_sound_lib"; then
3430 if test "$with_native_sound" = "yes"; then
3431 AC_DEFINE(HAVE_NATIVE_SOUND)
3432 test -n "$native_sound_lib" && XE_PREPEND($native_sound_lib, LIBS)
3435 case "$with_sound" in both | nas )
3436 AC_DEFINE(HAVE_NAS_SOUND)
3438 XE_PREPEND(-laudio, libs_x)
3439 dnl If the nas library does not contain the error jump point,
3440 dnl then we force safer behavior.
3441 AC_EGREP_HEADER(AuXtErrorJump,audio/Xtutil.h,,[AC_DEFINE(NAS_NO_ERROR_JUMP)])
3444 dnl ---------------------
3445 dnl TTY-dependent options
3446 dnl ---------------------
3448 test -z "$with_tty" && with_tty=yes
3450 if test "$with_tty" = "yes" ; then
3451 AC_CHECKING(for TTY-related features)
3453 XE_ADD_OBJS(console-tty.o device-tty.o event-tty.o frame-tty.o objects-tty.o redisplay-tty.o cm.o)
3455 dnl Autodetect ncurses.
3456 if test -z "$with_ncurses"; then
3457 AC_CHECK_LIB(ncurses, tgetent, with_ncurses=yes, with_ncurses=no)
3459 if test "$with_ncurses" = "yes"; then
3460 AC_DEFINE(HAVE_NCURSES)
3461 AC_CHECK_HEADER(ncurses/curses.h, curses_h_path=ncurses/curses.h)
3462 AC_CHECK_HEADER(ncurses/term.h, term_h_path=ncurses/term.h)
3463 XE_ADD_OBJS(terminfo.o)
3464 XE_PREPEND(-lncurses, LIBS)
3466 if test "$ac_cv_header_ncurses_curses_h" != "yes" ; then
3467 dnl Try again, and check for the bogus ncurses/ include bug.
3468 dnl (i.e. ncurses/curses.h bogusly includes <unctrl.h> instead of
3469 dnl <ncurses/unctrl.h>)
3470 save_c_switch_site="$c_switch_site"
3471 c_switch_site="$c_switch_site -I/usr/include/ncurses"
3472 AC_CHECK_HEADER(ncurses/curses.h, curses_h_path=ncurses/curses.h)
3473 if test "$ac_cv_header_ncurses_curses_h" = "yes"
3474 then AC_MSG_WARN("Your system has the bogus ncurses include bug.")
3475 else c_switch_site="$save_c_switch_site"
3478 else dnl "$with_ncurses" = "no"
3479 dnl Autodetect terminfo/-lcurses/-ltermlib/-ltermcap
3480 if test "$have_terminfo" = "yes"; then
3481 XE_ADD_OBJS(terminfo.o)
3482 if test -n "$libs_termcap"; then
3483 XE_PREPEND($libs_termcap, LIBS)
3485 for lib in curses termlib termcap; do
3486 AC_CHECK_LIB($lib, tgetent, XE_PREPEND(-l${lib}, LIBS); break)
3489 else dnl "$have_terminfo" = "no" && "with_ncurses" = "no"
3490 XE_ADD_OBJS(tparam.o)
3491 dnl The HP-UX curses library seems to have a badly broken version of select(2)
3492 dnl that makes "poll: interrupted system call" messages to appear and
3493 dnl Emacs suprocesses to hang (e.g. TeX compilation w/ AUCTeX) */
3494 case "$opsys" in *-hp-hpux* ) libs_termcap="-ltermcap" ;; esac
3495 if test -n "$libs_termcap"; then
3496 XE_PREPEND($libs_termcap, LIBS)
3498 AC_CHECK_LIB(curses, tgetent, XE_PREPEND(-lcurses, LIBS),
3499 AC_CHECK_LIB(termcap, tgetent, XE_PREPEND(-ltermcap, LIBS),
3500 XE_ADD_OBJS(termcap.o)))
3504 AC_DEFINE_UNQUOTED(CURSES_H_PATH, "${curses_h_path-curses.h}")
3505 AC_DEFINE_UNQUOTED(TERM_H_PATH, "${term_h_path-term.h}")
3508 test -z "$with_gpm" && { AC_CHECK_HEADER(gpm.h, , with_gpm=no) }
3509 test -z "$with_gpm" && { AC_CHECK_LIB(gpm, Gpm_Open, with_gpm=yes, with_gpm=no) }
3510 if test "$with_gpm" = "yes"; then
3512 XE_ADD_OBJS(gpmevent.o)
3513 XE_PREPEND(-lgpm, LIBS)
3516 else dnl "$with_tty" = "no"
3517 for feature in ncurses gpm; do
3518 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
3519 AC_MSG_WARN("--with-${feature} ignored: Not valid without TTY support")
3521 eval "with_${feature}=no"
3525 dnl Do we need event-unixoid.o ?
3526 test "$with_x11" = "yes" -o "$with_tty" = "yes" && XE_ADD_OBJS(event-unixoid.o)
3528 dnl Database support
3529 dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support.
3530 dnl On FreeBSD, both DB and DBM are part of libc.
3531 dnl By default, we check for DBM support in libgdbm, then libc, then libdbm.
3533 test "$with_database_gnudbm $with_database_dbm $with_database_berkdb" \
3534 != "no no no" && AC_CHECKING(for database support)
3536 dnl Check for ndbm.h, required for either kind of DBM support.
3537 if test "$with_database_gnudbm $with_database_dbm" != "no no"; then
3538 AC_CHECK_HEADER(ndbm.h, [:], [
3539 test "$with_database_gnudbm" = "yes" -o \
3540 "$with_database_dbm" = "yes" && \
3541 XE_DIE("Required DBM support cannot be provided.")
3542 with_database_gnudbm=no with_database_dbm=no])
3545 dnl Check for DBM support in libgdbm.
3546 if test "$with_database_gnudbm" != "no"; then
3547 AC_CHECK_LIB(gdbm, dbm_open, [
3548 with_database_gnudbm=yes with_database_dbm=no libdbm=-lgdbm], [
3549 if test "$with_database_gnudbm" = "yes"; then
3550 XE_DIE("Required GNU DBM support cannot be provided.")
3552 with_database_gnudbm=no])
3555 dnl Check for DBM support in libc and libdbm.
3556 if test "$with_database_dbm" != "no"; then
3557 AC_CHECK_FUNC(dbm_open, [with_database_dbm=yes libdbm=], [
3558 AC_CHECK_LIB(dbm, dbm_open, [with_database_dbm=yes libdbm=-ldbm], [
3559 test "$with_database_dbm" = "yes" && \
3560 XE_DIE("Required DBM support cannot be provided.")
3561 with_database_dbm=no])])
3564 dnl Tell make about the DBM support we detected.
3565 test -n "$libdbm" && XE_PREPEND("$libdbm", LIBS)
3566 test "$with_database_gnudbm" = "yes" -o \
3567 "$with_database_dbm" = "yes" && \
3570 dnl Check for Berkeley DB.
3571 if test "$with_database_berkdb" != "no"; then
3572 AC_MSG_CHECKING(for Berkeley db.h)
3573 for path in "db/db.h" "db.h"; do
3574 AC_TRY_COMPILE([#ifdef HAVE_INTTYPES_H
3575 #define __BIT_TYPES_DEFINED__
3576 #include <inttypes.h>
3577 typedef uint8_t u_int8_t;
3578 typedef uint16_t u_int16_t;
3579 typedef uint32_t u_int32_t;
3580 #ifdef WE_DONT_NEED_QUADS
3581 typedef uint64_t u_int64_t;
3585 ],[], db_h_path="$path"; break)
3587 if test -z "$db_h_path"
3588 then AC_MSG_RESULT(no); with_database_berkdb=no
3589 else AC_MSG_RESULT($db_h_path)
3592 if test "$with_database_berkdb" != "no"; then
3593 AC_MSG_CHECKING(for Berkeley DB version)
3595 [#include <$db_h_path>
3596 #if DB_VERSION_MAJOR > 1
3599 ], [AC_MSG_RESULT(2); dbfunc=db_open], [AC_MSG_RESULT(1); dbfunc=dbopen])
3600 AC_CHECK_FUNC($dbfunc, with_database_berkdb=yes need_libdb=no, [
3601 AC_CHECK_LIB(db, $dbfunc, with_database_berkdb=yes need_libdb=yes)])
3604 if test "$with_database_berkdb" = "yes"; then
3605 AC_DEFINE_UNQUOTED(DB_H_PATH, "$db_h_path")
3606 AC_DEFINE(HAVE_BERKELEY_DB)
3607 test "$need_libdb" = "yes" && XE_PREPEND(-ldb, LIBS)
3608 else with_database_berkdb=no
3612 if test "$with_database_gnudbm $with_database_dbm $with_database_berkdb" \
3614 AC_DEFINE(HAVE_DATABASE)
3615 XE_ADD_OBJS(database.o)
3619 if test "$with_socks" = "yes"; then
3620 AC_CHECK_LIB(socks, SOCKSinit)
3621 test -n "$ac_cv_lib_socks_SOCKSinit" && AC_DEFINE(HAVE_SOCKS)
3624 dnl Usage tracking (undocumented and likely unused option)
3625 if test "$usage_tracking" = "yes"; then
3626 AC_DEFINE(USAGE_TRACKING)
3627 XE_PREPEND(-Bstatic -lut -Bdynamic, LIBS)
3630 dnl autodetect dll support
3631 AC_CHECK_HEADERS(dlfcn.h, [have_dlfcn=yes
3632 AC_DEFINE(HAVE_DLFCN_H)])
3633 test -z "$with_modules" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(dl, dlopen, [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=dl; with_modules=yes]) }
3634 test -z "$with_modules" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c, _dlopen, [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=; with_modules=yes]) }
3635 test -z "$with_modules" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c, dlopen, [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=; with_modules=yes]) }
3636 test -z "$with_modules" && { AC_CHECK_LIB(dld, shl_load, [ AC_DEFINE(HAVE_SHL_LOAD) DLL_LIB=dld; with_modules=yes]) }
3637 test -z "$with_modules" && { AC_CHECK_LIB(dld, dld_init, [ AC_DEFINE(HAVE_DLD_INIT) DLL_LIB=dld; with_modules=yes]) }
3638 if test "$with_modules" = "yes"; then
3640 if test "$can_build_shared" = "yes"; then
3641 AC_DEFINE(HAVE_SHLIB)
3642 XE_ADD_OBJS(sysdll.o)
3643 XE_ADD_OBJS(emodules.o)
3644 XE_APPEND(src, INSTALL_ARCH_DEP_SUBDIR)
3645 test ! -z "$DLL_LIB" && XE_PREPEND(-l${DLL_LIB}, LIBS)
3646 AC_CHECK_FUNCS(dlerror _dlerror)
3648 AC_MSG_WARN(disabling shared library support)
3653 dnl Unfortunately, just because we can link doesn't mean we can run.
3654 dnl One of the above link tests may have succeeded but caused resulting
3655 dnl executables to fail to run. Also any tests using AC_TRY_RUN will
3656 dnl have reported incorrect results.
3657 AC_TRY_RUN([int main(int c,char *v[]){return 0;}],[:],[
3659 echo "*** PANIC *** The C compiler can no longer build working executables."
3660 echo "*** PANIC *** Please examine the tail of config.log for runtime errors."
3661 echo "*** PANIC *** The most likely reason for this problem is that configure"
3662 echo "*** PANIC *** links with shared libraries, but those libraries cannot be"
3663 echo "*** PANIC *** found at run time."
3664 echo "*** PANIC ***"
3665 echo "*** PANIC *** On a Linux system, edit /etc/ld.so.conf and re-run ldconfig."
3666 echo "*** PANIC *** On other systems, try telling configure where to find the"
3667 echo "*** PANIC *** shared libraries using the --site-runtime-libraries option"
3668 echo "*** PANIC ***"
3669 echo "*** PANIC *** Another way to shoot yourself in the foot is to specify"
3670 echo "*** PANIC *** --with-FEATURE when FEATURE is not actually installed"
3671 echo "*** PANIC *** on your system. Don't do that."
3675 if test "$win32_processes" = "yes"; then
3676 XE_ADD_OBJS(process-nt.o)
3678 AC_DEFINE(HAVE_UNIX_PROCESSES)
3679 XE_ADD_OBJS(process-unix.o)
3682 dnl --------------------------------
3683 dnl Compute SUBST-itutable variables
3684 dnl --------------------------------
3686 dnl We ignore (C|LD)_SWITCH_X_(MACHINE|SYSTEM)
3687 dnl Use XE_SPACE instead of plain assignment statements to remove extraneous blanks
3688 XE_SPACE(CFLAGS, $CFLAGS)
3689 XE_SPACE(extra_objs, $extra_objs)
3690 XE_SPACE(c_switch_general, -DHAVE_CONFIG_H $c_switch_site $c_switch_machine $c_switch_system)
3691 XE_SPACE(c_switch_window_system, $c_switch_x_site $X_CFLAGS)
3692 XE_SPACE(c_switch_all, $c_switch_general $c_switch_window_system)
3693 XE_SPACE(ld_switch_general, $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_run)
3694 XE_SPACE(ld_switch_window_system, $ld_switch_x_site)
3695 XE_SPACE(ld_switch_all, $ld_switch_general $ld_switch_window_system)
3696 XE_SPACE(ld_libs_general, $LIBS $libs_machine $libs_system $libs_standard)
3697 XE_SPACE(ld_libs_window_system, $X_EXTRA_LIBS $libs_x $X_PRE_LIBS)
3698 XE_SPACE(ld_libs_all, $ld_libs_window_system $ld_libs_general)
3700 dnl Compute lists of Makefiles and subdirs
3701 AC_SUBST(SRC_SUBDIR_DEPS)
3702 XE_APPEND(src, MAKE_SUBDIR)
3703 internal_makefile_list="Makefile.in"
3705 test -d lock || mkdir lock
3706 for dir in $MAKE_SUBDIR; do
3707 case "$dir" in */* ) dnl Implement mkdir -p
3708 ( for d in `echo $dir | sed 's:/: :g'` ; do
3709 test -d "$d" || mkdir "$d"; cd "$d"
3711 * ) test -d "$dir" || mkdir "$dir" ;;
3713 XE_SPACE(SUBDIR_MAKEFILES, $SUBDIR_MAKEFILES $dir/Makefile $dir/GNUmakefile)
3714 XE_SPACE(internal_makefile_list, $internal_makefile_list $dir/Makefile.in)
3716 AC_SUBST(INSTALL_ARCH_DEP_SUBDIR)
3717 AC_SUBST(MAKE_SUBDIR)
3718 AC_SUBST(SUBDIR_MAKEFILES)
3720 dnl Make s&m symlinks in the src directory, for config.h
3721 for dir in src/s src/m; do
3722 if test ! -d "$dir" ; then
3723 echo Making symbolic link to "$srcdir/$dir"
3724 ${LN_S} "$srcdir/$dir" "$dir"
3728 if test "$extra_verbose" = "yes"; then
3730 PRINT_VAR(extra_objs
3731 c_switch_general c_switch_window_system c_switch_all
3732 ld_switch_general ld_switch_window_system ld_switch_all
3733 ld_libs_general ld_libs_window_system ld_libs_all)
3737 dnl Create some auxiliary files
3738 if test -f $srcdir/src/gdbinit -a ! -f src/gdbinit ; then
3739 echo "creating src/gdbinit"; echo ""
3740 echo "source $srcdir/src/gdbinit" > src/gdbinit
3743 dnl Create top level .sbinit for Sun compilers
3744 if test "$__SUNPRO_C" = "yes"; then
3745 echo "creating .sbinit"; echo ""
3746 ( echo "# For use with Sun WorkShop's Source browser."
3747 echo "# See sbquery(1) and sbinit(4) for more information"
3748 for dir in $MAKE_SUBDIR; do echo "import $dir"; done
3752 dnl There are no more compile tests; remove the core they created.
3755 dnl ----------------------------------------------
3756 dnl Substitute into Makefile, config.h and paths.h
3757 dnl ----------------------------------------------
3759 dnl what sort of things to edit into Makefile, config.h and paths.h
3760 dnl configuration here uncanonicalized to avoid exceeding size limits.
3764 AC_SUBST(configuration)
3766 AC_SUBST(inststaticdir)
3767 AC_SUBST(instvardir)
3777 AC_SUBST(PREFIX_USER_DEFINED)
3778 dnl Yo, Stephen Bourne! I want to marry you!
3782 *\$* ) eval "PREFIX=$PREFIX" ;;
3788 AC_SUBST(exec_prefix)
3789 AC_SUBST(EXEC_PREFIX_USER_DEFINED)
3790 EXEC_PREFIX=$exec_prefix
3792 case "$EXEC_PREFIX" in
3793 *\$* ) eval "EXEC_PREFIX=$EXEC_PREFIX" ;;
3797 AC_SUBST(EXEC_PREFIX)
3800 AC_SUBST(INFODIR_USER_DEFINED)
3804 *\$* ) eval "INFODIR=$INFODIR" ;;
3811 AC_SUBST(INFOPATH_USER_DEFINED)
3815 *\$* ) eval "INFOPATH=$INFOPATH" ;;
3821 AC_SUBST(package_path)
3822 AC_SUBST(PACKAGE_PATH_USER_DEFINED)
3823 PACKAGE_PATH=$package_path
3825 case "$PACKAGE_PATH" in
3826 *\$* ) eval "PACKAGE_PATH=$PACKAGE_PATH" ;;
3830 AC_SUBST(PACKAGE_PATH)
3833 AC_SUBST(LISPDIR_USER_DEFINED)
3837 *\$* ) eval "LISPDIR=$LISPDIR" ;;
3844 AC_SUBST(MODULEDIR_USER_DEFINED)
3845 MODULEDIR=$moduledir
3847 case "$MODULEDIR" in
3848 *\$* ) eval "MODULEDIR=$MODULEDIR" ;;
3854 AC_SUBST(sitelispdir)
3855 AC_SUBST(SITELISPDIR_USER_DEFINED)
3856 SITELISPDIR=$sitelispdir
3858 case "$SITELISPDIR" in
3859 *\$* ) eval "SITELISPDIR=$SITELISPDIR" ;;
3863 AC_SUBST(SITELISPDIR)
3865 AC_SUBST(sitemoduledir)
3866 AC_SUBST(SITEMODULEDIR_USER_DEFINED)
3867 SITEMODULEDIR=$sitemoduledir
3869 case "$SITEMODULEDIR" in
3870 *\$* ) eval "SITEMODULEDIR=$SITEMODULEDIR" ;;
3874 AC_SUBST(SITEMODULEDIR)
3877 AC_SUBST(ETCDIR_USER_DEFINED)
3881 *\$* ) eval "ETCDIR=$ETCDIR" ;;
3888 AC_SUBST(LOCKDIR_USER_DEFINED)
3892 *\$* ) eval "LOCKDIR=$LOCKDIR" ;;
3899 AC_SUBST(DOCDIR_USER_DEFINED)
3903 *\$* ) eval "DOCDIR=$DOCDIR" ;;
3909 AC_SUBST(archlibdir)
3910 AC_SUBST(ARCHLIBDIR_USER_DEFINED)
3911 ARCHLIBDIR=$archlibdir
3913 case "$ARCHLIBDIR" in
3914 *\$* ) eval "ARCHLIBDIR=$ARCHLIBDIR" ;;
3918 AC_SUBST(ARCHLIBDIR)
3922 AC_SUBST(extra_objs)
3924 dnl The following flags combine all the information from:
3925 dnl - command line options (user always gets priority)
3926 dnl - user environment variables
3927 dnl - determined by configure
3928 dnl - the s&m header files (required for ellcc)
3931 AC_SUBST(c_switch_general)
3932 AC_SUBST(c_switch_window_system)
3933 AC_SUBST(c_switch_all)
3934 AC_SUBST(ld_switch_general)
3935 AC_SUBST(ld_switch_window_system)
3936 AC_SUBST(ld_switch_all)
3937 AC_SUBST(ld_libs_general)
3938 AC_SUBST(ld_libs_window_system)
3939 AC_SUBST(ld_libs_all)
3943 RECURSIVE_MAKE="\$(MAKE) \$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'"
3944 AC_SUBST(RECURSIVE_MAKE)
3946 AC_SUBST(native_sound_lib)
3947 AC_SUBST(sound_cflags)
3949 AC_SUBST(dynodump_arch)
3951 dnl Preliminary support for using a different compiler for xemacs itself.
3952 dnl Useful for building XEmacs with a C++ or 64-bit compiler.
3956 dnl The default is yes
3957 if test "$with_prefix" = "yes"; then
3958 AC_DEFINE(PREFIX_USER_DEFINED)
3961 dnl The default is no
3962 if test "$with_site_lisp" = "no"; then
3963 AC_DEFINE(INHIBIT_SITE_LISP)
3965 dnl The default is yes
3966 if test "$with_site_modules" = "no"; then
3967 AC_DEFINE(INHIBIT_SITE_MODULES)
3970 XE_SPACE(ac_configure_args, $ac_configure_args)
3971 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "$canonical")
3972 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "$ac_configure_args")
3973 AC_DEFINE_UNQUOTED(config_machfile, "$machfile")
3974 AC_DEFINE_UNQUOTED(config_opsysfile, "$opsysfile")
3976 dnl Following are deprecated
3979 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, $null_string)
3980 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, $null_string)
3981 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, $null_string)
3982 AC_DEFINE_UNQUOTED(LD_SWITCH_SITE, $null_string)
3983 AC_DEFINE_UNQUOTED(C_SWITCH_SITE, $null_string)
3985 dnl Note: as a general rule, *only* define things here that are not
3986 dnl autodetected. For things that are autodetected, define them
3987 dnl at the point where the autodetection occurs or would occur,
3988 dnl so that the user gets immediate feedback on the results of the
3991 if test "$GNU_MALLOC" = "yes"; then AC_DEFINE(GNU_MALLOC)
3992 elif test "$with_system_malloc" = "yes"; then AC_DEFINE(USE_SYSTEM_MALLOC)
3993 elif test "$with_debug_malloc" = "yes"; then AC_DEFINE(USE_DEBUG_MALLOC)
3994 AC_DEFINE(USE_SYSTEM_MALLOC)
3996 test "$with_i18n3" = "yes" && AC_DEFINE(I18N3)
3997 test "$GCC" = "yes" && AC_DEFINE(USE_GCC)
3998 test "$external_widget" = "yes" && AC_DEFINE(EXTERNAL_WIDGET)
3999 test "$no_doc_file" = "yes" && AC_DEFINE(NO_DOC_FILE)
4000 dnl test "$const_is_losing" = "yes" && AC_DEFINE(CONST_IS_LOSING)
4001 test "$with_purify" = "yes" && AC_DEFINE(PURIFY)
4002 test "$with_quantify" = "yes" && AC_DEFINE(QUANTIFY)
4003 test "$with_pop" = "yes" && AC_DEFINE(MAIL_USE_POP)
4004 test "$with_kerberos" = "yes" && AC_DEFINE(KERBEROS)
4005 test "$with_hesiod" = "yes" && AC_DEFINE(HESIOD)
4006 test "$use_union_type" = "yes" && AC_DEFINE(USE_UNION_TYPE)
4008 dnl -------------------------------
4009 dnl Report on what we decided to do
4010 dnl -------------------------------
4013 dnl /etc/osversion is on SONY NEWS-OS
4014 if test -f /etc/osversion; then dnl SONY NEWS-OS
4015 echo "osversion: `cat /etc/osversion`"
4017 echo "uname -a: `uname -a`"
4020 echo "$0 $quoted_arguments"
4023 if test ! -z ${emacs_beta_version} ; then
4024 if test -z "${emacs_is_beta}" ; then
4025 xemacs_betaname=".${emacs_beta_version}"
4027 xemacs_betaname="-b${emacs_beta_version}"
4033 dnl Start stdout redirection to '| tee -a Installation'
4037 XEmacs ${emacs_major_version}.${emacs_minor_version}${xemacs_betaname} \"$xemacs_codename\" configured for \`$canonical'.
4039 Where should the build process find the source code? $srcdir
4040 What installation prefix should install use? $prefix
4041 What operating system and machine description files should XEmacs use?
4042 \`$opsysfile' and \`$machfile'
4043 What compiler should XEmacs be built with? $CC $CFLAGS
4044 Should XEmacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason}
4045 Should XEmacs use the relocating allocator for buffers? $rel_alloc
4046 What window system should XEmacs use? ${window_system}"
4047 if test "$with_x11" = "yes"; then
4048 echo " Where do we find X Windows header files? $x_includes"
4049 echo " Where do we find X Windows libraries? $x_libraries"
4051 if test -n "$site_includes"; then
4052 echo " Additional header files: $site_includes"
4054 if test -n "$site_libraries"; then
4055 echo " Additional libraries: $site_libraries"
4057 if test -n "$site_prefixes"; then
4058 echo " Additional prefixes: $site_prefixes"
4060 if test -n "$runpath"; then
4061 echo " Runtime library search path: $runpath"
4063 test "$with_dnet" = yes && echo " Compiling in support for DNET."
4064 test "$with_socks" = yes && echo " Compiling in support for SOCKS."
4065 test "$with_xauth" = yes && echo " Compiling in support for XAUTH."
4066 if test "$with_xmu" != yes -a "$with_x11" = yes; then
4067 echo " No Xmu; substituting equivalent routines."
4070 if test "$with_xpm" = yes; then
4071 echo " Compiling in support for XPM images."
4072 elif test "$with_x11" = yes; then
4073 echo " --------------------------------------------------------------------"
4074 echo " WARNING: Compiling without XPM support."
4075 if test "$xpm_problem" != ""; then
4076 echo " Reason: $xpm_problem"
4078 echo " WARNING: You should strongly consider installing XPM."
4079 echo " WARNING: Otherwise toolbars and other graphics will look suboptimal."
4080 echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
4081 echo " --------------------------------------------------------------------"
4083 if test "$with_png" = yes; then
4084 echo " Compiling in support for PNG image handling."
4085 elif test "$window_system" != "none"; then
4086 echo " --------------------------------------------------------------------"
4087 echo " WARNING: Compiling without PNG image support."
4088 if test "$png_problem" != ""; then
4089 echo " Reason: $png_problem"
4091 echo " WARNING: You should strongly consider installing the PNG libraries."
4092 echo " WARNING: Otherwise certain images and glyphs may not display."
4093 echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
4094 echo " --------------------------------------------------------------------"
4096 test "$with_gif" = yes && echo " Compiling in support for (builtin) GIF image handling."
4097 test "$with_jpeg" = yes && echo " Compiling in support for JPEG image handling."
4098 test "$with_tiff" = yes && echo " Compiling in support for TIFF image handling."
4099 test "$with_xface" = yes && echo " Compiling in support for X-Face message headers."
4100 case "$with_sound" in
4101 nas ) echo " Compiling in network sound (NAS) support." ;;
4102 native ) echo " Compiling in native sound support." ;;
4103 both ) echo " Compiling in both network and native sound support." ;;
4105 test "$old_nas" = yes && echo " nas library lacks error trapping, will play synchronously."
4107 test "$with_database_berkdb" = yes && echo " Compiling in support for Berkeley DB."
4108 test "$with_database_dbm" = yes && echo " Compiling in support for DBM."
4109 test "$with_database_gnudbm" = yes && echo " Compiling in support for GNU DBM."
4111 test "$with_ldap" = yes && echo " Compiling in support for LDAP."
4113 test "$with_ncurses" = yes && echo " Compiling in support for ncurses."
4114 test "$with_gpm" = yes && echo " Compiling in support for GPM (General Purpose Mouse)."
4116 test "$with_mule" = yes && echo " Compiling in Mule (multi-lingual) support."
4117 test "$with_utf_2000" = yes && echo " Using UTF-2000 (UTF-8) buffer/string representation."
4118 test "$with_file_coding" = yes && echo " Compiling in File coding support."
4119 test "$with_xim" != no && echo " Compiling in XIM (X11R5+ I18N input method) support."
4120 test "$with_xim" = motif && echo " Using Motif to provide XIM support."
4121 test "$with_xim" = xlib && echo " Using raw Xlib to provide XIM support."
4122 test "$with_xfs" = yes && echo " Using XFontSet to provide bilingual menubar."
4123 test "$with_canna" = yes && echo " Compiling in support for Canna on Mule."
4124 if test "$with_wnn" = yes; then
4125 echo " Compiling in support for the WNN input method on Mule."
4126 test "$with_wnn6" = yes && echo " Using WNN version 6."
4128 test "$with_i18n3" = yes && echo " Compiling in I18N support, level 3 (doesn't currently work)."
4130 test "$with_cde" = yes && echo " Compiling in support for CDE."
4131 test "$with_tooltalk" = yes && echo " Compiling in support for ToolTalk."
4132 test "$with_offix" = yes && echo " Compiling in support for OffiX."
4133 test "$with_dragndrop" = yes && echo " Compiling in EXPERIMENTAL support for Drag'n'Drop ($dragndrop_proto )."
4134 test "$with_workshop" = yes && echo " Compiling in support for Sun WorkShop."
4135 test "$with_wmcommand" != no && echo " Compiling in support for proper WM_COMMAND handling."
4136 case "$with_menubars" in
4137 lucid ) echo " Using Lucid menubars." ;;
4138 motif ) echo " Using Motif menubars."
4139 echo " *WARNING* The Motif menubar implementation is currently buggy."
4140 echo " We recommend using the Lucid menubar instead."
4141 echo " Re-run configure with --with-menubars='lucid'." ;;
4143 case "$with_scrollbars" in
4144 lucid ) echo " Using Lucid scrollbars." ;;
4145 motif ) echo " Using Motif scrollbars." ;;
4146 athena ) echo " Using Athena scrollbars." ;;
4147 athena3d ) echo " Using Athena-3d scrollbars." ;;
4149 case "$with_widgets" in
4150 motif ) echo " Using Motif native widgets." ;;
4152 case "$with_dialogs" in
4154 echo " Using Motif dialog boxes."
4155 if test "$unexec" = "unexaix.o"; then if test "`uname -v`" = 4 -a "`uname -r`" -ge 3; then
4156 echo " *WARNING* The Motif dialog boxes cause problems on AIX 4.3 and higher."
4157 echo " We recommend using the Athena dialog boxes instead."
4158 echo " Install libXaw and re-run configure with --with-dialogs='athena'."
4159 echo " Read the PROBLEMS file for more information."
4162 athena ) echo " Using Athena dialog boxes." ;;
4163 athena3d ) echo " Using Athena-3d dialog boxes." ;;
4165 test "$with_modules" = "yes" && echo " Compiling in DSO module support."
4166 test "$with_clash_detection" = yes && \
4167 echo " Clash detection will use \"$lockdir\" for locking files."
4168 echo " movemail will use \"$mail_locking\" for locking mail spool files."
4169 test "$with_pop" = yes && echo " Using POP for mail access."
4170 test "$with_kerberos" = yes && echo " Using Kerberos for POP authentication."
4171 test "$with_hesiod" = yes && echo " Using Hesiod to get POP server host."
4172 test "$use_union_type" = yes && echo " Using the union type for Lisp_Objects."
4173 test "$debug" = yes && echo " Compiling in extra code for debugging."
4174 test "$usage_tracking" = yes && echo " Compiling with usage tracking active (Sun internal)."
4175 if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc" \
4176 != "no no no no no"; then
4177 echo " WARNING: ---------------------------------------------------------"
4178 echo " WARNING: Compiling in support for runtime error checking."
4179 echo " WARNING: XEmacs will run noticeably more slowly as a result."
4180 echo " WARNING: Error checking is on by default for XEmacs beta releases."
4181 echo " WARNING: ---------------------------------------------------------"
4184 ) | tee -a Installation
4185 dnl echo "The above configure report is appended to \"Installation\" file."
4188 dnl -----------------------------------
4189 dnl Now generate config.h and Makefiles
4190 dnl -----------------------------------
4191 dnl This has to be called in order for this variable to get into config.status
4192 AC_SUBST(internal_makefile_list)
4193 # Remove any trailing slashes in these variables.
4194 test -n "$prefix" &&
4195 prefix=`echo '' "$prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4196 test -n "$exec_prefix" &&
4197 exec_prefix=`echo '' "$exec_prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4199 dnl Build Makefile.in's from Makefile.in.in's
4200 dnl except ./Makefile from $srcdir/Makefile.in
4202 for file in $internal_makefile_list; do
4203 test "$file" = src/Makefile.in && \
4204 file="src/Makefile.in:src/Makefile.in.in:src/depend"
4205 ac_output_files="${ac_output_files+$ac_output_files }$file"
4207 ac_output_files="$ac_output_files src/paths.h lib-src/config.values"
4208 if test "$with_modules" = "yes"; then
4209 ac_output_files="$ac_output_files lib-src/ellcc.h"
4212 AC_OUTPUT($ac_output_files,
4213 [for dir in . $MAKE_SUBDIR; do
4218 sed -e '/^# Generated/d' \
4219 -e 's%/\*\*/#.*%%' \
4221 dnl Delete Makefile.in.in comment lines
4223 dnl Pass through CPP directives unchanged
4228 dnl Quote other lines to protect from CPP substitution
4235 dnl Create a GNUmakefile and Makefile from Makefile.in.
4237 changequote(<<,>>)dnl
4238 dnl CPP_MAKEFILE(CPPFLAGS,filename)
4239 define(<<CPP_MAKEFILE>>,
4240 echo creating $dir/<<$2>>
4241 $CPP -I. -I${top_srcdir}/src <<$1>> junk.c \
4242 dnl Delete line directives inserted by $CPP
4243 | sed -e 's/^\#.*//' \
4244 dnl Delete spurious blanks inserted by $CPP
4245 -e 's/^[ TAB][ TAB]*$//'\
4247 dnl Delete blank lines
4248 | sed -n -e '/^..*$/p' \
4249 dnl Restore lines quoted above to original contents.
4255 chmod 444 Makefile.new
4256 mv -f Makefile.new <<$2>>
4259 CPP_MAKEFILE(,Makefile)
4260 CPP_MAKEFILE(-DUSE_GNU_MAKE,GNUmakefile)
4266 dnl Append AC_DEFINE information to lib-src/config.values
4267 dnl (AC_SUBST information is already there (see config.values.sh).
4268 sed < config.status >> lib-src/config.values \
4269 -e '/{ac_dA}.*{ac_dB}.*{ac_dC}.*{ac_dD}$/!d' \
4270 -e 's/\${ac_dA}\(.*\)\${ac_dB}.*\${ac_dC}\(.*\)\${ac_dD}/\1 \2/' \
4271 -e 's/^\([[^ ]]*\) $/\1 ""/' \
4276 top_srcdir="$srcdir"
4277 MAKE_SUBDIR="$MAKE_SUBDIR"