1 dnl Define our own header notice with own copyright
2 define([AC_INIT_NOTICE],
3 [#### Configuration script for XEmacs. Largely divergent from FSF.
4 #### Guess values for system-dependent variables and create Makefiles.
5 #### Generated automatically using autoconf version] AC_ACVERSION [
6 #### Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
7 #### Copyright (C) 1993-1995 Board of Trustees, University of Illinois.
8 #### Copyright (C) 1996, 1997 Sun Microsystems, Inc.
9 #### Copyright (C) 1995, 1996 Ben Wing.
10 #### Copyright (C) 1998, 1999 J. Kean Johnston.
12 ### Don't edit this script!
13 ### This script was automatically generated by the `autoconf' program
14 ### from the file `./configure.in'.
15 ### To rebuild it, execute the command
17 ### in the this directory. You must have autoconf version 2.13 or later.
19 ### This file is part of XEmacs.
21 ### XEmacs is free software; you can redistribute it and/or modify it
22 ### under the terms of the GNU General Public License as published by
23 ### the Free Software Foundation; either version 2, or (at your
24 ### option) any later version.
26 ### XEmacs is distributed in the hope that it will be useful, but
27 ### WITHOUT ANY WARRANTY; without even the implied warranty of
28 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
29 ### General Public License for more details.
31 ### You should have received a copy of the GNU General Public License
32 ### along with XEmacs; see the file COPYING. If not, write to the Free
33 ### Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
36 ### For usage, run `./configure --help'
37 ### For more detailed information on building and installing XEmacs,
38 ### read the file `INSTALL'.
40 ### If configure succeeds, it leaves its status in config.status.
41 ### A log of configuration tests can be found in config.log.
42 ### If configure fails after disturbing the status quo,
43 ### config.status is removed.
46 dnl Since XEmacs has configuration requirements that autoconf cannot
47 dnl meet, this file is an unholy marriage of custom-baked
48 dnl configuration code and autoconf macros.
50 dnl We use the m4 quoting characters [ ] (as established by the
51 dnl autoconf system), so quote them like this: [[foo]]
54 dnl Redefine some standard autoconf macros
55 dnl here is how XEmacs is different:
57 dnl - non-standard options
58 dnl - suport for extra-verbosity
59 dnl - ordinary libs are handled separately from X libs (might be a mistake)
60 dnl - various random kludges (e.g. -with-dnet=no)
62 dnl PRINT_VAR(var var ...) prints values of shell variables
63 define([PRINT_VAR],[for var in patsubst([$1],[[
64 ]+],[ ]); do eval "echo \"$var = '\$$var'\""; done])
66 dnl Disable cache files:
67 dnl This is controversial, but I am convinced this is the right way to go,
68 dnl at least by default. Otherwise there are too many surprises.
69 define([AC_CACHE_LOAD], )dnl
70 define([AC_CACHE_SAVE], )dnl
71 define([AC_CACHE_VAL], [
75 dnl Redefine AC_TRY_RUN_NATIVE to not throw away stderr while running
76 dnl AC_TRY_RUN_NATIVE(PROGRAM, [ACTION-IF-TRUE [, ACTION-IF-FALSE]])
77 define([AC_TRY_RUN_NATIVE],
78 [cat > conftest.$ac_ext <<EOF
79 [#]line __oline__ "configure"
83 if AC_TRY_EVAL(ac_link) && test -s conftest && (./conftest; exit $?) 2>&AC_FD_CC
85 dnl Do not remove the temporary files here, so they can be examined.
86 ifelse([$2], , :, [$2])
89 echo "configure: failed program was:" >&AC_FD_CC
90 cat conftest.$ac_ext >&AC_FD_CC
91 ifelse([$3], , , [ rm -fr conftest*
95 rm -fr conftest*])dnl AC_TRY_RUN_NATIVE
98 dnl Avoid spurious cross-compiling warnings from AC_TRY_RUN
99 dnl XEmacs is unlikely to ever cross-compile
100 define([AC_TRY_RUN],[AC_TRY_RUN_NATIVE([$1], [$2], [$3])])dnl
102 dnl Redefine AC_DEFINE* to provide more output if extra_verbose
103 dnl Set VARIABLE to VALUE, verbatim, or 1.
104 dnl AC_DEFINE(VARIABLE [, VALUE])
106 [{ test "$extra_verbose" = "yes" && cat << \EOF
107 Defining $1[]ifelse($#, 2, [ = $2],)
109 cat >> confdefs.h <<\EOF
110 [#define] $1 ifelse($#, 2, [$2], 1)
115 define([AC_DEFINE_UNQUOTED],
116 [{ test "$extra_verbose" = "yes" && cat << EOF
117 Defining $1[]ifelse($#, 2, [ = $2],)
119 cat >> confdefs.h <<EOF
120 [#define] $1 ifelse($#, 2, [$2], 1)
123 ])dnl AC_DEFINE_UNQUOTED
125 dnl redefine AC_CHECK_LIB in accordance with our own value of ac_link
126 dnl Add in extra kludgy check to support with_dnet=no
127 dnl Add in extra LDFLAGS arg, which PRECEDE libs
128 dnl Support --with-dnet=no
130 dnl AC_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
131 dnl [, OTHER-LIBRARIES] [, LDFLAGS]]]])
132 define([AC_CHECK_LIB],
133 [ifelse([$1],dnet, [if test "$with_dnet" = "no" ; then
134 ac_cv_lib_dnet_dnet_ntoa=no
135 ifelse([$4], , , [$4]
139 AC_CHECK_LIB_ORIG_HACKED([$1],[$2],[$3],[$4],[$5], [$6])
140 [ifelse([$1],dnet,[fi
144 define([AC_CHECK_LIB_ORIG_HACKED],
145 [ifelse([$5],,AC_MSG_CHECKING([for $2 in -l$1]),
146 xe_msg_checking="for [$2] in -l[$1]"
147 test -n "[$5]" && xe_msg_checking="$xe_msg_checking using extra libs [$5]"
148 AC_MSG_CHECKING("$xe_msg_checking"))
149 dnl Use a cache variable name containing both the library and function name,
150 dnl because the test really is for library $1 defining function $2, not
151 dnl just for library $1. Separate tests with the same $1 and different $2s
152 dnl may have different results.
153 ac_lib_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
154 AC_CACHE_VAL(ac_cv_lib_$ac_lib_var,
155 [xe_check_libs="$6 -l$1 $5"
157 ifelse([$2], [main], , dnl Avoid conflicting decl of main.
158 [/* Override any gcc2 internal prototype to avoid an error. */
159 ]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
163 [/* We use char because int might match the return type of a gcc2
164 builtin and then its argument prototype would still apply. */
168 eval "ac_cv_lib_$ac_lib_var=yes",
169 eval "ac_cv_lib_$ac_lib_var=no")
172 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
176 ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \
177 -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
179 AC_DEFINE_UNQUOTED($ac_tr_lib)
180 XE_PREPEND([-l$1], LIBS)
187 ])dnl AC_CHECK_LIB_ORIG_HACKED
192 [define([AC_LANG], [C])dnl
194 dnl CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
195 dnl ac_cpp='$CPP $CPPFLAGS'
196 dnl ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&AC_FD_CC'
197 dnl ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
198 xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
199 xe_ldflags='$LDFLAGS $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_x_site $ld_switch_run'
200 xe_libs='$ld_call_shared $xe_check_libs $X_EXTRA_LIBS $libs_x $X_PRE_LIBS $LIBS $libs_machine $libs_system $libs_standard'
201 ac_cpp='$CPP '"$xe_cppflags"
202 ac_compile='${CC-cc} -c $CFLAGS '"$xe_cppflags"' conftest.$ac_ext 1>&AC_FD_CC'
203 ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&AC_FD_CC'
207 dnl The construct foo=`echo $w1 $w2 $w3` fails on some systems if $w1 = -e or -n
208 dnl So we use the following instead.
209 dnl XE_SPACE(var, words)
212 for W in $2; do if test -z "$T"; then T="$W"; else T="$T $W"; fi; done
216 dnl XE_ADD_OBJS(foo.o ...)
217 define([XE_ADD_OBJS],
218 [extra_objs="$extra_objs [$1]" && dnl
219 if test "$extra_verbose" = "yes"; then
220 echo " xemacs will be linked with \"[$1]\""
223 dnl XE_APPEND(value, varname)
225 [[$2]="$[$2] [$1]" && dnl
226 if test "$extra_verbose" = "yes"; then echo " Appending \"[$1]\" to \$[$2]"; fi])
228 dnl XE_PREPEND(value, varname)
230 [[$2]="[$1] $[$2]" && dnl
231 if test "$extra_verbose" = "yes"; then echo " Prepending \"[$1]\" to \$[$2]"; fi])
234 define([XE_DIE], [{ echo "Error:" $1 >&2; exit 1; }])
236 dnl XE_STRIP_4TH_COMPONENT(var)
237 dnl Changes i986-pc-linux-gnu to i986-pc-linux, as God (not RMS) intended.
238 define([XE_STRIP_4TH_COMPONENT],
239 [$1=`echo "$$1" | sed '[s/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/]'`])
241 dnl Initialize some variables set by options.
242 dnl The variables have the same names as the options, with
243 dnl dashes changed to underlines.
245 define([AC_INIT_PARSE_ARGS],[
247 dnl Get sane consistent behavior from various shells
248 dnl Avoid losing with weird user CDPATHs
250 if test -n "$ZSH_VERSION"; then
251 dnl zsh's Bourne shell emulation options
252 setopt NO_BAD_PATTERN NO_BANG_HIST NO_BG_NICE NO_EQUALS NO_FUNCTION_ARGZERO
253 setopt GLOB_SUBST NO_HUP INTERACTIVE_COMMENTS KSH_ARRAYS NO_MULTIOS NO_NOMATCH
254 setopt RM_STAR_SILENT POSIX_BUILTINS SH_FILE_EXPANSION SH_GLOB SH_OPTION_LETTERS
255 setopt SH_WORD_SPLIT BSD_ECHO IGNORE_BRACES
256 dnl zsh-3.1-beta drops core on the following
258 if test -n "$CDPATH"; then CDPATH="."; export CDPATH; fi
259 elif test -n "$BASH_VERSION"; then
260 dnl Use Posix mode with bash
264 if test -n "$CDPATH"; then CDPATH="."; export CDPATH; fi
267 dnl Initialize some variables set by options.
268 dnl The variables have the same names as the options, with
269 dnl dashes changed to underlines.
278 program_transform_name=s,x,x,
287 dnl Initialize some other variables.
290 SHELL=${CONFIG_SHELL-/bin/sh}
291 dnl Maximum number of lines to put in a shell here document.
293 ])dnl AC_INIT_PARSE_ARGS
295 AC_INIT(src/lisp.h)dnl
296 AC_CONFIG_HEADER(src/config.h lwlib/config.h)
297 dnl Remove any more than one leading "." element from the path name.
298 dnl If we do not remove them, then another "./" will be prepended to
299 dnl the file name each time we use config.status, and the program name
300 dnl will get larger and larger. This would not be a problem, except
301 dnl that since progname gets recorded in all the Makefiles this script
302 dnl produces, move-if-change thinks they're different when they're
305 dnl It would be nice if we could put the ./ in a \( \) group and then
306 dnl apply the * operator to that, so we remove as many leading './././'s
307 dnl as are present, but some seds (like Ultrix's sed) don't allow you to
308 dnl apply * to a \( \) group. Bleah.
309 progname="`echo $0 | sed 's:^\./\./:\./:'`"
311 dnl -----------------------------
312 dnl Establish some default values
313 dnl -----------------------------
315 XE_APPEND(lib-src, MAKE_SUBDIR)
316 XE_APPEND(lib-src, INSTALL_ARCH_DEP_SUBDIR)
319 exec_prefix='${prefix}'
320 bindir='${exec_prefix}/bin'
321 dnl FSF 19.29 changes to:
322 dnl datadir='${prefix}/share'
323 dnl sharedstatedir='${prefix}/com'
324 dnl libexecdir='${exec_prefix}/libexec'
325 datadir='${prefix}/lib'
326 statedir='${prefix}/lib'
327 libdir='${exec_prefix}/lib'
328 mandir='${prefix}/man/man1'
329 inststaticdir='${PROGNAME}'
330 instvardir='${PROGNAME}-${version}'
331 infodir='${datadir}/${instvardir}/info'
334 lispdir='${datadir}/${instvardir}/lisp'
335 moduledir='${datadir}/${instvardir}/${configuration}/modules'
336 sitelispdir='${datadir}/${inststaticdir}/site-lisp'
337 sitemoduledir='${datadir}/${inststaticdir}/site-modules'
338 pkgdir='${datadir}/${instvardir}/lisp'
340 etcdir='${datadir}/${instvardir}/etc'
341 archlibdir='${datadir}/${instvardir}/${configuration}'
342 docdir='${archlibdir}'
345 with_site_modules='yes'
351 cpp='' cppflags='' libs='' ldflags=''
357 with_system_malloc='default'
358 with_dlmalloc='default'
360 dnl use_assertions should be 'yes' by default. Too many people in this
361 dnl world have core dumps turned off by default or \"cannot find where the
362 dnl core file went\". At least we should get some useful output ...
364 dnl the following is set to yes or no later.
370 dnl dragndrop is still experimental. When it is stable, comment out the following line:
373 dnl ------------------
374 dnl Options Processing
375 dnl ------------------
377 define([USAGE_ERROR],
378 [(echo "$progname: Usage error:"
380 echo " Use \`$progname --help' to show usage.") >&2 && exit 1])
382 dnl Record all the arguments, so we can save them in config.status.
385 dnl Shell Magic: Quote the quoted arguments in ARGUMENTS. At a later date,
386 dnl in order to get the arguments back in $@, we have to do an
387 dnl 'eval set x "$quoted_arguments"; shift'
388 dnl # We use sed to turn embedded ' into '"'"'. I truly hate sh quoting.
389 quoted_sed_magic=s/"'"/"'"'"'"'"'"'"'"/g
393 -no-create | --no-create | --no-creat | --no-crea | --no-cre \
394 | --no-cr | --no-c) ;;
395 -no-recursion | --no-recursion | --no-recursio | --no-recursi \
396 | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
398 quoted_i="`echo '' $i | sed -e 's:^ ::' -e $quoted_sed_magic`"
399 quoted_arguments="$quoted_arguments '$quoted_i'" ;;
403 dnl Do not use shift -- that destroys the argument list, which autoconf needs
404 dnl to produce config.status. It turns out that "set - $arguments" does not
406 dnl However, it also turns out that many shells cannot expand ${10} at all.
407 dnl So using an index variable does not work either. It is possible to use
408 dnl some shell magic to make 'set x "$arguments"; shift' work portably.
409 while test $# != 0; do
412 --no-create|--no-recursion) ;;
413 dnl Anything starting with a hyphen we assume is an option.
415 dnl Separate the switch name from the value it is being given.
418 opt=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*\([[^=]]*\)=.*$:\1:'`
419 val=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*[[^=]]*=\(.*\)$:\1:'`
422 dnl special case these strings since echo may silently eat them:
423 dnl --help ) opt=help val=yes valomitted=yes ;;
424 dnl --version ) opt=version val=yes valomitted=yes ;;
425 dnl -e ) opt=e val=yes valomitted=yes ;;
426 dnl -E ) opt=E val=yes valomitted=yes ;;
427 dnl -n ) opt=n val=yes valomitted=yes ;;
429 dnl If FOO is a boolean argument, --FOO is equivalent to
430 dnl --FOO=yes. Otherwise, the value comes from the next
431 dnl argument - see below.
432 opt=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*\(.*\)$:\1:'`
433 val="yes" valomitted=yes
437 dnl translate "-" in option string to "_"
439 opt="`echo '' $opt | sed -e 's:^ ::' | tr - _`"
441 dnl Support --without-FOO as a synonym for --with-FOO=no
442 case "${valomitted}-${opt}" in yes-without_* )
443 opt=`echo $opt | sed 's/without/with/'`
444 valomitted="no" val="no" ;;
447 dnl Process the option.
450 dnl Process (many) boolean options
453 with_site_modules | \
505 memory_usage_stats | \
506 with_clash_detection | \
509 dnl Make sure the value given was either "yes" or "no".
511 y | ye | yes ) val=yes ;;
513 * ) USAGE_ERROR("The \`--$optname' option requires a boolean value: \`yes' or \`no'.") ;;
515 eval "$opt=\"$val\"" ;;
518 dnl Options that take a user-supplied value, as in --x-includes=/usr/X11R6/include
519 dnl The cache-file option is ignored (for compatibility with other configures)
535 site_runtime_libraries )
536 dnl If the value was omitted, get it from the next argument.
537 if test "$valomitted" = "yes" ; then
538 dnl Get the next argument from the argument list, if there is one.
539 if test "$#" = 0 ; then
540 USAGE_ERROR("The \`--$optname' option requires a value.");
547 dnl Options that take "yes", "no", or "default" values
550 with_debug_malloc | use_debug_malloc | \
551 with_system_malloc | use_system_malloc )
553 y | ye | yes ) val=yes ;;
555 d | de | def | defa | defau | defaul | default ) val=default ;;
556 * ) USAGE_ERROR(["The \`--$optname' option requires one of these values:
557 \`yes', \`no', or \`default'."]) ;;
559 case "$opt" in use_* ) opt="`echo $opt | sed s/use/with/`" ;; esac
563 dnl Has the user requested database support?
565 with_database_berkdb=no
567 with_database_gdbm=no
568 for x in `echo "$val" | sed -e 's/,/ /g'` ; do
571 b | be | ber | berk | berkd | berkdb ) with_database_berkdb=yes ;;
572 d | db | dbm ) with_database_dbm=yes ;;
573 g | gn | gnu | gnud | gnudb | gnudbm | gdbm) with_database_gdbm=yes ;;
574 * ) USAGE_ERROR(["The \`--$optname' option value
575 must be either \`no' or a comma-separated list
576 of one or more of \`berkdb' and either \`dbm' or \`gnudbm'."]) ;;
579 if test "$with_database_dbm" = "yes" -a \
580 "$with_database_gdbm" = "yes"; then
581 USAGE_ERROR("Only one of \`dbm' and \`gnudbm' may be specified
582 with the \`--$optname' option.")
586 dnl Has the user requested sound support?
588 dnl values is a subset of all,native,nas,esd
589 dnl or their negatives: none,nonative,nonas,noesd
590 for x in `echo "$val" | sed -e 's/,/ /g'` ; do
592 dnl all and none are only permitted as the first in the list.
593 n | no | non | none ) new_sdefault=no ;;
594 a | al | all | both ) new_sdefault=yes ;;
596 native ) with_native_sound=yes ;;
597 nonative ) with_native_sound=no ;;
599 nas ) with_nas_sound=yes ;;
600 nonas ) with_nas_sound=no ;;
602 esd ) with_esd_sound=yes ;;
603 noesd ) with_esd_sound=no ;;
605 * ) bogus_sound=yes ;;
607 if test "$bogus_sound" -o \
608 \( -n "$new_sdefault" -a -n "$sound_notfirst" \) ; then
609 types="\`all', \`none', \`(no)native', \`no(nas)', \`(no)esd'."
610 USAGE_ERROR(["Valid types for the \`--$optname' option are:
612 The default is to autodetect all sound support."])
613 elif test -n "$new_sdefault" ; then
614 with_native_sound=$new_sdefault
615 with_nas_sound=$new_sdefault
616 with_esd_sound=$new_sdefault
617 new_sdefault= # reset this
623 dnl Has the user specified a preferred Athena widget set?
624 dnl This bit expands any alias names out for us...
627 xa | xaw ) val=xaw ;;
628 3 | 3d | xaw3d ) val=3d ;;
629 dnl No `n' for next, someone may try `no'
630 ne | nex | next | naxtaw) val=next ;;
631 dnl Have not tested the next two...
632 9 | 95 | xaw95 ) val=95 ;;
633 xp | xpm | xawxpm ) val=xpm ;;
634 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
635 \`xaw', \`3d', \`next', \`95', or \`xpm'."]) ;;
640 dnl Has the user requested XIM support?
643 y | ye | yes ) val=yes ;;
644 n | no | non | none ) val=no ;;
645 x | xl | xli | xlib ) val=xlib ;;
646 m | mo | mot | moti | motif ) val=motif ;;
647 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
648 \`motif', \`xlib', \`yes', or \`no'."]) ;;
653 dnl Mail locking specification
658 file | dot ) val=file ;;
659 locking ) val=locking ;;
660 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
661 \`lockf', \`flock', \`file', \`locking', or \`mmdf'."]) ;;
666 dnl Has the user requested error-checking?
668 dnl value can be all, none, and/or a list of categories to check.
669 dnl Example: --error-checking=all,noextents,nobufpos
670 dnl Example: --error-checking=none,malloc,gc
672 for x in `echo "$val" | sed -e 's/,/ /g'` ; do
674 dnl all and none are only permitted as the first in the list.
675 n | no | non | none ) new_default=no ;;
676 a | al | all ) new_default=yes ;;
678 extents ) error_check_extents=yes ;;
679 noextents ) error_check_extents=no ;;
681 typecheck ) error_check_typecheck=yes ;;
682 notypecheck ) error_check_typecheck=no ;;
684 bufpos ) error_check_bufpos=yes ;;
685 nobufpos ) error_check_bufpos=no ;;
687 gc ) error_check_gc=yes ;;
688 nogc ) error_check_gc=no ;;
690 malloc ) error_check_malloc=yes ;;
691 nomalloc ) error_check_malloc=no ;;
693 byte_code ) error_check_byte_code=yes ;;
694 nobyte_code ) error_check_byte_code=no ;;
696 glyphs ) error_check_glyphs=yes ;;
697 noglyphs ) error_check_glyphs=no ;;
699 * ) bogus_error_check=yes ;;
701 if test "$bogus_error_check" -o \
702 \( -n "$new_default" -a -n "$echeck_notfirst" \) ; then
703 if test "$error_check_default" = yes ; then
704 types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nobufpos', \`nogc', \`nomalloc', \`noglyphs' and \`nobyte-code'."
706 types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', \`malloc', \`glyphs' and \`byte-code'."
708 USAGE_ERROR(["Valid types for the \`--$optname' option are:
710 elif test -n "$new_default" ; then
711 error_check_extents=$new_default
712 error_check_typecheck=$new_default
713 error_check_bufpos=$new_default
714 error_check_gc=$new_default
715 error_check_malloc=$new_default
716 error_check_byte_code=$new_default
717 error_check_glyphs=$new_default
718 new_default= # reset this
724 dnl Has the user tried to tell us where the X files are?
725 dnl I think these are dopey, but no less than three alpha
726 dnl testers, at large sites, have said they have their X files
727 dnl installed in odd places.
729 dnl Has the user specified one of the path options?
730 prefix | exec_prefix | bindir | datadir | statedir | libdir | \
731 mandir | infodir | infopath | lispdir | etcdir | pkgdir | \
732 archlibdir | docdir | package_path )
733 dnl If the value was omitted, get it from the next argument.
734 if test "$valomitted" = "yes"; then
735 if test "$#" = 0; then
736 USAGE_ERROR("The \`--$optname' option requires a value.");
742 dnl You need to synchronize this with the way the
743 dnl default values are built.
745 dnl prefix is taken care of by --with-prefix
746 exec_prefix ) AC_DEFINE(EXEC_PREFIX_USER_DEFINED) ;;
747 lispdir ) AC_DEFINE(LISPDIR_USER_DEFINED) ;;
748 sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
749 moduledir ) AC_DEFINE(MODULEDIR_USER_DEFINED) ;;
750 etcdir ) AC_DEFINE(ETCDIR_USER_DEFINED) ;;
751 infodir ) AC_DEFINE(INFODIR_USER_DEFINED) ;;
752 infopath ) AC_DEFINE(INFOPATH_USER_DEFINED) ;;
753 package_path ) AC_DEFINE(PACKAGE_PATH_USER_DEFINED) ;;
755 AC_DEFINE(INFODIR_USER_DEFINED)
756 AC_DEFINE(LISPDIR_USER_DEFINED)
757 AC_DEFINE(MODULEDIR_USER_DEFINED)
758 AC_DEFINE(ETCDIR_USER_DEFINED)
759 AC_DEFINE(DOCDIR_USER_DEFINED)
760 AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;;
761 docdir ) AC_DEFINE(DOCDIR_USER_DEFINED) ;;
762 exec_prefix | libdir | archlibdir ) AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;;
766 dnl --no-create added by autoconf for use by config.status
769 dnl Has the user asked for some help?
770 "usage" | "help" ) ${PAGER-more} ${srcdir}/configure.usage; exit 0 ;;
772 dnl Has the user specified the toolkit(s) to use for GUI elements?
774 "with_scrollbars" | \
778 l | lu | luc | luci | lucid ) val=lucid ;;
779 m | mo | mot | moti | motif ) val=motif ;;
780 a | at | ath | athe | athen | athena ) val=athena ;;
781 n | no | non | none ) val=no ;;
782 y | ye | yes ) val=yes ;;
783 m | ms | msw ) val=msw ;;
784 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
785 \`lucid', \`motif', \`athena', \`yes', or \`no'."]) ;;
790 dnl Obsolete legacy argument? Warn, but otherwise ignore.
791 "use_minimal_tagbits" | \
792 "use_indexed_lrecord_implementation" | \
794 "const_is_losing" | \
796 AC_MSG_WARN([Obsolete option \`--$optname' ignored.])
799 dnl Unrecognized option? No mercy for user errors.
800 * ) USAGE_ERROR("Unrecognized option: $arg") ;;
805 dnl Assume anything with multiple hyphens is a configuration name.
806 *-*-*) configuration="$arg" ;;
808 dnl Unrecognized argument? No mercy for user errors.
809 *) USAGE_ERROR("Unrecognized argument: $arg") ;;
814 dnl -------------------------
815 dnl Finish options processing
816 dnl -------------------------
818 dnl Several options are equivalent to, and override, environment variables.
819 test -n "$cpp" && CPP="$cpp"
820 test -n "$cppflags" && CPPFLAGS="$cppflags"
821 test -n "$libs" && LIBS="$libs"
822 test -n "$ldflags" && LDFLAGS="$ldflags"
824 dnl Get the arguments back. See the diatribe on Shell Magic above.
825 eval set x "$quoted_arguments"; shift
827 dnl --extra-verbose implies --verbose
828 test "$extra_verbose" = "yes" && verbose=yes
830 dnl with_x is an obsolete synonym for with_x11
831 test -n "$with_x" && with_x11="$with_x"
833 dnl --with-quantify or --with-purify imply --use-system-malloc
834 if test "$with_purify" = "yes" -o "$with_quantify" = "yes"; then
835 test "$with_system_malloc" = "default" && with_system_malloc=yes
838 dnl XE_CHECK_FEATURE_DEPENDENCY(feature1, feature2)
839 define([XE_CHECK_FEATURE_DEPENDENCY],
840 [if test "$with_$1 $with_$2" = "yes no"; then
841 USAGE_ERROR("--with-$1 requires --with-$2")
842 elif test "$with_$2" = "no" ; then with_$1=no
843 elif test "$with_$1" = "yes"; then with_$2=yes
847 dnl CDE requires tooltalk
848 XE_CHECK_FEATURE_DEPENDENCY(cde, tooltalk)
850 dnl Find the source directory.
853 dnl If srcdir is not specified, see if "." or ".." might work.
855 for dir in "`echo $0 | sed 's|//|/|' | sed 's|/[[^/]]*$||'`" "." ".." ; do
856 if test -f "$dir/src/lisp.h" -a \
857 -f "$dir/lisp/version.el" ; then
862 if test -z "$srcdir" ; then
863 USAGE_ERROR(["Neither the current directory nor its parent seem to
864 contain the XEmacs sources. If you do not want to build XEmacs in its
865 source tree, you should run \`$progname' in the directory in which
866 you wish to build XEmacs, using the \`--srcdir' option to say where the
867 sources may be found."])
871 dnl Otherwise, check if the directory they specified is okay.
873 if test ! -f "$srcdir/src/lisp.h" -o \
874 ! -f "$srcdir/lisp/version.el" ; then
875 USAGE_ERROR(["The directory specified with the \`--srcdir' option,
876 \`$srcdir', doesn't seem to contain the XEmacs sources. You should
877 either run the \`$progname' script at the top of the XEmacs source
878 tree, or use the \`--srcdir' option to specify the XEmacs source directory."])
883 dnl ###########################################################################
884 if test -z "$configuration"; then
885 dnl Guess the configuration
886 configuration=`${CONFIG_SHELL-/bin/sh} $srcdir/config.guess`
887 if test -z "$configuration"; then
888 USAGE_ERROR(["XEmacs has not been ported to this host type.
889 Try explicitly specifying the CONFIGURATION when rerunning configure."])
895 dnl Make symlinks for etc, lisp, and info directories while the path
896 dnl is still relative. We do not symlink lock because someone may
897 dnl have stuck the source on a read-only partition. Instead we
898 dnl create it as an actual directory later on if it does not already
900 for dir in lisp etc man info tests; do
901 if test ! -d "$dir" ; then
902 echo Making symbolic link to "$srcdir/$dir"
903 ${LN_S} "$srcdir/$dir" "$dir"
907 dnl Do our best to deal with automounter brokenness
908 dnl CANONICALIZE_PATH(varname)
909 define([CANONICALIZE_PATH],
910 [if test -d "/net"; then
911 if test -d "/tmp_mnt/net"; then tdir="tmp_mnt/net"; else tdir="tmp_mnt"; fi
913 sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
916 dnl Calculate canonical name for blddir (i.e. current directory).
917 dnl PWD may already be the preferable absolute name for ".",
918 dnl but we can't trust it - it is sometimes inaccurate.
919 absolute_pwd="`pwd`";
920 if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd"
922 else blddir="$absolute_pwd"; CANONICALIZE_PATH(blddir)
926 dnl Make srcdir absolute, if not already. It is important to
927 dnl avoid running the path through pwd unnecessary, since pwd can
928 dnl give you automounter prefixes, which can go away.
931 . ) srcdir="$blddir" ;;
932 * ) srcdir="`cd $srcdir && pwd`"; CANONICALIZE_PATH(srcdir) ;;
935 dnl Check if the source directory already has a configured system in it.
936 if test `pwd` != `sh -c cd $srcdir && pwd` \
937 && test -f "$srcdir/src/config.h"; then
938 (echo "$progname: WARNING: The directory tree \`$srcdir' is being used"
939 echo " as a build directory right now; it has been configured in its own"
940 echo " right. To configure in another directory as well, you MUST"
941 echo " use GNU make. If you do not have GNU make, then you must"
942 echo " now do \`make distclean' in $srcdir,"
943 echo " and then run $progname again.") >&2
944 extrasub='/^VPATH[[ ]]*=/c\
950 vpath %.in $(srcdir)'
953 dnl ----------------------------------------
954 dnl Find out which version of XEmacs this is
955 dnl ----------------------------------------
956 . "$srcdir/version.sh" || exit 1;
957 dnl Must do the following first to determine verbosity for AC_DEFINE
958 if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi
959 : "${extra_verbose=$beta}"
960 version="${emacs_major_version}.${emacs_minor_version}"
961 AC_DEFINE_UNQUOTED(EMACS_MAJOR_VERSION, $emacs_major_version)
962 AC_DEFINE_UNQUOTED(EMACS_MINOR_VERSION, $emacs_minor_version)
963 if test -n "$emacs_beta_version" ; then
964 if test "$beta" = "yes"; then
965 version="${version}-b${emacs_beta_version}"
966 AC_DEFINE_UNQUOTED(EMACS_BETA_VERSION, $emacs_beta_version)
968 version="${version}.${emacs_beta_version}"
969 AC_DEFINE_UNQUOTED(EMACS_PATCH_LEVEL, $emacs_beta_version)
972 AC_DEFINE_UNQUOTED(XEMACS_CODENAME, "$xemacs_codename")
973 AC_DEFINE_UNQUOTED(EMACS_VERSION, "$version")
975 if test "$with_infodock" = "yes"; then
976 if test ! -f ../../ID-INSTALL; then
977 echo "Cannot build InfoDock without InfoDock sources"
982 if test "$with_infodock" = "yes"; then
983 dnl InfoDock version numbers. XEmacs will use the same style of numbering
984 dnl after the release of XEmacs 21.0.
985 AC_DEFINE_UNQUOTED(INFODOCK_MAJOR_VERSION, $infodock_major_version)
986 AC_DEFINE_UNQUOTED(INFODOCK_MINOR_VERSION, $infodock_minor_version)
987 AC_DEFINE_UNQUOTED(INFODOCK_BUILD_VERSION, $infodock_build_version)
988 version=${infodock_major_version}.${infodock_minor_version}.${infodock_build_version}
990 CPPFLAGS="$CPPFLAGS -DINFODOCK"
995 AC_DEFINE_UNQUOTED(EMACS_PROGNAME, "$PROGNAME")
997 dnl ----------------------------------
998 dnl Error checking and debugging flags
999 dnl ----------------------------------
1000 dnl Error checking default to "yes" in beta versions, to "no" in releases.
1001 dnl Same goes for --debug and --extra-verbosity.
1002 if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi
1003 test "${error_check_extents=$beta}" = yes && AC_DEFINE(ERROR_CHECK_EXTENTS)
1004 test "${error_check_typecheck=$beta}" = yes && AC_DEFINE(ERROR_CHECK_TYPECHECK)
1005 test "${error_check_bufpos=$beta}" = yes && AC_DEFINE(ERROR_CHECK_BUFPOS)
1006 test "${error_check_gc=$beta}" = yes && AC_DEFINE(ERROR_CHECK_GC)
1007 test "${error_check_malloc=$beta}" = yes && AC_DEFINE(ERROR_CHECK_MALLOC)
1008 test "${error_check_byte_code=$beta}" = yes && AC_DEFINE(ERROR_CHECK_BYTE_CODE)
1009 test "${error_check_glyphs=$beta}" = yes && AC_DEFINE(ERROR_CHECK_GLYPHS)
1010 dnl debug=yes must be set when error checking is present. This should be
1012 dnl debug implies other options
1013 if test "${debug:=$beta}" = "yes"; then
1014 use_assertions=yes memory_usage_stats=yes
1015 XE_ADD_OBJS(debug.o)
1016 XE_ADD_OBJS(tests.o)
1017 AC_DEFINE(DEBUG_XEMACS)
1019 test "$use_assertions" = "yes" && AC_DEFINE(USE_ASSERTIONS)
1020 test "$memory_usage_stats" = "yes" && AC_DEFINE(MEMORY_USAGE_STATS)
1022 dnl ------------------------------
1023 dnl Determine the s&m files to use
1024 dnl ------------------------------
1025 dnl Given the configuration name, set machfile and opsysfile to the
1026 dnl names of the m/*.h and s/*.h files we should use.
1028 dnl Canonicalize the configuration name.
1029 AC_MSG_CHECKING("host system type")
1030 dnl allow -workshop suffix on configuration name
1031 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'`
1032 canonical=`${CONFIG_SHELL-/bin/sh} $srcdir/config.sub "$internal_configuration"`
1033 XE_STRIP_4TH_COMPONENT(configuration)
1034 XE_STRIP_4TH_COMPONENT(canonical)
1035 AC_MSG_RESULT($configuration)
1037 dnl If you add support for a new configuration, add code to this
1038 dnl switch statement to recognize your configuration name and select
1039 dnl the appropriate operating system and machine description files.
1041 dnl You would hope that you could choose an m/*.h file pretty much
1042 dnl based on the machine portion of the configuration name, and an s-
1043 dnl file based on the operating system portion. However, it turns out
1044 dnl that each m/*.h file is pretty manufacturer-specific - for
1045 dnl example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are
1046 dnl all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
1047 dnl machines. So we basically have to have a special case for each
1048 dnl configuration name.
1050 dnl As far as handling version numbers on operating systems is
1051 dnl concerned, make sure things will fail in a fixable way. If
1052 dnl /etc/MACHINES says nothing about version numbers, be
1053 dnl prepared to handle anything reasonably. If version numbers
1054 dnl matter, be sure /etc/MACHINES says something about it.
1056 dnl Eric Raymond says we should accept strings like "sysvr4" to mean
1057 dnl "System V Release 4"; he writes, "The old convention encouraged"
1058 dnl "confusion between `system' and `release' levels'."
1062 dnl Straightforward machine determination
1063 case "$canonical" in
1064 sparc-*-* ) machine=sparc ;;
1065 alpha*-*-* ) machine=alpha ;;
1066 vax-*-* ) machine=vax ;;
1067 mips-dec-* ) machine=pmax ;;
1068 mips-sgi-irix6* ) machine=iris6d ;;
1069 mips-sgi-* ) machine=iris4d ;;
1070 mips*-linux ) machine=mips ;;
1071 romp-ibm-* ) machine=ibmrt ;;
1072 rs6000-ibm-aix* ) machine=ibmrs6000 ;;
1073 powerpc-ibm-aix* ) machine=ibmrs6000 ;;
1074 powerpc*-* ) machine=powerpc ;;
1075 hppa-*-* ) machine=hp800 ;;
1076 m88k-dg-* ) machine=aviion ;;
1077 m68*-sony-* ) machine=news ;;
1078 mips-sony-* ) machine=news-risc ;;
1079 clipper-* ) machine=clipper ;;
1080 arm* ) machine=arm ;;
1081 ns32k-* ) machine=ns32000 ;;
1084 dnl Straightforward OS determination
1085 case "$canonical" in
1086 *-*-linux* ) opsys=linux ;;
1087 *-*-netbsd* ) opsys=netbsd ;;
1088 *-*-openbsd* ) opsys=openbsd ;;
1089 *-*-nextstep* ) opsys=nextstep ;;
1090 *-*-vms ) opsys=vms ;;
1093 *-dec-osf1.3 | *-dec-osf2* ) opsys=decosf1-3 ;;
1094 *-dec-osf1.2 | *-dec-osf1* ) opsys=decosf1-2 ;;
1095 *-dec-osf3.[[2-9]] ) opsys=decosf3-2 ;;
1096 *-dec-osf3* ) opsys=decosf3-1 ;;
1097 *-dec-osf[[4-9]]* ) opsys=decosf4-0 ;;
1100 *-*-ultrix[[0-3]].* | *-*-ultrix4.0* ) opsys=bsd4-2 ;;
1101 *-*-ultrix4.[[12]]* ) opsys=bsd4-3 ;;
1102 *-*-ultrix* ) opsys=ultrix4-3 ;;
1105 *-*-aix3.1* ) opsys=aix3-1 ;;
1106 *-*-aix3.2.5 ) opsys=aix3-2-5 ;;
1107 *-*-aix3* ) opsys=aix3-2 ;;
1108 *-*-aix4.0* ) opsys=aix4 ;;
1109 *-*-aix4.1* ) opsys=aix4-1 ;;
1110 *-*-aix4* ) opsys=aix4-2 ;;
1112 dnl Other generic OSes
1113 *-gnu* ) opsys=gnu ;;
1114 *-*-bsd4.[[01]] ) opsys=bsd4-1 ;;
1115 *-*-bsd4.2 ) opsys=bsd4-2 ;;
1116 *-*-bsd4.3 ) opsys=bsd4-3 ;;
1117 *-*-aos4.2 ) opsys=bsd4-2 ;;
1118 *-*-aos* ) opsys=bsd4-3 ;;
1119 *-*-sysv0 | *-*-sysvr0 ) opsys=usg5-0 ;;
1120 *-*-sysv2 | *-*-sysvr2 ) opsys=usg5-2 ;;
1121 *-*-sysv2.2 | *-*-sysvr2.2 ) opsys=usg5-2-2 ;;
1122 *-*-sysv3* | *-*-sysvr3* ) opsys=usg5-3 ;;
1123 *-*-sysv4.1* | *-*-sysvr4.1* )opsys=usg5-4 NON_GNU_CPP=/usr/lib/cpp ;;
1124 *-*-sysv4.[[2-9]]* | *-sysvr4.[[2-9]]* )
1125 if test -z "$NON_GNU_CPP" ; then
1126 for prog in "/usr/ccs/lib/cpp" "/lib/cpp"; do
1127 if test -f "$prog"; then NON_GNU_CPP="$prog"; break; fi
1131 *-sysv4* | *-sysvr4* ) opsys=usg5-4 ;;
1132 *-*-mach_bsd4.3* ) opsys=mach-bsd4-3 ;;
1135 case "$canonical" in
1139 case "$canonical" in
1140 i[[3-9]]86-*-netbsd*) machine=intel386 ;;
1141 hp300-*-netbsd* | amiga-*-netbsd* | sun3-*-netbsd* | mac68k-*-netbsd* | da30-*-netbsd* | m68k-*-netbsd* )
1142 dnl Yes, this is somewhat bogus.
1143 machine=hp9000s300 ;;
1144 pc532-*-netbsd* | ns32k-*-netbsd* ) machine=ns32000 ;;
1145 pmax-*-netbsd* | mips-*-netbsd* ) machine=pmax ;;
1151 case "${canonical}" in
1152 i386-*-openbsd*) machine=intel386 ;;
1153 m68k-*-openbsd*) machine=hp9000s300 ;;
1154 mipsel-*-openbsd*) machine=pmax ;;
1159 arm-acorn-riscix1.1* ) machine=acorn opsys=riscix1-1 ;;
1160 arm-acorn-riscix1.2* | arm-acorn-riscix ) machine=acorn opsys=riscix1-2 ;;
1162 dnl Alliant machines
1163 fx80-alliant-* ) machine=alliant4 opsys=bsd4-2 ;;
1164 i860-alliant-* ) machine=alliant-2800 opsys=bsd4-3 ;;
1167 m68*-altos-sysv* ) machine=altos opsys=usg5-2 ;;
1170 580-amdahl-sysv* ) machine=amdahl opsys=usg5-2-2 ;;
1172 dnl Apollo, Domain/OS
1173 m68*-apollo-* ) machine=apollo opsys=bsd4-3 ;;
1175 dnl AT&T 3b2, 3b5, 3b15, 3b20
1176 we32k-att-sysv* ) machine=att3b opsys=usg5-2-2 ;;
1178 dnl AT&T 3b1 - The Mighty Unix PC!
1179 m68*-att-sysv* ) machine=7300 opsys=usg5-2-2 ;;
1182 rs6000-bull-bosx* ) machine=ibmrs6000 opsys=aix3-2 ;; # dpx20
1183 m68*-bull-sysv3* ) machine=dpx2 opsys=usg5-3 ;; # dpx2
1184 m68*-bull-sysv2* ) machine=sps7 opsys=usg5-2 ;; # sps7
1186 dnl CCI 5/32, 6/32 -- see "Tahoe".
1189 celerity-celerity-bsd* ) machine=celerity opsys=bsd4-2 ;;
1192 *-convex-bsd* | *-convex-convexos* )
1193 machine=convex opsys=bsd4-3
1194 NON_GNU_CPP="cc -E -P"
1198 i[[3-9]]86-cubix-sysv* ) machine=intel386 opsys=usg5-3 ;;
1200 dnl Data General AViiON Machines
1201 i586-dg-dgux*R4* | i586-dg-dgux5.4.4* ) machine=aviion opsys=dgux5-4r4 ;;
1202 m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* ) opsys=dgux5-4r3 ;;
1203 m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* ) opsys=dgux5-4r2 ;;
1204 m88k-dg-dgux* ) opsys=dgux ;;
1206 dnl Motorola Delta machines
1207 m68k-motorola-sysv* | m68000-motorola-sysv* ) machine=delta opsys=usg5-3 ;;
1208 m88k-motorola-sysv4* )
1209 dnl jbotte@bnr.ca says that UNIX_System_V <hostName> 4.0 R40V4.3 m88k mc88110
1210 dnl needs POSIX_SIGNALS and therefore needs usg5-4-2.
1211 dnl I hope there are not other 4.0 versions for this machine
1212 dnl which really need usg5-4 instead.
1213 machine=delta88k opsys=usg5-4-2
1215 m88k-motorola-sysv* | m88k-motorola-m88kbcs* ) machine=delta88k opsys=usg5-3 ;;
1218 m68*-dual-sysv* ) machine=dual opsys=usg5-2 ;;
1219 m68*-dual-uniplus* ) machine=dual opsys=unipl5-2 ;;
1222 ns16k-encore-bsd* ) machine=ns16000 opsys=umax ;;
1224 dnl Gould Power Node and NP1
1225 pn-gould-bsd4.2* ) machine=gould opsys=bsd4-2 ;;
1226 pn-gould-bsd4.3* ) machine=gould opsys=bsd4-3 ;;
1227 np1-gould-bsd* ) machine=gould-np1 opsys=bsd4-3 ;;
1229 dnl Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000
1230 dnl as far as XEmacs is concerned).
1232 dnl Build needs to be different on 7.0 and later releases
1233 case "`uname -r`" in
1234 [[56]].[[0-9]] ) machine=nh4000 opsys=cxux ;;
1235 [[7]].[[0-9]] ) machine=nh4000 opsys=cxux7 ;;
1237 NON_GNU_CPP="/lib/cpp"
1239 dnl Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
1240 m68k-harris-cxux* ) machine=nh3000 opsys=cxux ;;
1241 dnl Harris power pc NightHawk running Power UNIX (Series 6000)
1242 powerpc-harris-powerunix ) machine=nh6000 opsys=powerunix NON_GNU_CPP="cc -Xo -E -P" ;;
1244 dnl Honeywell XPS100
1245 xps*-honeywell-sysv* ) machine=xps100 opsys=usg5-2 ;;
1247 dnl HP 9000 series 200 or 300
1248 m68*-hp-bsd* ) machine=hp9000s300 opsys=bsd4-3 ;;
1252 dnl Figure out machine and opsys orthogonally
1253 case "$canonical" in
1254 m68* ) machine=hp9000s300 ;;
1255 hppa* ) machine=hp800 ;;
1258 case "$canonical" in
1259 *-hp-hpux7* ) opsys=hpux ;;
1260 *-hp-hpux8* ) opsys=hpux8 ;;
1261 *-hp-hpux9* ) opsys=hpux9 ;;
1262 *-hp-hpux10* ) opsys=hpux10 ;;
1263 *-hp-hpux11* ) opsys=hpux11 ;;
1267 dnl HP has a broken "strcat"
1268 case "$opsys" in hpux9 | hpux10 ) XE_ADD_OBJS(strcat.o) ;; esac
1270 if test "$opsys" = "hpux10" -o "$opsys" = "hpux11"; then \
1271 ansi_flag="-Ae"; else ansi_flag="-Aa"; fi
1272 NON_GNU_CC="cc $ansi_flag" NON_GNU_CPP="cc $ansi_flag -E"
1274 case "$canonical" in *-hp-hpux*shr* ) opsys="${opsys}-shr" ;; esac
1278 orion-orion-bsd* ) machine=orion opsys=bsd4-2 ;;
1279 clipper-orion-bsd* ) machine=orion105 opsys=bsd4-2 ;;
1282 i[[3-9]]86-ibm-aix1.1* ) machine=ibmps2-aix opsys=usg5-2-2 ;;
1283 i[[3-9]]86-ibm-aix1.[[23]]* | i[[3-9]]86-ibm-aix* ) machine=ibmps2-aix opsys=usg5-3 ;;
1284 i370-ibm-aix*) machine=ibm370aix opsys=usg5-3 ;;
1285 romp-ibm-aos* ) opsys=bsd4-3 ;;
1286 romp-ibm-bsd* ) opsys=bsd4-3 ;;
1287 romp-ibm-mach* ) opsys=mach-bsd4-3 ;;
1289 dnl Integrated Solutions "Optimum V"
1290 m68*-isi-bsd4.2* ) machine=isi-ov opsys=bsd4-2 ;;
1291 m68*-isi-bsd4.3* ) machine=isi-ov opsys=bsd4-3 ;;
1293 dnl Intel 386 machines where we do care about the manufacturer
1294 i[[3-9]]86-intsys-sysv* ) machine=is386 opsys=usg5-2-2 ;;
1297 i[[3-9]]86-prime-sysv* ) machine=i386 opsys=usg5-3 ;;
1299 dnl Sequent Symmetry running Dynix
1300 i[[3-9]]86-sequent-bsd* ) machine=symmetry opsys=bsd4-3 ;;
1302 dnl Sequent Symmetry running DYNIX/ptx
1303 i[[3-9]]86-sequent-ptx* ) machine=sequent-ptx opsys=ptx NON_GNU_CPP="/lib/cpp" ;;
1305 dnl Unspecified sysv on an ncr machine defaults to svr4.2.
1306 dnl (Plain usg5-4 does not turn on POSIX signals, which we need.)
1307 i[[3-9]]86-ncr-sysv* ) machine=ncr386 opsys=usg5-4-2 ;;
1309 dnl Intel Paragon OSF/1
1310 i860-intel-osf1* ) machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp ;;
1313 i860-*-sysv4* ) machine=i860 opsys=usg5-4 NON_GNU_CC="/bin/cc" NON_GNU_CPP="/usr/ccs/lib/cpp" ;;
1315 dnl Masscomp machines
1316 m68*-masscomp-rtu* ) machine=masscomp opsys=rtu ;;
1318 dnl Megatest machines
1319 m68*-megatest-bsd* ) machine=mega68 opsys=bsd4-2 ;;
1321 dnl Workstations sold by MIPS
1322 dnl This is not necessarily all workstations using the MIPS processor -
1323 dnl Irises are produced by SGI, and DECstations by DEC.
1324 mips-mips-usg* ) machine=mips4 ;;
1327 NON_GNU_CC="cc -systype bsd43"
1328 NON_GNU_CPP="cc -systype bsd43 -E"
1329 case "$canonical" in
1330 mips-mips-riscos4* ) opsys=bsd4-3 ;;
1331 mips-mips-riscos5* ) opsys=riscos5 ;;
1334 mips-mips-bsd* ) machine=mips opsys=bsd4-3 ;;
1335 mips-mips-* ) machine=mips opsys=usg5-2-2 ;;
1338 m68*-next-* | m68k-*-nextstep* ) machine=m68k opsys=nextstep ;;
1340 dnl The complete machine from National Semiconductor
1341 ns32k-ns-genix* ) machine=ns32000 opsys=usg5-2 ;;
1344 m68*-ncr-sysv2* | m68*-ncr-sysvr2* ) machine=tower32 opsys=usg5-2-2 ;;
1345 m68*-ncr-sysv3* | m68*-ncr-sysvr3* ) machine=tower32v3 opsys=usg5-3 ;;
1347 dnl Nixdorf Targon 31
1348 m68*-nixdorf-sysv* ) machine=targon31 opsys=usg5-2-2 ;;
1351 m68*-nu-sysv* ) machine=nu opsys=usg5-2 ;;
1354 m68*-plexus-sysv* ) machine=plexus opsys=usg5-2 ;;
1356 dnl Pyramid machines
1357 pyramid-pyramid-bsd* ) machine=pyramid opsys=bsd4-2 ;;
1360 ns32k-sequent-bsd4.2* ) machine=sequent opsys=bsd4-2 ;;
1361 ns32k-sequent-bsd4.3* ) machine=sequent opsys=bsd4-3 ;;
1364 mips-siemens-sysv* | mips-sni-sysv*)
1365 machine=mips-siemens opsys=usg5-4
1366 NON_GNU_CC=/usr/ccs/bin/cc
1367 NON_GNU_CPP=/usr/ccs/lib/cpp
1373 NON_GNU_CC=/usr/ccs/bin/cc
1374 NON_GNU_CPP=/usr/ccs/lib/cpp
1377 dnl Silicon Graphics machines
1378 dnl Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
1379 m68*-sgi-iris3.5* ) machine=irist opsys=iris3-5 ;;
1380 m68*-sgi-iris3.6* | m68*-sgi-iris*) machine=irist opsys=iris3-6 ;;
1382 mips-sgi-irix3.* ) opsys=irix3-3 ;;
1383 mips-sgi-irix4.* ) opsys=irix4-0 ;;
1384 mips-sgi-irix6* ) opsys=irix6-0 ;;
1385 mips-sgi-irix5.1* ) opsys=irix5-1 ;;
1386 mips-sgi-irix5.2* ) opsys=irix5-2 ;;
1387 mips-sgi-irix5.* ) opsys=irix5-3 ;;
1388 mips-sgi-irix* ) opsys=irix5-0 ;;
1391 *-sony-newsos[[34]]* | *-sony-news[[34]]* ) opsys=bsd4-3 ;;
1392 *-sony-news* ) opsys=newsos5 ;;
1395 m68*-stride-sysv* ) machine=stride opsys=usg5-2 ;;
1398 *-*-solaris* | *-*-sunos* | *-sun-mach* | *-sun-bsd* )
1400 case "$canonical" in
1401 m68*-sunos1* ) machine=sun1 ;;
1402 m68*-sunos2* ) machine=sun2 ;;
1403 m68* ) machine=sun3 ;;
1404 i*86*-sun-sunos[[34]]* ) machine=sun386 ;;
1405 i*86-*-* ) machine=intel386 ;;
1406 rs6000* ) machine=rs6000 ;;
1409 dnl Make $canonical even more so.
1410 case "$canonical" in *-sunos5*)
1411 canonical=`echo $canonical | sed -e s/sunos5/solaris2/`;;
1414 dnl On SunOS 4, use /usr/lib/cpp, sans dynodump, /bin/ranlib
1415 dnl On SunOS 5, use cc -E, need dynodump, RANLIB not needed
1416 dnl But, SunOS 5.6 no longer needs dynodump because it has a similar
1417 dnl function integrated.
1418 case "$canonical" in
1420 #test -f /usr/lib/cpp && NON_GNU_CPP=/usr/lib/cpp ;;
1423 #test -f /usr/ccs/lib/cpp && NON_GNU_CPP=/usr/ccs/lib/cpp
1427 case "$canonical" in
1430 os_release=`uname -r | sed -e 's/^\([[0-9]]\)\.\([[0-9]]\).*/\1\2/'`
1431 AC_DEFINE_UNQUOTED(OS_RELEASE, $os_release) ;;
1433 dnl The last Sun386 ran 4.0.
1434 i*86-*-sunos4* ) opsys=sunos4-0 ;;
1435 *-sunos4.0* ) opsys=sunos4-0 ;;
1436 *-sunos4.1.2* ) opsys=sunos4-1-2 ;;
1437 *-sunos4.1.3* ) opsys=sunos4-1-3 ;;
1438 *-sunos4.1.[[4-9]]* ) opsys=sunos4-1-4 ;;
1439 *-sunos4* | *-sunos ) opsys=sunos4-1 ;;
1440 *-mach* ) opsys=mach-bsd4-3 ;;
1444 case "$canonical" in *-sunos4*shr* ) opsys="${opsys}-shr" ;; esac
1446 dnl Watch out for a compiler guaranteed not to work.
1447 test "$opsys $CC" = "sol2 /usr/ucb/cc" && CC=""
1451 m68*-tadpole-sysv* ) machine=tad68k opsys=usg5-3 ;;
1454 tahoe-tahoe-bsd4.2* ) machine=tahoe opsys=bsd4-2 ;;
1455 tahoe-tahoe-bsd4.3* ) machine=tahoe opsys=bsd4-3 ;;
1457 dnl Tandem Integrity S2
1458 mips-tandem-sysv* ) machine=tandem-s2 opsys=usg5-3 ;;
1461 m88k-tektronix-sysv3* ) machine=tekxd88 opsys=usg5-3 ;;
1463 dnl Tektronix 16000 box (6130?)
1464 ns16k-tektronix-bsd* ) machine=ns16000 opsys=bsd4-2 ;;
1466 dnl src/m/tek4300.h hints that this is a m68k machine.
1467 m68*-tektronix-bsd* ) machine=tek4300 opsys=bsd4-3 ;;
1470 titan-titan-sysv* ) machine=titan opsys=usg5-3 ;;
1472 dnl Ustation E30 (SS5E)
1473 m68*-unisys-uniplus* ) machine=ustation opsystem=unipl5-2 ;;
1477 case "$canonical" in
1478 *-sysv[[01]]* | *-sysvr[[01]]* ) opsys=usg5-0 ;;
1479 *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;;
1480 *-mach* ) opsys=mach-bsd4-3 ;;
1485 ns16k-whitechapel-* ) machine=mg1 ;;
1488 m68*-wicat-sysv* ) machine=wicat opsys=usg5-2 ;;
1490 dnl Intel 386 machines where we do not care about the manufacturer
1493 case "$canonical" in
1494 *-isc1.* | *-isc2.[[01]]* ) opsys=386-ix ;;
1495 *-isc2.2* ) opsys=isc2-2 ;;
1496 *-isc4.0* ) opsys=isc4-0 ;;
1497 *-isc4.* ) opsys=isc4-1
1498 GCC_TEST_OPTIONS=-posix
1499 NON_GCC_TEST_OPTIONS=-Xp
1501 *-isc* ) opsys=isc3-0 ;;
1502 *-esix5* ) opsys=esix5r4 NON_GNU_CPP=/usr/lib/cpp ;;
1503 *-esix* ) opsys=esix ;;
1504 *-mach* ) opsys=mach-bsd4-3 ;;
1505 *-xenix* ) opsys=xenix ;;
1506 *-sco3.2v4* ) opsys=sco4 NON_GNU_CPP=/lib/cpp ;;
1507 *-bsd386* | *-bsdi1* ) opsys=bsd386 ;;
1508 *-bsdi4* ) opsys=bsdos4 ;;
1509 *-bsdi3* ) opsys=bsdos3 ;;
1510 *-bsdi2.1* ) opsys=bsdos2-1 ;;
1511 *-bsdi2* ) opsys=bsdos2 ;;
1512 *-sco3.2v5* ) opsys=sco5 ;
1513 dnl This is a pain. Like the current USL cc, SCO cc -E
1514 dnl tokenizes as it preprocesses, making configure very
1515 dnl unhappy. Unfortunately, /lib/cpp does not understand
1516 dnl flags like "-b elf", so we have to cheat in order to
1517 dnl pick up the right defines for UNEXEC from the s-file.
1518 dnl 01/05/95 robertl@dgii.com
1519 if test "$dynamic" = "yes" ; then
1520 NON_GNU_CPP="/lib/cpp -D_XOPEN_SOURCE -D_SCO_ELF" ;
1522 NON_GNU_CPP="/lib/cpp -D_XOPEN_SOURCE" ;
1524 *-sysv5* ) opsys=sco7 ;;
1525 *-386bsd* ) opsys=386bsd ;;
1526 *-freebsd* ) opsys=freebsd ;;
1527 *-nextstep* ) opsys=nextstep ;;
1528 *-pc-cygwin* ) opsys=cygwin32 ;;
1529 *-pc-mingw* ) opsys=mingw32 ;
1530 test -z "$with_tty" && with_tty="no";;
1531 dnl Otherwise, we fall through to the generic opsys code at the bottom.
1536 m68k-*-linux* ) machine=m68k opsys=linux ;;
1540 dnl Initialize machine and opsys from $canonical if not in our database above.
1541 test -z "$machine" && machine=`echo $canonical | sed 's/-.*$//'`
1542 test -z "$opsys" && opsys=`echo $canonical | sed 's/^[^-]*-[^-]*-//'`
1544 dnl Use configure-time autodetection if s&m not available
1545 if test -r "${srcdir}/src/m/${machine}.h"; then
1546 machfile="m/${machine}.h"
1547 AC_DEFINE_UNQUOTED(config_machfile, "$machfile")
1549 echo "XEmacs has no builtin knowledge of \`$machine' machines."
1550 echo "Using configure-time autodetection only."
1553 if test -r "${srcdir}/src/s/${opsys}.h"; then
1554 opsysfile="s/${opsys}.h"
1555 AC_DEFINE_UNQUOTED(config_opsysfile, "$opsysfile")
1557 echo "XEmacs has no builtin knowledge of \`$opsys' operating systems."
1558 echo "Using configure-time autodetection only."
1562 if test -z "$dynamic"; then
1564 hpux* | sunos4* ) dynamic=no ;;
1568 if test "$dynamic" = "yes"; then
1570 hpux* | sunos4* | sco5 ) opsys="${opsys}-shr" ;;
1571 decosf* ) ld_call_shared="-call_shared" ;;
1573 else dnl "$dynamic" = "no"
1576 echo "Static linking is not supported on Solaris 2."
1577 echo "Rerun configure without specifying --dynamic=no."
1579 linux ) ld_call_shared="-Bstatic" ;;
1580 decosf* ) ld_call_shared="-non_shared" ;;
1584 dnl Use xlc by default on AIX
1585 case "$opsys" in aix*) NON_GNU_CC=xlc ;; esac
1587 stack_trace_eye_catcher=`echo ${PROGNAME}_${version}_${canonical} | sed 'y/.-/__/'`
1588 AC_DEFINE_UNQUOTED(STACK_TRACE_EYE_CATCHER, $stack_trace_eye_catcher)
1590 dnl --------------------------------------------------
1591 dnl Determine the compiler, set up for feature testing
1592 dnl --------------------------------------------------
1594 dnl Sun Development environment support
1595 test "$with_sparcworks" = "yes" && with_workshop=yes # compatibility alias
1596 XE_CHECK_FEATURE_DEPENDENCY(workshop, tooltalk)
1597 if test "$with_workshop" = "yes"; then
1599 XE_ADD_OBJS(sunpro.o)
1602 if test "$with_clash_detection" != "no"; then
1603 AC_DEFINE(CLASH_DETECTION)
1604 XE_ADD_OBJS(filelock.o)
1607 dnl Choose a compiler from (in order)
1608 dnl --compiler, env var CC, with_gcc=no && ${NON_GNU_CC:-cc}, AC_PROG_CC
1609 test -n "$compiler" && CC="$compiler"
1610 if test "$with_gcc" = "no"; then dnl Try to find a non-gcc compiler
1611 case "$CC" in "" | *gcc* ) CC="${NON_GNU_CC-cc}" ;; esac
1614 dnl If we don't set CFLAGS here, AC_PROG_CC will set it.
1615 dnl But we know better what's good for us, so we do our own
1616 dnl computation of real CFLAGS later.
1617 dnl --cflags overrides environment variable CFLAGS
1618 test "${cflags-unset}" != unset && CFLAGS="$cflags"
1619 if test "${CFLAGS-unset}" != unset
1620 then cflags_specified=yes;
1621 else cflags_specified=no;
1624 xe_save_CFLAGS="$CFLAGS"
1626 AC_PROG_CC dnl Autoconf has its own magic for compiler autodetection
1628 dnl Retry using random guesswork if AC_PROG_CC got it wrong...
1629 if test "$with_gcc" = "no" -a "$GCC" = "yes"; then
1632 elif test "$with_gcc" = "yes" -a "$GCC" != "yes" ; then
1636 CFLAGS="$xe_save_CFLAGS"
1638 dnl Figure out what C preprocessor to use.
1640 dnl On Sun systems, people sometimes set up the variable CPP
1641 dnl with a value that is a directory, not an executable at all.
1642 dnl Detect that case, and ignore that value.
1643 test -n "$CPP" -a -d "$CPP" && CPP=
1645 test -n "$NON_GNU_CPP" -a "$GCC" != "yes" -a -z "$CPP" && CPP="$NON_GNU_CPP"
1649 dnl --------------------------------------------------------------------
1650 dnl Compiler feature macros
1651 dnl --------------------------------------------------------------------
1653 AC_AIX dnl Defines _ALL_SOURCE on AIX.
1655 dnl We want feature macros defined here *and* in config.h.in, so that
1656 dnl the compilation environment at configure time and compile time agree.
1658 AC_MSG_CHECKING(for GNU libc)
1659 AC_TRY_COMPILE([#include <features.h>],[
1660 #if ! (defined __GLIBC__ || defined __GNU_LIBRARY__)
1661 #error Not a GNU libc system :-(
1662 ******* ======= ******** &&&&&&&&
1664 ], have_glibc=yes, have_glibc=no)
1665 AC_MSG_RESULT($have_glibc)
1666 dnl I'm tired of pop being broken with GLIBC -slb
1667 dnl Well. then why not fix fucking pop?
1668 test "$have_glibc" = "yes" && AC_DEFINE(_GNU_SOURCE)
1670 dnl We'd like to use vendor extensions, where available.
1671 dnl We'd like to use functions from the latest Unix98 standards.
1672 dnl See http://www.opengroup.org/onlinepubs/007908799/xsh/compilation.html
1675 AC_DEFINE(__EXTENSIONS__)
1676 dnl Solaris 2 before 2.5 had some bugs with feature test macro interaction.
1677 if test "$os_release" -ge 55; then
1678 AC_DEFINE(_XOPEN_SOURCE,500)
1679 AC_DEFINE(_XOPEN_SOURCE_EXTENDED)
1682 AC_DEFINE(_POSIX_C_SOURCE,199506L)
1683 AC_DEFINE(_XOPEN_SOURCE,500)
1684 AC_DEFINE(_XOPEN_SOURCE_EXTENDED)
1688 dnl Identify compilers to enable compiler-specific hacks.
1689 dnl Add support for other compilers HERE!
1690 dnl GCC is already identified elsewhere.
1691 AC_TRY_RUN([int main () {
1692 #if defined __SUNPRO_C
1694 #elif defined __DECC
1696 #elif defined __USLC__ && defined __SCO_VERSION__
1702 [case "$conftest_rc" in
1703 11) echo "You appear to be using the SunPro C compiler."; __SUNPRO_C=yes ;;
1704 12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;;
1705 13) echo "You appear to be using the SCO C compiler." ; __USLC__=yes ;;
1709 dnl case "$canonical" in
1710 dnl *-sun-sunos* ) test "$CPP" = "acc -E" && CPP="acc -E -Xs" ;;
1713 dnl --------------------------------------------------------------------
1714 dnl Extract some information from the operating system and machine files
1715 dnl --------------------------------------------------------------------
1717 echo "Extracting information from the machine- and system-dependent headers..."
1719 dnl It is not important that this name contain the PID; you cannot run
1720 dnl two configures in the same directory and have anything work
1722 tempcname="conftest.c"
1724 dnl CPP_to_sh(CPP_SYMBOL, SH_VAR, DEFAULT_VALUE)
1727 [#]define [$1]ifelse([$3],,, [ "$3"])
1729 configure___ [$2]=[$1]
1732 dnl CPP_boolean_to_sh(CPP_SYMBOL, SH_VAR)
1733 define([CPP_boolean_to_sh],
1735 configure___ [$2]=yes
1737 configure___ [$2]=no
1739 ])dnl CPP_boolean_to_sh
1741 cat > $tempcname < confdefs.h
1742 cat >> $tempcname <<EOF
1744 #define C_SWITCH_SITE
1745 #define C_SWITCH_X_SITE
1746 #define LD_SWITCH_SITE
1747 #define LD_SWITCH_X_SITE
1748 #define LD_SWITCH_X_SITE_AUX
1749 #define OS_RELEASE $os_release
1751 #ifdef config_opsysfile
1752 #include "$srcdir/src/$opsysfile"
1755 #ifdef config_machfile
1756 #include "$srcdir/src/$machfile"
1759 CPP_to_sh(LIBS_MACHINE, libs_machine)
1760 CPP_to_sh(LIBS_SYSTEM, libs_system)
1761 CPP_to_sh(LIBS_TERMCAP, libs_termcap)
1762 CPP_to_sh(LIB_STANDARD, libs_standard)
1764 CPP_to_sh(OBJECTS_MACHINE, objects_machine)
1765 CPP_to_sh(OBJECTS_SYSTEM, objects_system)
1767 CPP_to_sh(C_SWITCH_MACHINE, c_switch_machine)
1768 CPP_to_sh(C_SWITCH_SYSTEM, c_switch_system)
1770 CPP_to_sh(LD_SWITCH_MACHINE, ld_switch_machine)
1771 CPP_to_sh(LD_SWITCH_SYSTEM, ld_switch_system)
1773 CPP_to_sh(UNEXEC, unexec, unexec.o)
1775 CPP_to_sh(LD_SWITCH_SHARED, ld_switch_shared, -c)
1777 #define ORDINARY_LD "\$(CC) \$(CFLAGS)"
1778 configure___ ordinary_ld=ORDINARY_LD
1780 #ifdef ORDINARY_LINK
1781 #define LD ORDINARY_LD
1782 #else /* no ORDINARY LINK */
1783 #ifdef COFF_ENCAPSULATE
1784 #define LD "\$(CC) -nostdlib"
1785 #else /* not COFF_ENCAPSULATE */
1788 #else /* ! defined (LINKER) */
1790 #endif /* ! defined (LINKER) */
1791 #endif /* ! defined (COFF_ENCAPSULATE) */
1792 #endif /* not ORDINARY_LINK */
1795 CPP_to_sh(LIB_GCC, lib_gcc)
1796 CPP_to_sh(LD_TEXT_START_ADDR, ld_text_start_addr)
1798 #if ! defined (ORDINARY_LINK) && !defined (START_FILES)
1800 #ifdef COFF_ENCAPSULATE
1801 #define START_FILES "pre-crt0.o /usr/local/lib/gcc-crt0.o"
1802 #else /* ! defined (COFF_ENCAPSULATE) */
1803 #define START_FILES "pre-crt0.o /lib/crt0.o"
1804 #endif /* ! defined (COFF_ENCAPSULATE) */
1805 #else /* ! defined (NO_REMAP) */
1806 #define START_FILES "ecrt0.o"
1807 #endif /* ! defined (NO_REMAP) */
1808 #endif /* no ORDINARY_LINK */
1812 configure___ start_files=START_FILES
1814 CPP_boolean_to_sh(ORDINARY_LINK, ordinary_link)
1815 CPP_boolean_to_sh(SYSTEM_MALLOC, system_malloc)
1816 CPP_boolean_to_sh(TERMINFO, have_terminfo)
1817 dnl The MAIL_USE_xxx variables come from the s&m headers
1818 CPP_boolean_to_sh(MAIL_USE_FLOCK, mail_use_flock)
1819 CPP_boolean_to_sh(MAIL_USE_LOCKF, mail_use_lockf)
1820 CPP_boolean_to_sh(MAIL_USE_LOCKING, mail_use_locking)
1821 CPP_boolean_to_sh(HAVE_WIN32_PROCESSES, win32_processes)
1824 dnl The value of CPP is a quoted variable reference, so we need to do this
1825 dnl to get its actual value...
1826 CPP=`eval "echo $CPP $CPPFLAGS"`
1829 eval `$CPP -Isrc $tempcname \
1830 | sed -n -e "s/[ TAB]*=[ TAB\"]*/='/" -e "s/[ TAB\"]*\$/'/" -e "s/^configure___//p"`
1831 changequote([, ])dnl
1835 if test "$pdump" = "yes"; then
1844 dnl For debugging...
1845 test "$extra_verbose" = "yes" && \
1846 PRINT_VAR(libs_machine libs_system libs_termcap libs_standard
1847 objects_machine objects_system c_switch_machine c_switch_system
1848 ld_switch_machine ld_switch_system unexec ld_switch_shared
1849 ld lib_gcc ld_text_start_addr start_files ordinary_link
1850 have_terminfo mail_use_flock mail_use_lockf) && echo ""
1852 dnl Pick up mingw32 include path
1853 case "$opsys" in mingw* | cygwin*)
1854 cygwin_include=`eval "gcc -print-file-name=libc.a"` ;
1855 cygwin_include=`eval "dirname $cygwin_include"` ;
1856 cygwin_include="-I$cygwin_include/../include" ;
1857 extra_includes="$cygwin_include/mingw32 $cygwin_include/mingw $cygwin_include" ;
1858 case "$opsys" in mingw*)
1859 XE_APPEND($extra_includes, c_switch_system) ;;
1864 dnl Non-ordinary link usually requires -lc
1865 test "$ordinary_link" = "no" -a -z "$libs_standard" && libs_standard="-lc"
1867 dnl -----------------------
1868 dnl Compiler-specific hacks
1869 dnl -----------------------
1871 dnl DEC C `-std1' means ANSI C mode
1872 test "$__DECC" = "yes" && XE_APPEND(-std1, c_switch_site)
1874 dnl Some versions of SCO native compiler need -Kalloca
1875 if test "$__USLC__" = yes; then
1876 AC_MSG_CHECKING(for whether the -Kalloca compiler flag is needed)
1878 AC_TRY_LINK([], [void *x = alloca(4);], [:], [
1879 xe_save_c_switch_system="$c_switch_system"
1880 c_switch_system="$c_switch_system -Kalloca"
1881 AC_TRY_LINK([], [void *x = alloca(4);], [ need_kalloca=yes ])
1882 c_switch_system="$xe_save_c_switch_system"])
1883 AC_MSG_RESULT($need_kalloca)
1884 test "$need_kalloca" = "yes" && XE_APPEND(-Kalloca,c_switch_system)
1887 dnl Calculalate value of CFLAGS:
1888 dnl Use either command line flag, environment var, or autodetection
1889 if test "$cflags_specified" = "no"; then
1890 dnl Following values of CFLAGS are known to work well.
1891 dnl Should we take debugging options into consideration?
1892 if test "$GCC" = "yes"; then
1893 CFLAGS="-g -O3 -Wall -Wno-switch -Winline -Wmissing-prototypes -Wshadow"
1894 dnl glibc is intentionally not `-Wpointer-arith'-clean.
1895 dnl Ulrich Drepper has rejected patches to fix the glibc header files.
1896 test "$have_glibc" != "yes" && CFLAGS="$CFLAGS -Wpointer-arith"
1897 dnl I'm not convinced this is a good idea any more. -sb
1898 dnl test "$opsys $machine" = "linux intel386" && \
1899 dnl CFLAGS="$CFLAGS -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2"
1900 elif test "$__SUNPRO_C" = "yes"; then
1902 sol2 ) CFLAGS="-v -xO4" ;;
1903 sunos4* ) CFLAGS="-xO2";;
1905 elif test "$__DECC" = "yes"; then
1907 elif test "$CC" = "xlc"; then
1908 CFLAGS="-g -O3 -qstrict -qnoansialias -qlibansi -qinfo -qro -qmaxmem=20000"
1909 dnl ### Add optimal CFLAGS support for other compilers HERE!
1911 CFLAGS="-O" ;dnl The only POSIX-approved flag
1915 dnl Search for GCC specific build problems we know about
1916 if test "$GCC" = "yes"; then
1917 AC_MSG_CHECKING(for buggy gcc versions)
1918 GCC_VERSION=`$CC --version`
1919 case `uname -s`:`uname -m`:$GCC_VERSION in
1920 dnl egcs 2.90.21 (egcs-1.00 release)
1921 dnl egcs 2.90.29 (egcs-1.0.3 release)
1922 *:sun4*:2.8.1|*:sun4*:egcs-2.90.*)
1923 dnl Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures
1924 dnl without also using `-fno-schedule-insns'.
1928 *-fno-schedule-insns*) ;;
1931 AC_MSG_WARN(Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures)
1932 AC_MSG_WARN(without also using -fno-schedule-insns.)
1933 AC_MSG_ERROR(Aborting due to known problem)
1939 dnl egcs-2.91.57 (egcs-1.1 release)
1940 dnl egcs-2.91.66 (egcs-1.1.2 release)
1941 Linux:alpha:egcs-2.91.*)
1943 AC_MSG_WARN(There have been reports of egcs-1.1 not compiling XEmacs correctly on)
1944 AC_MSG_WARN(Alpha Linux. There have also been reports that egcs-1.0.3a is O.K.)
1945 AC_MSG_ERROR(Aborting due to known problem)
1950 case "$GCC_VERSION" in
1953 *-fno-strength-reduce*) ;;
1956 AC_MSG_WARN(Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using)
1957 AC_MSG_WARN(-fno-strength-reduce.)
1958 AC_MSG_ERROR(Aborting due to known problem)
1964 *-fno-caller-saves*) ;;
1967 AC_MSG_WARN(Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using)
1968 AC_MSG_WARN(-fno-caller-saves.)
1969 AC_MSG_ERROR(Aborting due to known problem)
1979 dnl Inform compiler that certain flags are meant for the linker
1980 dnl XE_PROTECT_LINKER_FLAGS(shell_var)
1981 define([XE_PROTECT_LINKER_FLAGS], [
1982 if test "$GCC" = "yes"; then
1983 set x $[$1]; shift; [$1]=""
1984 while test -n "[$]1"; do
1986 -L | -l | -u ) [$1]="$[$1] [$]1 [$]2"; shift ;;
1987 -L* | -l* | -u* | -Wl* | -pg ) [$1]="$[$1] [$]1" ;;
1989 * ) [$1]="$[$1] -Xlinker [$]1" ;;
1994 XE_PROTECT_LINKER_FLAGS(ld_switch_system)
1995 XE_PROTECT_LINKER_FLAGS(ld_switch_machine)
1996 XE_PROTECT_LINKER_FLAGS(LDFLAGS)
1997 XE_PROTECT_LINKER_FLAGS(ld_call_shared)
1999 dnl Add s&m-determined objects (including unexec) to link line
2000 test -n "$objects_machine" && XE_ADD_OBJS($objects_machine)
2001 test -n "$objects_system" && XE_ADD_OBJS($objects_system)
2002 test -n "$unexec" && test ! "$pdump" = "yes" && XE_ADD_OBJS($unexec)
2003 test "$pdump" = "yes" && XE_ADD_OBJS(dumper.o)
2005 dnl Dynodump (Solaris 2.x, x<6)
2006 AC_MSG_CHECKING(for dynodump)
2007 if test "$unexec" != "unexsol2.o"; then
2012 XE_APPEND(dynodump, MAKE_SUBDIR)
2013 XE_APPEND(dynodump, SRC_SUBDIR_DEPS)
2015 sparc ) dynodump_arch=sparc ;;
2016 *86* ) dynodump_arch=i386 ;;
2017 powerpc ) dynodump_arch=ppc ;;
2019 dnl Dynodump requires the system linker
2020 test "$GCC" = "yes" && XE_APPEND(-fno-gnu-linker, ld_switch_site)
2023 dnl Feed s&m crud to src/Makefile
2025 dnl Linux/powerpc needs the following magic for some reason
2026 test "$machine$opsys" = "powerpclinux" && start_flags="-T $srcdir/src/ppc.ldscript"
2028 if test "$unexec" = "unexaix.o"; then
2029 dnl AIX needs various hacks to make static linking work.
2030 if test "$dynamic" = "no"; then
2031 start_flags="-Wl,-bnso,-bnodelcsect"
2032 test "$GCC" = "yes" && start_flags="-B/bin/ ${start_flags}"
2033 for f in "/lib/syscalls.exp" "/lib/threads.exp"; do
2034 if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; fi
2036 for f in "/usr/lpp/X11/bin/smt.exp" "/usr/bin/X11/smt.exp"; do
2037 if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; break; fi
2039 AC_CHECK_LIB(C, terminateAndUnload, XE_APPEND(-lC, libs_system))
2041 elif test -n "$ld_text_start_addr"; then
2042 start_flags="-T $ld_text_start_addr -e __start"
2044 AC_SUBST(start_flags)
2046 AC_SUBST(ld_switch_shared)
2047 AC_SUBST(start_files)
2048 if test "$ordinary_link" = "no" -a "$GCC" = "yes"; then
2049 test -z "$linker" && linker='$(CC) -nostdlib'
2050 test -z "$lib_gcc" && lib_gcc='`$(CC) -print-libgcc-file-name`'
2052 test "$GCC" != "yes" && lib_gcc=
2056 dnl ---------------------------------------------------------------
2057 dnl Add site and system specific flags to compile and link commands
2058 dnl ---------------------------------------------------------------
2060 dnl Allow use of either ":" or spaces for lists of directories
2061 define(COLON_TO_SPACE,
2062 [case "$[$1]" in *:* [)] [$1]="`echo '' $[$1] | sed -e 's/^ //' -e 's/:/ /g'`";; esac])dnl
2064 dnl --site-libraries (multiple dirs)
2065 COLON_TO_SPACE(site_libraries)
2066 if test -n "$site_libraries"; then
2067 for arg in $site_libraries; do
2070 * ) test -d "$arg" || \
2071 XE_DIE("Invalid site library \`$arg': no such directory")
2074 XE_APPEND($arg, ld_switch_site)
2078 dnl --site-includes (multiple dirs)
2079 COLON_TO_SPACE(site_includes)
2080 if test -n "$site_includes"; then
2081 for arg in $site_includes; do
2084 * ) test -d "$arg" || \
2085 XE_DIE("Invalid site include \`$arg': no such directory")
2088 XE_APPEND($arg, c_switch_site)
2092 dnl --site-prefixes (multiple dirs)
2093 dnl --site-prefixes=dir1:dir2 is a convenient shorthand for
2094 dnl --site-libraries=dir1/lib:dir2/lib --site-includes=dir1/include:dir2/include
2095 dnl Site prefixes take precedence over the standard places, but not over
2096 dnl site-includes and site-libraries.
2097 COLON_TO_SPACE(site_prefixes)
2098 if test -n "$site_prefixes"; then
2099 for dir in $site_prefixes; do
2100 lib_dir="${dir}/lib"
2101 inc_dir="${dir}/include"
2102 if test ! -d "$dir"; then
2103 XE_DIE("Invalid site prefix \`$dir': no such directory")
2104 elif test ! -d "$lib_dir"; then
2105 XE_DIE("Invalid site prefix \`$dir': no such directory \`$lib_dir'")
2107 if test -d "$inc_dir"; then
2108 XE_APPEND("-I$inc_dir", c_switch_site)
2110 XE_APPEND("-L$lib_dir", ld_switch_site)
2115 dnl GNU software installs by default into /usr/local/{include,lib}
2116 dnl if test -d "/usr/local/include" -a -d "/usr/local/lib"; then
2117 dnl XE_APPEND("-L/usr/local/lib", ld_switch_site)
2118 dnl XE_APPEND("-I/usr/local/include", c_switch_site)
2121 dnl Extra system-specific library directories - please add to list
2122 for dir in "/usr/ccs/lib"; do
2123 test -d "$dir" && XE_APPEND(-L${dir}, ld_switch_system)
2126 dnl --site-runtime-libraries (multiple dirs)
2127 COLON_TO_SPACE(site_runtime_libraries)
2128 if test -n "$site_runtime_libraries"; then
2129 LD_RUN_PATH="`echo $site_runtime_libraries | sed -e 's/ */:/g'`"
2133 dnl Linux systems have dynamic runtime library directories listed in
2134 dnl /etc/ld.so.conf. Since those are used at run time, it seems pretty
2135 dnl safe to use them at link time, and less controversial than forcing
2136 dnl the run-time to use the link-time libraries. This also helps avoid
2137 dnl mismatches between the link-time and run-time libraries.
2139 dnl #### Unfortunately, there are horrible libc4 and libc5 libraries
2140 dnl listed in /etc/ld.so.conf on some systems, and including them on
2141 dnl the link path leads to linking in utterly broken libc's.
2142 dnl There are many clever ways of approaching this problem,
2143 dnl but finding out that actually works...
2145 dnl if test -z "$LD_RUN_PATH" -a -r "/etc/ld.so.conf"; then
2146 dnl for dir in `cat /etc/ld.so.conf`; do
2147 dnl test -d "$dir" && XE_APPEND(-L${dir}, ld_switch_system)
2149 dnl add_runtime_path=no
2152 dnl -------------------------------------
2153 dnl Compute runtime library path
2154 dnl -------------------------------------
2156 if test -n "$add_runtime_path"; then :;
2157 elif test "$dynamic" = "no"; then add_runtime_path=no
2158 elif test -n "$LD_RUN_PATH"; then add_runtime_path=yes
2159 else case "$opsys" in
2160 sol2 | irix* | *bsd* | decosf* ) add_runtime_path=yes ;;
2161 * ) add_runtime_path=no ;;
2165 if test "$add_runtime_path" = "yes"; then
2166 dnl Try to autodetect runtime library flag (usually -R),
2167 dnl and whether it works (or at least does no harm)
2168 AC_MSG_CHECKING("for runtime libraries flag")
2170 sol2 ) dash_r="-R" ;;
2171 decosf* | linux* | irix*) dash_r="-rpath " ;;
2174 for try_dash_r in "-R" "-R " "-rpath "; do
2175 xe_check_libs="${try_dash_r}/no/such/file-or-directory"
2176 XE_PROTECT_LINKER_FLAGS(xe_check_libs)
2177 AC_TRY_LINK(, , dash_r="$try_dash_r")
2179 test -n "$dash_r" && break
2182 if test -n "$dash_r";
2183 then AC_MSG_RESULT("\"${dash_r}\"")
2184 else AC_MSG_RESULT(NONE)
2188 xe_add_unique_runpath_dir='
2190 for xe_dir in $runpath_dirs; do dnl Uniquify
2191 test "$xe_dir" = "$xe_runpath_dir" && xe_add_p=no
2193 if test "$xe_add_p" = "yes"; then
2194 test -n "$runpath" && runpath="${runpath}:"
2195 runpath="${runpath}${xe_runpath_dir}"
2196 runpath_dirs="$runpath_dirs $xe_runpath_dir"
2200 dnl XE_ADD_RUNPATH_DIR(directory)
2201 define([XE_ADD_RUNPATH_DIR],[{
2203 dnl PRINT_VAR(ld_switch_site ld_switch_x_site runpath xe_runpath_dir LD_RUN_PATH xe_ldflags)
2204 test "$xe_runpath_dir" != "/lib" -a \
2205 "$xe_runpath_dir" != "/usr/lib" -a \
2206 -n "`ls ${xe_runpath_dir}/*.s[[ol]] 2>/dev/null`" && \
2207 eval "$xe_add_unique_runpath_dir"
2210 dnl XE_COMPUTE_RUNPATH()
2211 define([XE_COMPUTE_RUNPATH],[
2212 if test "$add_runtime_path" = "yes" -a -n "$dash_r"; then
2213 dnl Remove runtime paths from current ld switches
2214 ld_switch_site=`echo '' $ld_switch_site | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"`
2215 ld_switch_x_site=`echo '' $ld_switch_x_site | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"`
2216 dnl PRINT_VAR(ld_switch_site ld_switch_x_site)
2218 dnl Fix up Runtime path
2219 dnl If LD_RUN_PATH is set in environment, use that.
2220 dnl In this case, assume user has set the right value.
2221 runpath="" runpath_dirs=""
2222 if test -n "$LD_RUN_PATH"; then
2223 runpath="$LD_RUN_PATH"
2224 elif test "$GCC" = "yes"; then
2225 dnl Compute runpath from gcc's -v output
2226 ld_switch_run_save="$ld_switch_run"; ld_switch_run=""
2227 echo "int main(int argc, char *argv[[]]) {return 0;}" > conftest.c
2228 xe_runpath_link='${CC-cc} -o conftest -v $CFLAGS '"$xe_ldflags"' conftest.$ac_ext 2>&1 1>/dev/null'
2229 for arg in `eval "$xe_runpath_link" | grep ' -L'`; do
2230 case "$arg" in P,* | -L* | -R* )
2231 for dir in `echo '' "$arg" | sed -e 's:^ ::' -e 's/^..//' -e 'y/:/ /'`; do
2232 XE_ADD_RUNPATH_DIR("$dir")
2236 ld_switch_run="$ld_switch_run_save"
2239 dnl Add all directories with .so files to runpath
2240 for arg in $ld_switch_site $ld_switch_x_site; do
2241 case "$arg" in -L*) XE_ADD_RUNPATH_DIR(`echo '' "$arg" | sed -e 's:^ ::' -e 's/^-L//'`);; esac
2243 dnl Sometimes /opt/SUNWdt/lib is the only installed Motif available
2244 if test "$opsys $need_motif" = "sol2 yes"; then
2245 xe_runpath_dir="/opt/SUNWdt/lib";
2246 eval "$xe_add_unique_runpath_dir";
2248 fi dnl Compute $runpath
2250 if test -n "$runpath"; then
2251 ld_switch_run="${dash_r}${runpath}"
2252 XE_PROTECT_LINKER_FLAGS(ld_switch_run)
2253 test "$extra_verbose" = "yes" && echo "Setting runpath to $runpath"
2257 XE_COMPUTE_RUNPATH()
2262 dnl -----------------------------------
2263 dnl Do some misc autoconf-special tests
2264 dnl -----------------------------------
2266 dnl Do the opsystem or machine files prohibit the use of the GNU malloc?
2267 dnl Assume not, until told otherwise.
2269 if test "$with_dlmalloc" != "no"; then
2274 after_morecore_hook_exists=yes
2275 AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
2276 AC_MSG_CHECKING(whether __after_morecore_hook exists)
2277 AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
2278 [AC_MSG_RESULT(yes)],
2280 after_morecore_hook_exists=no])
2281 if test "$system_malloc" = "yes" ; then
2284 - The GNU allocators don't work with this system configuration."
2285 elif test "$with_system_malloc" = "yes" ; then
2288 - User chose not to use GNU allocators."
2289 elif test "$with_debug_malloc" = "yes" ; then
2292 - User chose to use Debugging Malloc."
2295 if test "$doug_lea_malloc" = "yes" -a "$GNU_MALLOC" = "yes" ; then
2297 - Using Doug Lea's new malloc from the GNU C Library."
2298 AC_DEFINE(DOUG_LEA_MALLOC)
2299 if test "$after_morecore_hook_exists" = "no" ; then
2301 - Using Doug Lea's new malloc from the Linux C Library."
2302 AC_DEFINE(_NO_MALLOC_WARNING_)
2306 dnl #### mcheck is broken in all versions of Linux libc and glibc.
2307 dnl Try this again when 2.1 hits the streets.
2308 dnl Avoid using free-hook.c if support exists for malloc debugging in libc
2309 dnl have_libmcheck=no
2310 dnl if test "$error_check_malloc" = "yes" -a \
2311 dnl "$have_glibc" = "yes" -a \
2312 dnl "$doug_lea_malloc" = "yes"; then
2313 dnl AC_CHECK_HEADERS(mcheck.h)
2314 dnl AC_CHECK_LIB(mcheck, mcheck, have_libmcheck=yes, have_libmcheck=no)
2317 dnl if test "$have_libmcheck" = "yes"; then
2318 dnl AC_DEFINE(HAVE_LIBMCHECK)
2319 dnl libmcheck=-lmcheck
2320 dnl AC_SUBST(libmcheck)
2323 dnl Some other nice autoconf tests. If you add a test here which
2324 dnl should make an entry in src/config.h, do not forget to add an
2325 dnl #undef clause to src/config.h.in for autoconf to modify.
2331 dnl checks for header files
2332 AC_CHECK_HEADERS(dnl
2335 cygwin/version.h dnl
2355 dnl Some systems have utime.h but do not declare the struct anyplace.
2356 AC_MSG_CHECKING(for struct utimbuf)
2357 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
2358 #include <sys/time.h>
2361 #ifdef HAVE_SYS_TIME_H
2362 #include <sys/time.h>
2369 #endif], [static struct utimbuf x; x.actime = x.modtime;],
2371 AC_DEFINE(HAVE_STRUCT_UTIMBUF)],
2374 dnl checks for typedefs
2381 AC_CHECK_TYPE(ssize_t, int)
2383 dnl check for Unix98 socklen_t
2384 AC_MSG_CHECKING(for socklen_t)
2385 AC_TRY_COMPILE([#include <sys/socket.h>
2387 ],[],[AC_MSG_RESULT(yes)],[
2388 AC_TRY_COMPILE([#include <sys/socket.h>
2389 int accept (int, struct sockaddr *, size_t *);
2391 AC_MSG_RESULT(size_t)
2392 AC_DEFINE(socklen_t,size_t)], [
2394 AC_DEFINE(socklen_t,int)])])
2396 AC_MSG_CHECKING(for struct timeval)
2397 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
2398 #include <sys/time.h>
2401 #ifdef HAVE_SYS_TIME_H
2402 #include <sys/time.h>
2406 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
2409 AC_DEFINE(HAVE_TIMEVAL)],
2413 dnl checks for structure members
2417 dnl checks for compiler characteristics
2420 dnl check for Make feature
2423 dnl check byte order
2426 dnl define SIZEOF_TYPE
2427 AC_CHECK_SIZEOF(short)
2428 if test "$ac_cv_sizeof_short" = 0; then
2430 echo "*** PANIC *** Configure tests are not working - compiler is broken."
2431 echo "*** PANIC *** Please examine config.log for compilation errors."
2434 AC_CHECK_SIZEOF(int)
2435 AC_CHECK_SIZEOF(long)
2436 AC_CHECK_SIZEOF(long long)
2437 AC_CHECK_SIZEOF(void *)
2439 dnl check for long file names
2440 AC_SYS_LONG_FILE_NAMES
2442 dnl -lm is required by LISP_FLOAT_TYPE, among other things
2443 AC_CHECK_FUNC(sin, ,AC_CHECK_LIB(m, sin))
2445 dnl Floating operation support is now unconditional
2446 AC_DEFINE(LISP_FLOAT_TYPE)
2448 AC_TRY_LINK([#include <math.h>],
2449 [return atanh(1.0) + asinh(1.0) + acosh(1.0); ],
2450 AC_DEFINE(HAVE_INVERSE_HYPERBOLIC))
2452 dnl Determine type of mail locking from configure args and s&m headers
2453 AC_CHECKING(type of mail spool file locking)
2454 AC_CHECK_FUNCS(lockf flock)
2455 dnl The mail_use_xxx variables are set according to the s&m headers.
2456 test -z "$mail_locking" -a "$mail_use_flock" = "yes" && mail_locking=flock
2457 test -z "$mail_locking" -a "$mail_use_lockf" = "yes" && mail_locking=lockf
2458 test -z "$mail_locking" -a "$mail_use_locking" = "yes" && mail_locking=locking
2459 if test -z "$mail_locking"; then
2460 case "$opsys" in cygwin* | mingw*)
2465 if test "$mail_locking" = "lockf"; then AC_DEFINE(MAIL_LOCK_LOCKF)
2466 elif test "$mail_locking" = "flock"; then AC_DEFINE(MAIL_LOCK_FLOCK)
2467 elif test "$mail_locking" = "locking"; then AC_DEFINE(MAIL_LOCK_LOCKING)
2468 elif test "$mail_locking" = "pop"; then
2471 else mail_locking="dot-locking"; AC_DEFINE(MAIL_LOCK_DOT)
2473 test "$mail_locking" = "lockf" -a "$ac_cv_func_lockf" != "yes" && \
2474 XE_DIE("lockf mail locking requested but not available.")
2475 test "$mail_locking" = "flock" -a "$ac_cv_func_flock" != "yes" && \
2476 XE_DIE("flock mail locking requested but not available.")
2477 test "$mail_locking" = "locking" -a "$ac_cv_func_locking" != "yes" && \
2478 XE_DIE("locking mail locking requested but not available.")
2480 case "$opsys" in decosf*)
2481 AC_CHECK_LIB(pthreads, cma_open)
2482 test "$ac_cv_lib_pthreads_cma_open" = "yes" && \
2483 c_switch_site="$c_switch_site -threads" ;;
2486 AC_MSG_CHECKING(whether the -xildoff compiler flag is required)
2487 if ${CC-cc} '-###' -xildon no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then
2488 if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ;
2489 then AC_MSG_RESULT(no);
2490 else AC_MSG_RESULT(yes); XE_APPEND(-xildoff, ld_switch_site)
2492 else AC_MSG_RESULT(no)
2495 dnl Link with "-z ignore" on Solaris if supported
2496 if test "$opsys" = "sol2"; then
2497 if test "$os_release" -ge 56; then
2498 AC_MSG_CHECKING(for \"-z ignore\" linker flag)
2499 case "`ld -h 2>&1`" in
2500 *-z\ ignore\|record* ) AC_MSG_RESULT(yes)
2501 XE_PREPEND(-z ignore, ld_switch_site) ;;
2502 *) AC_MSG_RESULT(no) ;;
2507 dnl ----------------------
2508 dnl Choose a window system
2509 dnl ----------------------
2511 AC_CHECKING("for specified window system")
2513 if test "$with_x11" != "no"; then
2514 dnl User-specified --x-includes or --x-libraries implies --with-x11.
2515 test "$x_includes $x_libraries" != "NONE NONE" && \
2516 window_system=x11 with_x11=yes
2518 dnl Autodetection of X11 libraries and includes
2519 dnl -------------------------------------------
2520 dnl AC_PATH_XTRA thinks it can find our X headers and includes, but
2521 dnl it often gets it wrong, so we only use it as a last resort.
2523 dnl $OPENWINHOME implies --x-includes and --x-libraries
2524 dnl Not (yet) handled by autoconf2
2525 if test "$x_includes $x_libraries" = "NONE NONE" \
2526 -a -n "$OPENWINHOME" \
2527 -a "$OPENWINHOME" != "/usr/openwin" \
2528 -a -d "$OPENWINHOME"; then
2529 test -d "$OPENWINHOME/lib" && x_libraries="$OPENWINHOME/lib"
2530 test -d "$OPENWINHOME/include" && x_includes="$OPENWINHOME/include"
2531 test -d "$OPENWINHOME/share/include" && x_includes="$OPENWINHOME/share/include"
2534 if test "$x_includes" = "NONE"; then
2535 dnl AC_PATH_XTRA often guesses /usr/include, when some other
2536 dnl include directory is a MUCH better guess (Linux, HP-UX 10.20).
2537 dnl This is a workaround for idiot (esp. HP) system vendors, who
2538 dnl provide a /usr/include/X11, but DON'T FULLY POPULATE IT.
2539 for dir in "/usr/X11" "/usr/X11R6"; do
2540 if test -d "$dir/include/X11"; then x_includes="$dir/include"; break; fi
2544 if test "$x_libraries" = "NONE"; then
2545 for dir in "/usr/X11/lib" "/usr/X11R6/lib" "/usr/lib/X11R6"; do
2546 if test -r "$dir/libX11.a"; then x_libraries="$dir"; break; fi
2550 AC_PATH_XTRA # Autoconf claims to find X library and include dirs for us.
2551 if test "$no_x" = "yes"
2552 then with_x11=no window_system=none HAVE_X_WINDOWS=no
2553 else with_x11=yes window_system=x11 HAVE_X_WINDOWS=yes
2558 yes ) window_system=x11 HAVE_X_WINDOWS=yes ;;
2559 no ) window_system=none HAVE_X_WINDOWS=no ;;
2562 if test "$with_x11" = "yes"; then
2563 AC_DEFINE(HAVE_X_WINDOWS)
2564 XE_APPEND(lwlib, MAKE_SUBDIR)
2565 XE_APPEND(lwlib, SRC_SUBDIR_DEPS)
2567 dnl Try to find Motif/CDE/Tooltalk dirs
2568 dnl These take precedence over other X libs/includes, so PRE-pend
2569 for lib_dir in "/usr/dt/lib" "/usr/lib/Motif2.1" "/usr/lib/Motif1.2" "/usr/lib/Motif1.1"; do
2570 inc_dir=`echo $lib_dir | sed -e 's/lib/include/'`
2571 if test -d "$lib_dir" -a -d "$inc_dir"; then
2572 case "$x_libraries" in *"$lib_dir"* ) ;; *)
2573 x_libraries="$lib_dir $x_libraries"
2574 XE_PREPEND(-L${lib_dir}, X_LIBS) ;;
2576 case "$x_includes" in "$inc_dir"* ) ;; *)
2577 x_includes="$inc_dir $x_includes"
2578 XE_PREPEND(-I${inc_dir}, X_CFLAGS) ;;
2580 break; dnl only need ONE Motif implementation!
2584 dnl Contrib X libs/includes do NOT take precedence, so AP-pend
2585 for rel in "X11R6" "X11R5" "X11R4"; do
2586 lib_dir="/usr/contrib/$rel/lib" inc_dir="/usr/contrib/$rel/include"
2587 if test -d "$lib_dir" -a -d "$inc_dir"; then
2588 case "$x_libraries" in *"$lib_dir"* ) ;; *)
2589 x_libraries="$x_libraries $lib_dir"
2590 XE_APPEND(-L${lib_dir}, X_LIBS)
2592 case "$x_includes" in "$inc_dir"* ) ;; *)
2593 x_includes="$x_includes $inc_dir"
2594 XE_APPEND(-I${inc_dir}, X_CFLAGS)
2596 break; dnl Only need ONE X11 implementation !
2600 dnl Avoid version mismatch for shared library libXm.so on osf4
2602 decosf*) if test "$GCC" = yes -a -d /usr/shlib; then XE_APPEND(-L/usr/shlib, X_LIBS); fi ;;
2605 ld_switch_x_site="$X_LIBS"
2607 XE_COMPUTE_RUNPATH()
2609 if test "$extra_verbose" = "yes"; then
2610 echo; echo "X11 compilation variables:"
2611 PRINT_VAR(x_libraries x_includes X_CFLAGS X_LIBS X_PRE_LIBS X_EXTRA_LIBS)
2615 dnl Set up bitmaps search path.
2616 dnl The original suggestion was to unconditionally to append X11/bitmaps
2617 dnl to each element of $x_includes, I'm pretty sure this is the wrong
2618 dnl thing to do. We test for bitmaps and X11/bitmaps directories on each
2619 dnl element and add them to BITMAPDIR if they exist.
2621 if test "$x_includes" != NONE; then
2622 for i in $x_includes; do
2623 if test -d "$i/bitmaps"; then
2624 bitmapdirs="$i/bitmaps:$bitmapdirs"
2626 if test -d "$i/X11/bitmaps"; then
2627 bitmapdirs="$i/X11/bitmaps:$bitmapdirs"
2630 bitmapdirs=`echo "$bitmapdirs" | sed s/.$//`
2632 test ! -z "$bitmapdirs" && AC_DEFINE_UNQUOTED(BITMAPDIR, "$bitmapdirs")
2634 dnl Autodetect defines extracted from X config by xmkmf, e.g. NARROWPROTO
2635 AC_CHECKING(for X defines extracted by xmkmf)
2637 if mkdir conftestdir; then
2639 cat > Imakefile <<'EOF'
2641 @echo ${PROTO_DEFINES} ${STD_DEFINES}
2643 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
2644 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
2645 xmkmf_defines=`${MAKE-make} xetest 2>/dev/null | grep -v make`
2649 for word in $xmkmf_defines; do
2650 case "$word" in -D* )
2651 sym=`echo '' $word | sed -e 's:^ *-D::' -e 's:=.*::'`
2653 -D*=* ) val=`echo '' $word | sed -e 's:^.*=::'` ;;
2656 dnl Avoid re-AC_DEFINE-ing xmkmf symbols we've already defined above.
2657 if grep "^#define $sym " confdefs.h >/dev/null; then :; else
2658 if test "$val" = "1"
2659 then AC_DEFINE_UNQUOTED($sym)
2660 else AC_DEFINE_UNQUOTED($sym,$val)
2667 dnl make sure we can find Intrinsic.h
2668 AC_CHECK_HEADER(X11/Intrinsic.h, ,
2669 [AC_MSG_ERROR("Unable to find X11 header files.")])
2671 dnl -lXt and -lX11 are required
2672 dnl Some broken systems require the magic "-b i486-linuxaout" flag
2673 AC_CHECK_LIB(X11, XOpenDisplay, have_lib_x11=yes)
2674 if test "$have_lib_x11" != "yes"; then
2675 AC_CHECK_LIB(X11, XGetFontProperty,
2676 ld_switch_x_site="-b i486-linuxaout $ld_switch_x_site",
2677 [AC_MSG_ERROR("Unable to find X11 libraries.")],
2681 test "$extra_verbose" = "yes" && echo " Setting libs_x to \"-lX11\""
2683 dnl Autodetect -lXext
2684 AC_CHECK_LIB(Xext, XShapeSelectInput, XE_PREPEND(-lXext, libs_x))
2687 AC_CHECK_LIB(Xt, XtOpenDisplay, XE_PREPEND(-lXt, libs_x),
2688 AC_MSG_ERROR("Unable to find X11 libraries."))
2690 AC_MSG_CHECKING(the version of X11 being used)
2691 AC_TRY_RUN([#include <X11/Intrinsic.h>
2692 int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }],
2693 [./conftest foobar; x11_release=$?],[x11_release=4],[x11_release=4])
2694 AC_MSG_RESULT(R${x11_release})
2695 AC_DEFINE_UNQUOTED(THIS_IS_X11R${x11_release})
2697 if test "${x11_release}" = "4"; then
2698 case "$with_widgets" in
2699 "" | "no") with_widgets=no ;;
2700 *) XE_DIE("Widget support requires X11R5 or greater") ;;
2704 AC_CHECK_FUNCS(XConvertCase)
2706 AC_CHECK_HEADERS(X11/Xlocale.h)
2708 dnl XFree86 has a non-standard prototype for this X11R6 function
2709 AC_CHECK_FUNCS(XRegisterIMInstantiateCallback)
2710 AC_MSG_CHECKING(for standard XRegisterIMInstantiateCallback prototype)
2712 #define NeedFunctionPrototypes 1
2713 #include <X11/Xlib.h>
2714 extern Bool XRegisterIMInstantiateCallback(
2715 Display*, struct _XrmHashBucketRec*, char*, char*, XIMProc, XPointer*);
2717 [AC_MSG_RESULT(yes)],
2719 AC_DEFINE(XREGISTERIMINSTANTIATECALLBACK_NONSTANDARD_PROTOTYPE)])
2721 dnl autodetect -lXmu
2722 test -z "$with_xmu" && { AC_CHECK_LIB(Xmu, XmuReadBitmapDataFromFile,
2723 with_xmu=yes, with_xmu=no) }
2724 if test "$with_xmu" = "no"; then
2727 XE_PREPEND(-lXmu, libs_x)
2731 dnl Autodetect -lXbsd
2732 dnl #### Someone, please add a better function than main
2733 AC_CHECK_LIB(Xbsd, main, XE_PREPEND(-lXbsd, libs_x))
2735 dnl Problem with the MIT distribution of X on AIX
2736 if test "$unexec" = "unexaix.o" -a "$x11_release" = "6"; then
2737 dnl X11R6 requires thread-safe code on AIX for some reason
2738 if test "$GCC" = "yes"; then
2739 XE_PREPEND(-mthreads, X_CFLAGS)
2740 XE_PREPEND(-mthreads, libs_x)
2743 "xlc" ) CC="xlc_r" ;;
2744 "xlC" ) CC="xlC_r" ;;
2750 fi dnl $with_x11 = yes
2752 if test "$with_msw" != "no"; then
2753 AC_CHECKING(for MS-Windows)
2754 AC_CHECK_LIB(gdi32,main,with_msw=yes)
2755 if test "$with_msw" = "yes"; then
2756 AC_DEFINE(HAVE_MS_WINDOWS)
2758 dnl The net installer only works with MS-Windows currently
2759 XE_APPEND(netinstall, MAKE_SUBDIR)
2760 XE_APPEND(netinstall, SRC_SUBDIR_DEPS)
2761 XE_APPEND(netinstall, INSTALL_ARCH_DEP_SUBDIR)
2763 install_pp="$blddir/lib-src/installexe.sh"
2764 XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lwinspool, libs_system)
2765 test "$with_dragndrop" != no && XE_APPEND(msw, dragndrop_proto)
2766 if test "$window_system" != x11; then
2768 test "$with_scrollbars" != "no" && with_scrollbars=msw \
2769 && XE_ADD_OBJS(scrollbar-msw.o)
2770 test "$with_menubars" != "no" && with_menubars=msw \
2771 && XE_ADD_OBJS(menubar-msw.o)
2772 test "$with_toolbars" != "no" && with_toolbars=msw \
2773 && XE_ADD_OBJS(toolbar-msw.o)
2774 test "$with_dialogs" != "no" && with_dialogs=msw \
2775 && XE_ADD_OBJS(dialog-msw.o)
2776 test "$with_widgets" != "no" && with_widgets=msw
2778 test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-msw.o)
2779 test "$with_menubars" != "no" && XE_ADD_OBJS(menubar-msw.o)
2780 test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar-msw.o)
2781 test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog-msw.o)
2783 dnl check for our special version of select
2784 AC_TRY_RUN([#include <fcntl.h>
2785 int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }],
2786 [AC_DEFINE(HAVE_MSG_SELECT)])
2787 with_file_coding=yes
2788 XE_ADD_OBJS(console-msw.o device-msw.o event-msw.o frame-msw.o objects-msw.o select-msw.o redisplay-msw.o glyphs-msw.o gui-msw.o)
2792 AC_SUBST(install_pp)
2794 test -z "$window_system" && window_system="none"
2796 dnl Test for features that require a window system - ANY window system
2797 if test "$window_system" = "none"; then
2798 for feature in menubars scrollbars toolbars dialogs dragndrop xface
2800 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2801 AC_MSG_WARN([--with-$feature ignored: Not valid without window system support])
2803 eval "with_${feature}=no"
2806 test -z "$with_toolbars" && with_toolbars=yes
2809 dnl ### Test for features that require mswindows support - currently none
2810 dnl ### MS-Windows folks: add code here..... (martin)
2811 if test "$with_msw" != "yes"; then
2812 for feature in MARTIN_IS_CLUELESS_ABOUT_MSW_FEATURES
2814 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2815 AC_MSG_WARN([--with-$feature ignored: Not valid without MS-Windows support])
2817 eval "with_${feature}=no"
2823 dnl Test for features that require X11 support
2824 if test "$with_x11" != "yes"; then
2825 dnl It ought to be reasonable to have no output device at all, and only use
2826 dnl XEmacs in --batch mode.
2827 dnl if test "$with_tty" = "no" ; then
2828 dnl AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.])
2830 for feature in tooltalk cde offix wmcommand xim xmu nas_sound
2832 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2833 AC_MSG_WARN([--with-$feature ignored: Not valid without X support])
2835 eval "with_${feature}=no"
2839 dnl Balloon Help requires the Shape extension, not available everywhere,
2840 dnl for example not on AIX 4.3.
2841 if test "$with_x11" = "yes"; then
2842 AC_CHECK_HEADER(X11/extensions/shape.h, [
2843 AC_DEFINE(HAVE_BALLOON_HELP)
2844 XE_ADD_OBJS(balloon_help.o balloon-x.o)])
2847 dnl FSF 19.29 has some bitmapdir stuff here.
2850 case "$window_system" in
2851 x11 ) HAVE_X_WINDOWS=yes; echo " Using X11." ;;
2852 msw ) HAVE_X_WINDOWS=no ; echo " Using MS-Windows." ;;
2853 none ) HAVE_X_WINDOWS=no ; echo " Using no window system." ;;
2856 case "$x_libraries" in *X11R4* )
2857 test "$opsys" = "hpux9" && opsysfile="s/hpux9-x11r4.h"
2858 test "$opsys" = "hpux9-shr" && opsysfile="s/hpux9shxr4.h"
2861 dnl Enable or disable proper handling of WM_COMMAND
2862 AC_CHECKING(for WM_COMMAND option);
2863 dnl if test "$with_wmcommand" = "yes"; then
2864 if test "$with_wmcommand" != "no"; then
2865 AC_DEFINE(HAVE_WMCOMMAND)
2868 dnl Autodetect Xauth
2869 dnl -lXau is only used by gnuclient, so use a special variable for Xauth X libs
2870 test -z "$with_xauth" && test "$window_system" = "none" && with_xauth=no
2871 test -z "$with_xauth" && { AC_CHECK_HEADER(X11/Xauth.h, ,with_xauth=no) }
2872 test -z "$with_xauth" && { AC_CHECK_LIB(Xau, XauGetAuthByAddr,[:],with_xauth=no) }
2873 test -z "$with_xauth" && with_xauth=yes
2874 if test "$with_xauth" = "yes"; then
2875 AC_DEFINE(HAVE_XAUTH)
2876 XE_SPACE(libs_xauth, $X_EXTRA_LIBS -lXau $libs_x $X_PRE_LIBS)
2878 AC_SUBST(libs_xauth)
2880 dnl This one is for the static initializeds variables in
2881 dnl offix.c, so that the thing is dumped after lastfile.o
2884 dnl Autodetect tooltalk
2885 if test "$with_tooltalk" != "no" ; then
2886 dnl autodetect the location of tt_c.h
2887 dnl tt_c.h might be in Tt or desktop include directories
2888 for dir in "" "Tt/" "desktop/" ; do
2889 AC_CHECK_HEADER(${dir}tt_c.h, tt_c_h_file="${dir}tt_c.h"; break)
2891 if test -z "$tt_c_h_file"; then
2892 if test "$with_tooltalk" = "yes"; then
2893 USAGE_ERROR("Unable to find required tooltalk header files.")
2898 if test "$with_tooltalk" != "no" ; then
2899 for extra_libs in "" "-lI18N -lce" "-lcxx"; do
2900 AC_CHECK_LIB(tt, tt_message_create,
2901 tt_libs="-ltt $extra_libs"; break, [:],$extra_libs)
2903 if test -z "$tt_libs"; then
2904 if test "$with_tooltalk" = "yes"; then
2905 USAGE_ERROR("Unable to find required tooltalk libraries.")
2910 test -z "$with_tooltalk" && with_tooltalk=yes
2911 if test "$with_tooltalk" = "yes"; then
2913 AC_DEFINE_UNQUOTED(TT_C_H_FILE, "$tt_c_h_file")
2914 XE_PREPEND($tt_libs, libs_x)
2915 XE_ADD_OBJS(tooltalk.o)
2919 test -z "$with_cde" && { AC_CHECK_HEADER(Dt/Dt.h, , with_cde=no) }
2920 test -z "$with_cde" && { AC_CHECK_LIB(DtSvc, DtDndDragStart, [:], with_cde=no) }
2921 test -z "$with_cde" && with_cde=yes
2922 if test "$with_dragndrop" = no; then
2923 AC_MSG_WARN([No CDE without generic Drag'n'Drop support])
2926 if test "$with_cde" = "yes" ; then
2928 XE_PREPEND(-lDtSvc, libs_x)
2929 XE_APPEND(CDE, dragndrop_proto)
2930 with_tooltalk=yes # CDE requires Tooltalk
2931 need_motif=yes # CDE requires Motif
2934 dnl Always compile OffiX unless --without-offix is given, no
2935 dnl X11 support is compiled in, no standard Xmu is available,
2936 dnl or dragndrop support is disabled
2937 dnl Because OffiX support currently loses when more than one display
2938 dnl is in use, we now disable it by default -slb 07/10/1998.
2939 test "$window_system" != "x11" && with_offix=no
2940 if test "$with_xmu" != yes -a "$with_x11" = yes; then
2941 AC_MSG_WARN([No OffiX without real Xmu support])
2944 if test "$with_dragndrop" = no; then
2945 AC_MSG_WARN([No OffiX without generic Drag'n'Drop support])
2948 if test "$with_cde" = yes; then
2949 AC_MSG_WARN([CDE already found, disabling OffiX support])
2952 test -z "$with_offix" && with_offix=no
2953 if test "$with_offix" = "yes"; then
2954 AC_DEFINE(HAVE_OFFIX_DND)
2955 XE_APPEND(offix.o, dnd_objs)
2956 XE_APPEND(OffiX, dragndrop_proto)
2959 dnl Autodetect Drag'n'Drop support
2960 dnl always included if CDE, Offix, or MSWindows are defined
2961 if test "$with_dragndrop" != "no" ; then
2962 AC_MSG_CHECKING(if drag and drop API is needed)
2963 if test -n "$dragndrop_proto" ; then
2965 AC_MSG_RESULT([yes (${dragndrop_proto} )])
2966 AC_DEFINE(HAVE_DRAGNDROP)
2967 XE_APPEND(dragdrop.o, extra_objs)
2975 AC_CHECKING(for LDAP)
2976 test -z "$with_ldap" && { AC_CHECK_HEADER(ldap.h, ,with_ldap=no) }
2977 test -z "$with_ldap" && { AC_CHECK_HEADER(lber.h, ,with_ldap=no) }
2978 if test "$with_ldap" != "no"; then
2979 AC_CHECK_LIB(ldap, ldap_search, with_ldap_nolber=yes, with_ldap_nolber=no)
2980 test "$with_ldap_nolber" = "no" && { AC_CHECK_LIB(ldap, ldap_open, with_ldap_lber=yes, with_ldap_lber=no, -llber) }
2981 test "$with_ldap_nolber" = "no" -a "$with_ldap_lber" = "no" && { AC_CHECK_LIB(ldap, ldap_open, with_ldap_krb=yes, with_ldap_krb=no, -llber -lkrb) }
2982 test "$with_ldap_nolber" = "no" -a "$with_ldap_lber" = "no" -a "$with_ldap_krb" = "no" && { AC_CHECK_LIB(ldap, ldap_open, with_ldap_krbdes=yes, with_ldap_krbdes=no, -llber -lkrb -ldes) }
2983 test -z "$with_ldap" -a \( "$with_ldap_lber" = "yes" -o "$with_ldap_nolber" = "yes" -o "$with_ldap_krb" = "yes" -o "$with_ldap_krbdes" = "yes" \) && with_ldap=yes
2985 if test "$with_ldap" = "yes"; then
2986 AC_DEFINE(HAVE_LDAP)
2987 XE_ADD_OBJS(eldap.o)
2988 if test "$with_ldap_nolber" = "yes" ; then
2989 XE_PREPEND(-lldap, LIBS)
2991 if test "$with_ldap_krb" = "yes" ; then
2992 XE_PREPEND(-lkrb, LIBS)
2994 if test "$with_ldap_krbdes" = "yes" ; then
2995 XE_PREPEND(-ldes, LIBS)
2996 XE_PREPEND(-lkrb, LIBS)
2998 XE_PREPEND(-llber, LIBS)
2999 XE_PREPEND(-lldap, LIBS)
3001 AC_CHECK_FUNCS(ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result)
3004 dnl Autodetect PostgreSQL
3005 dnl On many Linux systems, PostgreSQL is packaged to be installed in /usr;
3006 dnl in this case, configure will easily detect it there.
3008 dnl If PostgreSQL is installed into a different prefix,
3009 dnl (such as the default /usr/local/pgsql when building from source),
3010 dnl that prefix must be specified using the --site-prefixes flag.
3011 if test "$with_postgresql" != "no"; then
3012 AC_CHECKING(for PostgreSQL)
3014 dnl Look for these standard header file locations, known to be used on Linux
3015 for header_dir in "" "pgsql/" "postgresql/"; do
3016 AC_CHECK_HEADER(${header_dir}libpq-fe.h,
3017 libpq_fe_h_file=${header_dir}libpq-fe.h; break)
3020 test -n "$libpq_fe_h_file" && { AC_CHECK_LIB(pq,PQconnectdb,have_libpq=yes) }
3022 if test -n "$libpq_fe_h_file" -a "$have_libpq" = "yes"; then
3024 AC_DEFINE(HAVE_POSTGRESQL)
3025 AC_CHECK_LIB(pq,PQconnectStart, [
3026 with_postgresqlv7=yes;
3027 AC_DEFINE(HAVE_POSTGRESQLV7)])
3028 AC_DEFINE_UNQUOTED(LIBPQ_FE_H_FILE, "$libpq_fe_h_file")
3029 XE_PREPEND(-lpq, LIBS)
3030 XE_ADD_OBJS(postgresql.o)
3031 elif test "$with_postgresql" = "yes"; then
3032 XE_DIE("Required PostgreSQL support cannot be provided. Check --site-prefixes.")
3036 dnl ----------------------
3037 dnl Graphics libraries
3038 dnl ----------------------
3040 if test "$window_system" != "none"; then
3041 AC_CHECKING(for graphics libraries)
3045 if test -z "$with_xpm"; then
3046 AC_MSG_CHECKING(for Xpm - no older than 3.4f)
3048 AC_TRY_RUN([#define XPM_NUMBERS
3049 #include <X11/xpm.h>
3050 int main(int c, char **v) {
3052 XpmIncludeVersion != XpmLibraryVersion() ? 1 :
3053 XpmIncludeVersion < 30406 ? 2 : 0 ;}],
3054 [./conftest dummy_arg; xpm_status=$?;
3055 if test "$xpm_status" = "0"; then
3059 if test "$xpm_status" = "1"; then
3060 xpm_problem="Xpm library version and header file version don't match!"
3061 elif test "$xpm_status" = "2"; then
3062 xpm_problem="Xpm library version is too old!"
3064 xpm_problem="Internal xpm detection logic error!"
3067 *** WARNING *** $xpm_problem
3068 I'm not touching that with a 10-foot pole!
3069 If you really want to use the installed version of Xpm, rerun
3070 configure and add '--with-xpm=yes', but don't blame me if XEmacs crashes!"
3074 AC_MSG_RESULT($with_xpm)
3076 if test "$with_xpm" = "yes"; then
3077 dnl #### This code assumes that if AC_CHECK_LIB fails,
3078 dnl #### then it will succeed if FOR_MSW is defined,
3079 dnl #### but doesn't actually verify this assumption.
3081 XE_PREPEND(-lXpm, libs_x)
3082 AC_MSG_CHECKING(for \"FOR_MSW\" xpm)
3084 AC_TRY_LINK(, [XpmCreatePixmapFromData()],
3088 AC_MSG_RESULT($xpm_for_msw)
3089 if test "$xpm_for_msw" = "yes"; then
3094 dnl Autodetect XFACE
3095 test -z "$with_xface" && { AC_CHECK_HEADER(compface.h, ,with_xface=no) }
3096 test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) }
3097 test -z "$with_xface" && with_xface=yes
3098 if test "$with_xface" = "yes"; then
3099 AC_DEFINE(HAVE_XFACE)
3100 XE_PREPEND(-lcompface, libs_x)
3103 dnl For a brief period we had the GIF code split out into a separate library,
3104 dnl but patent problems, etc. sort of squashed that idea.
3105 dnl We default to building with builtin GIF decoding
3106 if test "$with_gif" != "no"; then
3109 XE_ADD_OBJS(dgif_lib.o gif_io.o)
3112 dnl Too many stupid linkers can't detect cascaded lib dependencies until runtime
3113 dnl So we always search for libz compression support.
3114 if test "$with_png $with_tiff" != "no no"; then
3115 AC_CHECK_LIB(c, inflate, [:], [
3116 AC_CHECK_LIB(z, inflate, [XE_PREPEND(-lz, libs_x)],[
3117 AC_CHECK_LIB(gz, inflate, [XE_PREPEND(-lgz, libs_x)])])])
3121 test -z "$with_jpeg" && { AC_CHECK_HEADER(jpeglib.h, ,with_jpeg=no) }
3122 test -z "$with_jpeg" && { AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,[:],with_jpeg=no) }
3123 test -z "$with_jpeg" && with_jpeg=yes
3124 if test "$with_jpeg" = "yes"; then
3125 AC_DEFINE(HAVE_JPEG)
3126 XE_PREPEND(-ljpeg, libs_x)
3131 test -z "$with_png" && { AC_CHECK_FUNC(pow, ,with_png=no) }
3132 test -z "$with_png" && { AC_CHECK_HEADER(png.h, ,with_png=no) }
3133 test -z "$with_png" && { AC_CHECK_LIB(png, png_read_image,[:],with_png=no) }
3134 if test -z "$with_png"; then
3135 AC_MSG_CHECKING(for workable png version information)
3136 xe_check_libs="-lpng -lz"
3137 AC_TRY_RUN([#include <png.h>
3138 int main(int c, char **v) {
3139 if (c == 1) return 0;
3140 if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1;
3141 return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}],
3142 [./conftest dummy_arg; png_status=$?;
3143 if test "$png_status" = "0"; then
3147 if test "$png_status" = "1"; then
3148 png_problem="PNG library version and header file don't match!"
3149 elif test "$png_status" = "2"; then
3150 png_problem="PNG library version too old (pre 1.0.2)!"
3153 *** WARNING *** $png_problem
3154 I'm not touching that with a 10-foot pole!
3155 If you really want to use the installed version of libPNG, rerun
3156 configure and add '--with-png=yes', but don't blame me if XEmacs crashes!"
3160 AC_MSG_RESULT($with_png)
3162 if test "$with_png" = "yes"; then
3164 XE_PREPEND(-lpng, libs_x)
3168 test -z "$with_tiff" && { AC_CHECK_HEADER(tiffio.h, ,with_tiff=no) }
3169 test -z "$with_tiff" && { AC_CHECK_LIB(tiff, TIFFClientOpen,[:],with_tiff=no) }
3170 test -z "$with_tiff" && with_tiff=yes
3171 if test "$with_tiff" = "yes"; then
3172 AC_DEFINE(HAVE_TIFF)
3173 XE_PREPEND(-ltiff, libs_x)
3177 dnl ----------------------
3178 dnl X-Specific Graphics libraries
3179 dnl ----------------------
3181 if test "$with_x11" = "yes"; then
3183 AC_CHECKING(for X11 graphics libraries)
3185 AC_CHECKING(for the Athena widgets)
3187 dnl What in heck did the user actually want?
3188 case "$with_athena" in
3189 dnl This is the default, old fashioned flat Athena.
3190 "xaw" | "") athena_variant=Xaw athena_3d=no ;;
3191 "3d") athena_variant=Xaw3d athena_3d=yes ;;
3192 "next") athena_variant=neXtaw athena_3d=yes ;;
3193 "95") athena_variant=Xaw95 athena_3d=yes ;;
3194 "xpm") athena_variant=XawXpm athena_3d=yes ;;
3195 *) XE_DIE("Unknown Athena widget set \`$with_athena'. This should not happen.") ;;
3198 dnl Search for the Athena library...
3199 if test "$athena_3d" = "no"; then
3200 AC_CHECK_LIB($athena_variant, XawScrollbarSetThumb,
3202 dnl Must not be a 3d library...
3203 AC_CHECK_LIB($athena_variant, threeDClassRec,
3204 AC_MSG_WARN("Could not find a non-3d Athena widget library."),
3205 athena_lib=$athena_variant)
3207 AC_MSG_WARN("Could not find an Athena widget library."))
3209 dnl The real configuration, need 3d library
3210 AC_CHECK_LIB($athena_variant, threeDClassRec, athena_lib=$athena_variant,
3211 dnl OK, couldn't find it with a proper name, try the standard Athena lib
3212 dnl If that is 3d, presume the user asked for what they have installed.
3213 AC_CHECK_LIB(Xaw, threeDClassRec,
3216 AC_MSG_WARN("Assuming that libXaw is actually $athena_variant.");
3218 AC_MSG_WARN("Could not find a 3d Athena widget library that looked like $athena_variant.")))
3221 dnl Now we locate the Athena headers that we need.
3222 if test "$athena_3d" = "no"; then
3223 AC_CHECK_HEADER(X11/Xaw/ThreeD.h,
3224 AC_MSG_WARN("Could not find a non-3d Athena header set."),
3225 AC_CHECK_HEADER(X11/Xaw/XawInit.h,
3226 athena_h_path=X11/Xaw,
3227 AC_MSG_WARN("Could not find a non-3d Athena header set.")))
3229 dnl The three-d Athena headers are so much more slippery.
3230 dnl Curse this `Lets replace standard libraries' thing that they did. :/
3231 AC_CHECK_HEADER(X11/$athena_variant/XawInit.h,
3232 AC_CHECK_HEADER(X11/$athena_variant/ThreeD.h,
3233 athena_h_path=X11/$athena_variant,))
3235 dnl Is the variant specific header directory directly under include?
3236 if test -z "$athena_h_path"; then
3237 AC_CHECK_HEADER($athena_variant/XawInit.h,
3238 AC_CHECK_HEADER($athena_variant/ThreeD.h,
3239 athena_h_path=$athena_variant,))
3242 dnl If we couldn't find the specific variant, try the generic Athena 3d headers
3243 if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
3244 AC_CHECK_HEADER(X11/Xaw3d/XawInit.h,
3245 AC_CHECK_HEADER(X11/Xaw3d/ThreeD.h,
3247 AC_MSG_WARN("Assuming that X11/Xaw3d headers are suitable for $athena_variant.")
3248 athena_h_path=X11/Xaw3d
3252 dnl Also generic 3d headers directly under include dir
3253 if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
3254 AC_CHECK_HEADER(Xaw3d/XawInit.h,
3255 AC_CHECK_HEADER(Xaw3d/ThreeD.h,
3257 AC_MSG_WARN("Assuming that Xaw3d headers are suitable for $athena_variant.")
3262 dnl If nothing yet found, see if Xaw is a 3d header set...
3263 dnl We AC_MSG_WARN if we fail because I am all out of ideas...
3264 if test -z "$athena_h_path"; then
3265 AC_CHECK_HEADER(X11/Xaw/ThreeD.h,
3267 AC_MSG_WARN("Assuming that X11/Xaw headers are suitable for $athena_variant.")
3268 athena_h_path=X11/Xaw
3270 AC_MSG_WARN("Could not find a suitable 3d Athena header set."))
3274 dnl Do we actually have a usable Athena widget set? Please?
3275 if test -n "$athena_lib" -a -n "$athena_h_path"; then
3281 dnl autodetect Motif - but only add to libs_x later (if necessary)
3282 AC_CHECK_HEADER(Xm/Xm.h,
3283 [AC_CHECK_LIB(Xm, XmStringFree, have_motif=yes, have_motif=no)],
3286 if test "$have_motif" = "yes"; then
3287 dnl autodetect lesstif
3288 AC_MSG_CHECKING(for Lesstif)
3291 #ifdef LESSTIF_VERSION
3294 ], have_lesstif=yes, have_lesstif=no)
3295 AC_MSG_RESULT($have_lesstif)
3298 fi dnl "$with_x11" = "yes"
3300 dnl Finish ensuring that we have values for the various toolkit items.
3301 dnl Not all toolkits support all widgets
3302 dnl if Motif is available we use it for the dialog boxes.
3304 case "$with_menubars" in "" | "yes" | "athena" )
3305 with_menubars="lucid" ;;
3307 case "$with_dialogs" in "" | "yes" | "lucid" )
3308 if test "$have_motif" = "yes"; then with_dialogs="motif"
3309 elif test "$have_xaw" = "yes"; then with_dialogs="athena"
3310 else with_dialogs=no
3313 case "$with_scrollbars" in "" | "yes" )
3314 with_scrollbars="lucid" ;;
3316 case "$with_widgets" in "" | "yes" | "lucid")
3317 if test "$have_motif" = "yes"; then with_widgets="motif"
3318 elif test "$have_xaw" = "yes"; then with_widgets="athena"
3319 else with_widgets=no
3323 all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars $with_widgets"
3325 case "$all_widgets" in
3327 if test "$have_xaw" != "yes"; then
3328 XE_DIE("Could not find a suitable Athena library to build with.")
3331 dnl Add the Lucid widget Athena code
3332 XE_APPEND(lwlib-Xaw.o, lwlib_objs)
3334 dnl Add the Athena widget library we located earlier
3335 XE_PREPEND(-l$athena_lib, libs_x)
3337 dnl Tell lwlib where to find the Athena header files.
3338 dnl Many people have tried to create a `smart' way of doing this,
3339 dnl but all have failed. Before changing the following ugly definitions,
3340 dnl consult the veterans of many a battle.
3341 AC_DEFINE_UNQUOTED(ATHENA_Scrollbar_h_,"$athena_h_path/Scrollbar.h")
3342 AC_DEFINE_UNQUOTED(ATHENA_Dialog_h_,"$athena_h_path/Dialog.h")
3343 AC_DEFINE_UNQUOTED(ATHENA_Form_h_,"$athena_h_path/Form.h")
3344 AC_DEFINE_UNQUOTED(ATHENA_Command_h_,"$athena_h_path/Command.h")
3345 AC_DEFINE_UNQUOTED(ATHENA_Label_h_,"$athena_h_path/Label.h")
3346 AC_DEFINE_UNQUOTED(ATHENA_LabelP_h_,"$athena_h_path/LabelP.h")
3347 AC_DEFINE_UNQUOTED(ATHENA_Toggle_h_,"$athena_h_path/Toggle.h")
3348 AC_DEFINE_UNQUOTED(ATHENA_ToggleP_h_,"$athena_h_path/ToggleP.h")
3349 AC_DEFINE_UNQUOTED(ATHENA_AsciiText_h_,"$athena_h_path/AsciiText.h")
3350 AC_DEFINE_UNQUOTED(ATHENA_XawInit_h_,"$athena_h_path/XawInit.h")
3352 AC_DEFINE(LWLIB_USES_ATHENA)
3353 AC_DEFINE(NEED_ATHENA)
3356 if test "$athena_3d" = "yes"; then
3357 AC_DEFINE(HAVE_ATHENA_3D)
3362 case "$all_widgets" in *motif* )
3363 AC_DEFINE(LWLIB_USES_MOTIF)
3364 AC_DEFINE(NEED_MOTIF)
3365 XE_APPEND(lwlib-Xm.o, lwlib_objs)
3369 test "$with_menubars" = "lucid" && XE_APPEND(xlwmenu.o, lwlib_objs)
3370 test "$with_menubars" = "motif" && XE_APPEND(xlwmenu.o, lwlib_objs)
3371 test "$with_scrollbars" = "lucid" && XE_APPEND(xlwscrollbar.o, lwlib_objs)
3372 test "$with_widgets" != "no" && test "$with_widgets" != "msw" && \
3373 XE_APPEND(xlwtabs.o xlwgcs.o, lwlib_objs)
3374 case "$with_widgets" in athena* )
3375 XE_APPEND(xlwradio.o xlwcheckbox.o xlwgauge.o, lwlib_objs);;
3377 case "$all_widgets" in *lucid* )
3378 AC_DEFINE(NEED_LUCID)
3379 XE_APPEND(lwlib-Xlw.o, lwlib_objs) ;;
3382 AC_SUBST(lwlib_objs)
3384 test "$with_scrollbars" = "athena" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA)
3385 test "$with_dialogs" = "athena" && AC_DEFINE(LWLIB_DIALOGS_ATHENA)
3387 if test "$athena_3d" = "yes"; then
3388 test "$with_scrollbars" = "athena" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA3D)
3389 test "$with_dialogs" = "athena" && AC_DEFINE(LWLIB_DIALOGS_ATHENA3D)
3392 case "$with_widgets" in athena* ) AC_DEFINE(LWLIB_WIDGETS_ATHENA);; esac
3393 test "$with_widgets" != "no" && test "$with_widgets" != "msw" && \
3394 AC_DEFINE(LWLIB_TABS_LUCID)
3396 test "$with_menubars" != "no" && AC_DEFINE(HAVE_MENUBARS)
3397 test "$with_scrollbars" != "no" && AC_DEFINE(HAVE_SCROLLBARS)
3398 test "$with_dialogs" != "no" && AC_DEFINE(HAVE_DIALOGS)
3399 test "$with_toolbars" != "no" && AC_DEFINE(HAVE_TOOLBARS)
3400 test "$with_widgets" != "no" && AC_DEFINE(HAVE_WIDGETS)
3402 test "$with_menubars" = "lucid" && AC_DEFINE(LWLIB_MENUBARS_LUCID)
3403 test "$with_scrollbars" = "lucid" && AC_DEFINE(LWLIB_SCROLLBARS_LUCID)
3405 test "$with_menubars" = "motif" && AC_DEFINE(LWLIB_MENUBARS_MOTIF)
3406 test "$with_scrollbars" = "motif" && AC_DEFINE(LWLIB_SCROLLBARS_MOTIF)
3407 test "$with_dialogs" = "motif" && AC_DEFINE(LWLIB_DIALOGS_MOTIF)
3408 test "$with_widgets" = "motif" && AC_DEFINE(LWLIB_WIDGETS_MOTIF)
3410 test "$with_menubars" != "no" && XE_ADD_OBJS(menubar.o)
3411 test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar.o)
3412 test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog.o)
3413 test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar.o)
3415 if test "$with_x11" = "yes"; then
3416 test "$with_menubars" != "no" && XE_ADD_OBJS(menubar-x.o)
3417 test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-x.o)
3418 test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog-x.o)
3419 test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar-x.o)
3420 test "$all_widgets" != "no no no no no" && XE_ADD_OBJS(gui-x.o)
3423 dnl ----------------------
3424 dnl Mule-dependent options
3425 dnl ----------------------
3427 test -z "$with_mule" && with_mule=no
3428 test -z "$with_file_coding" && with_file_coding=no
3430 dnl if test "$with_mule" = "yes" && test ! -d "$srcdir/lisp/mule"; then
3431 dnl echo "Attempt to Build with Mule without Mule/Lisp"
3432 dnl echo "Please install the XEmacs/Mule tarball or"
3433 dnl echo "rerun configure with --with-mule=no"
3437 if test "$with_file_coding" = "yes" && test "$with_mule" = "no"; then
3438 AC_DEFINE(FILE_CODING)
3439 XE_ADD_OBJS(file-coding.o)
3442 if test "$with_mule" = "yes" ; then
3443 AC_CHECKING(for Mule-related features)
3445 AC_DEFINE(FILE_CODING)
3446 XE_ADD_OBJS(mule.o mule-ccl.o mule-charset.o)
3447 if test "$with_utf_2000" = "yes" && test "$with_text_coding" = "yes"; then
3448 AC_DEFINE(TEXT_CODING)
3449 XE_ADD_OBJS(text-coding.o)
3451 XE_ADD_OBJS(file-coding.o)
3453 dnl Use -lintl to get internationalized strerror for Mule
3454 AC_CHECK_HEADERS(libintl.h)
3455 AC_CHECK_LIB(intl, strerror)
3457 if test "$with_utf_2000" = "yes" ; then
3458 AC_DEFINE(CHAR_IS_UCS4)
3462 AC_CHECKING(for Mule input methods)
3463 dnl Do we have the XmIm* routines? And if so, do we want to use them?
3464 dnl XIM seems to be flaky except on Solaris...
3465 dnl test -z "$with_xim" -a "$opsys" != "sol2" && with_xim=no
3466 case "$with_xim" in "" | "yes" )
3467 AC_CHECKING(for XIM)
3468 AC_CHECK_LIB(X11, XOpenIM, with_xim=xlib, with_xim=no)
3469 dnl XIM + Lesstif is not (yet?) usable
3470 if test "$have_motif $have_lesstif" = "yes no"; then
3471 AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif)
3474 if test "$with_xim" != "no"; then
3476 if test "$with_xim" = "xlib"; then
3478 XE_ADD_OBJS(input-method-xlib.o)
3480 if test "$with_xim" = "motif"; then
3481 AC_DEFINE(XIM_MOTIF)
3483 XE_ADD_OBJS(input-method-motif.o)
3485 if test "$with_xim" = "motif"; then
3490 dnl "with_xfs" = "yes"
3491 if test "$with_xfs" = "yes" ; then
3492 AC_CHECKING(for XFontSet)
3493 AC_CHECK_LIB(X11, XmbDrawString, [:], with_xfs=no)
3494 if test "$with_xfs" = "yes" && test "$with_menubars" = "lucid"; then
3495 AC_DEFINE(USE_XFONTSET)
3496 if test "$with_xim" = "no" ; then
3497 XE_ADD_OBJS(input-method-xlib.o)
3503 test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
3504 test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/jllib.h, ,with_wnn=no) }
3505 dnl gcc 2.97 fixincludes breaks inclusion of wnn/commonhd.h
3506 test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/commonhd.h, ,with_wnn=no) }
3507 dnl Detour to find crypt
3508 if test "$with_wnn" != "no"; then
3509 AC_CHECK_FUNCS(crypt)
3510 test "$ac_cv_func_crypt" != "yes" && { AC_CHECK_LIB(crypt, crypt) }
3512 dnl Back to our regularly scheduled wnn hunting
3513 if test -z "$with_wnn" -o "$with_wnn" = "yes"; then
3514 AC_CHECK_LIB(wnn,jl_dic_list_e,libwnn=wnn,
3515 AC_CHECK_LIB(wnn4,jl_dic_list_e,libwnn=wnn4,
3516 AC_CHECK_LIB(wnn6,jl_dic_list_e,libwnn=wnn6,
3517 AC_CHECK_LIB(wnn6_fromsrc,dic_list_e,libwnn=wnn6_fromsrc,with_wnn=no))))
3519 test -z "$with_wnn" && with_wnn=yes
3520 if test "$with_wnn" = "yes"; then
3522 XE_PREPEND(-l$libwnn, libs_x)
3523 XE_ADD_OBJS(mule-wnnfns.o)
3524 if test "$with_wnn6" != "no"; then
3525 AC_CHECK_LIB($libwnn, jl_fi_dic_list, with_wnn6=yes)
3526 test "$with_wnn6" = "yes" && AC_DEFINE(WNN6)
3530 dnl Autodetect canna
3531 canna_includes_found=no
3532 if test "$with_canna" != "no"; then
3533 AC_CHECK_HEADER(canna/jrkanji.h,canna_includes_found=yes)
3535 if test "$canna_includes_found" = "no" -a "$with_canna" != "no" -a \
3536 -d "/usr/local/canna/include"; then
3537 save_c_switch_site="$c_switch_site"
3538 c_switch_site="$c_switch_site -I/usr/local/canna/include"
3539 AC_CHECK_HEADER(canna/jrkanji.h,canna_includes_found=yes)
3540 if test "$canna_includes_found" != "yes"; then
3541 c_switch_site="$save_c_switch_site"
3546 test -z "$with_canna" && { AC_CHECK_HEADER(canna/RK.h, , with_canna=no) }
3547 test -z "$with_canna" && { AC_CHECK_LIB(RKC, RkBgnBun, [:],with_canna=no) }
3548 test -z "$with_canna" && { AC_CHECK_LIB(canna,jrKanjiControl,[:],with_canna=no) }
3549 test -z "$with_canna" && with_canna=yes
3550 if test "$with_canna" = "yes"; then
3551 AC_DEFINE(HAVE_CANNA)
3552 XE_PREPEND(-lcanna -lRKC, libs_x)
3553 XE_ADD_OBJS(mule-canna.o)
3556 else dnl "$with_mule" = "no"
3557 for feature in xim canna wnn; do
3558 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
3559 AC_MSG_WARN("--with-${feature} ignored: Not valid without Mule support")
3561 eval "with_${feature}=no"
3566 dnl At this point, we know whether we need the motif lib or not.
3567 if test "$need_motif" = "yes" ; then
3568 XE_PREPEND(-lXm, libs_x)
3569 dnl AIX needs the following library for use with Motif
3570 AC_CHECK_LIB(i18n, layout_object_getvalue, [XE_PREPEND(-li18n, libs_x)])
3571 XE_COMPUTE_RUNPATH()
3574 AC_CHECK_FUNCS(cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strerror tzset ulimit usleep utimes waitpid vsnprintf fsync ftruncate umask)
3576 dnl ----------------------------------------------------------------
3577 dnl Check for PTY support functions.
3578 dnl ----------------------------------------------------------------
3580 dnl There is no "standard" pty allocation method. Every system is different.
3581 dnl getpt() is the preferred pty allocation method on glibc systems.
3582 dnl _getpty() is the preferred pty allocation method on SGI systems.
3583 dnl grantpt(), unlockpt(), ptsname() are defined by Unix98.
3584 AC_CHECK_FUNCS(getpt _getpty grantpt unlockpt ptsname killpg tcgetpgrp)
3586 dnl openpty() is the preferred pty allocation method on BSD and Tru64 systems.
3587 dnl openpty() might be declared in:
3588 dnl - pty.h (Tru64 or Linux)
3589 dnl - libutil.h (FreeBSD)
3590 dnl - util.h (NetBSD)
3591 AC_CHECK_FUNC(openpty, have_openpty=yes, [
3592 AC_CHECK_LIB(util, openpty, have_openpty=yes need_libutil=yes)])
3593 if test "$have_openpty" = "yes"; then
3594 AC_DEFINE(HAVE_OPENPTY)
3595 AC_CHECK_HEADERS(pty.h libutil.h util.h, break)
3596 test "$need_libutil" = "yes" && XE_APPEND(-lutil, libs_system)
3599 dnl Check for STREAM support functions.
3600 dnl Confusingly, "str" means both "string" and "SysV Streams".
3601 AC_CHECK_HEADERS(stropts.h)
3602 if test "$ac_cv_header_stropts_h" = "yes"; then
3603 AC_CHECK_FUNCS(isastream)
3604 AC_CHECK_HEADERS(strtio.h) dnl TIOCSIGNAL
3607 dnl Use our own realpath always.
3608 XE_ADD_OBJS(realpath.o)
3610 dnl Check whether the system provides getloadavg().
3611 AC_CHECK_FUNCS(getloadavg)
3613 if test "$ac_cv_func_getloadavg" = "yes"; then
3614 dnl Solaris 8 declares getloadavg() in <sys/loadavg.h>.
3615 dnl glibc 2.2 declares getloadavg() in <stdlib.h>...
3616 dnl ...if we #define _GNU_SOURCE, which we do.
3617 AC_CHECK_HEADERS(sys/loadavg.h)
3619 dnl We define our own getloadavg() using lower level functions.
3620 XE_ADD_OBJS(getloadavg.o)
3622 dnl Used by getloadavg() - does not require root priveleges
3623 AC_CHECK_LIB(kstat, kstat_open)
3624 AC_CHECK_HEADERS(kstat.h)
3626 dnl Another way to get the load average
3627 AC_CHECK_LIB(kvm, kvm_read)
3630 dnl If netdb.h does not declare h_errno, we must declare it by hand.
3631 AC_MSG_CHECKING(whether netdb declares h_errno)
3632 AC_TRY_LINK([#include <netdb.h>],
3635 AC_DEFINE(HAVE_H_ERRNO)],
3636 [AC_MSG_RESULT(no)])
3638 AC_MSG_CHECKING(for sigsetjmp)
3639 AC_TRY_COMPILE([#include <setjmp.h>],
3640 [sigjmp_buf bar; sigsetjmp (bar, 0);],
3642 AC_DEFINE(HAVE_SIGSETJMP)],
3643 [AC_MSG_RESULT(no)])
3645 AC_MSG_CHECKING(whether localtime caches TZ)
3646 AC_CACHE_VAL(emacs_cv_localtime_cache,
3647 [if test "$ac_cv_func_tzset" = "yes"; then
3648 AC_TRY_RUN([#include <time.h>
3650 # include <stdlib.h>
3652 extern char **environ;
3656 for (to = from = environ; (*to = *from); from++)
3657 if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
3660 char TZ_GMT0[] = "TZ=GMT0";
3661 char TZ_PST8[] = "TZ=PST8";
3664 time_t now = time ((time_t *) 0);
3665 int hour_GMT0, hour_unset;
3666 if (putenv (TZ_GMT0) != 0)
3668 hour_GMT0 = localtime (&now)->tm_hour;
3670 hour_unset = localtime (&now)->tm_hour;
3671 if (putenv (TZ_PST8) != 0)
3673 if (localtime (&now)->tm_hour == hour_GMT0)
3676 if (localtime (&now)->tm_hour != hour_unset)
3679 }], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
3680 [# If we have tzset, assume the worst when cross-compiling.
3681 emacs_cv_localtime_cache=yes])
3683 # If we lack tzset, report that localtime does not cache TZ,
3684 # since we can't invalidate the cache if we don't have tzset.
3685 emacs_cv_localtime_cache=no
3687 AC_MSG_RESULT($emacs_cv_localtime_cache)
3688 if test $emacs_cv_localtime_cache = yes; then
3689 AC_DEFINE(LOCALTIME_CACHE)
3692 if test "$HAVE_TIMEVAL" = "yes"; then
3693 AC_MSG_CHECKING(whether gettimeofday accepts one or two arguments)
3695 #ifdef TIME_WITH_SYS_TIME
3696 #include <sys/time.h>
3699 #ifdef HAVE_SYS_TIME_H
3700 #include <sys/time.h>
3707 struct timeval time;
3708 gettimeofday (&time, 0);
3710 [AC_MSG_RESULT(two)],
3712 AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)])
3717 test "$ac_cv_c_inline" != "no" -a "$GCC" = "yes" && XE_ADD_OBJS(inline.o)
3719 dnl HP-UX has a working alloca in libPW.
3720 dnl case "${GCC}${opsys}" in hpux* )
3721 dnl AC_CHECK_FUNC(alloca, [:], [AC_CHECK_LIB(PW, alloca)])
3724 dnl AC_FUNC_ALLOCA doesn't know about DEC C's #pragma intrinsic(alloca)
3725 if test "$__DECC" != "yes"; then
3727 test -n "$ALLOCA" && XE_ADD_OBJS($ALLOCA)
3730 dnl Check whether vfork exists and works correctly. (This does more
3731 dnl than just check for its existence.) If so, it defines HAVE_VFORK_H.
3732 dnl If not, it defines vfork to be fork.
3735 dnl Check whether strcoll exists and works correctly. (This does more
3736 dnl than just check for its existence.) If so, it defines HAVE_STRCOLL.
3739 dnl If `getpgrp' takes no argument (the POSIX.1 version), define
3740 dnl `GETPGRP_VOID'. Otherwise, it is the BSD version, which takes a
3741 dnl process ID as an argument.
3742 AC_CHECK_FUNCS(getpgrp)
3745 dnl We used to call AC_FUNC_MMAP here
3746 dnl Instead we now use following, suggested by Neal Becker
3747 AC_MSG_CHECKING(for working mmap)
3748 case "$opsys" in ultrix* ) have_mmap=no ;; *)
3749 AC_TRY_RUN([#include <stdio.h>
3752 #include <sys/mman.h>
3754 #ifndef MAP_VARIABLE
3755 #define MAP_VARIABLE 0
3759 #define MAP_FAILED -1
3762 int main (int argc, char *argv[])
3766 #ifndef MAP_ANONYMOUS
3767 fd = open ("/dev/zero", O_RDWR);
3770 #define MAP_ANONYMOUS 0
3772 if (mmap(0, 1024, PROT_READ | PROT_WRITE,
3773 MAP_PRIVATE | MAP_VARIABLE | MAP_ANONYMOUS,
3774 fd, 0) != (void *) MAP_FAILED)
3776 perror ("conftest: mmap failed");
3778 }], have_mmap=yes, have_mmap=no) ;;
3780 AC_MSG_RESULT($have_mmap)
3781 test "$have_mmap" = "yes" && AC_DEFINE(HAVE_MMAP)
3783 dnl rel_alloc requires either GNU malloc or system malloc with mmap
3784 dnl We only turn rel_alloc on by default if mmap is available.
3785 test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && rel_alloc=no
3786 if test "$rel_alloc $have_mmap" = "default yes"; then
3787 if test "$doug_lea_malloc" = "yes"; then
3788 dnl Check if malloc() calls mmap(), making rel_alloc pointless.
3789 AC_MSG_CHECKING(for M_MMAP_THRESHOLD)
3790 AC_TRY_COMPILE([#include <malloc.h>],[
3791 #ifndef M_MMAP_THRESHOLD
3792 #error No M_MMAP_THRESHOLD :-(
3793 !@+$%^&*_)(_ - unlikely to compile...
3795 ], [rel_alloc=no; AC_MSG_RESULT(yes);], [rel_alloc=yes; AC_MSG_RESULT(no);])
3800 test "$rel_alloc" = "yes" && AC_DEFINE(REL_ALLOC)
3802 dnl Check for terminal I/O variants
3803 dnl TERMIOS systems may have termio.h, but not vice-versa, I think.
3804 AC_CHECK_HEADER(termios.h,
3805 AC_DEFINE(HAVE_TERMIOS)
3806 AC_DEFINE(SIGNALS_VIA_CHARACTERS)
3807 AC_DEFINE(NO_TERMIO),
3808 [AC_CHECK_HEADER(termio.h, [AC_DEFINE(HAVE_TERMIO)])])
3811 dnl Check for Internet sockets.
3812 AC_CHECK_FUNC(socket,
3813 [AC_CHECK_HEADER(netinet/in.h,
3814 [AC_CHECK_HEADER(arpa/inet.h, [
3815 AC_DEFINE(HAVE_SOCKETS)
3816 AC_MSG_CHECKING("for sun_len member in struct sockaddr_un")
3818 #include <sys/types.h>
3819 #include <sys/socket.h>
3822 [static struct sockaddr_un x; x.sun_len = 1;],
3823 [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOCKADDR_SUN_LEN)],
3824 [AC_MSG_RESULT(no)])
3825 AC_MSG_CHECKING("for ip_mreq struct in netinet/in.h")
3827 #include <sys/types.h>
3828 #include <netinet/in.h>
3830 [static struct ip_mreq x;],
3831 [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_MULTICAST)],
3832 [AC_MSG_RESULT(no)])])])])
3834 dnl Check for SYS V IPC. (Inferior to sockets.)
3835 AC_CHECK_FUNC(msgget,
3836 [AC_CHECK_HEADER(sys/ipc.h,
3837 [AC_CHECK_HEADER(sys/msg.h,
3838 [AC_DEFINE(HAVE_SYSVIPC)])])])
3840 dnl Check for directory variants
3841 AC_CHECK_HEADER(dirent.h, [AC_DEFINE(SYSV_SYSTEM_DIR)],
3842 [AC_CHECK_HEADER(sys/dir.h, , [AC_DEFINE(NONSYSTEM_DIR_LIBRARY)])])
3844 dnl Check for nlist.h
3845 AC_CHECK_HEADER(nlist.h, AC_DEFINE(NLIST_STRUCT), )
3847 dnl Check for sound of various sorts.
3849 dnl Autodetect native sound
3850 AC_CHECKING("for sound support")
3851 test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes
3853 if test "$with_native_sound" != "no"; then
3854 dnl Maybe sound is already on include path...
3855 if test -n "$native_sound_lib"; then
3856 AC_CHECK_HEADER(multimedia/audio_device.h,
3857 [sound_found=yes sound_cflags=""
3858 XE_ADD_OBJS(sunplay.o)])
3861 dnl Autodetect Sun native sound from SUNWaudmo package
3862 if test -z "$sound_found" -a -d "/usr/demo/SOUND"; then
3864 XE_ADD_OBJS(sunplay.o)
3865 if test -d "/usr/demo/SOUND/include"
3866 then sound_cflags="-I/usr/demo/SOUND/include"
3867 else sound_cflags="-I/usr/demo/SOUND"
3869 if test -z "$native_sound_lib" ; then
3870 if test -r "/usr/demo/SOUND/lib/libaudio.a"
3871 then native_sound_lib="/usr/demo/SOUND/lib/libaudio.a"
3872 else native_sound_lib="/usr/demo/SOUND/libaudio.a"
3877 dnl Check for SGI and HP native sound libs
3878 if test -z "$sound_found"; then
3879 case "$canonical" in
3881 if test -z "$native_sound_lib"; then
3882 AC_CHECK_LIB(audio, ALopenport, native_sound_lib="-laudio")
3884 if test -n "$native_sound_lib"; then
3885 sound_found=yes sound_cflags=""
3886 XE_ADD_OBJS(sgiplay.o)
3889 if test -z "$native_sound_lib"; then
3890 AC_CHECK_LIB(Alib, AOpenAudio, native_sound_lib="-lAlib")
3892 if test -n "$native_sound_lib"; then
3894 XE_ADD_OBJS(hpplay.o)
3895 if test "$GCC" = "yes" # Kludge city
3896 then sound_cflags="-Dconst= -Dvolatile= -I/usr/audio/examples"
3897 else sound_cflags="+e -I/usr/audio/examples"
3903 dnl Check for Linux/BSD native sound
3904 if test -z "$sound_found"; then
3905 for dir in "machine" "sys" "linux"; do
3906 AC_CHECK_HEADER(${dir}/soundcard.h,
3909 XE_ADD_OBJS(linuxplay.o)
3910 [AC_DEFINE_UNQUOTED(SOUNDCARD_H_FILE, "${dir}/soundcard.h")]
3915 dnl Win32 Native uses native sound
3916 if test -z "$sound_found"; then
3917 if test "$with_msw" = "yes"; then
3923 test "$sound_found" = "yes" && with_native_sound=yes
3926 if test "$with_native_sound" = "yes"; then
3927 AC_DEFINE(HAVE_NATIVE_SOUND)
3928 test -n "$native_sound_lib" && XE_PREPEND($native_sound_lib, LIBS)
3931 dnl NAS Sound support
3932 if test "$with_nas_sound" != "no"; then
3933 AC_CHECK_HEADER(audio/audiolib.h, [
3934 AC_CHECK_LIB(audio, AuOpenServer, have_nas_sound=yes)])
3935 if test "$have_nas_sound" = "yes"; then
3937 AC_DEFINE(HAVE_NAS_SOUND)
3939 XE_PREPEND(-laudio, libs_x)
3940 dnl If the nas library does not contain the error jump point,
3941 dnl then we force safer behavior.
3942 AC_EGREP_HEADER(AuXtErrorJump,audio/Xtutil.h,,[old_nas=yes; AC_DEFINE(NAS_NO_ERROR_JUMP)])
3944 test "$with_nas_sound" = "yes" && \
3945 XE_DIE("Required NAS sound support cannot be provided.")
3950 dnl ESD Sound support
3951 if test "$with_esd_sound" != "no"; then
3952 AC_CHECK_PROG(have_esd_config, esd-config, yes, no)
3953 if test "$have_esd_config" = "yes"; then
3954 save_c_switch_site="$c_switch_site" save_LIBS="$LIBS"
3955 XE_APPEND(`esd-config --cflags`, c_switch_site)
3956 XE_PREPEND(`esd-config --libs`, LIBS)
3957 AC_CHECK_FUNC(esd_play_stream,
3959 c_switch_site="$save_c_switch_site" LIBS="$save_LIBS")
3962 if test "$have_esd_sound" = "yes"; then
3966 AC_DEFINE(HAVE_ESD_SOUND)
3968 test "$with_esd_sound" = "yes" && \
3969 XE_DIE("Required ESD sound support cannot be provided.")
3974 test "$need_miscplay" = "yes" && XE_ADD_OBJS(miscplay.o)
3976 dnl ---------------------
3977 dnl TTY-dependent options
3978 dnl ---------------------
3980 test -z "$with_tty" && with_tty=yes
3982 if test "$with_tty" = "yes" ; then
3983 AC_CHECKING(for TTY-related features)
3985 XE_ADD_OBJS(console-tty.o device-tty.o event-tty.o frame-tty.o objects-tty.o redisplay-tty.o cm.o)
3987 dnl Autodetect ncurses.
3988 if test -z "$with_ncurses"; then
3989 AC_CHECK_LIB(ncurses, tgetent, with_ncurses=yes, with_ncurses=no)
3991 if test "$with_ncurses" = "yes"; then
3992 AC_DEFINE(HAVE_NCURSES)
3993 AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h)
3994 AC_CHECK_HEADER(ncurses/term.h, term_h_file=ncurses/term.h)
3995 XE_ADD_OBJS(terminfo.o)
3996 XE_PREPEND(-lncurses, LIBS)
3998 if test "$ac_cv_header_ncurses_curses_h" != "yes" ; then
3999 dnl Try again, and check for the bogus ncurses/ include bug.
4000 dnl (i.e. ncurses/curses.h bogusly includes <unctrl.h> instead of
4001 dnl <ncurses/unctrl.h>)
4002 save_c_switch_site="$c_switch_site"
4003 c_switch_site="$c_switch_site -I/usr/include/ncurses"
4004 AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h)
4005 if test "$ac_cv_header_ncurses_curses_h" = "yes"
4006 then AC_MSG_WARN("Your system has the bogus ncurses include bug.")
4007 else c_switch_site="$save_c_switch_site"
4010 else dnl "$with_ncurses" = "no"
4011 dnl Autodetect terminfo/-lcurses/-ltermlib/-ltermcap
4012 if test "$have_terminfo" = "yes"; then
4013 XE_ADD_OBJS(terminfo.o)
4014 if test -n "$libs_termcap"; then
4015 XE_PREPEND($libs_termcap, LIBS)
4017 for lib in curses termlib termcap; do
4018 AC_CHECK_LIB($lib, tgetent, XE_PREPEND(-l${lib}, LIBS); break)
4021 else dnl "$have_terminfo" = "no" && "with_ncurses" = "no"
4022 XE_ADD_OBJS(tparam.o)
4023 dnl The HP-UX curses library seems to have a badly broken version of select(2)
4024 dnl that makes "poll: interrupted system call" messages to appear and
4025 dnl Emacs suprocesses to hang (e.g. TeX compilation w/ AUCTeX) */
4026 case "$opsys" in *-hp-hpux* ) libs_termcap="-ltermcap" ;; esac
4027 if test -n "$libs_termcap"; then
4028 XE_PREPEND($libs_termcap, LIBS)
4030 AC_CHECK_LIB(curses, tgetent, XE_PREPEND(-lcurses, LIBS),
4031 AC_CHECK_LIB(termcap, tgetent, XE_PREPEND(-ltermcap, LIBS),
4032 XE_ADD_OBJS(termcap.o)))
4036 AC_DEFINE_UNQUOTED(CURSES_H_FILE, "${curses_h_file-curses.h}")
4037 AC_DEFINE_UNQUOTED(TERM_H_FILE, "${term_h_file-term.h}")
4040 test -z "$with_gpm" && { AC_CHECK_HEADER(gpm.h, , with_gpm=no) }
4041 test -z "$with_gpm" && { AC_CHECK_LIB(gpm, Gpm_Open, with_gpm=yes, with_gpm=no) }
4042 if test "$with_gpm" = "yes"; then
4044 XE_ADD_OBJS(gpmevent.o)
4045 XE_PREPEND(-lgpm, LIBS)
4048 else dnl "$with_tty" = "no"
4049 for feature in ncurses gpm; do
4050 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
4051 AC_MSG_WARN("--with-${feature} ignored: Not valid without TTY support")
4053 eval "with_${feature}=no"
4057 dnl Do we need event-unixoid.o ?
4058 test "$with_x11" = "yes" -o "$with_tty" = "yes" && XE_ADD_OBJS(event-unixoid.o)
4060 dnl Database support
4061 dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support.
4062 dnl On FreeBSD, both DB and DBM are part of libc.
4063 dnl By default, we check for DBM support in libgdbm, then libc, then libdbm.
4065 test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \
4066 != "no no no" && AC_CHECKING(for database support)
4068 dnl Check for ndbm.h, required for either kind of DBM support.
4069 if test "$with_database_gdbm $with_database_dbm" != "no no"; then
4070 AC_CHECK_HEADER(ndbm.h, [:], [
4071 test "$with_database_gdbm" = "yes" -o \
4072 "$with_database_dbm" = "yes" && \
4073 XE_DIE("Required DBM support cannot be provided.")
4074 with_database_gdbm=no with_database_dbm=no])
4077 dnl Check for DBM support in libgdbm.
4078 if test "$with_database_gdbm" != "no"; then
4079 AC_CHECK_LIB(gdbm, dbm_open, [
4080 with_database_gdbm=yes with_database_dbm=no libdbm=-lgdbm], [
4081 if test "$with_database_gdbm" = "yes"; then
4082 XE_DIE("Required GNU DBM support cannot be provided.")
4084 with_database_gdbm=no])
4087 dnl Check for DBM support in libc and libdbm.
4088 if test "$with_database_dbm" != "no"; then
4089 AC_CHECK_FUNC(dbm_open, [with_database_dbm=yes libdbm=], [
4090 AC_CHECK_LIB(dbm, dbm_open, [with_database_dbm=yes libdbm=-ldbm], [
4091 test "$with_database_dbm" = "yes" && \
4092 XE_DIE("Required DBM support cannot be provided.")
4093 with_database_dbm=no])])
4096 dnl Tell make about the DBM support we detected.
4097 test -n "$libdbm" && XE_PREPEND("$libdbm", LIBS)
4098 test "$with_database_gdbm" = "yes" -o \
4099 "$with_database_dbm" = "yes" && \
4102 dnl Check for Berkeley DB.
4103 if test "$with_database_berkdb" != "no"; then
4104 AC_MSG_CHECKING(for Berkeley db.h)
4105 for header in "db/db.h" "db.h"; do
4108 #if !(defined __GLIBC__ && __GLIBC_MINOR__ >= 1)
4109 #ifdef HAVE_INTTYPES_H
4110 #define __BIT_TYPES_DEFINED__
4111 #include <inttypes.h>
4112 typedef uint8_t u_int8_t;
4113 typedef uint16_t u_int16_t;
4114 typedef uint32_t u_int32_t;
4115 #ifdef WE_DONT_NEED_QUADS
4116 typedef uint64_t u_int64_t;
4121 ],[], db_h_file="$header"; break)
4123 if test -z "$db_h_file"
4124 then AC_MSG_RESULT(no); with_database_berkdb=no
4125 else AC_MSG_RESULT($db_h_file)
4128 if test "$with_database_berkdb" != "no"; then
4129 AC_MSG_CHECKING(for Berkeley DB version)
4131 [#include <$db_h_file>
4132 #if DB_VERSION_MAJOR > 1
4135 ], [AC_EGREP_CPP(yes,
4136 [#include <$db_h_file>
4137 #if DB_VERSION_MAJOR > 2
4140 ], [AC_MSG_RESULT(3); dbfunc=db_create],[
4141 AC_MSG_RESULT(2); dbfunc=db_open])],[
4142 AC_MSG_RESULT(1); dbfunc=dbopen])
4143 AC_CHECK_FUNC($dbfunc, with_database_berkdb=yes need_libdb=no, [
4144 AC_CHECK_LIB(db, $dbfunc, with_database_berkdb=yes need_libdb=yes)])
4147 if test "$with_database_berkdb" = "yes"; then
4148 AC_DEFINE_UNQUOTED(DB_H_FILE, "$db_h_file")
4149 AC_DEFINE(HAVE_BERKELEY_DB)
4150 test "$need_libdb" = "yes" && XE_PREPEND(-ldb, LIBS)
4151 else with_database_berkdb=no
4155 if test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \
4157 AC_DEFINE(HAVE_DATABASE)
4158 XE_ADD_OBJS(database.o)
4162 if test "$with_socks" = "yes"; then
4163 AC_CHECK_LIB(socks, SOCKSinit)
4164 test -n "$ac_cv_lib_socks_SOCKSinit" && AC_DEFINE(HAVE_SOCKS)
4167 dnl Usage tracking (undocumented and likely unused option)
4168 if test "$usage_tracking" = "yes"; then
4169 AC_DEFINE(USAGE_TRACKING)
4170 XE_PREPEND(-Bstatic -lut -Bdynamic, LIBS)
4173 dnl autodetect dll support
4174 if test "$with_modules" != "no"; then
4175 AC_CHECKING(for module support)
4177 dnl Check for MS-Windows
4178 if test "$with_msw" = "yes"; then
4181 dnl Find headers and libraries
4182 AC_CHECK_HEADER(dlfcn.h, [
4183 AC_MSG_CHECKING([for dlopen in -lc])
4184 AC_TRY_LINK([#include <dlfcn.h>],dnl
4185 [dlopen ("", 0);], [ have_dl=yes ], [
4186 AC_MSG_CHECKING([for dlopen in -ldl])
4187 ac_save_LIBS="$LIBS"
4189 AC_TRY_LINK([#include <dlfcn.h>],dnl
4190 [dlopen ("", 0);], [ have_dl=yes ],
4191 [LIBS="$ac_save_LIBS"])
4193 if test -n "$have_dl"; then
4194 AC_DEFINE(HAVE_DLOPEN)
4196 AC_CHECK_LIB(dld, shl_load, [
4197 libdl=dld have_dl=yes;
4198 AC_DEFINE(HAVE_SHL_LOAD)], [
4199 AC_CHECK_LIB(dld, dld_init, [
4200 libdl=dld have_dl=yes;
4201 AC_DEFINE(HAVE_DLD_INIT)])])
4203 fi dnl end !MS-Windows
4205 if test -n "$have_dl"; then
4206 dnl XE_SHLIB_STUFF (in aclocal.m4) defines $can_build_shared
4210 if test "$can_build_shared" = "yes"; then
4211 AC_DEFINE(HAVE_SHLIB)
4212 XE_ADD_OBJS(sysdll.o emodules.o)
4213 XE_APPEND(src, INSTALL_ARCH_DEP_SUBDIR)
4214 test -n "$libdl" && XE_PREPEND(-l${libdl}, LIBS)
4215 AC_CHECK_FUNCS(dlerror _dlerror)
4218 if test "$with_modules" = "yes"; then
4219 XE_DIE("Required module support cannot be provided.")
4221 AC_MSG_WARN("Module support cannot be provided.")
4227 dnl Unfortunately, just because we can link doesn't mean we can run.
4228 dnl One of the above link tests may have succeeded but caused resulting
4229 dnl executables to fail to run. Also any tests using AC_TRY_RUN will
4230 dnl have reported incorrect results.
4231 AC_TRY_RUN([int main(int c,char *v[]){return 0;}],[:],[
4233 echo "*** PANIC *** The C compiler can no longer build working executables."
4234 echo "*** PANIC *** Please examine the tail of config.log for runtime errors."
4235 echo "*** PANIC *** The most likely reason for this problem is that configure"
4236 echo "*** PANIC *** links with shared libraries, but those libraries cannot be"
4237 echo "*** PANIC *** found at run time."
4238 echo "*** PANIC ***"
4239 echo "*** PANIC *** On a Linux system, edit /etc/ld.so.conf and re-run ldconfig."
4240 echo "*** PANIC *** On other systems, try telling configure where to find the"
4241 echo "*** PANIC *** shared libraries using the --site-runtime-libraries option"
4242 echo "*** PANIC ***"
4243 echo "*** PANIC *** Another way to shoot yourself in the foot is to specify"
4244 echo "*** PANIC *** --with-FEATURE when FEATURE is not actually installed"
4245 echo "*** PANIC *** on your system. Don't do that."
4249 if test "$win32_processes" = "yes"; then
4250 XE_ADD_OBJS(process-nt.o)
4252 AC_DEFINE(HAVE_UNIX_PROCESSES)
4253 XE_ADD_OBJS(process-unix.o)
4256 dnl --------------------------------
4257 dnl Compute SUBST-itutable variables
4258 dnl --------------------------------
4260 dnl We ignore (C|LD)_SWITCH_X_(MACHINE|SYSTEM)
4261 dnl Use XE_SPACE instead of plain assignment statements to remove extraneous blanks
4262 XE_SPACE(CFLAGS, $CFLAGS)
4263 XE_SPACE(extra_objs, $extra_objs)
4264 XE_SPACE(c_switch_general, -DHAVE_CONFIG_H $c_switch_site $c_switch_machine $c_switch_system)
4265 XE_SPACE(c_switch_window_system, $c_switch_x_site $X_CFLAGS)
4266 XE_SPACE(c_switch_all, $c_switch_general $c_switch_window_system)
4267 XE_SPACE(ld_switch_general, $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_run)
4268 XE_SPACE(ld_switch_window_system, $ld_switch_x_site)
4269 XE_SPACE(ld_switch_all, $ld_switch_general $ld_switch_window_system)
4270 XE_SPACE(ld_libs_general, $LIBS $libs_machine $libs_system $libs_standard)
4271 XE_SPACE(ld_libs_window_system, $X_EXTRA_LIBS $libs_x $X_PRE_LIBS)
4272 XE_SPACE(ld_libs_all, $ld_libs_window_system $ld_libs_general)
4274 dnl Compute lists of Makefiles and subdirs
4275 AC_SUBST(SRC_SUBDIR_DEPS)
4276 XE_APPEND(src, MAKE_SUBDIR)
4277 internal_makefile_list="Makefile.in"
4279 test -d lock || mkdir lock
4280 for dir in $MAKE_SUBDIR; do
4281 case "$dir" in */* ) dnl Implement mkdir -p
4282 ( for d in `echo $dir | sed 's:/: :g'` ; do
4283 test -d "$d" || mkdir "$d"; cd "$d"
4285 * ) test -d "$dir" || mkdir "$dir" ;;
4287 XE_SPACE(SUBDIR_MAKEFILES, $SUBDIR_MAKEFILES $dir/Makefile $dir/GNUmakefile)
4288 XE_SPACE(internal_makefile_list, $internal_makefile_list $dir/Makefile.in)
4290 AC_SUBST(INSTALL_ARCH_DEP_SUBDIR)
4291 AC_SUBST(MAKE_SUBDIR)
4292 AC_SUBST(SUBDIR_MAKEFILES)
4294 dnl Make s&m symlinks in the src directory, for config.h
4295 for dir in src/s src/m; do
4296 if test ! -d "$dir" ; then
4297 echo Making symbolic link to "$srcdir/$dir"
4298 ${LN_S} "$srcdir/$dir" "$dir"
4302 if test "$extra_verbose" = "yes"; then
4304 PRINT_VAR(extra_objs
4305 c_switch_general c_switch_window_system c_switch_all
4306 ld_switch_general ld_switch_window_system ld_switch_all
4307 ld_libs_general ld_libs_window_system ld_libs_all)
4311 dnl ----------------------------------------------
4312 dnl Create some auxiliary files for developers.
4313 dnl ----------------------------------------------
4315 dnl Create a .gdbinit useful for debugging XEmacs
4316 if test -f "$srcdir/src/.gdbinit" -a ! -f "src/.gdbinit"; then
4317 test "$extra_verbose" = "yes" && echo "creating src/.gdbinit"
4318 echo "source $srcdir/src/.gdbinit" > "src/.gdbinit"
4321 dnl Create a .dbxrc useful for debugging XEmacs
4322 if test -f "$srcdir/src/.dbxrc" -a ! -f "src/.dbxrc"; then
4323 test "$extra_verbose" = "yes" && echo "creating src/.dbxrc"
4324 echo ". $srcdir/src/.dbxrc" > "src/.dbxrc"
4327 dnl Create a useful TAGS file
4328 if test -f "$srcdir/TAGS" -a ! -f "TAGS"; then
4329 test "$extra_verbose" = "yes" && echo "creating TAGS"
4331 $srcdir/TAGS,include" > "TAGS"
4334 dnl Create top level .sbinit for Sun compilers
4335 if test "$__SUNPRO_C" = "yes"; then
4336 test "$extra_verbose" = "yes" && echo "creating .sbinit"
4337 ( echo "# For use with Sun WorkShop's Source browser."
4338 echo "# See sbquery(1) and sbinit(4) for more information"
4339 for dir in $MAKE_SUBDIR; do echo "import $dir"; done
4343 dnl There are no more compile tests; remove the core they created.
4346 dnl ----------------------------------------------
4347 dnl Substitute into Makefile, config.h and paths.h
4348 dnl ----------------------------------------------
4350 dnl what sort of things to edit into Makefile, config.h and paths.h
4351 dnl configuration here uncanonicalized to avoid exceeding size limits.
4355 AC_SUBST(configuration)
4357 AC_SUBST(inststaticdir)
4358 AC_SUBST(instvardir)
4366 AC_SUBST(extra_includes)
4369 AC_SUBST(PREFIX_USER_DEFINED)
4370 dnl Yo, Stephen Bourne! I want to marry you!
4374 *\$* ) eval "PREFIX=$PREFIX" ;;
4380 AC_SUBST(exec_prefix)
4381 AC_SUBST(EXEC_PREFIX_USER_DEFINED)
4382 EXEC_PREFIX=$exec_prefix
4384 case "$EXEC_PREFIX" in
4385 *\$* ) eval "EXEC_PREFIX=$EXEC_PREFIX" ;;
4389 AC_SUBST(EXEC_PREFIX)
4392 AC_SUBST(INFODIR_USER_DEFINED)
4396 *\$* ) eval "INFODIR=$INFODIR" ;;
4403 AC_SUBST(INFOPATH_USER_DEFINED)
4407 *\$* ) eval "INFOPATH=$INFOPATH" ;;
4413 AC_SUBST(package_path)
4414 AC_SUBST(PACKAGE_PATH_USER_DEFINED)
4415 PACKAGE_PATH=$package_path
4417 case "$PACKAGE_PATH" in
4418 *\$* ) eval "PACKAGE_PATH=$PACKAGE_PATH" ;;
4422 AC_SUBST(PACKAGE_PATH)
4425 AC_SUBST(LISPDIR_USER_DEFINED)
4429 *\$* ) eval "LISPDIR=$LISPDIR" ;;
4436 AC_SUBST(MODULEDIR_USER_DEFINED)
4437 MODULEDIR=$moduledir
4439 case "$MODULEDIR" in
4440 *\$* ) eval "MODULEDIR=$MODULEDIR" ;;
4446 AC_SUBST(sitelispdir)
4447 AC_SUBST(SITELISPDIR_USER_DEFINED)
4448 SITELISPDIR=$sitelispdir
4450 case "$SITELISPDIR" in
4451 *\$* ) eval "SITELISPDIR=$SITELISPDIR" ;;
4455 AC_SUBST(SITELISPDIR)
4457 AC_SUBST(sitemoduledir)
4458 AC_SUBST(SITEMODULEDIR_USER_DEFINED)
4459 SITEMODULEDIR=$sitemoduledir
4461 case "$SITEMODULEDIR" in
4462 *\$* ) eval "SITEMODULEDIR=$SITEMODULEDIR" ;;
4466 AC_SUBST(SITEMODULEDIR)
4469 AC_SUBST(ETCDIR_USER_DEFINED)
4473 *\$* ) eval "ETCDIR=$ETCDIR" ;;
4480 AC_SUBST(DOCDIR_USER_DEFINED)
4484 *\$* ) eval "DOCDIR=$DOCDIR" ;;
4490 AC_SUBST(archlibdir)
4491 AC_SUBST(ARCHLIBDIR_USER_DEFINED)
4492 ARCHLIBDIR=$archlibdir
4494 case "$ARCHLIBDIR" in
4495 *\$* ) eval "ARCHLIBDIR=$ARCHLIBDIR" ;;
4499 AC_SUBST(ARCHLIBDIR)
4503 AC_SUBST(extra_objs)
4505 dnl The following flags combine all the information from:
4506 dnl - command line options (user always gets priority)
4507 dnl - user environment variables
4508 dnl - determined by configure
4509 dnl - the s&m header files (required for ellcc)
4512 AC_SUBST(c_switch_general)
4513 AC_SUBST(c_switch_window_system)
4514 AC_SUBST(c_switch_all)
4515 AC_SUBST(ld_switch_general)
4516 AC_SUBST(ld_switch_window_system)
4517 AC_SUBST(ld_switch_all)
4518 AC_SUBST(ld_libs_general)
4519 AC_SUBST(ld_libs_window_system)
4520 AC_SUBST(ld_libs_all)
4524 RECURSIVE_MAKE="\$(MAKE) \$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'"
4525 AC_SUBST(RECURSIVE_MAKE)
4527 AC_SUBST(native_sound_lib)
4528 AC_SUBST(sound_cflags)
4530 AC_SUBST(dynodump_arch)
4532 dnl Preliminary support for using a different compiler for xemacs itself.
4533 dnl Useful for building XEmacs with a C++ or 64-bit compiler.
4537 dnl The default is yes
4538 if test "$with_prefix" = "yes"; then
4539 AC_DEFINE(PREFIX_USER_DEFINED)
4542 dnl The default is no
4543 if test "$with_site_lisp" = "no"; then
4544 AC_DEFINE(INHIBIT_SITE_LISP)
4546 dnl The default is yes
4547 if test "$with_site_modules" = "no"; then
4548 AC_DEFINE(INHIBIT_SITE_MODULES)
4551 XE_SPACE(ac_configure_args, $ac_configure_args)
4552 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "$configuration")
4553 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "$ac_configure_args")
4555 dnl Following are deprecated
4558 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, $null_string)
4559 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, $null_string)
4560 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, $null_string)
4561 AC_DEFINE_UNQUOTED(LD_SWITCH_SITE, $null_string)
4562 AC_DEFINE_UNQUOTED(C_SWITCH_SITE, $null_string)
4564 dnl Note: as a general rule, *only* define things here that are not
4565 dnl autodetected. For things that are autodetected, define them
4566 dnl at the point where the autodetection occurs or would occur,
4567 dnl so that the user gets immediate feedback on the results of the
4570 if test "$GNU_MALLOC" = "yes"; then AC_DEFINE(GNU_MALLOC)
4571 elif test "$with_system_malloc" = "yes"; then AC_DEFINE(USE_SYSTEM_MALLOC)
4572 elif test "$with_debug_malloc" = "yes"; then AC_DEFINE(USE_DEBUG_MALLOC)
4573 AC_DEFINE(USE_SYSTEM_MALLOC)
4575 test "$with_i18n3" = "yes" && AC_DEFINE(I18N3)
4576 test "$GCC" = "yes" && AC_DEFINE(USE_GCC)
4577 test "$external_widget" = "yes" && AC_DEFINE(EXTERNAL_WIDGET)
4578 test "$quick_build" = "yes" && AC_DEFINE(QUICK_BUILD)
4579 test "$with_purify" = "yes" && AC_DEFINE(PURIFY)
4580 test "$with_quantify" = "yes" && AC_DEFINE(QUANTIFY)
4581 test "$with_pop" = "yes" && AC_DEFINE(MAIL_USE_POP)
4582 test "$with_kerberos" = "yes" && AC_DEFINE(KERBEROS)
4583 test "$with_hesiod" = "yes" && AC_DEFINE(HESIOD)
4584 test "$use_union_type" = "yes" && AC_DEFINE(USE_UNION_TYPE)
4585 test "$pdump" = "yes" && AC_DEFINE(PDUMP)
4587 dnl -------------------------------
4588 dnl Report on what we decided to do
4589 dnl -------------------------------
4592 dnl /etc/osversion is on SONY NEWS-OS
4593 if test -f /etc/osversion; then dnl SONY NEWS-OS
4594 echo "osversion: `cat /etc/osversion`"
4596 echo "uname -a: `uname -a`"
4599 echo "$0 $quoted_arguments"
4602 if test ! -z ${emacs_beta_version} ; then
4603 if test -z "${emacs_is_beta}" ; then
4604 xemacs_betaname=".${emacs_beta_version}"
4606 xemacs_betaname="-b${emacs_beta_version}"
4612 dnl Start stdout redirection to '| tee -a Installation'
4616 XEmacs ${emacs_major_version}.${emacs_minor_version}${xemacs_betaname} \"$xemacs_codename\" configured for \`$canonical'.
4619 Compilation / Installation:"
4620 echo " Source code location: $srcdir"
4621 echo " Installation prefix: $prefix"
4622 if test -n "$site_includes"; then
4623 echo " Additional header files: $site_includes"
4625 if test -n "$site_libraries"; then
4626 echo " Additional libraries: $site_libraries"
4628 if test -n "$site_prefixes"; then
4629 echo " Additional prefixes: $site_prefixes"
4631 if test -n "$runpath"; then
4632 echo " Runtime library search path: $runpath"
4635 if test -n "$opsysfile"
4636 then echo " Operating system description file: \`$opsysfile'"
4637 else echo " Not using any operating system description file"
4639 if test -n "$machfile"
4640 then echo " Machine description file: \`$machfile'"
4641 else echo " Not using any machine description file"
4644 echo " Compiler: $CC $CFLAGS"
4645 echo " Relocating allocator for buffers: $rel_alloc"
4646 echo " GNU version of malloc: ${GNU_MALLOC}${GNU_MALLOC_reason}"
4650 if test "$with_msw" = "yes"; then
4651 echo " Compiling in support for the Microsoft window system."
4653 if test "$with_x11" = "yes"; then
4654 echo " Compiling in support for the X window system:"
4655 echo " - X Windows headers location: $x_includes"
4656 echo " - X Windows libraries location: $x_libraries"
4657 if test "$with_xauth" != yes; then
4658 echo " - Xau (X authority) not available."
4660 if test "$with_xmu" != yes; then
4661 echo " - Xmu library not available; substituting equivalent routines."
4663 if test "$with_wmcommand" != no; then
4664 echo " - Handling WM_COMMAND properly."
4667 if test "$need_athena" = "yes"; then
4668 echo " Compiling in support for the Athena widget set:"
4669 echo " - Athena headers location: $athena_h_path"
4670 echo " - Athena library to link: $athena_lib"
4672 case "$with_menubars" in
4673 lucid ) echo " Using Lucid menubars." ;;
4674 motif ) echo " Using Motif menubars."
4675 echo " *WARNING* The Motif menubar implementation is currently buggy."
4676 echo " We recommend using the Lucid menubar instead."
4677 echo " Re-run configure with --with-menubars='lucid'." ;;
4678 msw ) echo " Using MS-Windows menubars." ;;
4680 case "$with_scrollbars" in
4681 lucid ) echo " Using Lucid scrollbars." ;;
4682 motif ) echo " Using Motif scrollbars." ;;
4683 athena ) echo " Using Athena scrollbars." ;;
4684 msw ) echo " Using MS-Windows scrollbars." ;;
4686 case "$with_dialogs" in
4687 motif ) echo " Using Motif dialog boxes."
4688 if test "$unexec" = "unexaix.o"; then if test "`uname -v`" = 4 -a "`uname -r`" -ge 3; then
4689 echo " *WARNING* The Motif dialog boxes cause problems on AIX 4.3 and higher."
4690 echo " We recommend using the Athena dialog boxes instead."
4691 echo " Install libXaw and re-run configure with --with-dialogs='athena'."
4692 echo " Read the PROBLEMS file for more information."
4694 athena ) echo " Using Athena dialog boxes." ;;
4695 msw ) echo " Using MS-Windows dialog boxes." ;;
4697 case "$with_widgets" in
4698 motif ) echo " Using Motif native widgets." ;;
4699 athena ) echo " Using Athena native widgets." ;;
4700 msw ) echo " Using MS-Windows native widgets." ;;
4702 if test "$with_dragndrop" = yes; then
4703 echo " Compiling in support for Drag'n'Drop (EXPERIMENTAL)."
4704 echo " - Drag'n'Drop prototype: $dragndrop_proto."
4709 test "$with_ncurses" = yes && echo " Compiling in support for ncurses."
4710 test "$with_gpm" = yes && echo " Compiling in support for GPM (General Purpose Mouse)."
4714 test "$with_gif" = yes && echo " Compiling in support for GIF images (builtin)."
4715 if test "$with_xpm" = yes; then
4716 echo " Compiling in support for XPM images."
4717 elif test "$with_x11" = yes; then
4718 echo " WARNING: -----------------------------------------------------------"
4719 echo " WARNING: Compiling without XPM image support."
4720 if test "$xpm_problem" != ""; then
4721 echo " Reason: $xpm_problem"
4723 echo " WARNING: You should strongly consider installing XPM."
4724 echo " WARNING: Otherwise toolbars and other graphics will look suboptimal."
4725 echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
4726 echo " WARNING: -----------------------------------------------------------"
4728 if test "$with_png" = yes; then
4729 echo " Compiling in support for PNG images."
4730 elif test "$window_system" != "none"; then
4731 echo " WARNING: -----------------------------------------------------------"
4732 echo " WARNING: Compiling without PNG image support."
4733 if test "$png_problem" != ""; then
4734 echo " Reason: $png_problem"
4736 echo " WARNING: You should strongly consider installing the PNG libraries."
4737 echo " WARNING: Otherwise certain images and glyphs may not display."
4738 echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
4739 echo " WARNING: -----------------------------------------------------------"
4741 test "$with_jpeg" = yes && echo " Compiling in support for JPEG images."
4742 test "$with_tiff" = yes && echo " Compiling in support for TIFF images."
4743 test "$with_xface" = yes && echo " Compiling in support for X-Face message headers."
4747 test "$with_native_sound" = yes && echo " Compiling in support for sound (native)."
4748 test "$with_nas_sound" = yes && echo " Compiling in support for NAS (network audio system)."
4749 test "$old_nas" = yes && echo " - NAS library lacks error trapping; will play synchronously."
4750 test "$with_esd_sound" = yes && echo " Compiling in support for ESD (Enlightened Sound Daemon)."
4754 test "$with_database_berkdb" = yes && echo " Compiling in support for Berkeley database."
4755 test "$with_database_dbm" = yes && echo " Compiling in support for DBM."
4756 test "$with_database_gdbm" = yes && echo " Compiling in support for GNU DBM."
4757 test "$with_ldap" = yes && echo " Compiling in support for LDAP."
4758 if test "$with_postgresql" = yes; then
4759 echo " Compiling in support for PostgreSQL."
4760 echo " - Using PostgreSQL header file: $libpq_fe_h_file"
4761 test "$with_postgresqlv7" = yes && echo " - Using PostgreSQL V7 bindings."
4765 Internationalization:"
4766 test "$with_mule" = yes && echo " Compiling in support for Mule (multi-lingual Emacs)."
4767 test "$with_utf_2000" = yes && echo " Using UTF-2000 (UTF-8) buffer/string representation."
4768 test "$with_text_coding" = yes && echo " Compiling in support for text coding."
4769 test "$with_file_coding" = yes && echo " Compiling in support for file coding."
4770 test "$with_xim" != no && echo " Compiling in support for XIM (X11R5+ I18N input method)."
4771 test "$with_xim" = motif && echo " - Using Motif to provide XIM support."
4772 test "$with_xim" = xlib && echo " - Using raw Xlib to provide XIM support."
4773 test "$with_xfs" = yes && echo " - Using XFontSet to provide bilingual menubar."
4774 test "$with_canna" = yes && echo " Compiling in support for Canna on Mule."
4775 if test "$with_wnn" = yes; then
4776 echo " Compiling in support for the WNN input method on Mule."
4777 test "$with_wnn6" = yes && echo " - Using WNN version 6."
4779 test "$with_i18n3" = yes && echo " Compiling in support for I18N level 3 (doesn't currently work)."
4783 test "$with_pop" = yes && echo " Compiling in support for POP mail retrieval."
4784 test "$with_kerberos" = yes && echo " Compiling in support for Kerberos POP authentication."
4785 test "$with_hesiod" = yes && echo " Compiling in support for Hesiod POP server access."
4786 test -n "$mail_locking" && echo " Compiling in support for \"$mail_locking\" mail spool file locking method."
4790 test "$with_tooltalk" = yes && echo " Compiling in support for ToolTalk."
4791 test "$with_workshop" = yes && echo " Compiling in support for Sun WorkShop."
4792 test "$with_socks" = yes && echo " Compiling in support for SOCKS."
4793 test "$with_dnet" = yes && echo " Compiling in support for DNET."
4794 test "$with_modules" = "yes" && echo " Compiling in support for dynamic shared object modules."
4795 test "$use_union_type" = yes && echo " Using the union type for Lisp_Objects."
4796 test "$pdump" = yes && echo " Using the new portable dumper."
4797 test "$debug" = yes && echo " Compiling in support for extra debugging code."
4798 test "$usage_tracking" = yes && echo " Compiling in support for active usage tracking (Sun internal)."
4799 if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc $error_check_glyphs" \
4800 != "no no no no no no"; then
4801 echo " WARNING: ---------------------------------------------------------"
4802 echo " WARNING: Compiling in support for runtime error checking."
4803 echo " WARNING: XEmacs will run noticeably more slowly as a result."
4804 echo " WARNING: Error checking is on by default for XEmacs beta releases."
4805 echo " WARNING: ---------------------------------------------------------"
4808 ) | tee -a Installation
4809 dnl echo "The above configure report is appended to \"Installation\" file."
4812 dnl -----------------------------------
4813 dnl Now generate config.h and Makefiles
4814 dnl -----------------------------------
4815 dnl This has to be called in order for this variable to get into config.status
4816 AC_SUBST(internal_makefile_list)
4817 # Remove any trailing slashes in these variables.
4818 test -n "$prefix" &&
4819 prefix=`echo '' "$prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4820 test -n "$exec_prefix" &&
4821 exec_prefix=`echo '' "$exec_prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4823 dnl Build Makefile.in's from Makefile.in.in's
4824 dnl except ./Makefile from $srcdir/Makefile.in
4826 for file in $internal_makefile_list; do
4827 test "$file" = src/Makefile.in && \
4828 file="src/Makefile.in:src/Makefile.in.in:src/depend"
4829 XE_APPEND($file, ac_output_files)
4831 ac_output_files="$ac_output_files src/paths.h lib-src/config.values"
4832 test "$with_modules" = "yes" && XE_APPEND(lib-src/ellcc.h, ac_output_files)
4834 AC_OUTPUT($ac_output_files,
4835 [for dir in . $MAKE_SUBDIR; do
4840 sed -e '/^# Generated/d' \
4841 -e 's%/\*\*/#.*%%' \
4843 dnl Delete Makefile.in.in comment lines
4845 dnl Pass through CPP directives unchanged
4850 dnl Quote other lines to protect from CPP substitution
4857 dnl Create a GNUmakefile and Makefile from Makefile.in.
4859 changequote(<<,>>)dnl
4860 dnl CPP_MAKEFILE(CPPFLAGS,filename)
4861 define(<<CPP_MAKEFILE>>,
4862 echo creating $dir/<<$2>>
4863 $CPP -I. -I${top_srcdir}/src <<$1>> junk.c \
4864 dnl Delete line directives inserted by $CPP
4865 | sed -e 's/^\#.*//' \
4866 dnl Delete spurious blanks inserted by $CPP
4867 -e 's/^[ TAB][ TAB]*$//'\
4869 dnl Delete blank lines
4871 dnl Restore lines quoted above to original contents.
4877 chmod 444 Makefile.new
4878 mv -f Makefile.new <<$2>>
4881 CPP_MAKEFILE(,Makefile)
4882 CPP_MAKEFILE(-DUSE_GNU_MAKE,GNUmakefile)
4888 dnl Append AC_DEFINE information to lib-src/config.values
4889 dnl (AC_SUBST information is already there (see config.values.sh).
4890 sed < config.status >> lib-src/config.values \
4891 -e '/{ac_dA}.*{ac_dB}.*{ac_dC}.*{ac_dD}$/!d' \
4892 -e 's/\${ac_dA}\(.*\)\${ac_dB}.*\${ac_dC}\(.*\)\${ac_dD}/\1 \2/' \
4893 -e 's/^\([[^ ]]*\) $/\1 ""/' \
4898 top_srcdir="$srcdir"
4899 MAKE_SUBDIR="$MAKE_SUBDIR"