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.
11 ### Don't edit this script!
12 ### This script was automatically generated by the `autoconf' program
13 ### from the file `./configure.in'.
14 ### To rebuild it, execute the command
16 ### in the this directory. You must have autoconf version 2.12 or later.
18 ### This file is part of XEmacs.
20 ### XEmacs is free software; you can redistribute it and/or modify it
21 ### under the terms of the GNU General Public License as published by
22 ### the Free Software Foundation; either version 2, or (at your
23 ### option) any later version.
25 ### XEmacs is distributed in the hope that it will be useful, but
26 ### WITHOUT ANY WARRANTY; without even the implied warranty of
27 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
28 ### General Public License for more details.
30 ### You should have received a copy of the GNU General Public License
31 ### along with XEmacs; see the file COPYING. If not, write to the Free
32 ### Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
35 ### For usage, run `./configure --help'
36 ### For more detailed information on building and installing XEmacs,
37 ### read the file `INSTALL'.
39 ### If configure succeeds, it leaves its status in config.status.
40 ### A log of configuration tests can be found in config.log.
41 ### If configure fails after disturbing the status quo,
42 ### config.status is removed.
45 dnl Since XEmacs has configuration requirements that autoconf cannot
46 dnl meet, this file is an unholy marriage of custom-baked
47 dnl configuration code and autoconf macros.
49 dnl We use the m4 quoting characters [ ] (as established by the
50 dnl autoconf system), so quote them like this: [[foo]]
53 dnl Redefine some standard autoconf macros
54 dnl here is how XEmacs is different:
56 dnl - non-standard options
57 dnl - suport for extra-verbosity
58 dnl - ordinary libs are handled separately from X libs (might be a mistake)
59 dnl - various random kludges (e.g. -with-dnet=no
61 dnl PRINT_VAR(var var ...) prints values of shell variables
62 define([PRINT_VAR],[for var in patsubst([$1],[[
63 ]+],[ ]); do eval "echo \"$var = '\$$var'\""; done])
65 dnl Disable cache files:
66 dnl This is controversial, but I am convinced this is the right way to go,
67 dnl at least by default. Otherwise there are too many surprises.
68 define([AC_CACHE_LOAD], )dnl
69 define([AC_CACHE_SAVE], )dnl
70 define([AC_CACHE_VAL], [
74 dnl Redefine AC_TRY_RUN_NATIVE to not throw away stderr while running
75 dnl AC_TRY_RUN_NATIVE(PROGRAM, [ACTION-IF-TRUE [, ACTION-IF-FALSE]])
76 define([AC_TRY_RUN_NATIVE],
77 [cat > conftest.$ac_ext <<EOF
78 [#]line __oline__ "configure"
82 if AC_TRY_EVAL(ac_link) && test -s conftest && (./conftest; exit $?) 2>&AC_FD_CC
84 dnl Do not remove the temporary files here, so they can be examined.
85 ifelse([$2], , :, [$2])
88 echo "configure: failed program was:" >&AC_FD_CC
89 cat conftest.$ac_ext >&AC_FD_CC
90 ifelse([$3], , , [ rm -fr conftest*
94 rm -fr conftest*])dnl AC_TRY_RUN_NATIVE
97 dnl Avoid spurious cross-compiling warnings from AC_TRY_RUN
98 dnl XEmacs is unlikely to ever cross-compile
99 define([AC_TRY_RUN],[AC_TRY_RUN_NATIVE([$1], [$2], [$3])])dnl
101 dnl Redefine AC_DEFINE* to provide more output if extra_verbose
102 dnl Set VARIABLE to VALUE, verbatim, or 1.
103 dnl AC_DEFINE(VARIABLE [, VALUE])
105 [{ test "$extra_verbose" = "yes" && cat << \EOF
106 Defining $1[]ifelse($#, 2, [ = $2],)
108 cat >> confdefs.h <<\EOF
109 [#define] $1 ifelse($#, 2, [$2], 1)
114 define([AC_DEFINE_UNQUOTED],
115 [{ test "$extra_verbose" = "yes" && cat << EOF
116 Defining $1[]ifelse($#, 2, [ = $2],)
118 cat >> confdefs.h <<EOF
119 [#define] $1 ifelse($#, 2, [$2], 1)
122 ])dnl AC_DEFINE_UNQUOTED
124 dnl redefine AC_CHECK_LIB in accordance with our own value of ac_link
125 dnl Add in extra kludgy check to support with_dnet=no
126 dnl Add in extra LDFLAGS arg, which PRECEDE libs
127 dnl Support --with-dnet=no
129 dnl AC_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
130 dnl [, OTHER-LIBRARIES] [, LDFLAGS]]]])
131 define([AC_CHECK_LIB],
132 [ifelse([$1],dnet, [if test "$with_dnet" = "no" ; then
133 ac_cv_lib_dnet_dnet_ntoa=no
134 ifelse([$4], , , [$4]
138 AC_CHECK_LIB_ORIG_HACKED([$1],[$2],[$3],[$4],[$5], [$6])
139 [ifelse([$1],dnet,[fi
143 define([AC_CHECK_LIB_ORIG_HACKED],
144 [ifelse([$5],,AC_MSG_CHECKING([for $2 in -l$1]),
145 xe_msg_checking="for [$2] in -l[$1]"
146 test -n "[$5]" && xe_msg_checking="$xe_msg_checking using extra libs [$5]"
147 AC_MSG_CHECKING("$xe_msg_checking"))
148 dnl Use a cache variable name containing both the library and function name,
149 dnl because the test really is for library $1 defining function $2, not
150 dnl just for library $1. Separate tests with the same $1 and different $2s
151 dnl may have different results.
152 ac_lib_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
153 AC_CACHE_VAL(ac_cv_lib_$ac_lib_var,
154 [xe_check_libs="$6 -l$1 $5"
156 ifelse([$2], [main], , dnl Avoid conflicting decl of main.
157 [/* Override any gcc2 internal prototype to avoid an error. */
158 ]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
162 [/* We use char because int might match the return type of a gcc2
163 builtin and then its argument prototype would still apply. */
167 eval "ac_cv_lib_$ac_lib_var=yes",
168 eval "ac_cv_lib_$ac_lib_var=no")
171 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
175 ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \
176 -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
178 AC_DEFINE_UNQUOTED($ac_tr_lib)
179 XE_PREPEND([-l$1], LIBS)
186 ])dnl AC_CHECK_LIB_ORIG_HACKED
191 [define([AC_LANG], [C])dnl
193 dnl CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
194 dnl ac_cpp='$CPP $CPPFLAGS'
195 dnl ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&AC_FD_CC'
196 dnl ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
197 xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
198 xe_ldflags='$LDFLAGS $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_x_site $ld_switch_run'
199 xe_libs='$ld_call_shared $xe_check_libs $X_EXTRA_LIBS $libs_x $X_PRE_LIBS $LIBS $libs_machine $libs_system $libs_standard'
200 ac_cpp='$CPP '"$xe_cppflags"
201 ac_compile='${CC-cc} -c $CFLAGS '"$xe_cppflags"' conftest.$ac_ext 1>&AC_FD_CC'
202 ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&AC_FD_CC'
206 dnl The construct foo=`echo $w1 $w2 $w3` fails on some systems if $w1 = -e or -n
207 dnl So we use the following instead.
208 dnl XE_SPACE(var, words)
211 for W in $2; do if test -z "$T"; then T="$W"; else T="$T $W"; fi; done
215 dnl XE_ADD_OBJS(foo.o ...)
216 define([XE_ADD_OBJS],
217 [extra_objs="$extra_objs [$1]" && dnl
218 if test "$extra_verbose" = "yes"; then
219 echo " xemacs will be linked with \"[$1]\""
222 dnl XE_APPEND(value, varname)
224 [[$2]="$[$2] [$1]" && dnl
225 if test "$extra_verbose" = "yes"; then echo " Appending \"[$1]\" to \$[$2]"; fi])
227 dnl XE_PREPEND(value, varname)
229 [[$2]="[$1] $[$2]" && dnl
230 if test "$extra_verbose" = "yes"; then echo " Prepending \"[$1]\" to \$[$2]"; fi])
233 dnl Initialize some variables set by options.
234 dnl The variables have the same names as the options, with
235 dnl dashes changed to underlines.
237 define([AC_INIT_PARSE_ARGS],[
239 dnl Get sane consistent behavior from various shells
240 dnl Avoid losing with weird user CDPATHs
242 if test -n "$ZSH_VERSION"; then
243 dnl zsh's Bourne shell emulation options
244 setopt NO_BAD_PATTERN NO_BANG_HIST NO_BG_NICE NO_EQUALS NO_FUNCTION_ARGZERO
245 setopt GLOB_SUBST NO_HUP INTERACTIVE_COMMENTS KSH_ARRAYS NO_MULTIOS NO_NOMATCH
246 setopt RM_STAR_SILENT POSIX_BUILTINS SH_FILE_EXPANSION SH_GLOB SH_OPTION_LETTERS
247 setopt SH_WORD_SPLIT BSD_ECHO IGNORE_BRACES
248 dnl zsh-3.1-beta drops core on the following
250 if test -n "$CDPATH"; then CDPATH="."; export CDPATH; fi
251 elif test -n "$BASH_VERSION"; then
252 dnl Use Posix mode with bash
256 if test -n "$CDPATH"; then CDPATH="."; export CDPATH; fi
259 dnl Initialize some variables set by options.
260 dnl The variables have the same names as the options, with
261 dnl dashes changed to underlines.
270 program_transform_name=s,x,x,
279 dnl Installation directory options.
280 dnl These are left unexpanded so users can "make install exec_prefix=/foo"
281 dnl and all the variables that are supposed to be based on exec_prefix
282 dnl by default will actually change.
283 dnl Use braces instead of parens because sh, perl, etc. also accept them.
284 dnl If you change these, you need to synchronize with the settings of the
285 dnl various ..._USER_DEFINED variables further down.
286 bindir='${exec_prefix}/bin'
287 sbindir='${exec_prefix}/sbin'
288 libexecdir='${exec_prefix}/libexec'
289 datadir='${prefix}/share'
290 sysconfdir='${prefix}/etc'
291 sharedstatedir='${prefix}/com'
292 localstatedir='${prefix}/var'
293 libdir='${{exec_prefix}}/lib'
294 includedir='${prefix}/include'
295 oldincludedir='/usr/include'
296 infodir='${prefix}/info'
297 mandir='${prefix}/man'
299 dnl Initialize some other variables.
302 dnl Maximum number of lines to put in a shell here document.
304 ])dnl AC_INIT_PARSE_ARGS
306 AC_INIT(src/lisp.h)dnl
307 AC_CONFIG_HEADER(src/config.h lwlib/config.h)
308 dnl Remove any more than one leading "." element from the path name.
309 dnl If we do not remove them, then another "./" will be prepended to
310 dnl the file name each time we use config.status, and the program name
311 dnl will get larger and larger. This would not be a problem, except
312 dnl that since progname gets recorded in all the Makefiles this script
313 dnl produces, move-if-change thinks they're different when they're
316 dnl It would be nice if we could put the ./ in a \( \) group and then
317 dnl apply the * operator to that, so we remove as many leading './././'s
318 dnl as are present, but some seds (like Ultrix's sed) don't allow you to
319 dnl apply * to a \( \) group. Bleah.
320 progname="`echo $0 | sed 's:^\./\./:\./:'`"
322 dnl -----------------------------
323 dnl Establish some default values
324 dnl -----------------------------
326 XE_APPEND(lib-src, MAKE_SUBDIR)
327 XE_APPEND(lib-src, INSTALL_ARCH_DEP_SUBDIR)
329 dnl run_in_place='no'
331 exec_prefix='${prefix}'
332 bindir='${exec_prefix}/bin'
333 dnl FSF 19.29 changes to:
334 dnl datadir='${prefix}/share'
335 dnl sharedstatedir='${prefix}/com'
336 dnl libexecdir='${exec_prefix}/libexec'
337 datadir='${prefix}/lib'
338 statedir='${prefix}/lib'
339 libdir='${exec_prefix}/lib'
340 mandir='${prefix}/man/man1'
341 infodir='${datadir}/${PROGNAME}-${version}/info'
344 lispdir='${datadir}/${PROGNAME}-${version}/lisp'
345 dnl sitelispdir='${datadir}/xemacs/site-lisp'
346 pkgdir='${datadir}/${PROGNAME}-${version}/lisp'
348 etcdir='${datadir}/${PROGNAME}-${version}/etc'
349 lockdir='${statedir}/${PROGNAME}/lock'
350 archlibdir='${libdir}/${PROGNAME}-${version}/${configuration}'
356 dnl const_is_losing is removed - we rely on AC_C_CONST instead.
357 dnl We accept (and ignore) the --const-is-losing option for compatibility.
358 dnl const_is_losing='yes'
360 cpp='' cppflags='' libs='' ldflags=''
365 with_system_malloc='default'
366 with_dlmalloc='default'
368 dnl use_assertions should be 'yes' by default. Too many people in this
369 dnl world have core dumps turned off by default or \"cannot find where the
370 dnl core file went\". At least we should get some useful output ...
372 dnl the following is set to yes or no later.
378 dnl ------------------
379 dnl Options Processing
380 dnl ------------------
382 define([USAGE_ERROR],
383 [(echo "$progname: Usage error:"
385 echo " Use \`$progname --help' to show usage.") >&2 && exit 1])
387 dnl Record all the arguments, so we can save them in config.status.
390 dnl Shell Magic: Quote the quoted arguments in ARGUMENTS. At a later date,
391 dnl in order to get the arguments back in $@, we have to do an
392 dnl 'eval set x "$quoted_arguments"; shift'
393 dnl # We use sed to turn embedded ' into '"'"'. I truly hate sh quoting.
394 quoted_sed_magic=s/"'"/"'"'"'"'"'"'"'"/g
398 -no-create | --no-create | --no-creat | --no-crea | --no-cre \
399 | --no-cr | --no-c) ;;
400 -no-recursion | --no-recursion | --no-recursio | --no-recursi \
401 | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
403 quoted_i="`echo '' $i | sed -e 's:^ ::' -e $quoted_sed_magic`"
404 quoted_arguments="$quoted_arguments '$quoted_i'" ;;
408 dnl Do not use shift -- that destroys the argument list, which autoconf needs
409 dnl to produce config.status. It turns out that "set - $arguments" does not
411 dnl However, it also turns out that many shells cannot expand ${10} at all.
412 dnl So using an index variable does not work either. It is possible to use
413 dnl some shell magic to make 'set x "$arguments"; shift' work portably.
414 while test $# != 0; do
417 --no-create|--no-recursion) ;;
418 dnl Anything starting with a hyphen we assume is an option.
420 dnl Separate the switch name from the value it is being given.
423 opt=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*\([[^=]]*\)=.*$:\1:'`
424 val=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*[[^=]]*=\(.*\)$:\1:'`
427 dnl special case these strings since echo may silently eat them:
428 dnl --help ) opt=help val=yes valomitted=yes ;;
429 dnl --version ) opt=version val=yes valomitted=yes ;;
430 dnl -e ) opt=e val=yes valomitted=yes ;;
431 dnl -E ) opt=E val=yes valomitted=yes ;;
432 dnl -n ) opt=n val=yes valomitted=yes ;;
434 dnl If FOO is a boolean argument, --FOO is equivalent to
435 dnl --FOO=yes. Otherwise, the value comes from the next
436 dnl argument - see below.
437 opt=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*\(.*\)$:\1:'`
438 val="yes" valomitted=yes
442 dnl translate "-" in option string to "_"
444 opt="`echo '' $opt | sed -e 's:^ ::' | tr - _`"
446 dnl Support --without-FOO as a synonym for --with-FOO=no
447 case "${valomitted}-${opt}" in yes-without_* )
448 opt=`echo $opt | sed 's/without/with/'`
449 valomitted="no" val="no" ;;
452 dnl Process the option.
455 dnl Process (many) boolean options
506 use_minimal_tagbits | \
507 use_indexed_lrecord_implementation | \
510 memory_usage_stats | \
511 with_clash_detection | \
514 dnl Make sure the value given was either "yes" or "no".
516 y | ye | yes ) val=yes ;;
518 * ) USAGE_ERROR("The \`--$optname' option requires a boolean value: \`yes' or \`no'.") ;;
520 eval "$opt=\"$val\"" ;;
523 dnl Options that take a user-supplied value, as in --puresize=8000000
524 dnl The cache-file option is ignored (for compatibility with other configures)
541 site_runtime_libraries )
542 dnl If the value was omitted, get it from the next argument.
543 if test "$valomitted" = "yes" ; then
544 dnl Get the next argument from the argument list, if there is one.
545 if test "$#" = 0 ; then
546 USAGE_ERROR("The \`--$optname' option requires a value.");
553 dnl Options that take "yes", "no", or "default" values
556 with_debug_malloc | use_debug_malloc | \
557 with_system_malloc | use_system_malloc )
559 y | ye | yes ) val=yes ;;
561 d | de | def | defa | defau | defaul | default ) val=default ;;
562 * ) USAGE_ERROR(["The \`--$optname' option requires one of these values:
563 \`yes', \`no', or \`default'."]) ;;
565 case "$opt" in use_* ) opt="`echo $opt | sed s/use/with/`" ;; esac
569 dnl Has the user requested database support?
571 with_database_berkdb=no
573 with_database_gnudbm=no
574 for x in `echo "$val" | sed -e 's/,/ /g'` ; do
577 b | be | ber | berk | berkd | berkdb ) with_database_berkdb=yes ;;
578 d | db | dbm ) with_database_dbm=yes ;;
579 g | gn | gnu | gnud | gnudb | gnudbm ) with_database_gnudbm=yes ;;
580 * ) USAGE_ERROR(["The \`--$optname' option value
581 must be either \`no' or a comma-separated list
582 of one or more of \`berkdb', \`dbm', or \`gnudbm'."]) ;;
585 if test "$with_database_dbm" = "yes" -a \
586 "$with_database_gnudbm" = "yes"; then
587 USAGE_ERROR("Only one of \`dbm' and \`gnudbm' may be specified
588 with the \`--$optname' option.")
592 dnl Has the user requested sound support?
594 dnl value can be native, nas or both. yes is allowed
595 dnl as a backwards compatible synonym for native
597 y | ye | yes ) val=native ;;
598 n | no | non | none ) val=no;;
599 na | nat | nati | nativ | native ) val=native ;;
600 ne | net | neta | netau | netaud | netaudi | netaudio | nas ) val=nas ;;
601 b | bo | bot | both ) val=both;;
602 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
603 \`native', \`nas', \`both', or \`none'."]) ;;
608 dnl Has the user requested XIM support?
611 y | ye | yes ) val=yes ;;
612 n | no | non | none ) val=no ;;
613 x | xl | xli | xlib ) val=xlib ;;
614 m | mo | mot | moti | motif ) val=motif ;;
615 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
616 \`motif', \`xlib', \`yes', or \`no'."]) ;;
621 dnl XFontSet support?
624 y | ye | yes ) val=yes ;;
625 n | no | non | none ) val=no ;;
626 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
627 \`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 * ) bogus_error_check=yes ;;
673 if test "$bogus_error_check" -o \
674 \( -n "$new_default" -a -n "$echeck_notfirst" \) ; then
675 if test "$error_check_default" = yes ; then
676 types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nobufpos', \`nogc', and \`nomalloc'."
678 types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', and \`malloc'."
680 USAGE_ERROR(["Valid types for the \`--$optname' option are:
682 elif test -n "$new_default" ; then
683 error_check_extents=$new_default
684 error_check_typecheck=$new_default
685 error_check_bufpos=$new_default
686 error_check_gc=$new_default
687 error_check_malloc=$new_default
688 new_default= # reset this
694 dnl Has the user tried to tell us where the X files are?
695 dnl I think these are dopey, but no less than three alpha
696 dnl testers, at large sites, have said they have their X files
697 dnl installed in odd places.
699 dnl Has the user specified one of the path options?
700 prefix | exec_prefix | bindir | datadir | statedir | libdir | \
701 mandir | infodir | infopath | lispdir | etcdir | lockdir | pkgdir | \
702 archlibdir | docdir | package_path )
703 dnl If the value was omitted, get it from the next argument.
704 if test "$valomitted" = "yes"; then
705 if test "$#" = 0; then
706 USAGE_ERROR("The \`--$optname' option requires a value.");
712 dnl You need to synchronize this with the way the
713 dnl default values are built.
715 lispdir ) AC_DEFINE(LISPDIR_USER_DEFINED) ;;
716 dnl sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
717 etcdir ) AC_DEFINE(ETCDIR_USER_DEFINED) ;;
718 infodir ) AC_DEFINE(INFODIR_USER_DEFINED) ;;
719 infopath ) AC_DEFINE(INFOPATH_USER_DEFINED) ;;
720 package_path ) AC_DEFINE(PACKAGE_PATH_USER_DEFINED) ;;
722 AC_DEFINE(INFODIR_USER_DEFINED)
723 AC_DEFINE(LISPDIR_USER_DEFINED)
724 AC_DEFINE(ETCDIR_USER_DEFINED) ;;
725 statedir | lockdir ) AC_DEFINE(LOCKDIR_USER_DEFINED) ;;
726 exec_prefix | libdir | archlibdir ) AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;;
730 dnl --no-create added by autoconf for use by config.status
733 dnl Has the user asked for some help?
734 "usage" | "help" ) ${PAGER-more} ${srcdir}/configure.usage; exit 0 ;;
736 dnl Has the user specified what toolkit to use for the menubars,
737 dnl scrollbar or dialogs?
738 "with_menubars" | "with_scrollbars" | "with_dialogs" )
740 l | lu | luc | luci | lucid ) val=lucid ;;
741 m | mo | mot | moti | motif ) val=motif ;;
742 athena3d | athena-3d ) val=athena3d ;;
743 a | at | ath | athe | athen | athena ) val=athena ;;
744 n | no | non | none ) val=no ;;
745 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
746 \`lucid', \`motif', \`athena', \`athena3d', or \`no'."]) ;;
751 dnl Fail on unrecognized arguments.
752 * ) USAGE_ERROR("Unrecognized option: $arg") ;;
757 dnl Assume anything with multiple hyphens is a configuration name.
758 *-*-*) configuration="$arg" ;;
760 dnl Anything else is an error
761 *) USAGE_ERROR("Unrecognized argument: $arg") ;;
766 dnl -------------------------
767 dnl Finish options processing
768 dnl -------------------------
770 dnl Several options are equivalent to, and override, environment variables.
771 test -n "$cpp" && CPP="$cpp"
772 test -n "$cppflags" && CPPFLAGS="$cppflags"
773 test -n "$libs" && LIBS="$libs"
774 test -n "$ldflags" && LDFLAGS="$ldflags"
776 dnl Get the arguments back. See the diatribe on Shell Magic above.
777 eval set x "$quoted_arguments"; shift
779 dnl --extra-verbose implies --verbose
780 test "$extra_verbose" = "yes" && verbose=yes
782 dnl Allow use of either ":" or spaces for lists of directories
783 define(COLON_TO_SPACE,
784 [case "$[$1]" in *:* [)] [$1]="`echo '' $[$1] | sed -e 's/^ //' -e 's/:/ /g'`";; esac])dnl
785 COLON_TO_SPACE(site_includes)
786 COLON_TO_SPACE(site_libraries)
787 COLON_TO_SPACE(site_prefixes)
788 COLON_TO_SPACE(site_runtime_libraries)
790 dnl with_x is an obsolete synonym for with_x11
791 test -n "$with_x" && with_x11="$with_x"
793 dnl --gung-ho=val is a synonym for
794 dnl --use-minimal-tagbits=val --use-indexed-lrecord-implementation=val
796 if test -n "$gung_ho"; then
797 test -z "$use_minimal_tagbits" && use_minimal_tagbits="$gung_ho"
798 test -z "$use_indexed_lrecord_implementation" && \
799 use_indexed_lrecord_implementation="$gung_ho"
801 if test "$use_minimal_tagbits" = "no"; then
802 test "$with_dlmalloc" = "yes" && \
803 USAGE_ERROR("--with-dlmalloc requires --use-minimal-tagbits")
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 Ignore useless run-in-place flag
820 if test "$run_in_place" = "yes"; then
821 AC_MSG_WARN("The --run-in-place option is ignored because it is unnecessary.")
824 dnl Find the source directory.
827 dnl If srcdir is not specified, see if "." or ".." might work.
829 for dir in "`echo $0 | sed 's|//|/|' | sed 's|/[[^/]]*$||'`" "." ".." ; do
830 if test -f "$dir/src/lisp.h" -a \
831 -f "$dir/lisp/version.el" ; then
836 if test -z "$srcdir" ; then
837 USAGE_ERROR(["Neither the current directory nor its parent seem to
838 contain the XEmacs sources. If you do not want to build XEmacs in its
839 source tree, you should run \`$progname' in the directory in which
840 you wish to build XEmacs, using the \`--srcdir' option to say where the
841 sources may be found."])
845 dnl Otherwise, check if the directory they specified is okay.
847 if test ! -f "$srcdir/src/lisp.h" -o \
848 ! -f "$srcdir/lisp/version.el" ; then
849 USAGE_ERROR(["The directory specified with the \`--srcdir' option,
850 \`$srcdir', doesn't seem to contain the XEmacs sources. You should
851 either run the \`$progname' script at the top of the XEmacs source
852 tree, or use the \`--srcdir' option to specify the XEmacs source directory."])
857 dnl ###########################################################################
858 if test -z "$configuration"; then
859 AC_MSG_CHECKING("host system type")
860 dnl Guess the configuration and remove 4th name component, if present.
861 if configuration=`${CONFIG_SHELL-/bin/sh} $srcdir/config.guess | \
862 sed '[s/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/]'` ; then
863 AC_MSG_RESULT($configuration)
865 AC_MSG_RESULT(unknown)
866 USAGE_ERROR(["XEmacs has not been ported to this host type.
867 Try explicitly specifying the CONFIGURATION when rerunning configure."])
873 dnl Make symlinks for etc, lisp, and info directories while the path
874 dnl is still relative. We do not symlink lock because someone may
875 dnl have stuck the source on a read-only partition. Instead we
876 dnl create it as an actual directory later on if it does not already
878 for dir in lisp etc man info; do
879 if test ! -d "$dir" ; then
880 echo Making symbolic link to "$srcdir/$dir"
881 ${LN_S} "$srcdir/$dir" "$dir"
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"
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`" ;;
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_beta_version"; 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 version="${version}-b${emacs_beta_version}"
934 AC_DEFINE_UNQUOTED(EMACS_BETA_VERSION, $emacs_beta_version)
936 AC_DEFINE_UNQUOTED(XEMACS_CODENAME, "$xemacs_codename")
937 AC_DEFINE_UNQUOTED(EMACS_VERSION, "$version")
939 if test "$with_infodock" = "yes"; then
940 if test ! -f ../ID-INSTALL; then
941 echo "Cannot build InfoDock without InfoDock sources"
946 if test "$with_infodock" = "yes"; then
947 dnl InfoDock version numbers. XEmacs will use the same style of numbering
948 dnl after the release of XEmacs 21.0.
949 AC_DEFINE_UNQUOTED(INFODOCK_MAJOR_VERSION, $infodock_major_version)
950 AC_DEFINE_UNQUOTED(INFODOCK_MINOR_VERSION, $infodock_minor_version)
951 AC_DEFINE_UNQUOTED(INFODOCK_BUILD_VERSION, $infodock_build_version)
952 version=${infodock_major_version}.${infodock_minor_version}.${infodock_build_version}
954 CPPFLAGS="$CPPFLAGS -DINFODOCK"
959 dnl ----------------------------------
960 dnl Error checking and debugging flags
961 dnl ----------------------------------
962 dnl Error checking default to "yes" in beta versions, to "no" in releases.
963 dnl Same goes for --debug and --extra-verbosity.
964 if test -n "$emacs_beta_version"; then beta=yes; else beta=no; fi
965 test "${error_check_extents=$beta}" = yes && AC_DEFINE(ERROR_CHECK_EXTENTS)
966 test "${error_check_typecheck=$beta}" = yes && AC_DEFINE(ERROR_CHECK_TYPECHECK)
967 test "${error_check_bufpos=$beta}" = yes && AC_DEFINE(ERROR_CHECK_BUFPOS)
968 test "${error_check_gc=$beta}" = yes && AC_DEFINE(ERROR_CHECK_GC)
969 test "${error_check_malloc=$beta}" = yes && AC_DEFINE(ERROR_CHECK_MALLOC)
970 dnl debug=yes must be set when error checking is present. This should be
972 dnl debug implies other options
973 if test "${debug:=$beta}" = "yes"; then
974 use_assertions=yes memory_usage_stats=yes
976 AC_DEFINE(DEBUG_XEMACS)
978 test "$use_assertions" = "yes" && AC_DEFINE(USE_ASSERTIONS)
979 test "$memory_usage_stats" = "yes" && AC_DEFINE(MEMORY_USAGE_STATS)
981 dnl ------------------------------
982 dnl Determine the s&m files to use
983 dnl ------------------------------
984 dnl Given the configuration name, set machfile and opsysfile to the
985 dnl names of the m/*.h and s/*.h files we should use.
987 dnl Canonicalize the configuration name.
988 AC_CHECKING("the configuration name")
989 dnl allow -workshop suffix on configuration name
990 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'`
991 if canonical=`$srcdir/config.sub "$internal_configuration"` ; then : ; else
995 dnl If you add support for a new configuration, add code to this
996 dnl switch statement to recognize your configuration name and select
997 dnl the appropriate operating system and machine description files.
999 dnl You would hope that you could choose an m/*.h file pretty much
1000 dnl based on the machine portion of the configuration name, and an s-
1001 dnl file based on the operating system portion. However, it turns out
1002 dnl that each m/*.h file is pretty manufacturer-specific - for
1003 dnl example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are
1004 dnl all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
1005 dnl machines. So we basically have to have a special case for each
1006 dnl configuration name.
1008 dnl As far as handling version numbers on operating systems is
1009 dnl concerned, make sure things will fail in a fixable way. If
1010 dnl /etc/MACHINES says nothing about version numbers, be
1011 dnl prepared to handle anything reasonably. If version numbers
1012 dnl matter, be sure /etc/MACHINES says something about it.
1014 dnl Eric Raymond says we should accept strings like "sysvr4" to mean
1015 dnl "System V Release 4"; he writes, "The old convention encouraged"
1016 dnl "confusion between `system' and `release' levels'."
1020 dnl Straightforward machine determination
1021 case "$canonical" in
1022 sparc-*-* ) machine=sparc ;;
1023 alpha*-*-* ) machine=alpha ;;
1024 vax-*-* ) machine=vax ;;
1025 mips-dec-* ) machine=pmax ;;
1026 mips-sgi-* ) machine=iris4d ;;
1027 romp-ibm-* ) machine=ibmrt ;;
1028 rs6000-ibm-aix* ) machine=ibmrs6000 ;;
1029 powerpc-ibm-aix* ) machine=ibmrs6000 ;;
1030 powerpc*-* ) machine=powerpc ;;
1031 hppa-*-* ) machine=hp800 ;;
1032 m88k-dg-* ) machine=aviion ;;
1033 m68*-sony-* ) machine=news ;;
1034 mips-sony-* ) machine=news-risc ;;
1035 clipper-* ) machine=clipper ;;
1038 dnl Straightforward OS determination
1039 case "$canonical" in
1040 *-*-linux* ) opsys=linux ;;
1041 *-*-netbsd* ) opsys=netbsd ;;
1042 *-*-openbsd* ) opsys=openbsd ;;
1043 *-*-nextstep* ) opsys=nextstep ;;
1044 *-*-vms ) opsys=vms ;;
1047 *-dec-osf1.3 | *-dec-osf2* ) opsys=decosf1-3 ;;
1048 *-dec-osf1.2 | *-dec-osf1* ) opsys=decosf1-2 ;;
1049 *-dec-osf3.[[2-9]] ) opsys=decosf3-2 ;;
1050 *-dec-osf3* ) opsys=decosf3-1 ;;
1051 *-dec-osf4* ) opsys=decosf4-0 ;;
1054 *-*-ultrix[[0-3]].* | *-*-ultrix4.0* ) opsys=bsd4-2 ;;
1055 *-*-ultrix4.[[12]]* ) opsys=bsd4-3 ;;
1056 *-*-ultrix* ) opsys=ultrix4-3 ;;
1059 *-*-aix3.1* ) opsys=aix3-1 ;;
1060 *-*-aix3.2.5 ) opsys=aix3-2-5 ;;
1061 *-*-aix3* ) opsys=aix3-2 ;;
1062 *-*-aix4.0* ) opsys=aix4 ;;
1063 *-*-aix4.1* ) opsys=aix4-1 ;;
1064 *-*-aix4* ) opsys=aix4-2 ;;
1066 dnl Other generic OSes
1067 *-gnu* ) opsys=gnu ;;
1068 *-*-bsd4.[[01]] ) opsys=bsd4-1 ;;
1069 *-*-bsd4.2 ) opsys=bsd4-2 ;;
1070 *-*-bsd4.3 ) opsys=bsd4-3 ;;
1071 *-*-aos4.2 ) opsys=bsd4-2 ;;
1072 *-*-aos* ) opsys=bsd4-3 ;;
1073 *-*-sysv0 | *-*-sysvr0 ) opsys=usg5-0 ;;
1074 *-*-sysv2 | *-*-sysvr2 ) opsys=usg5-2 ;;
1075 *-*-sysv2.2 | *-*-sysvr2.2 ) opsys=usg5-2-2 ;;
1076 *-*-sysv3* | *-*-sysvr3* ) opsys=usg5-3 ;;
1077 *-*-sysv4.1* | *-*-sysvr4.1* )opsys=usg5-4 NON_GNU_CPP=/usr/lib/cpp ;;
1078 *-*-sysv4.[[2-9]]* | *-sysvr4.[[2-9]]* )
1079 if test -z "$NON_GNU_CPP" ; then
1080 for prog in "/usr/ccs/lib/cpp" "/lib/cpp"; do
1081 if test -f "$prog"; then NON_GNU_CPP="$prog"; break; fi
1085 *-sysv4* | *-sysvr4* ) opsys=usg5-4 ;;
1086 *-*-mach_bsd4.3* ) opsys=mach-bsd4-3 ;;
1089 case "$canonical" in
1093 case "$canonical" in
1094 i[[3-9]]86-*-netbsd*) machine=intel386 ;;
1095 hp300-*-netbsd* | amiga-*-netbsd* | sun3-*-netbsd* | mac68k-*-netbsd* | da30-*-netbsd* | m68k-*-netbsd* )
1096 dnl Yes, this is somewhat bogus.
1097 machine=hp9000s300 ;;
1098 pc532-*-netbsd* | ns32k-*-netbsd* ) machine=ns32000 ;;
1099 pmax-*-netbsd* | mips-*-netbsd* ) machine=pmax ;;
1105 case "${canonical}" in
1106 alpha*-*-openbsd*) machine=alpha ;;
1107 i386-*-openbsd*) machine=intel386 ;;
1108 m68k-*-openbsd*) machine=hp9000s300 ;;
1109 mipsel-*-openbsd*) machine=pmax ;;
1110 ns32k-*-openbsd*) machine=ns32000 ;;
1111 sparc-*-openbsd*) machine=sparc ;;
1112 vax-*-openbsd*) machine=vax ;;
1117 arm-acorn-riscix1.1* ) machine=acorn opsys=riscix1-1 ;;
1118 arm-acorn-riscix1.2* | arm-acorn-riscix ) machine=acorn opsys=riscix1-2 ;;
1120 dnl Alliant machines
1121 fx80-alliant-* ) machine=alliant4 opsys=bsd4-2 ;;
1122 i860-alliant-* ) machine=alliant-2800 opsys=bsd4-3 ;;
1125 m68*-altos-sysv* ) machine=altos opsys=usg5-2 ;;
1128 580-amdahl-sysv* ) machine=amdahl opsys=usg5-2-2 ;;
1130 dnl Apollo, Domain/OS
1131 m68*-apollo-* ) machine=apollo opsys=bsd4-3 ;;
1133 dnl AT&T 3b2, 3b5, 3b15, 3b20
1134 we32k-att-sysv* ) machine=att3b opsys=usg5-2-2 ;;
1136 dnl AT&T 3b1 - The Mighty Unix PC!
1137 m68*-att-sysv* ) machine=7300 opsys=usg5-2-2 ;;
1140 rs6000-bull-bosx* ) machine=ibmrs6000 opsys=aix3-2 ;; # dpx20
1141 m68*-bull-sysv3* ) machine=dpx2 opsys=usg5-3 ;; # dpx2
1142 m68*-bull-sysv2* ) machine=sps7 opsys=usg5-2 ;; # sps7
1144 dnl CCI 5/32, 6/32 -- see "Tahoe".
1147 celerity-celerity-bsd* ) machine=celerity opsys=bsd4-2 ;;
1150 *-convex-bsd* | *-convex-convexos* )
1151 machine=convex opsys=bsd4-3
1152 NON_GNU_CPP="cc -E -P"
1156 i[[3-9]]86-cubix-sysv* ) machine=intel386 opsys=usg5-3 ;;
1158 dnl Data General AViiON Machines
1159 i586-dg-dgux*R4* | i586-dg-dgux5.4.4* ) machine=aviion opsys=dgux5-4r4 ;;
1160 m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* ) opsys=dgux5-4r3 ;;
1161 m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* ) opsys=dgux5-4r2 ;;
1162 m88k-dg-dgux* ) opsys=dgux ;;
1164 dnl Motorola Delta machines
1165 m68k-motorola-sysv* | m68000-motorola-sysv* ) machine=delta opsys=usg5-3 ;;
1166 m88k-motorola-sysv4* )
1167 dnl jbotte@bnr.ca says that UNIX_System_V <hostName> 4.0 R40V4.3 m88k mc88110
1168 dnl needs POSIX_SIGNALS and therefore needs usg5-4-2.
1169 dnl I hope there are not other 4.0 versions for this machine
1170 dnl which really need usg5-4 instead.
1171 machine=delta88k opsys=usg5-4-2
1173 m88k-motorola-sysv* | m88k-motorola-m88kbcs* ) machine=delta88k opsys=usg5-3 ;;
1176 m68*-dual-sysv* ) machine=dual opsys=usg5-2 ;;
1177 m68*-dual-uniplus* ) machine=dual opsys=unipl5-2 ;;
1180 ns16k-encore-bsd* ) machine=ns16000 opsys=umax ;;
1182 dnl Gould Power Node and NP1
1183 pn-gould-bsd4.2* ) machine=gould opsys=bsd4-2 ;;
1184 pn-gould-bsd4.3* ) machine=gould opsys=bsd4-3 ;;
1185 np1-gould-bsd* ) machine=gould-np1 opsys=bsd4-3 ;;
1187 dnl Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000
1188 dnl as far as XEmacs is concerned).
1190 dnl Build needs to be different on 7.0 and later releases
1191 case "`uname -r`" in
1192 [[56]].[[0-9]] ) machine=nh4000 opsys=cxux ;;
1193 [[7]].[[0-9]] ) machine=nh4000 opsys=cxux7 ;;
1195 NON_GNU_CPP="/lib/cpp"
1197 dnl Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
1198 m68k-harris-cxux* ) machine=nh3000 opsys=cxux ;;
1199 dnl Harris power pc NightHawk running Power UNIX (Series 6000)
1200 powerpc-harris-powerunix ) machine=nh6000 opsys=powerunix NON_GNU_CPP="cc -Xo -E -P" ;;
1202 dnl Honeywell XPS100
1203 xps*-honeywell-sysv* ) machine=xps100 opsys=usg5-2 ;;
1205 dnl HP 9000 series 200 or 300
1206 m68*-hp-bsd* ) machine=hp9000s300 opsys=bsd4-3 ;;
1210 dnl Figure out machine and opsys orthogonally
1211 case "$canonical" in
1212 m68* ) machine=hp9000s300 ;;
1213 hppa* ) machine=hp800 ;;
1216 case "$canonical" in
1217 *-hp-hpux7* ) opsys=hpux ;;
1218 *-hp-hpux8* ) opsys=hpux8 ;;
1219 *-hp-hpux9* ) opsys=hpux9 ;;
1220 *-hp-hpux10* ) opsys=hpux10 ;;
1221 *-hp-hpux11* ) opsys=hpux11 ;;
1225 dnl HP has a broken "strcat"
1226 case "$opsys" in hpux9 | hpux10 ) XE_ADD_OBJS(strcat.o) ;; esac
1228 if test "$opsys" = "hpux10" -o "$opsys" = "hpux11"; then \
1229 ansi_flag="-Ae"; else ansi_flag="-Aa"; fi
1230 NON_GNU_CC="cc $ansi_flag" NON_GNU_CPP="cc $ansi_flag -E"
1232 case "$canonical" in *-hp-hpux*shr* ) opsys="${opsys}-shr" ;; esac
1236 orion-orion-bsd* ) machine=orion opsys=bsd4-2 ;;
1237 clipper-orion-bsd* ) machine=orion105 opsys=bsd4-2 ;;
1240 i[[3-9]]86-ibm-aix1.1* ) machine=ibmps2-aix opsys=usg5-2-2 ;;
1241 i[[3-9]]86-ibm-aix1.[[23]]* | i[[3-9]]86-ibm-aix* ) machine=ibmps2-aix opsys=usg5-3 ;;
1242 i370-ibm-aix*) machine=ibm370aix opsys=usg5-3 ;;
1243 romp-ibm-aos* ) opsys=bsd4-3 ;;
1244 romp-ibm-bsd* ) opsys=bsd4-3 ;;
1245 romp-ibm-mach* ) opsys=mach-bsd4-3 ;;
1247 dnl Integrated Solutions "Optimum V"
1248 m68*-isi-bsd4.2* ) machine=isi-ov opsys=bsd4-2 ;;
1249 m68*-isi-bsd4.3* ) machine=isi-ov opsys=bsd4-3 ;;
1251 dnl Intel 386 machines where we do care about the manufacturer
1252 i[[3-9]]86-intsys-sysv* ) machine=is386 opsys=usg5-2-2 ;;
1255 i[[3-9]]86-prime-sysv* ) machine=i386 opsys=usg5-3 ;;
1257 dnl Sequent Symmetry running Dynix
1258 i[[3-9]]86-sequent-bsd* ) machine=symmetry opsys=bsd4-3 ;;
1260 dnl Sequent Symmetry running DYNIX/ptx
1261 i[[3-9]]86-sequent-ptx* ) machine=sequent-ptx opsys=ptx NON_GNU_CPP="/lib/cpp" ;;
1263 dnl Unspecified sysv on an ncr machine defaults to svr4.2.
1264 dnl (Plain usg5-4 does not turn on POSIX signals, which we need.)
1265 i[[3-9]]86-ncr-sysv* ) machine=ncr386 opsys=usg5-4-2 ;;
1267 dnl Intel Paragon OSF/1
1268 i860-intel-osf1* ) machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp ;;
1271 i860-*-sysv4* ) machine=i860 opsys=usg5-4 NON_GNU_CC="/bin/cc" NON_GNU_CPP="/usr/ccs/lib/cpp" ;;
1273 dnl Masscomp machines
1274 m68*-masscomp-rtu* ) machine=masscomp opsys=rtu ;;
1276 dnl Megatest machines
1277 m68*-megatest-bsd* ) machine=mega68 opsys=bsd4-2 ;;
1279 dnl Workstations sold by MIPS
1280 dnl This is not necessarily all workstations using the MIPS processor -
1281 dnl Irises are produced by SGI, and DECstations by DEC.
1282 mips-mips-usg* ) machine=mips4 ;;
1285 NON_GNU_CC="cc -systype bsd43"
1286 NON_GNU_CPP="cc -systype bsd43 -E"
1287 case "$canonical" in
1288 mips-mips-riscos4* ) opsys=bsd4-3 ;;
1289 mips-mips-riscos5* ) opsys=riscos5 ;;
1292 mips-mips-bsd* ) machine=mips opsys=bsd4-3 ;;
1293 mips-mips-* ) machine=mips opsys=usg5-2-2 ;;
1296 m68*-next-* | m68k-*-nextstep* ) machine=m68k opsys=nextstep ;;
1298 dnl The complete machine from National Semiconductor
1299 ns32k-ns-genix* ) machine=ns32000 opsys=usg5-2 ;;
1302 m68*-ncr-sysv2* | m68*-ncr-sysvr2* ) machine=tower32 opsys=usg5-2-2 ;;
1303 m68*-ncr-sysv3* | m68*-ncr-sysvr3* ) machine=tower32v3 opsys=usg5-3 ;;
1305 dnl Nixdorf Targon 31
1306 m68*-nixdorf-sysv* ) machine=targon31 opsys=usg5-2-2 ;;
1309 m68*-nu-sysv* ) machine=nu opsys=usg5-2 ;;
1312 m68*-plexus-sysv* ) machine=plexus opsys=usg5-2 ;;
1314 dnl Pyramid machines
1315 pyramid-pyramid-bsd* ) machine=pyramid opsys=bsd4-2 ;;
1318 ns32k-sequent-bsd4.2* ) machine=sequent opsys=bsd4-2 ;;
1319 ns32k-sequent-bsd4.3* ) machine=sequent opsys=bsd4-3 ;;
1322 mips-siemens-sysv* | mips-sni-sysv*)
1323 machine=mips-siemens opsys=usg5-4
1324 NON_GNU_CC=/usr/ccs/bin/cc
1325 NON_GNU_CPP=/usr/ccs/lib/cpp
1328 dnl Silicon Graphics machines
1329 dnl Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
1330 m68*-sgi-iris3.5* ) machine=irist opsys=iris3-5 ;;
1331 m68*-sgi-iris3.6* | m68*-sgi-iris*) machine=irist opsys=iris3-6 ;;
1333 mips-sgi-irix3.* ) opsys=irix3-3 ;;
1334 mips-sgi-irix4.* ) opsys=irix4-0 ;;
1335 mips-sgi-irix6* ) opsys=irix6-0 ;;
1336 mips-sgi-irix5.1* ) opsys=irix5-1 ;;
1337 mips-sgi-irix5.2* ) opsys=irix5-2 ;;
1338 mips-sgi-irix5.* ) opsys=irix5-3 ;;
1339 mips-sgi-irix* ) opsys=irix5-0 ;;
1342 *-sony-newsos[[34]]* | *-sony-news[[34]]* ) opsys=bsd4-3 ;;
1343 *-sony-news* ) opsys=newsos5 ;;
1346 m68*-stride-sysv* ) machine=stride opsys=usg5-2 ;;
1349 *-*-solaris* | *-*-sunos* | *-sun-mach* | *-sun-bsd* )
1351 case "$canonical" in
1352 m68*-sunos1* ) machine=sun1 ;;
1353 m68*-sunos2* ) machine=sun2 ;;
1354 m68* ) machine=sun3 ;;
1355 i*86*-sun-sunos[[34]]* ) machine=sun386 ;;
1356 i*86-*-* ) machine=intel386 ;;
1357 rs6000* ) machine=rs6000 ;;
1360 dnl Make $canonical even more so.
1361 case "$canonical" in *-sunos5*)
1362 canonical=`echo $canonical | sed -e s/sunos5/solaris2/`;;
1365 dnl On SunOS 4, use /usr/lib/cpp, sans dynodump, /bin/ranlib
1366 dnl On SunOS 5, use cc -E, need dynodump, RANLIB not needed
1367 dnl But, SunOS 5.6 no longer needs dynodump because it has a similar
1368 dnl function integrated.
1369 case "$canonical" in
1371 #test -f /usr/lib/cpp && NON_GNU_CPP=/usr/lib/cpp ;;
1374 #test -f /usr/ccs/lib/cpp && NON_GNU_CPP=/usr/ccs/lib/cpp
1378 case "$canonical" in
1381 os_release=`uname -r | sed -e 's/^\([[0-9]]\)\.\([[0-9]]\).*/\1\2/'`
1382 AC_DEFINE_UNQUOTED(OS_RELEASE, $os_release) ;;
1384 dnl The last Sun386 ran 4.0.
1385 i*86-*-sunos4* ) opsys=sunos4-0 ;;
1386 *-sunos4.0* ) opsys=sunos4-0 ;;
1387 *-sunos4.1.2* ) opsys=sunos4-1-2 ;;
1388 *-sunos4.1.3* ) opsys=sunos4-1-3 ;;
1389 *-sunos4.1.[[4-9]]* ) opsys=sunos4-1-4 ;;
1390 *-sunos4* | *-sunos ) opsys=sunos4-1 ;;
1391 *-mach* ) opsys=mach-bsd4-3 ;;
1395 case "$canonical" in *-sunos4*shr* ) opsys="${opsys}-shr" ;; esac
1397 dnl Watch out for a compiler guaranteed not to work.
1398 test "$opsys $CC" = "sol2 /usr/ucb/cc" && CC=""
1402 m68*-tadpole-sysv* ) machine=tad68k opsys=usg5-3 ;;
1405 tahoe-tahoe-bsd4.2* ) machine=tahoe opsys=bsd4-2 ;;
1406 tahoe-tahoe-bsd4.3* ) machine=tahoe opsys=bsd4-3 ;;
1408 dnl Tandem Integrity S2
1409 mips-tandem-sysv* ) machine=tandem-s2 opsys=usg5-3 ;;
1412 m88k-tektronix-sysv3* ) machine=tekxd88 opsys=usg5-3 ;;
1414 dnl Tektronix 16000 box (6130?)
1415 ns16k-tektronix-bsd* ) machine=ns16000 opsys=bsd4-2 ;;
1417 dnl src/m/tek4300.h hints that this is a m68k machine.
1418 m68*-tektronix-bsd* ) machine=tek4300 opsys=bsd4-3 ;;
1421 titan-titan-sysv* ) machine=titan opsys=usg5-3 ;;
1423 dnl Ustation E30 (SS5E)
1424 m68*-unisys-uniplus* ) machine=ustation opsystem=unipl5-2 ;;
1428 case "$canonical" in
1429 *-sysv[[01]]* | *-sysvr[[01]]* ) opsys=usg5-0 ;;
1430 *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;;
1431 *-mach* ) opsys=mach-bsd4-3 ;;
1436 ns16k-whitechapel-* ) machine=mg1 ;;
1439 m68*-wicat-sysv* ) machine=wicat opsys=usg5-2 ;;
1441 dnl Intel 386 machines where we do not care about the manufacturer
1444 case "$canonical" in
1445 *-isc1.* | *-isc2.[[01]]* ) opsys=386-ix ;;
1446 *-isc2.2* ) opsys=isc2-2 ;;
1447 *-isc4.0* ) opsys=isc4-0 ;;
1448 *-isc4.* ) opsys=isc4-1
1449 GCC_TEST_OPTIONS=-posix
1450 NON_GCC_TEST_OPTIONS=-Xp
1452 *-isc* ) opsys=isc3-0 ;;
1453 *-esix5* ) opsys=esix5r4 NON_GNU_CPP=/usr/lib/cpp ;;
1454 *-esix* ) opsys=esix ;;
1455 *-mach* ) opsys=mach-bsd4-3 ;;
1456 *-xenix* ) opsys=xenix ;;
1457 *-sco3.2v4* ) opsys=sco4 NON_GNU_CPP=/lib/cpp ;;
1458 *-bsd386* | *-bsdi1* ) opsys=bsd386 ;;
1459 *-bsdi3* ) opsys=bsdos3 ;;
1460 *-bsdi2.1* ) opsys=bsdos2-1 ;;
1461 *-bsdi2* ) opsys=bsdos2 ;;
1462 *-sco3.2v5* ) opsys=sco5 ;
1463 dnl This is a pain. Like the current USL cc, SCO cc -E
1464 dnl tokenizes as it preprocesses, making configure very
1465 dnl unhappy. Unfortunately, /lib/cpp does not understand
1466 dnl flags like "-b elf", so we have to cheat in order to
1467 dnl pick up the right defines for UNEXEC from the s-file.
1468 dnl 01/05/95 robertl@dgii.com
1469 if test "$dynamic" = "yes" ; then
1470 NON_GNU_CPP="/lib/cpp -D_XOPEN_SOURCE -D_SCO_ELF" ;
1472 NON_GNU_CPP="/lib/cpp -D_XOPEN_SOURCE" ;
1474 *-386bsd* ) opsys=386bsd ;;
1475 *-freebsd* ) opsys=freebsd ;;
1476 *-nextstep* ) opsys=nextstep ;;
1477 *-pc-cygwin32 ) opsys=cygwin32 ;;
1478 dnl Otherwise, we fall through to the generic opsys code at the bottom.
1483 m68k-*-linux* ) machine=m68k opsys=linux ;;
1487 if test -z "$machine" -o -z "$opsys"; then
1488 (echo "$progname: XEmacs hasn't been ported to \`$canonical' systems."
1489 echo "$progname: Check \`etc/MACHINES' for recognized configuration names."
1494 if test -z "$dynamic"; then
1496 hpux* | sunos4* | sco5 ) dynamic=no ;;
1500 if test "$dynamic" = "yes"; then
1502 hpux* | sunos4* | sco5 ) opsys="${opsys}-shr" ;;
1503 decosf* ) ld_call_shared="-call_shared" ;;
1505 else dnl "$dynamic" = "no"
1508 echo "Static linking is not supported on Solaris 2."
1509 echo "Rerun configure without specifying --dynamic=no."
1511 linux ) ld_call_shared="-Bstatic" ;;
1512 decosf* ) ld_call_shared="-non_shared" ;;
1516 dnl Use xlc by default on AIX
1517 case "$opsys" in aix*) NON_GNU_CC=xlc ;; esac
1519 stack_trace_eye_catcher=`echo ${PROGNAME}_${version}_${canonical} | sed 'y/.-/__/'`
1520 AC_DEFINE_UNQUOTED(STACK_TRACE_EYE_CATCHER, $stack_trace_eye_catcher)
1522 machfile="m/${machine}.h"
1523 opsysfile="s/${opsys}.h"
1525 dnl --------------------------------------------------
1526 dnl Determine the compiler, set up for feature testing
1527 dnl --------------------------------------------------
1529 dnl Sun Development environment support
1530 test "$with_sparcworks" = "yes" && with_workshop=yes # compatibility alias
1531 XE_CHECK_FEATURE_DEPENDENCY(workshop, tooltalk)
1532 if test "$with_workshop" = "yes"; then
1534 XE_ADD_OBJS(sunpro.o)
1537 if test "$with_clash_detection" = "yes"; then
1538 AC_DEFINE(CLASH_DETECTION)
1539 XE_ADD_OBJS(filelock.o)
1542 dnl Choose a compiler from (in order)
1543 dnl --compiler, env var CC, with_gcc=no && ${NON_GNU_CC:-cc}, AC_PROG_CC
1544 test -n "$compiler" && CC="$compiler"
1545 if test "$with_gcc" = "no"; then dnl Try to find a non-gcc compiler
1546 case "$CC" in "" | *gcc* ) CC="${NON_GNU_CC-cc}" ;; esac
1549 dnl If we don't set CFLAGS here, AC_PROG_CC will set it.
1550 dnl But we know better what's good for us, so we do our own
1551 dnl computation of real CFLAGS later.
1552 dnl --cflags overrides environment variable CFLAGS
1553 test "${cflags-unset}" != unset && CFLAGS="$cflags"
1554 if test "${CFLAGS-unset}" != unset
1555 then cflags_specified=yes;
1556 else cflags_specified=no;
1559 xe_save_CFLAGS="$CFLAGS"
1561 AC_PROG_CC dnl Autoconf has its own magic for compiler autodetection
1563 dnl Retry using random guesswork if AC_PROG_CC got it wrong...
1564 if test "$with_gcc" = "no" -a "$GCC" = "yes"; then
1567 elif test "$with_gcc" = "yes" -a "$GCC" != "yes" ; then
1571 CFLAGS="$xe_save_CFLAGS"
1573 dnl Figure out what C preprocessor to use.
1575 dnl On Sun systems, people sometimes set up the variable CPP
1576 dnl with a value that is a directory, not an executable at all.
1577 dnl Detect that case, and ignore that value.
1578 test -n "$CPP" -a -d "$CPP" && CPP=
1580 test -n "$NON_GNU_CPP" -a "$GCC" != "yes" -a -z "$CPP" && CPP="$NON_GNU_CPP"
1586 AC_MSG_CHECKING(for GNU libc)
1587 AC_TRY_COMPILE([#include <features.h>],[
1588 #if ! (defined __GLIBC__ || defined __GNU_LIBRARY__)
1589 #error Not a GNU libc system :-(
1590 ******* ======= ******** &&&&&&&&
1592 ], have_glibc=yes, have_glibc=no)
1593 AC_MSG_RESULT($have_glibc)
1594 dnl I'm tired of pop being broken with GLIBC -slb
1595 dnl Well. then why not fix fucking pop?
1596 test "$have_glibc" = "yes" && AC_DEFINE(_GNU_SOURCE)
1599 dnl Identify compilers to enable compiler-specific hacks.
1600 dnl Add support for other compilers HERE!
1601 dnl GCC is already identified elsewhere.
1602 AC_TRY_RUN([int main () {
1603 #if defined __SUNPRO_C
1605 #elif defined __DECC
1611 [case "$conftest_rc" in
1612 11) echo "You appear to be using the SunPro C compiler."; __SUNPRO_C=yes ;;
1613 12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;;
1617 dnl case "$canonical" in
1618 dnl *-sun-sunos* ) test "$CPP" = "acc -E" && CPP="acc -E -Xs" ;;
1621 dnl --------------------------------------------------------------------
1622 dnl Extract some information from the operating system and machine files
1623 dnl --------------------------------------------------------------------
1625 echo "Extracting information from the machine- and system-dependent headers..."
1627 dnl It is not important that this name contain the PID; you cannot run
1628 dnl two configures in the same directory and have anything work
1630 tempcname="conftest.c"
1632 dnl CPP_to_sh(CPP_SYMBOL, SH_VAR, DEFAULT_VALUE)
1635 [#]define [$1]ifelse([$3],,, [ "$3"])
1637 configure___ [$2]=[$1]
1640 dnl CPP_boolean_to_sh(CPP_SYMBOL, SH_VAR)
1641 define([CPP_boolean_to_sh],
1643 configure___ [$2]=yes
1645 configure___ [$2]=no
1647 ])dnl CPP_boolean_to_sh
1649 cat > $tempcname <<EOF
1651 #define C_SWITCH_SITE
1652 #define C_SWITCH_X_SITE
1653 #define LD_SWITCH_SITE
1654 #define LD_SWITCH_X_SITE
1655 #define LD_SWITCH_X_SITE_AUX
1656 #define OS_RELEASE $os_release
1657 #include "$srcdir/src/$opsysfile"
1658 #include "$srcdir/src/$machfile"
1660 CPP_to_sh(LIBS_MACHINE, libs_machine)
1661 CPP_to_sh(LIBS_SYSTEM, libs_system)
1662 CPP_to_sh(LIBS_TERMCAP, libs_termcap)
1663 CPP_to_sh(LIB_STANDARD, libs_standard)
1665 CPP_to_sh(OBJECTS_MACHINE, objects_machine)
1666 CPP_to_sh(OBJECTS_SYSTEM, objects_system)
1668 CPP_to_sh(C_SWITCH_MACHINE, c_switch_machine)
1669 CPP_to_sh(C_SWITCH_SYSTEM, c_switch_system)
1671 CPP_to_sh(LD_SWITCH_MACHINE, ld_switch_machine)
1672 CPP_to_sh(LD_SWITCH_SYSTEM, ld_switch_system)
1674 CPP_to_sh(UNEXEC, unexec, unexec.o)
1676 CPP_to_sh(LD_SWITCH_SHARED, ld_switch_shared, -c)
1678 #ifdef ORDINARY_LINK
1679 #define LD "\$(CC) \$(CFLAGS)"
1680 #else /* no ORDINARY LINK */
1681 #ifdef COFF_ENCAPSULATE
1682 #define LD "\$(CC) -nostdlib"
1683 #else /* not COFF_ENCAPSULATE */
1686 #else /* ! defined (LINKER) */
1688 #endif /* ! defined (LINKER) */
1689 #endif /* ! defined (COFF_ENCAPSULATE) */
1690 #endif /* not ORDINARY_LINK */
1693 CPP_to_sh(LIB_GCC, lib_gcc)
1694 CPP_to_sh(LD_TEXT_START_ADDR, ld_text_start_addr)
1696 #if ! defined (ORDINARY_LINK) && !defined (START_FILES)
1698 #ifdef COFF_ENCAPSULATE
1699 #define START_FILES "pre-crt0.o /usr/local/lib/gcc-crt0.o"
1700 #else /* ! defined (COFF_ENCAPSULATE) */
1701 #define START_FILES "pre-crt0.o /lib/crt0.o"
1702 #endif /* ! defined (COFF_ENCAPSULATE) */
1703 #else /* ! defined (NO_REMAP) */
1704 #define START_FILES "ecrt0.o"
1705 #endif /* ! defined (NO_REMAP) */
1706 #endif /* no ORDINARY_LINK */
1710 configure___ start_files=START_FILES
1712 CPP_boolean_to_sh(ORDINARY_LINK, ordinary_link)
1713 CPP_boolean_to_sh(SYSTEM_MALLOC, system_malloc)
1714 CPP_boolean_to_sh(TERMINFO, have_terminfo)
1715 CPP_boolean_to_sh(MAIL_USE_FLOCK, mail_use_flock)
1716 CPP_boolean_to_sh(MAIL_USE_LOCKF, mail_use_lockf)
1719 dnl The value of CPP is a quoted variable reference, so we need to do this
1720 dnl to get its actual value...
1721 CPP=`eval "echo $CPP"`
1724 eval `$CPP -Isrc $tempcname \
1725 | sed -n -e "s/[ TAB]*=[ TAB\"]*/='/" -e "s/[ TAB\"]*\$/'/" -e "s/^configure___//p"`
1726 changequote([, ])dnl
1730 dnl For debugging...
1731 test "$extra_verbose" = "yes" && \
1732 PRINT_VAR(libs_machine libs_system libs_termcap libs_standard
1733 objects_machine objects_system c_switch_machine c_switch_system
1734 ld_switch_machine ld_switch_system unexec ld_switch_shared
1735 ld lib_gcc ld_text_start_addr start_files ordinary_link
1736 have_terminfo mail_use_flock mail_use_lockf) && echo ""
1738 dnl Non-ordinary link usually requires -lc
1739 test "$ordinary_link" = "no" -a -z "$libs_standard" && libs_standard="-lc"
1741 dnl Compiler-specific hacks
1742 dnl DEC C requires -std
1743 test "$__DECC" = "yes" && XE_APPEND(-std, c_switch_site)
1745 dnl Calculalate value of CFLAGS:
1746 dnl Use either command line flag, environment var, or autodetection
1747 if test "$cflags_specified" = "no"; then
1748 dnl Following values of CFLAGS are known to work well.
1749 dnl Should we take debugging options into consideration?
1750 if test "$GCC" = "yes"; then
1751 CFLAGS="-g -O3 -Wall -Wno-switch"
1752 dnl I'm not convinced this is a good idea any more. -sb
1753 dnl test "$opsys $machine" = "linux intel386" && \
1754 dnl CFLAGS="$CFLAGS -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2"
1755 dnl cygwin can't cope with -O3
1756 test "$opsys $machine" = "cygwin32 intel386" && \
1757 CFLAGS="-g -O2 -Wall -Wno-switch"
1758 elif test "$__SUNPRO_C" = "yes"; then
1760 sol2 ) CFLAGS="-v -xO4" ;;
1761 sunos4* ) CFLAGS="-xO2";;
1763 elif test "$__DECC" = "yes"; then
1765 elif test "$CC" = "xlc"; then
1766 CFLAGS="-g -O3 -qstrict -qnoansialias -qlibansi -qinfo -qro -qmaxmem=20000"
1767 dnl ### Add optimal CFLAGS support for other compilers HERE!
1769 CFLAGS="-O" ;dnl The only POSIX-approved flag
1773 dnl Inform compiler that certain flags are meant for the linker
1774 dnl XE_PROTECT_LINKER_FLAGS(shell_var)
1775 define([XE_PROTECT_LINKER_FLAGS], [
1776 if test "$GCC" = "yes"; then
1777 set x $[$1]; shift; [$1]=""
1778 while test -n "[$]1"; do
1780 -L | -l | -u ) [$1]="$[$1] [$]1 [$]2"; shift ;;
1781 -L* | -l* | -u* | -Wl* ) [$1]="$[$1] [$]1" ;;
1783 * ) [$1]="$[$1] -Xlinker [$]1" ;;
1788 XE_PROTECT_LINKER_FLAGS(ld_switch_system)
1789 XE_PROTECT_LINKER_FLAGS(ld_switch_machine)
1790 XE_PROTECT_LINKER_FLAGS(LDFLAGS)
1791 XE_PROTECT_LINKER_FLAGS(ld_call_shared)
1793 dnl Add s&m-determined objects (including unexec) to link line
1794 test -n "$objects_machine" && XE_ADD_OBJS($objects_machine)
1795 test -n "$objects_system" && XE_ADD_OBJS($objects_system)
1796 test -n "$unexec" && XE_ADD_OBJS($unexec)
1798 dnl Dynodump (Solaris 2.x, x<6)
1799 AC_MSG_CHECKING(for dynodump)
1800 if test "$unexec" != "unexsol2.o"; then
1805 XE_APPEND(dynodump, MAKE_SUBDIR)
1806 XE_APPEND(dynodump, SRC_SUBDIR_DEPS)
1808 sparc ) dynodump_arch=sparc ;;
1809 *86* ) dynodump_arch=i386 ;;
1810 powerpc ) dynodump_arch=ppc ;;
1812 dnl Dynodump requires the system linker
1813 test "$GCC" = "yes" && XE_APPEND(-fno-gnu-linker, ld_switch_site)
1816 dnl Feed s&m crud to src/Makefile
1818 dnl Linux/powerpc needs the following magic for some reason
1819 test "$machine$opsys" = "powerpclinux" && start_flags="-T $srcdir/src/ppc.ldscript"
1821 if test "$unexec" = "unexaix.o"; then
1822 dnl AIX needs various hacks to make static linking work.
1823 if test "$dynamic" = "no"; then
1824 start_flags="-Wl,-bnso,-bnodelcsect"
1825 test "$GCC" = "yes" && start_flags="-B/bin/ ${start_flags}"
1826 for f in "/lib/syscalls.exp" "/lib/threads.exp"; do
1827 if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; fi
1829 for f in "/usr/lpp/X11/bin/smt.exp" "/usr/bin/X11/smt.exp"; do
1830 if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; break; fi
1832 AC_CHECK_LIB(C, terminateAndUnload, XE_APPEND(-lC, libs_system))
1834 elif test -n "$ld_text_start_addr"; then
1835 start_flags="-T $ld_text_start_addr -e __start"
1837 AC_SUBST(start_flags)
1839 AC_SUBST(ld_switch_shared)
1840 AC_SUBST(start_files)
1841 if test "$ordinary_link" = "no" -a "$GCC" = "yes"; then
1842 test -z "$linker" && linker='$(CC) -nostdlib'
1843 test -z "$lib_gcc" && lib_gcc='`$(CC) -print-libgcc-file-name`'
1845 test "$GCC" != "yes" && lib_gcc=
1849 dnl ---------------------------------------------------------------
1850 dnl Add site and system specific flags to compile and link commands
1851 dnl ---------------------------------------------------------------
1853 dnl All dirs present in site-prefixes will be searched for include/ and lib/
1854 dnl subdirs. This can avoid specifying both site-includes and site-libraries.
1855 dnl Those dirs will take precedence over the standard places, but not over
1856 dnl site-includes and site-libraries.
1858 dnl --site-prefixes (multiple dirs)
1859 if test -n "$site_prefixes"; then
1860 for arg in $site_prefixes; do
1863 * ) argi="-I${arg}/include" ; argl="-L${arg}/lib" ;;
1865 XE_APPEND($argi, c_switch_site)
1866 XE_APPEND($argl, ld_switch_site)
1870 dnl --site-libraries (multiple dirs)
1871 if test -n "$site_libraries"; then
1872 for arg in $site_libraries; do
1873 case "$arg" in -* ) ;; * ) arg="-L${arg}" ;; esac
1874 XE_APPEND($arg, ld_switch_site)
1878 dnl --site-includes (multiple dirs)
1879 if test -n "$site_includes"; then
1880 for arg in $site_includes; do
1881 case "$arg" in -* ) ;; * ) arg="-I${arg}" ;; esac
1882 XE_APPEND($arg, c_switch_site)
1886 dnl GNU software installs by default into /usr/local/{include,lib}
1887 dnl if test -d "/usr/local/include" -a -d "/usr/local/lib"; then
1888 dnl XE_APPEND("-L/usr/local/lib", ld_switch_site)
1889 dnl XE_APPEND("-I/usr/local/include", c_switch_site)
1892 dnl Extra system-specific library directories - please add to list
1893 for dir in "/usr/ccs/lib"; do
1894 test -d "$dir" && XE_APPEND(-L${dir}, ld_switch_site)
1897 dnl --site-runtime-libraries (multiple dirs)
1898 if test -n "$site_runtime_libraries"; then
1899 LD_RUN_PATH="`echo $site_runtime_libraries | sed -e 's/ */:/g'`"
1903 dnl -------------------------------------
1904 dnl Compute runtime library path
1905 dnl -------------------------------------
1907 if test "$dynamic" = "no"; then add_runtime_path=no
1908 elif test -n "$LD_RUN_PATH"; then add_runtime_path=yes
1909 else case "$opsys" in
1910 sol2 | irix* | *bsd* | decosf* ) add_runtime_path=yes ;;
1911 * ) add_runtime_path=no ;;
1915 if test "$add_runtime_path" = "yes"; then
1916 dnl Try to autodetect runtime library flag (usually -R),
1917 dnl and whether it works (or at least does no harm)
1918 AC_MSG_CHECKING("for runtime libraries flag")
1920 sol2 ) dash_r = "-R" ;;
1921 decosf* | linux* ) dash_r = "-rpath " ;;
1924 for try_dash_r in "-R" "-R " "-rpath "; do
1925 xe_check_libs="${try_dash_r}/no/such/file-or-directory"
1926 XE_PROTECT_LINKER_FLAGS(xe_check_libs)
1927 AC_TRY_LINK(, , dash_r="$try_dash_r")
1929 test -n "$dash_r" && break
1932 if test -n "$dash_r";
1933 then AC_MSG_RESULT("\"${dash_r}\"")
1934 else AC_MSG_RESULT(NONE)
1938 xe_add_unique_runpath_dir='
1940 for xe_dir in $runpath_dirs; do dnl Uniquify
1941 test "$xe_dir" = "$xe_runpath_dir" && xe_add_p=no
1943 if test "$xe_add_p" = "yes"; then
1944 test -n "$runpath" && runpath="${runpath}:"
1945 runpath="${runpath}${xe_runpath_dir}"
1946 runpath_dirs="$runpath_dirs $xe_runpath_dir"
1950 dnl XE_ADD_RUNPATH_DIR(directory)
1951 define([XE_ADD_RUNPATH_DIR],[{
1953 dnl PRINT_VAR(ld_switch_site ld_switch_x_site runpath xe_runpath_dir LD_RUN_PATH xe_ldflags)
1954 test "$xe_runpath_dir" != "/lib" -a \
1955 "$xe_runpath_dir" != "/usr/lib" -a \
1956 -n "`ls ${xe_runpath_dir}/*.s[[ol]] 2>/dev/null`" && \
1957 eval "$xe_add_unique_runpath_dir"
1960 dnl XE_COMPUTE_RUNPATH()
1961 define([XE_COMPUTE_RUNPATH],[
1962 if test "$add_runtime_path" = "yes" -a -n "$dash_r"; then
1963 dnl Remove runtime paths from current ld switches
1964 ld_switch_site=`echo '' $ld_switch_site | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"`
1965 ld_switch_x_site=`echo '' $ld_switch_x_site | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"`
1966 dnl PRINT_VAR(ld_switch_site ld_switch_x_site)
1968 dnl Fix up Runtime path
1969 dnl If LD_RUN_PATH is set in environment, use that.
1970 dnl In this case, assume user has set the right value.
1971 runpath="" runpath_dirs=""
1972 if test -n "$LD_RUN_PATH"; then
1973 runpath="$LD_RUN_PATH"
1974 elif test "$GCC" = "yes"; then
1975 dnl Compute runpath from gcc's -v output
1976 ld_switch_run_save="$ld_switch_run"; ld_switch_run=""
1977 echo "int main(int argc, char *argv[[]]) {return 0;}" > conftest.c
1978 xe_runpath_link='${CC-cc} -o conftest -v $CFLAGS '"$xe_ldflags"' conftest.$ac_ext 2>&1 1>/dev/null'
1979 for arg in `eval "$xe_runpath_link" | grep ' -L'`; do
1980 case "$arg" in P,* | -L* | -R* )
1981 for dir in `echo '' "$arg" | sed -e 's:^ ::' -e 's/^..//' -e 'y/:/ /'`; do
1982 XE_ADD_RUNPATH_DIR("$dir")
1986 ld_switch_run="$ld_switch_run_save"
1989 dnl Add all directories with .so files to runpath
1990 for arg in $ld_switch_site $ld_switch_x_site; do
1991 case "$arg" in -L*) XE_ADD_RUNPATH_DIR(`echo '' "$arg" | sed -e 's:^ ::' -e 's/^-L//'`);; esac
1993 dnl Sometimes /opt/SUNWdt/lib is the only installed Motif available
1994 if test "$opsys $need_motif" = "sol2 yes"; then
1995 xe_runpath_dir="/opt/SUNWdt/lib";
1996 eval "$xe_add_unique_runpath_dir";
1998 fi dnl Compute $runpath
2000 if test -n "$runpath"; then
2001 ld_switch_run="${dash_r}${runpath}"
2002 XE_PROTECT_LINKER_FLAGS(ld_switch_run)
2003 test "$extra_verbose" = "yes" && echo "Setting runpath to $runpath"
2007 XE_COMPUTE_RUNPATH()
2009 dnl -----------------------------------
2010 dnl Do some misc autoconf-special tests
2011 dnl -----------------------------------
2013 dnl Do the opsystem or machine files prohibit the use of the GNU malloc?
2014 dnl Assume not, until told otherwise.
2016 if test "$with_dlmalloc" != "no"; then
2021 after_morecore_hook_exists=yes
2022 AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
2023 AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
2024 AC_MSG_CHECKING(whether __after_morecore_hook exists)
2025 AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
2026 [AC_MSG_RESULT(yes)],
2028 after_morecore_hook_exists=no])
2029 if test "$system_malloc" = "yes" ; then
2032 (The GNU allocators don't work with this system configuration)."
2033 elif test "$with_system_malloc" = "yes" ; then
2036 (User chose not to use GNU allocators)."
2037 elif test "$with_debug_malloc" = "yes" ; then
2040 (User chose to use Debugging Malloc)."
2043 if test "$doug_lea_malloc" = "yes" ; then
2044 if test "$GNU_MALLOC" = yes ; then
2046 (Using Doug Lea's new malloc from the GNU C Library.)"
2048 AC_DEFINE(DOUG_LEA_MALLOC)
2049 if test "$after_morecore_hook_exists" = "no" ; then
2051 (Using Doug Lea's new malloc from the Linux C Library.)"
2052 AC_DEFINE(_NO_MALLOC_WARNING_)
2054 use_minimal_tagbits=yes
2057 dnl #### mcheck is broken in all versions of Linux libc and glibc.
2058 dnl Try this again when 2.1 hits the streets.
2059 dnl Avoid using free-hook.c if support exists for malloc debugging in libc
2060 dnl have_libmcheck=no
2061 dnl if test "$error_check_malloc" = "yes" -a \
2062 dnl "$have_glibc" = "yes" -a \
2063 dnl "$doug_lea_malloc" = "yes"; then
2064 dnl AC_CHECK_HEADERS(mcheck.h)
2065 dnl AC_CHECK_LIB(mcheck, mcheck, have_libmcheck=yes, have_libmcheck=no)
2068 dnl if test "$have_libmcheck" = "yes"; then
2069 dnl AC_DEFINE(HAVE_LIBMCHECK)
2070 dnl libmcheck=-lmcheck
2071 dnl AC_SUBST(libmcheck)
2074 dnl Some other nice autoconf tests. If you add a test here which
2075 dnl should make an entry in src/config.h, do not forget to add an
2076 dnl #undef clause to src/config.h.in for autoconf to modify.
2082 dnl checks for header files
2083 AC_CHECK_HEADERS(mach/mach.h sys/stropts.h sys/timeb.h sys/time.h unistd.h)
2084 AC_CHECK_HEADERS(utime.h locale.h libgen.h fcntl.h ulimit.h cygwin32/version.h)
2085 AC_CHECK_HEADERS(linux/version.h kstat.h sys/pstat.h inttypes.h sys/un.h a.out.h)
2091 dnl Some systems have utime.h but do not declare the struct anyplace.
2092 AC_MSG_CHECKING(for struct utimbuf)
2093 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
2094 #include <sys/time.h>
2097 #ifdef HAVE_SYS_TIME_H
2098 #include <sys/time.h>
2105 #endif], [static struct utimbuf x; x.actime = x.modtime;],
2107 AC_DEFINE(HAVE_STRUCT_UTIMBUF)],
2110 dnl checks for typedefs
2118 AC_MSG_CHECKING(for struct timeval)
2119 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
2120 #include <sys/time.h>
2123 #ifdef HAVE_SYS_TIME_H
2124 #include <sys/time.h>
2128 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
2131 AC_DEFINE(HAVE_TIMEVAL)],
2135 dnl checks for structure members
2139 dnl checks for compiler characteristics
2142 dnl check for Make feature
2145 dnl check byte order
2148 dnl define SIZEOF_TYPE
2149 AC_CHECK_SIZEOF(short)
2150 if test "$ac_cv_sizeof_short" = 0; then
2152 echo "*** PANIC *** Configure tests are not working - compiler is broken."
2153 echo "*** PANIC *** Please examine config.log for compilation errors."
2156 AC_CHECK_SIZEOF(int)
2157 AC_CHECK_SIZEOF(long)
2158 AC_CHECK_SIZEOF(long long)
2159 AC_CHECK_SIZEOF(void *)
2161 dnl check for long file names
2162 AC_SYS_LONG_FILE_NAMES
2164 dnl -lm is required by LISP_FLOAT_TYPE, among other things
2165 AC_CHECK_LIB(m, sin)
2167 dnl Floating operation support is now unconditional
2168 AC_DEFINE(LISP_FLOAT_TYPE)
2170 AC_TRY_LINK([#include <math.h>],
2171 [return atanh(1.0) + asinh(1.0) + acosh(1.0); ],
2172 AC_DEFINE(HAVE_INVERSE_HYPERBOLIC))
2174 dnl Determine type of mail locking from configure args and s&m headers
2175 AC_CHECKING(type of mail spool file locking)
2176 test -z "$mail_locking" -a "$mail_use_flock" = "yes" && mail_locking=flock
2177 test -z "$mail_locking" -a "$mail_use_lockf" = "yes" && mail_locking=lockf
2178 if test "$mail_locking" = "lockf"; then AC_DEFINE(REAL_MAIL_USE_LOCKF)
2179 elif test "$mail_locking" = "flock"; then AC_DEFINE(REAL_MAIL_USE_FLOCK)
2180 else mail_locking="dot-locking"
2183 dnl Used by getloadavg() - does not require root priveleges
2184 AC_CHECK_LIB(kstat, kstat_open)
2186 dnl Another way to get the load average
2187 AC_CHECK_LIB(kvm, kvm_read)
2189 case "$opsys" in decosf*)
2190 AC_CHECK_LIB(pthreads, cma_open)
2191 test "$ac_cv_lib_pthreads_cma_open" = "yes" && \
2192 c_switch_site="$c_switch_site -threads" ;;
2195 AC_MSG_CHECKING(whether the -xildoff compiler flag is required)
2196 if ${CC-cc} '-###' -xildon no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then
2197 if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ;
2198 then AC_MSG_RESULT(no);
2199 else AC_MSG_RESULT(yes); XE_APPEND(-xildoff, ld_switch_site)
2201 else AC_MSG_RESULT(no)
2204 dnl Link with "-z ignore" on Solaris if supported
2205 if test "$opsys" = "sol2" && test "$OS_RELEASE" -ge 56; then
2206 AC_MSG_CHECKING(for \"-z ignore\" linker flag)
2207 case "`ld -h 2>&1`" in
2208 *-z\ ignore\|record* ) AC_MSG_RESULT(yes)
2209 XE_PREPEND(-z ignore, ld_switch_site) ;;
2210 *) AC_MSG_RESULT(no) ;;
2214 dnl ----------------------
2215 dnl Choose a window system
2216 dnl ----------------------
2218 AC_CHECKING("for specified window system")
2220 if test "$with_x11" != "no"; then
2221 dnl User-specified --x-includes or --x-libraries implies --with-x11.
2222 test "$x_includes $x_libraries" != "NONE NONE" && \
2223 window_system=x11 with_x11=yes
2225 dnl Autodetection of X11 libraries and includes
2226 dnl -------------------------------------------
2227 dnl AC_PATH_XTRA thinks it can find our X headers and includes, but
2228 dnl it often gets it wrong, so we only use it as a last resort.
2230 dnl $OPENWINHOME implies --x-includes and --x-libraries
2231 dnl Not (yet) handled by autoconf2
2232 if test "$x_includes $x_libraries" = "NONE NONE" \
2233 -a -n "$OPENWINHOME" \
2234 -a "$OPENWINHOME" != "/usr/openwin" \
2235 -a -d "$OPENWINHOME"; then
2236 test -d "$OPENWINHOME/lib" && x_libraries="$OPENWINHOME/lib"
2237 test -d "$OPENWINHOME/include" && x_includes="$OPENWINHOME/include"
2238 test -d "$OPENWINHOME/share/include" && x_includes="$OPENWINHOME/share/include"
2241 if test "$x_includes" = "NONE"; then
2242 dnl AC_PATH_XTRA often guesses /usr/include, when some other
2243 dnl include directory is a MUCH better guess (Linux, HP-UX 10.20).
2244 dnl This is a workaround for idiot (esp. HP) system vendors, who
2245 dnl provide a /usr/include/X11, but DON'T FULLY POPULATE IT.
2246 for dir in "/usr/X11" "/usr/X11R6"; do
2247 if test -d "$dir/include/X11"; then x_includes="$dir/include"; break; fi
2251 if test "$x_libraries" = "NONE"; then
2252 for dir in "/usr/X11/lib" "/usr/X11R6/lib" "/usr/lib/X11R6"; do
2253 if test -r "$dir/libX11.a"; then x_libraries="$dir"; break; fi
2257 AC_PATH_XTRA # Autoconf claims to find X library and include dirs for us.
2258 if test "$no_x" = "yes"
2259 then with_x11=no window_system=none HAVE_X_WINDOWS=no
2260 else with_x11=yes window_system=x11 HAVE_X_WINDOWS=yes
2265 yes ) window_system=x11 HAVE_X_WINDOWS=yes ;;
2266 no ) window_system=none HAVE_X_WINDOWS=no ;;
2269 if test "$with_x11" = "yes"; then
2270 AC_DEFINE(HAVE_X_WINDOWS)
2271 XE_APPEND(lwlib, MAKE_SUBDIR)
2272 XE_APPEND(lwlib, SRC_SUBDIR_DEPS)
2274 dnl Try to find Motif/CDE/Tooltalk dirs
2275 dnl These take precedence over other X libs/includes, so PRE-pend
2276 for lib_dir in "/usr/dt/lib" "/usr/lib/Motif2.1" "/usr/lib/Motif1.2" "/usr/lib/Motif1.1"; do
2277 inc_dir=`echo $lib_dir | sed -e 's/lib/include/'`
2278 if test -d "$lib_dir" -a -d "$inc_dir"; then
2279 case "$x_libraries" in *"$lib_dir"* ) ;; *)
2280 x_libraries="$lib_dir $x_libraries"
2281 XE_PREPEND(-L${lib_dir}, X_LIBS) ;;
2283 case "$x_includes" in "$inc_dir"* ) ;; *)
2284 x_includes="$inc_dir $x_includes"
2285 XE_PREPEND(-I${inc_dir}, X_CFLAGS) ;;
2287 break; dnl only need ONE Motif implementation!
2291 dnl Contrib X libs/includes do NOT take precedence, so AP-pend
2292 for rel in "X11R6" "X11R5" "X11R4"; do
2293 lib_dir="/usr/contrib/$rel/lib" inc_dir="/usr/contrib/$rel/include"
2294 if test -d "$lib_dir" -a -d "$inc_dir"; then
2295 case "$x_libraries" in *"$lib_dir"* ) ;; *)
2296 x_libraries="$x_libraries $lib_dir"
2297 XE_APPEND(-L${lib_dir}, X_LIBS)
2299 case "$x_includes" in "$inc_dir"* ) ;; *)
2300 x_includes="$x_includes $inc_dir"
2301 XE_APPEND(-I${inc_dir}, X_CFLAGS)
2303 break; dnl Only need ONE X11 implementation !
2307 dnl Avoid version mismatch for shared library libXm.so on osf4
2308 if test "$GCC" = yes -a -d /usr/shlib; then XE_APPEND(-L/usr/shlib, X_LIBS); fi
2310 ld_switch_x_site="$X_LIBS"
2312 XE_COMPUTE_RUNPATH()
2314 if test "$extra_verbose" = "yes"; then
2315 echo; echo "X11 compilation variables:"
2316 PRINT_VAR(x_libraries x_includes X_CFLAGS X_LIBS X_PRE_LIBS X_EXTRA_LIBS)
2320 dnl Set up bitmaps search path.
2321 dnl The original suggestion was to unconditionally to append X11/bitmaps
2322 dnl to each element of $x_includes, I'm pretty sure this is the wrong
2323 dnl thing to do. We test for bitmaps and X11/bitmaps directories on each
2324 dnl element and add them to BITMAPDIR if they exist.
2326 if test "$x_includes" != NONE; then
2327 for i in $x_includes; do
2328 if test -d "$i/bitmaps"; then
2329 bitmapdirs="$i/bitmaps:$bitmapdirs"
2331 if test -d "$i/X11/bitmaps"; then
2332 bitmapdirs="$i/X11/bitmaps:$bitmapdirs"
2335 bitmapdirs=`echo "$bitmapdirs" | sed s/.$//`
2337 test ! -z "$bitmapdirs" && AC_DEFINE_UNQUOTED(BITMAPDIR, "$bitmapdirs")
2339 dnl Autodetect defines extracted from X config by xmkmf, e.g. NARROWPROTO
2340 AC_CHECKING(for X defines extracted by xmkmf)
2342 if mkdir conftestdir; then
2344 cat > Imakefile <<'EOF'
2346 @echo ${PROTO_DEFINES} ${STD_DEFINES}
2348 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
2349 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
2350 xmkmf_defines=`${MAKE-make} xetest 2>/dev/null | grep -v make`
2354 for word in $xmkmf_defines; do
2357 -D* ) word=`echo '' $word | sed -e 's:^ *-D::'`
2358 AC_DEFINE_UNQUOTED($word) ;;
2363 dnl make sure we can find Intrinsic.h
2364 AC_CHECK_HEADER(X11/Intrinsic.h, ,
2365 [AC_MSG_ERROR("Unable to find X11 header files.")])
2367 dnl -lXt and -lX11 are required
2368 dnl Some broken systems require the magic "-b i486-linuxaout" flag
2369 AC_CHECK_LIB(X11, XOpenDisplay, have_lib_x11=yes)
2370 if test "$have_lib_x11" != "yes"; then
2371 AC_CHECK_LIB(X11, XGetFontProperty,
2372 ld_switch_x_site="-b i486-linuxaout $ld_switch_x_site",
2373 [AC_MSG_ERROR("Unable to find X11 libraries.")],
2377 test "$extra_verbose" = "yes" && echo " Setting libs_x to \"-lX11\""
2379 dnl Autodetect -lXext
2380 AC_CHECK_LIB(Xext, XShapeSelectInput, XE_PREPEND(-lXext, libs_x))
2383 AC_CHECK_LIB(Xt, XtOpenDisplay, XE_PREPEND(-lXt, libs_x),
2384 AC_MSG_ERROR("Unable to find X11 libraries."))
2386 AC_MSG_CHECKING(the version of X11 being used)
2387 AC_TRY_RUN([#include <X11/Intrinsic.h>
2388 int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }],
2389 [./conftest foobar; x11_release=$?],[x11_release=4],[x11_release=4])
2390 AC_MSG_RESULT(R${x11_release})
2391 AC_DEFINE_UNQUOTED(THIS_IS_X11R${x11_release})
2393 AC_CHECK_HEADERS(X11/Xlocale.h)
2395 dnl remove this - we should avoid checking for specific OS
2396 AC_MSG_CHECKING(for XFree86)
2397 if test -d "/usr/X386/include" -o \
2398 -f "/etc/XF86Config" -o \
2399 -f "/etc/X11/XF86Config" -o \
2400 -f "/usr/X11R6/lib/X11/XF86Config"; then
2402 AC_DEFINE(HAVE_XFREE386)
2407 dnl autodetect -lXmu
2408 test -z "$with_xmu" && { AC_CHECK_LIB(Xmu, XmuReadBitmapDataFromFile,
2409 with_xmu=yes, with_xmu=no) }
2410 if test "$with_xmu" = "no"; then
2413 XE_PREPEND(-lXmu, libs_x)
2417 dnl Autodetect -lXbsd
2418 dnl #### Someone, please add a better function than main
2419 AC_CHECK_LIB(Xbsd, main, XE_PREPEND(-lXbsd, libs_x))
2421 dnl Problem with the MIT distribution of X on AIX
2422 if test "$unexec" = "unexaix.o" -a "$x11_release" = "6"; then
2423 dnl X11R6 requires thread-safe code on AIX for some reason
2424 if test "$GCC" = "yes"; then
2425 XE_PREPEND(-mthreads, X_CFLAGS)
2426 XE_PREPEND(-mthreads, libs_x)
2429 "xlc" ) CC="xlc_r" ;;
2430 "xlC" ) CC="xlC_r" ;;
2436 fi dnl $with_x11 = yes
2438 if test "$with_msw" != "no"; then
2439 AC_CHECKING(for MS-Windows)
2440 AC_CHECK_LIB(gdi32,main,with_msw=yes)
2441 if test "$with_msw" = "yes"; then
2442 AC_DEFINE(HAVE_MS_WINDOWS)
2443 install_pp="$blddir/lib-src/installexe.sh"
2444 XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomctl32, libs_system)
2445 if test "$window_system" != x11; then
2447 test "$with_scrollbars" != "no" && with_scrollbars=msw \
2448 && XE_ADD_OBJS(scrollbar-msw.o)
2449 test "$with_menubars" != "no" && with_menubars=msw \
2450 && XE_ADD_OBJS(menubar-msw.o)
2451 test "$with_toolbars" != "no" && with_toolbars=msw \
2452 && XE_ADD_OBJS(toolbar-msw.o)
2453 test "$with_dialogs" != "no" && with_dialogs=msw \
2454 && XE_ADD_OBJS(dialog-msw.o)
2456 test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-msw.o)
2457 test "$with_menubars" != "no" && XE_ADD_OBJS(menubar-msw.o)
2458 test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar-msw.o)
2459 test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog-msw.o)
2461 dnl check for our special version of select
2462 AC_TRY_RUN([#include <fcntl.h>
2463 int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }],
2464 [AC_DEFINE(HAVE_MSG_SELECT)])
2466 with_file_coding=yes
2467 use_minimal_tagbits=yes
2468 use_indexed_lrecord_implementation=yes
2469 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)
2473 AC_SUBST(install_pp)
2475 test -z "$window_system" && window_system="none"
2477 dnl Test for features that require a window system - ANY window system
2478 if test "$window_system" = "none"; then
2479 for feature in menubars scrollbars toolbars dialogs dragndrop
2481 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2482 AC_MSG_WARN([--with-$feature ignored: Not valid without window system support])
2484 eval "with_${feature}=no"
2487 test -z "$with_toolbars" && with_toolbars=yes
2490 dnl ### Test for features that require mswindows support - currently none
2491 dnl ### MS-Windows folks: add code here..... (martin)
2492 if test "$with_msw" != "yes"; then
2493 for feature in MARTIN_IS_CLUELESS_ABOUT_MSW_FEATURES
2495 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2496 AC_MSG_WARN([--with-$feature ignored: Not valid without MS-Windows support])
2498 eval "with_${feature}=no"
2504 dnl Test for features that require X11 support
2505 if test "$with_x11" != "yes"; then
2506 dnl It ought to be reasonable to have no output device at all, and only use
2507 dnl XEmacs in --batch mode.
2508 dnl if test "$with_tty" = "no" ; then
2509 dnl AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.])
2511 for feature in tooltalk cde offix session xim xmu \
2514 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2515 AC_MSG_WARN([--with-$feature ignored: Not valid without X support])
2517 eval "with_${feature}=no"
2521 dnl FSF 19.29 has some bitmapdir stuff here.
2524 case "$window_system" in
2525 x11 ) HAVE_X_WINDOWS=yes; echo " Using X11." ;;
2526 msw ) HAVE_X_WINDOWS=no ; echo " Using MS-Windows." ;;
2527 none ) HAVE_X_WINDOWS=no ; echo " Using no window system." ;;
2530 case "$x_libraries" in *X11R4* )
2531 test "$opsys" = "hpux9" && opsysfile="s/hpux9-x11r4.h"
2532 test "$opsys" = "hpux9-shr" && opsysfile="s/hpux9shxr4.h"
2535 dnl Enable or disable proper session-management
2536 AC_CHECKING(for session-management option);
2537 dnl if test "$with_session" = "yes"; then
2538 if test "$with_session" != "no"; then
2539 AC_DEFINE(HAVE_SESSION)
2542 dnl Autodetect Xauth
2543 dnl -lXau is only used by gnuclient, so use a special variable for Xauth X libs
2544 test -z "$with_xauth" && test "$window_system" = "none" && with_xauth=no
2545 test -z "$with_xauth" && { AC_CHECK_HEADER(X11/Xauth.h, ,with_xauth=no) }
2546 test -z "$with_xauth" && { AC_CHECK_LIB(Xau, XauGetAuthByAddr,[:],with_xauth=no) }
2547 test -z "$with_xauth" && with_xauth=yes
2548 if test "$with_xauth" = "yes"; then
2549 AC_DEFINE(HAVE_XAUTH)
2550 XE_SPACE(libs_xauth, $X_EXTRA_LIBS -lXau $libs_x $X_PRE_LIBS)
2552 AC_SUBST(libs_xauth)
2554 dnl This one is for the static initializeds variables in
2555 dnl offix.c, so that the thing is dumped after lastfile.o
2558 dnl Autodetect tooltalk
2559 if test "$with_tooltalk" != "no" ; then
2560 dnl autodetect the location of tt_c.h
2561 dnl tt_c.h might be in Tt or desktop include directories
2562 for dir in "" "Tt/" "desktop/" ; do
2563 AC_CHECK_HEADER(${dir}tt_c.h, tt_c_h_path="${dir}tt_c.h"; break)
2565 if test -z "$tt_c_h_path"; then
2566 if test "$with_tooltalk" = "yes"; then
2567 USAGE_ERROR("Unable to find required tooltalk header files.")
2572 if test "$with_tooltalk" != "no" ; then
2573 for extra_libs in "" "-lI18N -lce" "-lcxx"; do
2574 AC_CHECK_LIB(tt, tt_message_create,
2575 tt_libs="-ltt $extra_libs"; break, [:],$extra_libs)
2577 if test -z "$tt_libs"; then
2578 if test "$with_tooltalk" = "yes"; then
2579 USAGE_ERROR("Unable to find required tooltalk libraries.")
2584 test -z "$with_tooltalk" && with_tooltalk=yes
2585 if test "$with_tooltalk" = "yes"; then
2587 AC_DEFINE_UNQUOTED(TT_C_H_PATH, "$tt_c_h_path")
2588 XE_PREPEND($tt_libs, libs_x)
2589 XE_ADD_OBJS(tooltalk.o)
2593 test -z "$with_cde" && { AC_CHECK_HEADER(Dt/Dt.h, , with_cde=no) }
2594 test -z "$with_cde" && { AC_CHECK_LIB(DtSvc, DtDndDragStart, [:], with_cde=no) }
2595 test -z "$with_cde" && with_cde=yes
2596 if test "$with_dragndrop" = no; then
2597 AC_MSG_WARN([No CDE without generic Drag'n'Drop support])
2600 if test "$with_cde" = "yes" ; then
2602 XE_PREPEND(-lDtSvc, libs_x)
2603 XE_APPEND(CDE, dragndrop_proto)
2604 with_tooltalk=yes # CDE requires Tooltalk
2605 need_motif=yes # CDE requires Motif
2608 dnl Always compile OffiX unless --without-offix is given, no
2609 dnl X11 support is compiled in, no standard Xmu is avaiable,
2610 dnl or dragndrop support is disabled
2611 dnl Because OffiX support currently loses when more than one display
2612 dnl is in use, we now disable it by default -slb 07/10/1998.
2613 test "$window_system" != "x11" && with_offix=no
2614 if test "$with_xmu" != yes -a "$with_x11" = yes; then
2615 AC_MSG_WARN([No OffiX without real Xmu support])
2618 if test "$with_dragndrop" = no; then
2619 AC_MSG_WARN([No OffiX without generic Drag'n'Drop support])
2622 if test "$with_cde" = yes; then
2623 AC_MSG_WARN([CDE already found, disabling OffiX support])
2626 test -z "$with_offix" && with_offix=no
2627 if test "$with_offix" = "yes"; then
2628 AC_DEFINE(HAVE_OFFIX_DND)
2629 XE_APPEND(offix.o, dnd_objs)
2630 XE_APPEND(OffiX, dragndrop_proto)
2633 dnl Autodetect Drag'n'Drop support
2634 dnl always included if CDE, Offix, or MSWindows are defined
2635 AC_MSG_CHECKING(if drag and drop API is needed)
2636 if test "$with_dragndrop" != "no" ; then
2637 if test -n "$dragndrop_proto" ; then
2639 AC_MSG_RESULT([yes (${dragndrop_proto} )])
2640 AC_DEFINE(HAVE_DRAGNDROP)
2641 XE_APPEND(dragdrop.o, extra_objs)
2649 AC_CHECKING(for LDAP)
2650 test -z "$with_ldap" && { AC_CHECK_HEADER(ldap.h, ,with_ldap=no) }
2651 test -z "$with_ldap" && { AC_CHECK_HEADER(lber.h, ,with_ldap=no) }
2652 if test "$with_ldap" != "no"; then
2653 test -z "$with_umich_ldap" && { AC_CHECK_LIB(ldap, ldap_open, with_umich_ldap=yes, with_umich_ldap=no, -llber) }
2654 test "$with_umich_ldap" = "no" && { AC_CHECK_LIB(ldap10, ldap_set_option, with_ns_ldap=yes, with_ns_ldap=no) }
2655 test -z "$with_ldap" -a \( "$with_umich_ldap" = "yes" -o "$with_ns_ldap" = "yes" \) && with_ldap=yes
2657 if test "$with_ldap" = "yes"; then
2658 AC_DEFINE(HAVE_LDAP)
2659 XE_ADD_OBJS(eldap.o)
2660 if test "$with_umich_ldap" = "yes" ; then
2661 AC_DEFINE(HAVE_UMICH_LDAP)
2662 XE_PREPEND(-llber, LIBS)
2663 XE_PREPEND(-lldap, LIBS)
2664 elif test "$with_ldap" = "yes" -a "$with_ns_ldap" = "yes" ; then
2665 AC_DEFINE(HAVE_NS_LDAP)
2666 XE_PREPEND(-lldap10, LIBS)
2667 elif test "$with_ldap" = "yes" ; then
2668 XE_PREPEND(-lldap, LIBS)
2672 dnl ----------------------
2673 dnl Graphics libraries
2674 dnl ----------------------
2676 if test "$window_system" != "none"; then
2677 AC_CHECKING(for graphics libraries)
2681 if test -z "$with_xpm"; then
2682 AC_MSG_CHECKING(for Xpm - no older than 3.4f)
2684 AC_TRY_RUN([#include <X11/xpm.h>
2685 int main(int c, char **v) {
2687 XpmIncludeVersion != XpmLibraryVersion() ? 1 :
2688 XpmIncludeVersion < 30406 ? 2 : 0 ;}],
2689 [./conftest dummy_arg; xpm_status=$?;
2690 if test "$xpm_status" = "0"; then
2694 if test "$xpm_status" = "1"; then
2695 xpm_problem="Xpm library version and header file version don't match!"
2696 elif test "$xpm_status" = "2"; then
2697 xpm_problem="Xpm library version is too old!"
2699 xpm_problem="Internal xpm detection logic error!"
2702 *** WARNING *** $xpm_problem
2703 I'm not touching that with a 10-foot pole!
2704 If you really want to use the installed version of Xpm, rerun
2705 configure and add '--with-xpm=yes', but don't blame me if XEmacs crashes!"
2709 AC_MSG_RESULT($with_xpm)
2711 if test "$with_xpm" = "yes"; then
2713 XE_PREPEND(-lXpm, libs_x)
2714 AC_MSG_CHECKING(for \"FOR_MSW\" xpm)
2716 AC_TRY_LINK(, [XpmCreatePixmapFromData()],
2720 AC_MSG_RESULT($xpm_for_msw)
2721 if test "$xpm_for_msw" = "yes"; then
2726 dnl For a brief period we had the GIF code split out into a separate library,
2727 dnl but patent problems, etc. sort of squashed that idea.
2728 dnl We default to building with builtin GIF decoding
2729 if test "$with_gif" != "no"; then
2732 XE_ADD_OBJS(dgif_lib.o gif_io.o)
2735 dnl Too many stupid linkers can't detect cascaded lib dependencies until runtime
2736 dnl So we always search for libz compression support.
2737 if test "$with_png $with_tiff" != "no no"; then
2738 AC_CHECK_LIB(c, inflate, [:], [
2739 AC_CHECK_LIB(z, inflate, [XE_PREPEND(-lz, libs_x)],[
2740 AC_CHECK_LIB(gz, inflate, [XE_PREPEND(-lgz, libs_x)])])])
2744 test -z "$with_jpeg" && { AC_CHECK_HEADER(jpeglib.h, ,with_jpeg=no) }
2745 test -z "$with_jpeg" && { AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,[:],with_jpeg=no) }
2746 test -z "$with_jpeg" && with_jpeg=yes
2747 if test "$with_jpeg" = "yes"; then
2748 AC_DEFINE(HAVE_JPEG)
2749 XE_PREPEND(-ljpeg, libs_x)
2754 test -z "$with_png" && { AC_CHECK_FUNC(pow, ,with_png=no) }
2755 test -z "$with_png" && { AC_CHECK_HEADER(png.h, ,with_png=no) }
2756 test -z "$with_png" && { AC_CHECK_LIB(png, png_read_image,[:],with_png=no) }
2757 if test -z "$with_png"; then
2758 AC_MSG_CHECKING(for workable png version information)
2759 xe_check_libs="-lpng -lz"
2760 AC_TRY_RUN([#include <png.h>
2761 int main(int c, char **v) {
2762 if (c == 1) return 0;
2763 if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1;
2764 return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}],
2765 [./conftest dummy_arg; png_status=$?;
2766 if test "$png_status" = "0"; then
2770 if test "$png_status" = "1"; then
2771 png_problem="PNG library version and header file don't match!"
2772 elif test "$png_status" = "2"; then
2773 png_problem="PNG library version too old (pre 1.0.2)!"
2776 *** WARNING *** $png_problem
2777 I'm not touching that with a 10-foot pole!
2778 If you really want to use the installed version of libPNG, rerun
2779 configure and add '--with-png=yes', but don't blame me if XEmacs crashes!"
2783 AC_MSG_RESULT($with_png)
2785 if test "$with_png" = "yes"; then
2787 XE_PREPEND(-lpng, libs_x)
2791 test -z "$with_tiff" && { AC_CHECK_HEADER(tiffio.h, ,with_tiff=no) }
2792 test -z "$with_tiff" && { AC_CHECK_LIB(tiff, TIFFClientOpen,[:],with_tiff=no) }
2793 test -z "$with_tiff" && with_tiff=yes
2794 if test "$with_tiff" = "yes"; then
2795 AC_DEFINE(HAVE_TIFF)
2796 XE_PREPEND(-ltiff, libs_x)
2800 dnl ----------------------
2801 dnl X-Specific Graphics libraries
2802 dnl ----------------------
2804 if test "$with_x11" = "yes"; then
2806 AC_CHECKING(for X11 graphics libraries)
2808 dnl Autodetect XFACE
2809 test -z "$with_xface" && { AC_CHECK_HEADER(compface.h, ,with_xface=no) }
2810 test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) }
2811 test -z "$with_xface" && with_xface=yes
2812 if test "$with_xface" = "yes"; then
2813 AC_DEFINE(HAVE_XFACE)
2814 XE_PREPEND(-lcompface, libs_x)
2817 dnl Autodetect -lXaw
2818 AC_CHECK_LIB(Xaw, XawScrollbarSetThumb, have_xaw=yes, have_xaw=no)
2819 dnl if test "$have_xaw" = "yes"; then
2820 dnl AC_CHECK_HEADER(X11/Xaw/Reports.h, [
2821 dnl XE_APPEND(pkg-src/tree-x, MAKE_SUBDIR)
2822 dnl XE_APPEND(pkg-src/tree-x, INSTALL_ARCH_DEP_SUBDIR)])
2825 dnl autodetect Motif - but only add to libs_x later (if necessary)
2826 AC_CHECK_HEADER(Xm/Xm.h,
2827 [AC_CHECK_LIB(Xm, XmStringFree, have_motif=yes, have_motif=no)],
2830 if test "$have_motif" = "yes"; then
2831 dnl autodetect lesstif
2832 AC_MSG_CHECKING(for Lesstif)
2835 #ifdef LESSTIF_VERSION
2838 ], have_lesstif=yes, have_lesstif=no)
2839 AC_MSG_RESULT($have_lesstif)
2842 fi dnl "$with_x11" = "yes"
2844 dnl Finish ensuring that we have values for the various toolkit items.
2845 dnl Not all toolkits support all widgets
2846 dnl if Motif is available we use it for the dialog boxes.
2848 case "$with_menubars" in "" | "yes" | "athena" | "athena3d" )
2849 with_menubars="lucid" ;;
2851 case "$with_dialogs" in "" | "yes" | "lucid" )
2852 if test "$have_motif" = "yes"; then with_dialogs="motif"
2853 elif test "$have_xaw" = "yes"; then with_dialogs="athena"
2854 else with_dialogs=no
2857 case "$with_scrollbars" in "" | "yes" )
2858 with_scrollbars="lucid" ;;
2861 all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars"
2863 case "$all_widgets" in *athena* )
2864 AC_DEFINE(LWLIB_USES_ATHENA)
2865 AC_DEFINE(NEED_ATHENA)
2866 XE_APPEND(lwlib-Xaw.o, lwlib_objs)
2867 XE_PREPEND(-lXaw, libs_x) ;;
2870 case "$all_widgets" in *motif* )
2871 AC_DEFINE(LWLIB_USES_MOTIF)
2872 AC_DEFINE(NEED_MOTIF)
2873 XE_APPEND(lwlib-Xm.o, lwlib_objs)
2877 test "$with_menubars" = "lucid" && XE_APPEND(xlwmenu.o, lwlib_objs)
2878 test "$with_menubars" = "motif" && XE_APPEND(xlwmenu.o, lwlib_objs)
2879 test "$with_scrollbars" = "lucid" && XE_APPEND(xlwscrollbar.o, lwlib_objs)
2880 case "$all_widgets" in *lucid* )
2881 AC_DEFINE(NEED_LUCID)
2882 XE_APPEND(lwlib-Xlw.o, lwlib_objs) ;;
2885 AC_SUBST(lwlib_objs)
2887 case "$with_scrollbars" in athena* ) AC_DEFINE(LWLIB_SCROLLBARS_ATHENA);; esac
2888 case "$with_dialogs" in athena* ) AC_DEFINE(LWLIB_DIALOGS_ATHENA) ;; esac
2889 test "$with_scrollbars" = "athena3d" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA3D)
2890 test "$with_dialogs" = "athena3d" && AC_DEFINE(LWLIB_DIALOGS_ATHENA3D)
2892 test "$with_menubars" != "no" && AC_DEFINE(HAVE_MENUBARS)
2893 test "$with_scrollbars" != "no" && AC_DEFINE(HAVE_SCROLLBARS)
2894 test "$with_dialogs" != "no" && AC_DEFINE(HAVE_DIALOGS)
2895 test "$with_toolbars" != "no" && AC_DEFINE(HAVE_TOOLBARS)
2897 test "$with_menubars" = "lucid" && AC_DEFINE(LWLIB_MENUBARS_LUCID)
2898 test "$with_scrollbars" = "lucid" && AC_DEFINE(LWLIB_SCROLLBARS_LUCID)
2900 test "$with_menubars" = "motif" && AC_DEFINE(LWLIB_MENUBARS_MOTIF)
2901 test "$with_scrollbars" = "motif" && AC_DEFINE(LWLIB_SCROLLBARS_MOTIF)
2902 test "$with_dialogs" = "motif" && AC_DEFINE(LWLIB_DIALOGS_MOTIF)
2904 test "$with_menubars" != "no" && XE_ADD_OBJS(menubar.o)
2905 test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar.o)
2906 test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog.o)
2907 test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar.o)
2908 test "$all_widgets" != "no no no no" && XE_ADD_OBJS(gui.o)
2910 if test "$with_x11" = "yes"; then
2911 test "$with_menubars" != "no" && XE_ADD_OBJS(menubar-x.o)
2912 test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-x.o)
2913 test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog-x.o)
2914 test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar-x.o)
2915 test "$all_widgets" != "no no no no" && XE_ADD_OBJS(gui-x.o)
2917 if test \( "$with_sound" = "nas" \) -o \( "$with_sound" = "both" \); then
2918 echo "Attempt to Build NAS sound without X"
2919 echo "Please remove NAS configuration or build with X"
2924 test "$use_minimal_tagbits" = "yes" && AC_DEFINE(USE_MINIMAL_TAGBITS)
2925 test "$use_indexed_lrecord_implementation" = "yes" && \
2926 AC_DEFINE(USE_INDEXED_LRECORD_IMPLEMENTATION)
2928 dnl ----------------------
2929 dnl Mule-dependent options
2930 dnl ----------------------
2932 test -z "$with_mule" && with_mule=no
2933 test -z "$with_file_coding" && with_file_coding=no
2935 dnl if test "$with_mule" = "yes" && test ! -d "$srcdir/lisp/mule"; then
2936 dnl echo "Attempt to Build with Mule without Mule/Lisp"
2937 dnl echo "Please install the XEmacs/Mule tarball or"
2938 dnl echo "rerun configure with --with-mule=no"
2942 if test "$with_file_coding" = "yes" && test "$with_mule" = "no"; then
2943 AC_DEFINE(FILE_CODING)
2944 XE_ADD_OBJS(file-coding.o)
2947 if test "$with_mule" = "yes" ; then
2948 AC_CHECKING(for Mule-related features)
2950 AC_DEFINE(FILE_CODING)
2951 XE_ADD_OBJS(mule.o mule-ccl.o mule-charset.o mule-coding.o file-coding.o)
2953 dnl Use -lintl to get internationalized strerror for Mule
2954 AC_CHECK_HEADERS(libintl.h)
2955 AC_CHECK_LIB(intl, strerror)
2957 AC_CHECKING(for Mule input methods)
2958 dnl Do we have the XmIm* routines? And if so, do we want to use them?
2959 dnl XIM seems to be flaky except on Solaris...
2960 dnl test -z "$with_xim" -a "$opsys" != "sol2" && with_xim=no
2961 case "$with_xim" in "" | "yes" )
2962 AC_CHECKING(for XIM)
2963 dnl XIM + Lesstif is not (yet?) usable
2964 if test "$have_lesstif" = "yes"; then with_xim=xlib
2965 else AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif, with_xim=xlib)
2968 if test "$with_xim" != "no"; then
2970 if test "$with_xim" = "xlib"; then
2972 XE_ADD_OBJS(input-method-xlib.o)
2974 if test "$with_xim" = "motif"; then
2975 AC_DEFINE(XIM_MOTIF)
2977 XE_ADD_OBJS(input-method-motif.o)
2979 if test "$with_xim" = "motif"; then
2984 dnl "with_xim" = "yes"
2985 if test "$with_xfs" = "yes" ; then
2986 AC_CHECKING(for XFontSet)
2987 AC_CHECK_LIB(X11, XmbDrawString, [:], with_xfs=no)
2988 if test "$with_xfs" = "yes" && test "$with_menubars" = "lucid"; then
2989 AC_DEFINE(USE_XFONTSET)
2990 if test "$with_xim" = "no" ; then
2991 XE_ADD_OBJS(input-method-xfs.o)
2997 test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
2998 test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/jllib.h, ,with_wnn=no) }
2999 dnl Detour to find crypt
3000 if test "$with_wnn" != "no"; then
3001 AC_CHECK_FUNCS(crypt)
3002 test "$ac_cv_func_crypt" != "yes" && { AC_CHECK_LIB(crypt, crypt) }
3004 dnl Back to our regularly scheduled wnn hunting
3005 test -z "$with_wnn" && { AC_CHECK_LIB(wnn,jl_dic_list_e,[:],with_wnn=no) }
3006 test -z "$with_wnn" && with_wnn=yes
3007 if test "$with_wnn" = "yes"; then
3009 XE_PREPEND(-lwnn, libs_x)
3010 XE_ADD_OBJS(mule-wnnfns.o)
3011 if test "$with_wnn6" != "no"; then
3012 AC_CHECK_LIB(wnn, jl_fi_dic_list, with_wnn6=yes)
3013 test "$with_wnn6" = "yes" && AC_DEFINE(WNN6)
3017 dnl Autodetect canna
3018 canna_includes_found=no
3019 if test "$with_canna" != "no"; then
3020 AC_CHECK_HEADER(canna/jrkanji.h,canna_includes_found=yes)
3022 if test "$canna_includes_found" = "no" -a "$with_canna" != "no" -a \
3023 -d "/usr/local/canna/include"; then
3024 save_c_switch_site="$c_switch_site"
3025 c_switch_site="$c_switch_site -I/usr/local/canna/include"
3026 AC_CHECK_HEADER(canna/jrkanji.h,canna_includes_found=yes)
3027 if test "$canna_includes_found" != "yes"; then
3028 c_switch_site="$save_c_switch_site"
3033 test -z "$with_canna" && { AC_CHECK_HEADER(canna/RK.h, , with_canna=no) }
3034 test -z "$with_canna" && { AC_CHECK_LIB(RKC, RkBgnBun, [:],with_canna=no) }
3035 test -z "$with_canna" && { AC_CHECK_LIB(canna,jrKanjiControl,[:],with_canna=no) }
3036 test -z "$with_canna" && with_canna=yes
3037 if test "$with_canna" = "yes"; then
3038 AC_DEFINE(HAVE_CANNA)
3039 XE_PREPEND(-lcanna -lRKC, libs_x)
3040 XE_ADD_OBJS(mule-canna.o)
3043 else dnl "$with_mule" = "no"
3044 for feature in xim canna wnn; do
3045 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
3046 AC_MSG_WARN("--with-${feature} ignored: Not valid without Mule support")
3048 eval "with_${feature}=no"
3053 dnl At this point, we know whether we need the motif lib or not.
3054 if test "$need_motif" = "yes" ; then
3055 XE_PREPEND(-lXm, libs_x)
3056 dnl AIX needs the following library for use with Motif
3057 AC_CHECK_LIB(i18n, layout_object_getvalue, [XE_PREPEND(-li18n, libs_x)])
3058 XE_COMPUTE_RUNPATH()
3061 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)
3063 dnl realpath is buggy on linux, decosf and aix4
3065 dnl The realpath() in linux libc (4.6.27) sometimes fails with ELOOP.
3066 dnl The realpath in ELF linux libc's is O.K.
3067 dnl For example, call realpath on a file thirty-five or so directories deep
3068 dnl and you get ELOOP even if no symlinks at all are involved.
3069 dnl Reports as of 11/1997 indicate BSDi has problems too.
3071 linuxaout* | bsdos3* | freebsd* | decosf4-0* | aix4* ) XE_ADD_OBJS(realpath.o) ;;
3073 AC_CHECK_FUNCS(realpath)
3074 test "$ac_cv_func_realpath" != "yes" && XE_ADD_OBJS(realpath.o) ;;
3077 dnl If netdb.h does not declare h_errno, we must declare it by hand.
3078 AC_MSG_CHECKING(whether netdb declares h_errno)
3079 AC_TRY_LINK([#include <netdb.h>],
3082 AC_DEFINE(HAVE_H_ERRNO)],
3083 [AC_MSG_RESULT(no)])
3085 AC_MSG_CHECKING(for sigsetjmp)
3086 AC_TRY_COMPILE([#include <setjmp.h>],
3087 [sigjmp_buf bar; sigsetjmp (bar, 0);],
3089 AC_DEFINE(HAVE_SIGSETJMP)],
3090 [AC_MSG_RESULT(no)])
3092 AC_MSG_CHECKING(whether localtime caches TZ)
3093 AC_CACHE_VAL(emacs_cv_localtime_cache,
3094 [if test "$ac_cv_func_tzset" = "yes"; then
3095 AC_TRY_RUN([#include <time.h>
3097 # include <stdlib.h>
3099 extern char **environ;
3103 for (to = from = environ; (*to = *from); from++)
3104 if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
3107 char TZ_GMT0[] = "TZ=GMT0";
3108 char TZ_PST8[] = "TZ=PST8";
3111 time_t now = time ((time_t *) 0);
3112 int hour_GMT0, hour_unset;
3113 if (putenv (TZ_GMT0) != 0)
3115 hour_GMT0 = localtime (&now)->tm_hour;
3117 hour_unset = localtime (&now)->tm_hour;
3118 if (putenv (TZ_PST8) != 0)
3120 if (localtime (&now)->tm_hour == hour_GMT0)
3123 if (localtime (&now)->tm_hour != hour_unset)
3126 }], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
3127 [# If we have tzset, assume the worst when cross-compiling.
3128 emacs_cv_localtime_cache=yes])
3130 # If we lack tzset, report that localtime does not cache TZ,
3131 # since we can't invalidate the cache if we don't have tzset.
3132 emacs_cv_localtime_cache=no
3134 AC_MSG_RESULT($emacs_cv_localtime_cache)
3135 if test $emacs_cv_localtime_cache = yes; then
3136 AC_DEFINE(LOCALTIME_CACHE)
3139 if test "$HAVE_TIMEVAL" = "yes"; then
3140 AC_MSG_CHECKING(whether gettimeofday accepts one or two arguments)
3142 #ifdef TIME_WITH_SYS_TIME
3143 #include <sys/time.h>
3146 #ifdef HAVE_SYS_TIME_H
3147 #include <sys/time.h>
3154 struct timeval time;
3155 struct timezone dummy;
3156 gettimeofday (&time, &dummy);
3158 [AC_MSG_RESULT(two)],
3160 AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)])
3165 if test "$ac_cv_c_inline" != "no"; then
3166 AC_DEFINE(HAVE_INLINE)
3167 test "$GCC" = "yes" && XE_ADD_OBJS(inline.o)
3170 dnl HP-UX has a working alloca in libPW.
3171 dnl case "${GCC}${opsys}" in hpux* )
3172 dnl AC_CHECK_FUNC(alloca, [:], [AC_CHECK_LIB(PW, alloca)])
3176 test -n "$ALLOCA" && XE_ADD_OBJS($ALLOCA)
3178 dnl Check whether vfork exists and works correctly. (This does more
3179 dnl than just check for its existence.) If so, it defines HAVE_VFORK_H.
3180 dnl If not, it defines vfork to be fork.
3183 dnl Check whether strcoll exists and works correctly. (This does more
3184 dnl than just check for its existence.) If so, it defines HAVE_STRCOLL.
3187 dnl If `getpgrp' takes no argument (the POSIX.1 version), define
3188 dnl `GETPGRP_VOID'. Otherwise, it is the BSD version, which takes a
3189 dnl process ID as an argument.
3190 AC_CHECK_FUNCS(getpgrp)
3193 dnl We used to call AC_FUNC_MMAP here
3194 dnl Instead we now use following, suggested by Neal Becker
3195 AC_MSG_CHECKING(for working mmap)
3196 case "$opsys" in ultrix* ) have_mmap=no ;; *)
3197 AC_TRY_RUN([#include <stdio.h>
3200 #include <sys/mman.h>
3202 #ifndef MAP_VARIABLE
3203 #define MAP_VARIABLE 0
3207 #define MAP_FAILED -1
3210 int main (int argc, char *argv[])
3214 #ifndef MAP_ANONYMOUS
3215 fd = open ("/dev/zero", O_RDWR);
3218 #define MAP_ANONYMOUS 0
3220 if (mmap(0, 1024, PROT_READ | PROT_WRITE,
3221 MAP_PRIVATE | MAP_VARIABLE | MAP_ANONYMOUS,
3222 fd, 0) != (void *) MAP_FAILED)
3224 perror ("conftest: mmap failed");
3226 }], have_mmap=yes, have_mmap=no) ;;
3228 AC_MSG_RESULT($have_mmap)
3229 test "$have_mmap" = "yes" && AC_DEFINE(HAVE_MMAP)
3232 dnl rel_alloc requires either GNU malloc or system malloc with mmap
3233 dnl We only turn rel_alloc on by default if mmap is available.
3234 test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && rel_alloc=no
3235 test "$rel_alloc" = "default" -a "$have_mmap" = "yes" && rel_alloc=yes
3236 test "$rel_alloc" = "yes" && AC_DEFINE(REL_ALLOC)
3238 dnl Check for terminal I/O variants
3239 dnl TERMIOS systems may have termio.h, but not vice-versa, I think.
3240 AC_CHECK_HEADER(termios.h,
3241 AC_DEFINE(HAVE_TERMIOS)
3242 AC_DEFINE(SIGNALS_VIA_CHARACTERS)
3243 AC_DEFINE(NO_TERMIO),
3244 [AC_CHECK_HEADER(termio.h, [AC_DEFINE(HAVE_TERMIO)])])
3247 dnl Check for Internet sockets.
3248 AC_CHECK_FUNC(socket,
3249 [AC_CHECK_HEADER(netinet/in.h,
3250 [AC_CHECK_HEADER(arpa/inet.h, [
3251 AC_DEFINE(HAVE_SOCKETS)
3252 AC_MSG_CHECKING("for sun_len member in struct sockaddr_un")
3254 #include <sys/types.h>
3255 #include <sys/socket.h>
3258 [static struct sockaddr_un x; x.sun_len = 1;],
3259 [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOCKADDR_SUN_LEN)],
3260 [AC_MSG_RESULT(no)])
3261 AC_MSG_CHECKING("for ip_mreq struct in netinet/in.h")
3263 #include <sys/types.h>
3264 #include <netinet/in.h>
3266 [static struct ip_mreq x;],
3267 [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_MULTICAST)],
3268 [AC_MSG_RESULT(no)])])])])
3270 dnl Check for SYS V IPC. (Inferior to sockets.)
3271 AC_CHECK_FUNC(msgget,
3272 [AC_CHECK_HEADER(sys/ipc.h,
3273 [AC_CHECK_HEADER(sys/msg.h,
3274 [AC_DEFINE(HAVE_SYSVIPC)])])])
3276 dnl Check for directory variants
3277 AC_CHECK_HEADER(dirent.h, [AC_DEFINE(SYSV_SYSTEM_DIR)],
3278 [AC_CHECK_HEADER(sys/dir.h, , [AC_DEFINE(NONSYSTEM_DIR_LIBRARY)])])
3280 dnl Check for nlist.h
3281 AC_CHECK_HEADER(nlist.h, AC_DEFINE(NLIST_STRUCT), )
3283 dnl Check for sound of various sorts.
3285 dnl Autodetect native sound
3286 AC_CHECKING("for sound support")
3287 case "$with_sound" in
3288 native | both ) with_native_sound=yes;;
3289 nas | no ) with_native_sound=no;;
3291 test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes
3293 if test "$with_native_sound" != "no"; then
3294 dnl Maybe sound is already on include path...
3295 if test -n "$native_sound_lib"; then
3296 AC_CHECK_HEADER(multimedia/audio_device.h,
3297 [sound_found=yes sound_cflags=""
3298 XE_ADD_OBJS(sunplay.o)])
3301 dnl Autodetect Sun native sound from SUNWaudmo package
3302 if test -z "$sound_found" -a -d "/usr/demo/SOUND"; then
3304 XE_ADD_OBJS(sunplay.o)
3305 if test -d "/usr/demo/SOUND/include"
3306 then sound_cflags="-I/usr/demo/SOUND/include"
3307 else sound_cflags="-I/usr/demo/SOUND"
3309 if test -z "$native_sound_lib" ; then
3310 if test -r "/usr/demo/SOUND/lib/libaudio.a"
3311 then native_sound_lib="/usr/demo/SOUND/lib/libaudio.a"
3312 else native_sound_lib="/usr/demo/SOUND/libaudio.a"
3317 dnl Check for SGI and HP native sound libs
3318 if test -z "$sound_found"; then
3319 case "$canonical" in
3321 if test -z "$native_sound_lib"; then
3322 AC_CHECK_LIB(audio, ALopenport, native_sound_lib="-laudio")
3324 if test -n "$native_sound_lib"; then
3325 sound_found=yes sound_cflags=""
3326 XE_ADD_OBJS(sgiplay.o)
3329 if test -z "$native_sound_lib"; then
3330 AC_CHECK_LIB(Alib, AOpenAudio, native_sound_lib="-lAlib")
3332 if test -n "$native_sound_lib"; then
3334 XE_ADD_OBJS(hpplay.o)
3335 if test "$GCC" = "yes" # Kludge city
3336 then sound_cflags="-Dconst= -Dvolatile= -I/usr/audio/examples"
3337 else sound_cflags="+e -I/usr/audio/examples"
3343 dnl Check for Linux/BSD native sound
3344 if test -z "$sound_found"; then
3345 for dir in "machine" "sys" "linux"; do
3346 AC_CHECK_HEADER(${dir}/soundcard.h,
3348 XE_ADD_OBJS(linuxplay.o)
3349 [AC_DEFINE_UNQUOTED(SOUNDCARD_H_PATH, "${dir}/soundcard.h")]
3354 test "$sound_found" = "yes" && with_native_sound=yes
3357 if test -z "$with_sound"; then
3358 if test "$with_native_sound" = "yes" -o -n "$native_sound_lib"; then
3363 if test "$with_native_sound" = "yes"; then
3364 AC_DEFINE(HAVE_NATIVE_SOUND)
3365 test -n "$native_sound_lib" && XE_PREPEND($native_sound_lib, LIBS)
3368 case "$with_sound" in both | nas )
3369 AC_DEFINE(HAVE_NAS_SOUND)
3371 XE_PREPEND(-laudio, libs_x)
3372 dnl If the nas library does not contain the error jump point,
3373 dnl then we force safer behaviour.
3374 AC_EGREP_HEADER(AuXtErrorJump,audio/Xtutil.h,,[AC_DEFINE(NAS_NO_ERROR_JUMP)])
3377 dnl ---------------------
3378 dnl TTY-dependent options
3379 dnl ---------------------
3381 test -z "$with_tty" && with_tty=yes
3383 if test "$with_tty" = "yes" ; then
3384 AC_CHECKING(for TTY-related features)
3386 XE_ADD_OBJS(console-tty.o device-tty.o event-tty.o frame-tty.o objects-tty.o redisplay-tty.o cm.o)
3388 dnl Autodetect ncurses.
3389 if test -z "$with_ncurses"; then
3390 AC_CHECK_LIB(ncurses, tgetent, with_ncurses=yes, with_ncurses=no)
3392 if test "$with_ncurses" = "yes"; then
3393 AC_DEFINE(HAVE_NCURSES)
3394 AC_CHECK_HEADER(ncurses/curses.h, curses_h_path=ncurses/curses.h)
3395 AC_CHECK_HEADER(ncurses/term.h, term_h_path=ncurses/term.h)
3396 XE_ADD_OBJS(terminfo.o)
3397 XE_PREPEND(-lncurses, LIBS)
3399 if test "$ac_cv_header_ncurses_curses_h" != "yes" ; then
3400 dnl Try again, and check for the bogus ncurses/ include bug.
3401 dnl (i.e. ncurses/curses.h bogusly includes <unctrl.h> instead of
3402 dnl <ncurses/unctrl.h>)
3403 save_c_switch_site="$c_switch_site"
3404 c_switch_site="$c_switch_site -I/usr/include/ncurses"
3405 AC_CHECK_HEADER(ncurses/curses.h, curses_h_path=ncurses/curses.h)
3406 if test "$ac_cv_header_ncurses_curses_h" = "yes"
3407 then AC_MSG_WARN("Your system has the bogus ncurses include bug.")
3408 else c_switch_site="$save_c_switch_site"
3411 else dnl "$with_ncurses" = "no"
3412 dnl Autodetect terminfo/-lcurses/-ltermlib/-ltermcap
3413 if test "$have_terminfo" = "yes"; then
3414 XE_ADD_OBJS(terminfo.o)
3415 if test -n "$libs_termcap"; then
3416 XE_PREPEND($libs_termcap, LIBS)
3418 for lib in curses termlib termcap; do
3419 AC_CHECK_LIB($lib, tgetent, XE_PREPEND(-l${lib}, LIBS); break)
3422 else dnl "$have_terminfo" = "no" && "with_ncurses" = "no"
3423 XE_ADD_OBJS(tparam.o)
3424 dnl The HP-UX curses library seems to have a badly broken version of select(2)
3425 dnl that makes "poll: interrupted system call" messages to appear and
3426 dnl Emacs suprocesses to hang (e.g. TeX compilation w/ AUCTeX) */
3427 case "$opsys" in *-hp-hpux* ) libs_termcap="-ltermcap" ;; esac
3428 if test -n "$libs_termcap"; then
3429 XE_PREPEND($libs_termcap, LIBS)
3431 AC_CHECK_LIB(curses, tgetent, XE_PREPEND(-lcurses, LIBS),
3432 AC_CHECK_LIB(termcap, tgetent, XE_PREPEND(-ltermcap, LIBS),
3433 XE_ADD_OBJS(termcap.o)))
3437 AC_DEFINE_UNQUOTED(CURSES_H_PATH, "${curses_h_path-curses.h}")
3438 AC_DEFINE_UNQUOTED(TERM_H_PATH, "${term_h_path-term.h}")
3441 test -z "$with_gpm" && { AC_CHECK_HEADER(gpm.h, , with_gpm=no) }
3442 test -z "$with_gpm" && { AC_CHECK_LIB(gpm, Gpm_Open, with_gpm=yes, with_gpm=no) }
3443 if test "$with_gpm" = "yes"; then
3445 XE_ADD_OBJS(gpmevent.o)
3446 XE_PREPEND(-lgpm, LIBS)
3449 else dnl "$with_tty" = "no"
3450 for feature in ncurses gpm; do
3451 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
3452 AC_MSG_WARN("--with-${feature} ignored: Not valid without TTY support")
3454 eval "with_${feature}=no"
3458 dnl Do we need event-unixoid.o ?
3459 test "$with_x11" = "yes" -o "$with_tty" = "yes" && XE_ADD_OBJS(event-unixoid.o)
3461 dnl Database support
3462 dnl <mdiers@logware.de>
3463 dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support.
3464 dnl On FreeBSD, both DB and DBM are part of libc.
3465 dnl Note that unless support for DB/(G)DBM is explicitly disabled, we always
3466 dnl want to check for libdb/lib(g)dbm. Also note that libc will not be
3467 dnl checked if we have the libraries.
3468 dnl If support for DB/(G)DBM is requested, but we neither have libdb/lib(g)dbm,
3469 dnl nor does libc implement it, we are a bit lost :)
3471 AC_CHECKING(for database support)
3473 if test "$with_database_gnudbm" != "no"; then
3474 AC_CHECK_HEADERS(ndbm.h, have_ndbm_h=yes)
3475 if test "$have_ndbm_h" = "yes"; then
3476 AC_CHECK_LIB(gdbm, dbm_open, with_database_gnudbm=yes have_libgdbm=yes)
3478 if test "$with_database_gnudbm" != "yes"; then
3479 AC_CHECK_FUNC(dbm_open, with_database_gnudbm=yes)
3481 if test "$with_database_gnudbm" = "yes"; then
3483 test "$have_libgdbm" = "yes" && XE_PREPEND(-lgdbm, LIBS)
3484 with_database_dbm=no
3485 else with_database_gnudbm=no
3489 if test "$with_database_dbm" != "no"; then
3490 AC_CHECK_FUNC(dbm_open, with_database_dbm=yes need_libdbm=no)
3491 if test "$need_libdbm" != "no"; then
3492 AC_CHECK_LIB(dbm, dbm_open, with_database_dbm=yes need_libdbm=yes)
3494 if test "$with_database_dbm" = "yes"; then
3496 test "$need_libdbm" = "yes" && XE_PREPEND(-ldbm, LIBS)
3497 else with_database_dbm=no
3501 if test "$with_database_berkdb" != "no"; then
3502 AC_MSG_CHECKING(for Berkeley db.h)
3503 for path in "db/db.h" "db.h"; do
3504 AC_TRY_COMPILE([#ifdef HAVE_INTTYPES_H
3505 #define __BIT_TYPES_DEFINED__
3506 #include <inttypes.h>
3507 typedef uint8_t u_int8_t;
3508 typedef uint16_t u_int16_t;
3509 typedef uint32_t u_int32_t;
3510 #ifdef WE_DONT_NEED_QUADS
3511 typedef uint64_t u_int64_t;
3515 ],[], db_h_path="$path"; break)
3517 if test -z "$db_h_path"
3518 then AC_MSG_RESULT(no); with_database_berkdb=no
3519 else AC_MSG_RESULT($db_h_path)
3522 if test "$with_database_berkdb" != "no"; then
3523 AC_MSG_CHECKING(for Berkeley DB version)
3525 [#include <$db_h_path>
3526 #if DB_VERSION_MAJOR > 1
3529 ], [AC_MSG_RESULT(2); dbfunc=db_open], [AC_MSG_RESULT(1); dbfunc=dbopen])
3530 AC_CHECK_FUNC($dbfunc, with_database_berkdb=yes need_libdb=no, [
3531 AC_CHECK_LIB(db, $dbfunc, with_database_berkdb=yes need_libdb=yes)])
3534 if test "$with_database_berkdb" = "yes"; then
3535 AC_DEFINE_UNQUOTED(DB_H_PATH, "$db_h_path")
3536 AC_DEFINE(HAVE_BERKELEY_DB)
3537 test "$need_libdb" = "yes" && XE_PREPEND(-ldb, LIBS)
3538 else with_database_berkdb=no
3542 if test "$with_database_gnudbm $with_database_dbm $with_database_berkdb" \
3544 AC_DEFINE(HAVE_DATABASE)
3545 XE_ADD_OBJS(database.o)
3549 if test "$with_socks" = "yes"; then
3550 AC_CHECK_LIB(socks, SOCKSinit)
3551 test -n "$ac_cv_lib_socks_SOCKSinit" && AC_DEFINE(HAVE_SOCKS)
3554 dnl Usage tracking (undocumented and likely unused option)
3555 if test "$usage_tracking" = "yes"; then
3556 AC_DEFINE(USAGE_TRACKING)
3557 XE_PREPEND(-Bstatic -lut -Bdynamic, LIBS)
3560 dnl autodetect dll support
3561 AC_CHECK_HEADERS(dlfcn.h, have_dlfcn=yes)
3562 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(dl, dlopen, [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=dl; with_shlib=yes]) }
3563 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c, _dlopen, [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=; with_shlib=yes]) }
3564 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c, dlopen, [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=; with_shlib=yes]) }
3565 test -z "$with_shlib" && { AC_CHECK_LIB(dld, shl_load, [ AC_DEFINE(HAVE_SHL_LOAD) DLL_LIB=dld; with_shlib=yes]) }
3566 test -z "$with_shlib" && { AC_CHECK_LIB(dld, dld_init, [ AC_DEFINE(HAVE_DLD_INIT) DLL_LIB=dld; with_shlib=yes]) }
3567 if test "$with_shlib" = "yes"; then
3568 AC_DEFINE(HAVE_SHLIB)
3569 XE_ADD_OBJS(sysdll.o)
3571 test ! -z "$DLL_LIB" && XE_PREPEND(-l${DLL_LIB}, LIBS)
3573 AC_CHECK_FUNCS(dlerror)
3574 ld_dynamic_link_flags=
3575 dnl Fill this in with other values as this gets more testing
3577 hpux*) ld_dynamic_link_flags="-Wl,-E" ;;
3578 linux*) ld_dynamic_link_flags="-rdynamic" ;;
3583 dnl Unfortunately, just because we can link doesn't mean we can run.
3584 dnl One of the above link tests may have succeeded but caused resulting
3585 dnl executables to fail to run. Also any tests using AC_TRY_RUN will
3586 dnl have reported incorrect results.
3587 AC_TRY_RUN([int main(int c,char *v[]){return 0;}],[:],[
3589 echo "*** PANIC *** The C compiler can no longer build working executables."
3590 echo "*** PANIC *** Please examine the tail of config.log for runtime errors."
3591 echo "*** PANIC *** The most likely reason for this problem is that configure"
3592 echo "*** PANIC *** links with shared libraries, but those libraries cannot be"
3593 echo "*** PANIC *** found at run time."
3594 echo "*** PANIC ***"
3595 echo "*** PANIC *** On a Linux system, edit /etc/ld.so.conf and re-run ldconfig."
3596 echo "*** PANIC *** On other systems, try telling configure where to find the"
3597 echo "*** PANIC *** shared libraries using the --site-runtime-libraries option"
3598 echo "*** PANIC ***"
3599 echo "*** PANIC *** Another way to shoot yourself in the foot is to specify"
3600 echo "*** PANIC *** --with-FEATURE when FEATURE is not actually installed"
3601 echo "*** PANIC *** on your system. Don't do that."
3604 dnl Process support (hardcoded)
3605 dnl every system that supports this runs configure, the others don't
3607 dnl We're not ready for this yet.
3608 AC_DEFINE(HAVE_UNIX_PROCESSES)
3609 XE_ADD_OBJS(process-unix.o)
3611 dnl --------------------------------
3612 dnl Compute SUBST-itutable variables
3613 dnl --------------------------------
3615 dnl We ignore (C|LD)_SWITCH_X_(MACHINE|SYSTEM)
3616 dnl Use XE_SPACE instead of plain assignment statements to remove extraneous blanks
3617 XE_SPACE(CFLAGS, $CFLAGS)
3618 XE_SPACE(extra_objs, $extra_objs)
3619 XE_SPACE(c_switch_general, -DHAVE_CONFIG_H $c_switch_site $c_switch_machine $c_switch_system)
3620 XE_SPACE(c_switch_window_system, $c_switch_x_site $X_CFLAGS)
3621 XE_SPACE(c_switch_all, $c_switch_general $c_switch_window_system)
3622 XE_SPACE(ld_switch_general, $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_run)
3623 XE_SPACE(ld_switch_window_system, $ld_switch_x_site)
3624 XE_SPACE(ld_switch_all, $ld_switch_general $ld_switch_window_system)
3625 XE_SPACE(ld_libs_general, $LIBS $libs_machine $libs_system $libs_standard)
3626 XE_SPACE(ld_libs_window_system, $X_EXTRA_LIBS $libs_x $X_PRE_LIBS)
3627 XE_SPACE(ld_libs_all, $ld_libs_window_system $ld_libs_general)
3629 dnl Compute lists of Makefiles and subdirs
3630 AC_SUBST(SRC_SUBDIR_DEPS)
3631 XE_APPEND(src, MAKE_SUBDIR)
3632 internal_makefile_list="Makefile"
3634 test -d lock || mkdir lock
3635 for dir in $MAKE_SUBDIR; do
3636 case "$dir" in */* ) dnl Implement mkdir -p
3637 ( for d in `echo $dir | sed 's:/: :g'` ; do
3638 test -d "$d" || mkdir "$d"; cd "$d"
3640 * ) test -d "$dir" || mkdir "$dir" ;;
3642 XE_SPACE(SUBDIR_MAKEFILES, $SUBDIR_MAKEFILES $dir/Makefile)
3643 XE_SPACE(internal_makefile_list, $internal_makefile_list $dir/Makefile.in)
3645 AC_SUBST(INSTALL_ARCH_DEP_SUBDIR)
3646 AC_SUBST(MAKE_SUBDIR)
3647 AC_SUBST(SUBDIR_MAKEFILES)
3649 dnl Make s&m symlinks in the src directory, for config.h
3650 for dir in src/s src/m; do
3651 if test ! -d "$dir" ; then
3652 echo Making symbolic link to "$srcdir/$dir"
3653 ${LN_S} "$srcdir/$dir" "$dir"
3657 if test "$extra_verbose" = "yes"; then
3659 PRINT_VAR(extra_objs
3660 c_switch_general c_switch_window_system c_switch_all
3661 ld_switch_general ld_switch_window_system ld_switch_all
3662 ld_libs_general ld_libs_window_system ld_libs_all)
3666 dnl Create some auxiliary files
3667 if test -f $srcdir/src/gdbinit -a ! -f src/gdbinit ; then
3668 echo "creating src/gdbinit"; echo ""
3669 echo "source $srcdir/src/gdbinit" > src/gdbinit
3672 dnl Create top level .sbinit for Sun compilers
3673 if test "$__SUNPRO_C" = "yes"; then
3674 echo "creating .sbinit"; echo ""
3675 ( echo "# For use with Sun WorkShop's Source browser."
3676 echo "# See sbquery(1) and sbinit(4) for more information"
3677 for dir in $MAKE_SUBDIR; do echo "import $dir"; done
3681 dnl There are no more compile tests; remove the core they created.
3684 dnl ----------------------------------------------
3685 dnl Substitute into Makefile, config.h and paths.h
3686 dnl ----------------------------------------------
3688 dnl what sort of things to edit into Makefile, config.h and paths.h
3689 dnl configuration here uncanonicalized to avoid exceeding size limits.
3693 AC_SUBST(configuration)
3704 dnl Yo, Stephen Bourne! I want to marry you!
3708 *\$* ) eval "PREFIX=$PREFIX" ;;
3714 AC_SUBST(exec_prefix)
3715 EXEC_PREFIX=$exec_prefix
3717 case "$EXEC_PREFIX" in
3718 *\$* ) eval "EXEC_PREFIX=$EXEC_PREFIX" ;;
3722 AC_SUBST(EXEC_PREFIX)
3725 AC_SUBST(INFODIR_USER_DEFINED)
3729 *\$* ) eval "INFODIR=$INFODIR" ;;
3736 AC_SUBST(INFOPATH_USER_DEFINED)
3740 *\$* ) eval "INFOPATH=$INFOPATH" ;;
3746 AC_SUBST(package_path)
3747 AC_SUBST(PACKAGE_PATH_USER_DEFINED)
3748 PACKAGE_PATH=$package_path
3750 case "$PACKAGE_PATH" in
3751 *\$* ) eval "PACKAGE_PATH=$PACKAGE_PATH" ;;
3755 AC_SUBST(PACKAGE_PATH)
3758 AC_SUBST(LISPDIR_USER_DEFINED)
3762 *\$* ) eval "LISPDIR=$LISPDIR" ;;
3768 dnl AC_SUBST(sitelispdir)
3769 dnl AC_SUBST(SITELISPDIR_USER_DEFINED)
3770 dnl SITELISPDIR=$sitelispdir
3772 dnl case "$SITELISPDIR" in
3773 dnl *\$* ) eval "SITELISPDIR=$SITELISPDIR" ;;
3777 dnl AC_SUBST(SITELISPDIR)
3780 AC_SUBST(ETCDIR_USER_DEFINED)
3784 *\$* ) eval "ETCDIR=$ETCDIR" ;;
3791 AC_SUBST(LOCKDIR_USER_DEFINED)
3795 *\$* ) eval "LOCKDIR=$LOCKDIR" ;;
3801 AC_SUBST(archlibdir)
3802 AC_SUBST(ARCHLIBDIR_USER_DEFINED)
3803 ARCHLIBDIR=$archlibdir
3805 case "$ARCHLIBDIR" in
3806 *\$* ) eval "ARCHLIBDIR=$ARCHLIBDIR" ;;
3810 AC_SUBST(ARCHLIBDIR)
3814 AC_SUBST(extra_objs)
3815 AC_SUBST(ld_dynamic_link_flags)
3817 dnl The following flags combine all the information from:
3818 dnl - command line options (user always gets priority)
3819 dnl - user environment variables
3820 dnl - determined by configure
3821 dnl - the s&m header files (deprecated)
3824 AC_SUBST(c_switch_general)
3825 AC_SUBST(c_switch_window_system)
3826 AC_SUBST(c_switch_all)
3827 AC_SUBST(ld_switch_general)
3828 AC_SUBST(ld_switch_window_system)
3829 AC_SUBST(ld_switch_all)
3830 AC_SUBST(ld_libs_general)
3831 AC_SUBST(ld_libs_window_system)
3832 AC_SUBST(ld_libs_all)
3836 RECURSIVE_MAKE="\$(MAKE) \$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'"
3837 AC_SUBST(RECURSIVE_MAKE)
3839 AC_SUBST(native_sound_lib)
3840 AC_SUBST(sound_cflags)
3842 AC_SUBST(dynodump_arch)
3844 # The default is yes
3845 if test "$with_site_lisp" = "no"; then
3846 AC_DEFINE(INHIBIT_SITE_LISP)
3849 XE_SPACE(ac_configure_args, $ac_configure_args)
3850 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "$canonical")
3851 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "$ac_configure_args")
3852 AC_DEFINE_UNQUOTED(config_machfile, "$machfile")
3853 AC_DEFINE_UNQUOTED(config_opsysfile, "$opsysfile")
3855 dnl Following are deprecated
3858 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, $null_string)
3859 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, $null_string)
3860 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, $null_string)
3861 AC_DEFINE_UNQUOTED(LD_SWITCH_SITE, $null_string)
3862 AC_DEFINE_UNQUOTED(C_SWITCH_SITE, $null_string)
3864 dnl Note: as a general rule, *only* define things here that are not
3865 dnl autodetected. For things that are autodetected, define them
3866 dnl at the point where the autodetection occurs or would occur,
3867 dnl so that the user gets immediate feedback on the results of the
3870 test -n "$puresize" && AC_DEFINE_UNQUOTED(RAW_PURESIZE, $puresize)
3872 if test "$GNU_MALLOC" = "yes"; then AC_DEFINE(GNU_MALLOC)
3873 elif test "$with_system_malloc" = "yes"; then AC_DEFINE(USE_SYSTEM_MALLOC)
3874 elif test "$with_debug_malloc" = "yes"; then AC_DEFINE(USE_DEBUG_MALLOC)
3875 AC_DEFINE(USE_SYSTEM_MALLOC)
3877 test "$with_i18n3" = "yes" && AC_DEFINE(I18N3)
3878 test "$GCC" = "yes" && AC_DEFINE(USE_GCC)
3879 test "$external_widget" = "yes" && AC_DEFINE(EXTERNAL_WIDGET)
3880 test "$with_gnu_make" = "yes" && AC_DEFINE(USE_GNU_MAKE)
3881 test "$no_doc_file" = "yes" && AC_DEFINE(NO_DOC_FILE)
3882 dnl test "$const_is_losing" = "yes" && AC_DEFINE(CONST_IS_LOSING)
3883 test "$with_quantify" = "yes" && AC_DEFINE(QUANTIFY)
3884 test "$with_pop" = "yes" && AC_DEFINE(MAIL_USE_POP)
3885 test "$with_kerberos" = "yes" && AC_DEFINE(KERBEROS)
3886 test "$with_hesiod" = "yes" && AC_DEFINE(HESIOD)
3887 test "$use_union_type" = "yes" && AC_DEFINE(USE_UNION_TYPE)
3889 dnl -------------------------------
3890 dnl Report on what we decided to do
3891 dnl -------------------------------
3894 dnl /etc/osversion is on SONY NEWS-OS
3895 if test -f /etc/osversion; then dnl SONY NEWS-OS
3896 echo "osversion: `cat /etc/osversion`"
3898 echo "uname -a: `uname -a`"
3901 echo "$0 $quoted_arguments"
3905 test ! -z "${emacs_beta_version}" && xemacs_betaname="-b${emacs_beta_version}"
3907 dnl Start stdout redirection to '| tee -a Installation'
3911 XEmacs ${emacs_major_version}.${emacs_minor_version}${xemacs_betaname} \"$xemacs_codename\" configured for \`$canonical'.
3913 Where should the build process find the source code? $srcdir
3914 What installation prefix should install use? $prefix
3915 What operating system and machine description files should XEmacs use?
3916 \`$opsysfile' and \`$machfile'
3917 What compiler should XEmacs be built with? $CC $CFLAGS
3918 Should XEmacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason}
3919 Should XEmacs use the relocating allocator for buffers? $rel_alloc
3920 What window system should XEmacs use? ${window_system}"
3921 if test "$with_x11" = "yes"; then
3922 echo " Where do we find X Windows header files? $x_includes"
3923 echo " Where do we find X Windows libraries? $x_libraries"
3925 if test -n "$site_includes"; then
3926 echo " Additional header files: $site_includes"
3928 if test -n "$site_libraries"; then
3929 echo " Additional libraries: $site_libraries"
3931 if test -n "$site_prefixes"; then
3932 echo " Additional prefixes: $site_prefixes"
3934 if test -n "$runpath"; then
3935 echo " Runtime library search path: $runpath"
3937 test "$with_dnet" = yes && echo " Compiling in support for DNET."
3938 test "$with_socks" = yes && echo " Compiling in support for SOCKS."
3939 test "$with_xauth" = yes && echo " Compiling in support for XAUTH."
3940 if test "$with_xmu" != yes -a "$with_x11" = yes; then
3941 echo " No Xmu; substituting equivalent routines."
3944 if test "$with_xpm" = yes; then
3945 echo " Compiling in support for XPM images."
3946 elif test "$with_x11" = yes; then
3947 echo " --------------------------------------------------------------------"
3948 echo " WARNING: Compiling without XPM support."
3949 if test "$xpm_problem" != ""; then
3950 echo " Reason: $xpm_problem"
3952 echo " WARNING: You should strongly consider installing XPM."
3953 echo " WARNING: Otherwise toolbars and other graphics will look suboptimal."
3954 echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
3955 echo " --------------------------------------------------------------------"
3957 if test "$with_png" = yes; then
3958 echo " Compiling in support for PNG image handling."
3959 elif test "$window_system" != "none"; then
3960 echo " --------------------------------------------------------------------"
3961 echo " WARNING: Compiling without PNG image support."
3962 if test "$png_problem" != ""; then
3963 echo " Reason: $png_problem"
3965 echo " WARNING: You should strongly consider installing the PNG libraries."
3966 echo " WARNING: Otherwise certain images and glyphs may not display."
3967 echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
3968 echo " --------------------------------------------------------------------"
3970 test "$with_gif" = yes && echo " Compiling in support for (builtin) GIF image handling."
3971 test "$with_jpeg" = yes && echo " Compiling in support for JPEG image handling."
3972 test "$with_tiff" = yes && echo " Compiling in support for TIFF image handling."
3973 test "$with_xface" = yes && echo " Compiling in support for X-Face message headers."
3974 case "$with_sound" in
3975 nas ) echo " Compiling in network sound (NAS) support." ;;
3976 native ) echo " Compiling in native sound support." ;;
3977 both ) echo " Compiling in both network and native sound support." ;;
3979 test "$old_nas" = yes && echo " nas library lacks error trapping, will play synchronously"
3981 test "$with_database_berkdb" = yes && echo " Compiling in support for Berkeley DB."
3982 test "$with_database_dbm" = yes && echo " Compiling in support for DBM."
3983 test "$with_database_gnudbm" = yes && echo " Compiling in support for GNU DBM."
3985 test "$with_umich_ldap" = yes && echo " Compiling in support for LDAP (UMich libs)."
3986 test "$with_ns_ldap" = yes && echo " Compiling in support for LDAP (Netscape SDK)."
3987 test "$with_ldap" = yes -a "$with_umich_ldap" = no -a "$with_ns_ldap" = no && echo " Compiling in support for LDAP (Generic)."
3989 test "$with_ncurses" = yes && echo " Compiling in support for ncurses."
3990 test "$with_gpm" = yes && echo " Compiling in support for GPM (General Purpose Mouse)."
3992 test "$with_mule" = yes && echo " Compiling in Mule (multi-lingual) support."
3993 test "$with_file_coding" = yes && echo " Compiling in File coding support."
3994 test "$with_xim" != no && echo " Compiling in XIM (X11R5+ I18N input method) support."
3995 test "$with_xim" = motif && echo " Using Motif to provide XIM support."
3996 test "$with_xim" = xlib && echo " Using raw Xlib to provide XIM support."
3997 test "$with_xfs" = yes && echo " Using XFontSet to provide bilingual menubar."
3998 test "$with_canna" = yes && echo " Compiling in support for Canna on Mule."
3999 if test "$with_wnn" = yes; then
4000 echo " Compiling in support for the WNN input method on Mule."
4001 test "$with_wnn6" = yes && echo " Using WNN version 6."
4003 test "$with_i18n3" = yes && echo " Compiling in I18N support, level 3 (doesn't currently work)."
4005 test "$with_cde" = yes && echo " Compiling in support for CDE."
4006 test "$with_tooltalk" = yes && echo " Compiling in support for ToolTalk."
4007 test "$with_offix" = yes && echo " Compiling in support for OffiX."
4008 test "$with_dragndrop" = yes && echo " Compiling in EXPERIMENTAL support for Drag'n'Drop ($dragndrop_proto )."
4009 test "$with_workshop" = yes && echo " Compiling in support for Sun WorkShop."
4010 test "$with_session" != no && echo " Compiling in support for proper session-management."
4011 case "$with_menubars" in
4012 lucid ) echo " Using Lucid menubars." ;;
4013 motif ) echo " Using Motif menubars."
4014 echo " *WARNING* The Motif menubar implementation is currently buggy."
4015 echo " We recommend using the Lucid menubar instead."
4016 echo " Re-run configure with --with-menubars='lucid'." ;;
4018 case "$with_scrollbars" in
4019 lucid ) echo " Using Lucid scrollbars." ;;
4020 motif ) echo " Using Motif scrollbars." ;;
4021 athena ) echo " Using Athena scrollbars." ;;
4022 athena3d ) echo " Using Athena-3d scrollbars." ;;
4024 case "$with_dialogs" in
4025 motif ) echo " Using Motif dialog boxes." ;;
4026 athena ) echo " Using Athena dialog boxes." ;;
4027 athena3d ) echo " Using Athena-3d dialog boxes." ;;
4029 test "$with_shlib" = "yes" && echo " Compiling in DLL support."
4030 test "$with_clash_detection" = yes && \
4031 echo " Clash detection will use \"$lockdir\" for locking files."
4032 echo " movemail will use \"$mail_locking\" for locking mail spool files."
4033 test "$with_pop" = yes && echo " Using POP for mail access"
4034 test "$with_kerberos" = yes && echo " Using Kerberos for POP authentication"
4035 test "$with_hesiod" = yes && echo " Using Hesiod to get POP server host"
4036 test "$use_union_type" = yes && echo " Using the union type for Lisp_Objects."
4037 test "$use_minimal_tagbits" = yes && echo " Using Lisp_Objects with minimal tagbits."
4038 test "$use_indexed_lrecord_implementation" = yes && echo " Using indexed lrecord implementation."
4039 test "$debug" = yes && echo " Compiling in extra code for debugging."
4040 test "$memory_usage_stats" = yes && echo " Compiling in code for checking XEmacs memory usage."
4041 test "$usage_tracking" = yes && echo " Compiling with usage tracking active (Sun internal)."
4042 if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc" \
4043 != "no no no no no"; then
4044 echo " WARNING: ---------------------------------------------------------"
4045 echo " WARNING: Compiling in support for runtime error checking."
4046 echo " WARNING: XEmacs will run noticeably more slowly as a result."
4047 echo " WARNING: Error checking is on by default for XEmacs beta releases."
4048 echo " WARNING: ---------------------------------------------------------"
4051 ) | tee -a Installation
4052 dnl echo "The above configure report is appended to \"Installation\" file."
4055 dnl Generate Installation.el
4056 echo '(setq Installation-string "' > Installation.el
4057 sed 's/"/\\"/g' Installation >> Installation.el
4058 echo '")' >> Installation.el
4060 dnl -----------------------------------
4061 dnl Now generate config.h and Makefiles
4062 dnl -----------------------------------
4064 dnl This has to be called in order for this variable to get into config.status
4065 AC_SUBST(internal_makefile_list)
4066 # Remove any trailing slashes in these variables.
4067 test -n "$prefix" &&
4068 prefix=`echo '' "$prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4069 test -n "$exec_prefix" &&
4070 exec_prefix=`echo '' "$exec_prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4072 dnl Build Makefile.in's from Makefile.in.in's
4073 dnl except ./Makefile from $srcdir/Makefile.in
4075 for file in $internal_makefile_list; do
4076 test "$file" = src/Makefile.in && \
4077 file="src/Makefile.in:src/Makefile.in.in:src/depend"
4078 ac_output_files="${ac_output_files+$ac_output_files }$file"
4080 ac_output_files="$ac_output_files src/paths.h lib-src/config.values"
4082 AC_OUTPUT($ac_output_files,
4083 [for dir in $MAKE_SUBDIR; do
4084 echo creating $dir/Makefile
4086 changequote(<<, >>)dnl
4090 sed -e '/^# Generated/d' \
4091 -e 's%/\*\*/#.*%%' \
4102 $CPP -I. -I${top_srcdir}/src $CPPFLAGS junk.c > junk.cpp;
4105 -e 's/^[ TAB][ TAB]*$//' \
4107 | sed -n -e '/^..*$/p' \
4113 chmod 444 Makefile.new
4114 mv -f Makefile.new Makefile
4115 rm -f junk.c junk.cpp
4116 changequote([, ])dnl
4120 dnl Append AC_DEFINE information to lib-src/config.values
4121 dnl (AC_SUBST information is already there (see config.values.sh).
4122 sed < config.status >> lib-src/config.values \
4123 -e '/{ac_dA}.*{ac_dB}.*{ac_dC}.*{ac_dD}$/!d' \
4124 -e 's/\${ac_dA}\(.*\)\${ac_dB}.*\${ac_dC}\(.*\)\${ac_dD}/\1 \2/' \
4125 -e 's/^\([[^ ]]*\) $/\1 ""/' \
4130 CPPFLAGS="$CPPFLAGS"
4131 top_srcdir="$srcdir"
4132 MAKE_SUBDIR="$MAKE_SUBDIR"