1 dnl Define our own header notice with own copyright
2 define([AC_INIT_NOTICE],
3 [#### Configuration script for XEmacs. Largely divergent from FSF.
4 #### Guess values for system-dependent variables and create Makefiles.
5 #### Generated automatically using autoconf version] AC_ACVERSION [
6 #### Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
7 #### Copyright (C) 1993-1995 Board of Trustees, University of Illinois.
8 #### Copyright (C) 1996, 1997 Sun Microsystems, Inc.
9 #### Copyright (C) 1995, 1996 Ben Wing.
11 ### Don't edit this script!
12 ### This script was automatically generated by the `autoconf' program
13 ### from the file `./configure.in'.
14 ### To rebuild it, execute the command
16 ### in the this directory. You must have autoconf version 2.12 or later.
18 ### This file is part of XEmacs.
20 ### XEmacs is free software; you can redistribute it and/or modify it
21 ### under the terms of the GNU General Public License as published by
22 ### the Free Software Foundation; either version 2, or (at your
23 ### option) any later version.
25 ### XEmacs is distributed in the hope that it will be useful, but
26 ### WITHOUT ANY WARRANTY; without even the implied warranty of
27 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
28 ### General Public License for more details.
30 ### You should have received a copy of the GNU General Public License
31 ### along with XEmacs; see the file COPYING. If not, write to the Free
32 ### Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
35 ### For usage, run `./configure --help'
36 ### For more detailed information on building and installing XEmacs,
37 ### read the file `INSTALL'.
39 ### If configure succeeds, it leaves its status in config.status.
40 ### A log of configuration tests can be found in config.log.
41 ### If configure fails after disturbing the status quo,
42 ### config.status is removed.
45 dnl Since XEmacs has configuration requirements that autoconf cannot
46 dnl meet, this file is an unholy marriage of custom-baked
47 dnl configuration code and autoconf macros.
49 dnl We use the m4 quoting characters [ ] (as established by the
50 dnl autoconf system), so quote them like this: [[foo]]
53 dnl Redefine some standard autoconf macros
54 dnl here is how XEmacs is different:
56 dnl - non-standard options
57 dnl - suport for extra-verbosity
58 dnl - ordinary libs are handled separately from X libs (might be a mistake)
59 dnl - various random kludges (e.g. -with-dnet=no
61 dnl PRINT_VAR(var var ...) prints values of shell variables
62 define([PRINT_VAR],[for var in patsubst([$1],[[
63 ]+],[ ]); do eval "echo \"$var = '\$$var'\""; done])
65 dnl Disable cache files:
66 dnl This is controversial, but I am convinced this is the right way to go,
67 dnl at least by default. Otherwise there are too many surprises.
68 define([AC_CACHE_LOAD], )dnl
69 define([AC_CACHE_SAVE], )dnl
70 define([AC_CACHE_VAL], [
74 dnl Redefine AC_TRY_RUN_NATIVE to not throw away stderr while running
75 dnl AC_TRY_RUN_NATIVE(PROGRAM, [ACTION-IF-TRUE [, ACTION-IF-FALSE]])
76 define([AC_TRY_RUN_NATIVE],
77 [cat > conftest.$ac_ext <<EOF
78 [#]line __oline__ "configure"
82 if AC_TRY_EVAL(ac_link) && test -s conftest && (./conftest; exit $?) 2>&AC_FD_CC
84 dnl Do not remove the temporary files here, so they can be examined.
85 ifelse([$2], , :, [$2])
88 echo "configure: failed program was:" >&AC_FD_CC
89 cat conftest.$ac_ext >&AC_FD_CC
90 ifelse([$3], , , [ rm -fr conftest*
94 rm -fr conftest*])dnl AC_TRY_RUN_NATIVE
97 dnl Avoid spurious cross-compiling warnings from AC_TRY_RUN
98 dnl XEmacs is unlikely to ever cross-compile
99 define([AC_TRY_RUN],[AC_TRY_RUN_NATIVE([$1], [$2], [$3])])dnl
101 dnl Redefine AC_DEFINE* to provide more output if extra_verbose
102 dnl Set VARIABLE to VALUE, verbatim, or 1.
103 dnl AC_DEFINE(VARIABLE [, VALUE])
105 [{ test "$extra_verbose" = "yes" && cat << \EOF
106 Defining $1[]ifelse($#, 2, [ = $2],)
108 cat >> confdefs.h <<\EOF
109 [#define] $1 ifelse($#, 2, [$2], 1)
114 define([AC_DEFINE_UNQUOTED],
115 [{ test "$extra_verbose" = "yes" && cat << EOF
116 Defining $1[]ifelse($#, 2, [ = $2],)
118 cat >> confdefs.h <<EOF
119 [#define] $1 ifelse($#, 2, [$2], 1)
122 ])dnl AC_DEFINE_UNQUOTED
124 dnl redefine AC_CHECK_LIB in accordance with our own value of ac_link
125 dnl Add in extra kludgy check to support with_dnet=no
126 dnl Add in extra LDFLAGS arg, which PRECEDE libs
127 dnl Support --with-dnet=no
129 dnl AC_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
130 dnl [, OTHER-LIBRARIES] [, LDFLAGS]]]])
131 define([AC_CHECK_LIB],
132 [ifelse([$1],dnet, [if test "$with_dnet" = "no" ; then
133 ac_cv_lib_dnet_dnet_ntoa=no
134 ifelse([$4], , , [$4]
138 AC_CHECK_LIB_ORIG_HACKED([$1],[$2],[$3],[$4],[$5], [$6])
139 [ifelse([$1],dnet,[fi
143 define([AC_CHECK_LIB_ORIG_HACKED],
144 [ifelse([$5],,AC_MSG_CHECKING([for $2 in -l$1]),
145 xe_msg_checking="for [$2] in -l[$1]"
146 test -n "[$5]" && xe_msg_checking="$xe_msg_checking using extra libs [$5]"
147 AC_MSG_CHECKING("$xe_msg_checking"))
148 dnl Use a cache variable name containing both the library and function name,
149 dnl because the test really is for library $1 defining function $2, not
150 dnl just for library $1. Separate tests with the same $1 and different $2s
151 dnl may have different results.
152 ac_lib_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
153 AC_CACHE_VAL(ac_cv_lib_$ac_lib_var,
154 [xe_check_libs="$6 -l$1 $5"
156 ifelse([$2], [main], , dnl Avoid conflicting decl of main.
157 [/* Override any gcc2 internal prototype to avoid an error. */
158 ]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
162 [/* We use char because int might match the return type of a gcc2
163 builtin and then its argument prototype would still apply. */
167 eval "ac_cv_lib_$ac_lib_var=yes",
168 eval "ac_cv_lib_$ac_lib_var=no")
171 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
175 ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \
176 -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
178 AC_DEFINE_UNQUOTED($ac_tr_lib)
179 XE_PREPEND([-l$1], LIBS)
186 ])dnl AC_CHECK_LIB_ORIG_HACKED
191 [define([AC_LANG], [C])dnl
193 dnl CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
194 dnl ac_cpp='$CPP $CPPFLAGS'
195 dnl ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&AC_FD_CC'
196 dnl ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
197 xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
198 xe_ldflags='$LDFLAGS $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_x_site $ld_switch_run'
199 xe_libs='$ld_call_shared $xe_check_libs $X_EXTRA_LIBS $libs_x $X_PRE_LIBS $LIBS $libs_machine $libs_system $libs_standard'
200 ac_cpp='$CPP '"$xe_cppflags"
201 ac_compile='${CC-cc} -c $CFLAGS '"$xe_cppflags"' conftest.$ac_ext 1>&AC_FD_CC'
202 ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&AC_FD_CC'
206 dnl The construct foo=`echo $w1 $w2 $w3` fails on some systems if $w1 = -e or -n
207 dnl So we use the following instead.
208 dnl XE_SPACE(var, words)
211 for W in $2; do if test -z "$T"; then T="$W"; else T="$T $W"; fi; done
215 dnl XE_ADD_OBJS(foo.o ...)
216 define([XE_ADD_OBJS],
217 [extra_objs="$extra_objs [$1]" && dnl
218 if test "$extra_verbose" = "yes"; then
219 echo " xemacs will be linked with \"[$1]\""
222 dnl XE_APPEND(value, varname)
224 [[$2]="$[$2] [$1]" && dnl
225 if test "$extra_verbose" = "yes"; then echo " Appending \"[$1]\" to \$[$2]"; fi])
227 dnl XE_PREPEND(value, varname)
229 [[$2]="[$1] $[$2]" && dnl
230 if test "$extra_verbose" = "yes"; then echo " Prepending \"[$1]\" to \$[$2]"; fi])
233 define([XE_DIE], [{ echo $1 >&2; exit 1; }])
235 dnl XE_STRIP_4TH_COMPONENT(var)
236 dnl Changes i986-pc-linux-gnu to i986-pc-linux, as God (not RMS) intended.
237 define([XE_STRIP_4TH_COMPONENT],
238 [$1=`echo "$$1" | sed '[s/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/]'`])
240 dnl Initialize some variables set by options.
241 dnl The variables have the same names as the options, with
242 dnl dashes changed to underlines.
244 define([AC_INIT_PARSE_ARGS],[
246 dnl Get sane consistent behavior from various shells
247 dnl Avoid losing with weird user CDPATHs
249 if test -n "$ZSH_VERSION"; then
250 dnl zsh's Bourne shell emulation options
251 setopt NO_BAD_PATTERN NO_BANG_HIST NO_BG_NICE NO_EQUALS NO_FUNCTION_ARGZERO
252 setopt GLOB_SUBST NO_HUP INTERACTIVE_COMMENTS KSH_ARRAYS NO_MULTIOS NO_NOMATCH
253 setopt RM_STAR_SILENT POSIX_BUILTINS SH_FILE_EXPANSION SH_GLOB SH_OPTION_LETTERS
254 setopt SH_WORD_SPLIT BSD_ECHO IGNORE_BRACES
255 dnl zsh-3.1-beta drops core on the following
257 if test -n "$CDPATH"; then CDPATH="."; export CDPATH; fi
258 elif test -n "$BASH_VERSION"; then
259 dnl Use Posix mode with bash
263 if test -n "$CDPATH"; then CDPATH="."; export CDPATH; fi
266 dnl Initialize some variables set by options.
267 dnl The variables have the same names as the options, with
268 dnl dashes changed to underlines.
277 program_transform_name=s,x,x,
286 dnl Installation directory options.
287 dnl These are left unexpanded so users can "make install exec_prefix=/foo"
288 dnl and all the variables that are supposed to be based on exec_prefix
289 dnl by default will actually change.
290 dnl Use braces instead of parens because sh, perl, etc. also accept them.
291 dnl If you change these, you need to synchronize with the settings of the
292 dnl various ..._USER_DEFINED variables further down.
293 bindir='${exec_prefix}/bin'
294 sbindir='${exec_prefix}/sbin'
295 libexecdir='${exec_prefix}/libexec'
296 datadir='${prefix}/share'
297 sysconfdir='${prefix}/etc'
298 sharedstatedir='${prefix}/com'
299 localstatedir='${prefix}/var'
300 libdir='${{exec_prefix}}/lib'
301 includedir='${prefix}/include'
302 oldincludedir='/usr/include'
303 infodir='${prefix}/info'
304 mandir='${prefix}/man'
306 dnl Initialize some other variables.
309 dnl Maximum number of lines to put in a shell here document.
311 ])dnl AC_INIT_PARSE_ARGS
313 AC_INIT(src/lisp.h)dnl
314 AC_CONFIG_HEADER(src/config.h lwlib/config.h)
315 dnl Remove any more than one leading "." element from the path name.
316 dnl If we do not remove them, then another "./" will be prepended to
317 dnl the file name each time we use config.status, and the program name
318 dnl will get larger and larger. This would not be a problem, except
319 dnl that since progname gets recorded in all the Makefiles this script
320 dnl produces, move-if-change thinks they're different when they're
323 dnl It would be nice if we could put the ./ in a \( \) group and then
324 dnl apply the * operator to that, so we remove as many leading './././'s
325 dnl as are present, but some seds (like Ultrix's sed) don't allow you to
326 dnl apply * to a \( \) group. Bleah.
327 progname="`echo $0 | sed 's:^\./\./:\./:'`"
329 dnl -----------------------------
330 dnl Establish some default values
331 dnl -----------------------------
333 XE_APPEND(lib-src, MAKE_SUBDIR)
334 XE_APPEND(lib-src, INSTALL_ARCH_DEP_SUBDIR)
337 exec_prefix='${prefix}'
338 bindir='${exec_prefix}/bin'
339 dnl FSF 19.29 changes to:
340 dnl datadir='${prefix}/share'
341 dnl sharedstatedir='${prefix}/com'
342 dnl libexecdir='${exec_prefix}/libexec'
343 datadir='${prefix}/lib'
344 statedir='${prefix}/lib'
345 libdir='${exec_prefix}/lib'
346 mandir='${prefix}/man/man1'
347 infodir='${datadir}/${PROGNAME}-${version}/info'
350 lispdir='${datadir}/${PROGNAME}-${version}/lisp'
351 dnl sitelispdir='${datadir}/xemacs/site-lisp'
352 pkgdir='${datadir}/${PROGNAME}-${version}/lisp'
354 etcdir='${datadir}/${PROGNAME}-${version}/etc'
355 lockdir='${statedir}/${PROGNAME}/lock'
356 archlibdir='${libdir}/${PROGNAME}-${version}/${configuration}'
362 dnl const_is_losing is removed - we rely on AC_C_CONST instead.
363 dnl We accept (and ignore) the --const-is-losing option for compatibility.
364 dnl const_is_losing='yes'
366 cpp='' cppflags='' libs='' ldflags=''
371 with_system_malloc='default'
372 with_dlmalloc='default'
374 dnl use_assertions should be 'yes' by default. Too many people in this
375 dnl world have core dumps turned off by default or \"cannot find where the
376 dnl core file went\". At least we should get some useful output ...
378 dnl the following is set to yes or no later.
384 dnl ------------------
385 dnl Options Processing
386 dnl ------------------
388 define([USAGE_ERROR],
389 [(echo "$progname: Usage error:"
391 echo " Use \`$progname --help' to show usage.") >&2 && exit 1])
393 dnl Record all the arguments, so we can save them in config.status.
396 dnl Shell Magic: Quote the quoted arguments in ARGUMENTS. At a later date,
397 dnl in order to get the arguments back in $@, we have to do an
398 dnl 'eval set x "$quoted_arguments"; shift'
399 dnl # We use sed to turn embedded ' into '"'"'. I truly hate sh quoting.
400 quoted_sed_magic=s/"'"/"'"'"'"'"'"'"'"/g
404 -no-create | --no-create | --no-creat | --no-crea | --no-cre \
405 | --no-cr | --no-c) ;;
406 -no-recursion | --no-recursion | --no-recursio | --no-recursi \
407 | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
409 quoted_i="`echo '' $i | sed -e 's:^ ::' -e $quoted_sed_magic`"
410 quoted_arguments="$quoted_arguments '$quoted_i'" ;;
414 dnl Do not use shift -- that destroys the argument list, which autoconf needs
415 dnl to produce config.status. It turns out that "set - $arguments" does not
417 dnl However, it also turns out that many shells cannot expand ${10} at all.
418 dnl So using an index variable does not work either. It is possible to use
419 dnl some shell magic to make 'set x "$arguments"; shift' work portably.
420 while test $# != 0; do
423 --no-create|--no-recursion) ;;
424 dnl Anything starting with a hyphen we assume is an option.
426 dnl Separate the switch name from the value it is being given.
429 opt=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*\([[^=]]*\)=.*$:\1:'`
430 val=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*[[^=]]*=\(.*\)$:\1:'`
433 dnl special case these strings since echo may silently eat them:
434 dnl --help ) opt=help val=yes valomitted=yes ;;
435 dnl --version ) opt=version val=yes valomitted=yes ;;
436 dnl -e ) opt=e val=yes valomitted=yes ;;
437 dnl -E ) opt=E val=yes valomitted=yes ;;
438 dnl -n ) opt=n val=yes valomitted=yes ;;
440 dnl If FOO is a boolean argument, --FOO is equivalent to
441 dnl --FOO=yes. Otherwise, the value comes from the next
442 dnl argument - see below.
443 opt=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*\(.*\)$:\1:'`
444 val="yes" valomitted=yes
448 dnl translate "-" in option string to "_"
450 opt="`echo '' $opt | sed -e 's:^ ::' | tr - _`"
452 dnl Support --without-FOO as a synonym for --with-FOO=no
453 case "${valomitted}-${opt}" in yes-without_* )
454 opt=`echo $opt | sed 's/without/with/'`
455 valomitted="no" val="no" ;;
458 dnl Process the option.
461 dnl Process (many) boolean options
512 use_minimal_tagbits | \
513 use_indexed_lrecord_implementation | \
514 memory_usage_stats | \
515 with_clash_detection | \
518 dnl Make sure the value given was either "yes" or "no".
520 y | ye | yes ) val=yes ;;
522 * ) USAGE_ERROR("The \`--$optname' option requires a boolean value: \`yes' or \`no'.") ;;
524 eval "$opt=\"$val\"" ;;
527 dnl Options that take a user-supplied value, as in --puresize=8000000
528 dnl The cache-file option is ignored (for compatibility with other configures)
545 site_runtime_libraries )
546 dnl If the value was omitted, get it from the next argument.
547 if test "$valomitted" = "yes" ; then
548 dnl Get the next argument from the argument list, if there is one.
549 if test "$#" = 0 ; then
550 USAGE_ERROR("The \`--$optname' option requires a value.");
557 dnl Options that take "yes", "no", or "default" values
560 with_debug_malloc | use_debug_malloc | \
561 with_system_malloc | use_system_malloc )
563 y | ye | yes ) val=yes ;;
565 d | de | def | defa | defau | defaul | default ) val=default ;;
566 * ) USAGE_ERROR(["The \`--$optname' option requires one of these values:
567 \`yes', \`no', or \`default'."]) ;;
569 case "$opt" in use_* ) opt="`echo $opt | sed s/use/with/`" ;; esac
573 dnl Has the user requested database support?
575 with_database_berkdb=no
577 with_database_gnudbm=no
578 for x in `echo "$val" | sed -e 's/,/ /g'` ; do
581 b | be | ber | berk | berkd | berkdb ) with_database_berkdb=yes ;;
582 d | db | dbm ) with_database_dbm=yes ;;
583 g | gn | gnu | gnud | gnudb | gnudbm ) with_database_gnudbm=yes ;;
584 * ) USAGE_ERROR(["The \`--$optname' option value
585 must be either \`no' or a comma-separated list
586 of one or more of \`berkdb' and either \`dbm' or \`gnudbm'."]) ;;
589 if test "$with_database_dbm" = "yes" -a \
590 "$with_database_gnudbm" = "yes"; then
591 USAGE_ERROR("Only one of \`dbm' and \`gnudbm' may be specified
592 with the \`--$optname' option.")
596 dnl Has the user requested sound support?
598 dnl value can be native, nas or both. yes is allowed
599 dnl as a backwards compatible synonym for native
601 y | ye | yes ) val=native ;;
602 n | no | non | none ) val=no;;
603 na | nat | nati | nativ | native ) val=native ;;
604 ne | net | neta | netau | netaud | netaudi | netaudio | nas ) val=nas ;;
605 b | bo | bot | both ) val=both;;
606 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
607 \`native', \`nas', \`both', or \`none'."]) ;;
612 dnl Has the user requested XIM support?
615 y | ye | yes ) val=yes ;;
616 n | no | non | none ) val=no ;;
617 x | xl | xli | xlib ) val=xlib ;;
618 m | mo | mot | moti | motif ) val=motif ;;
619 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
620 \`motif', \`xlib', \`yes', or \`no'."]) ;;
625 dnl Mail locking specification
631 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
632 \`lockf', \`flock', or \`file'."]) ;;
637 dnl Has the user requested error-checking?
639 dnl value can be all, none, and/or a list of categories to check.
640 dnl Example: --error-checking=all,noextents,nobufpos
641 dnl Example: --error-checking=none,malloc,gc
643 for x in `echo "$val" | sed -e 's/,/ /g'` ; do
645 dnl all and none are only permitted as the first in the list.
646 n | no | non | none ) new_default=no ;;
647 a | al | all ) new_default=yes ;;
649 extents ) error_check_extents=yes ;;
650 noextents ) error_check_extents=no ;;
652 typecheck ) error_check_typecheck=yes ;;
653 notypecheck ) error_check_typecheck=no ;;
655 bufpos ) error_check_bufpos=yes ;;
656 nobufpos ) error_check_bufpos=no ;;
658 gc ) error_check_gc=yes ;;
659 nogc ) error_check_gc=no ;;
661 malloc ) error_check_malloc=yes ;;
662 nomalloc ) error_check_malloc=no ;;
664 * ) bogus_error_check=yes ;;
666 if test "$bogus_error_check" -o \
667 \( -n "$new_default" -a -n "$echeck_notfirst" \) ; then
668 if test "$error_check_default" = yes ; then
669 types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nobufpos', \`nogc', and \`nomalloc'."
671 types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', and \`malloc'."
673 USAGE_ERROR(["Valid types for the \`--$optname' option are:
675 elif test -n "$new_default" ; then
676 error_check_extents=$new_default
677 error_check_typecheck=$new_default
678 error_check_bufpos=$new_default
679 error_check_gc=$new_default
680 error_check_malloc=$new_default
681 new_default= # reset this
687 dnl Has the user tried to tell us where the X files are?
688 dnl I think these are dopey, but no less than three alpha
689 dnl testers, at large sites, have said they have their X files
690 dnl installed in odd places.
692 dnl Has the user specified one of the path options?
693 prefix | exec_prefix | bindir | datadir | statedir | libdir | \
694 mandir | infodir | infopath | lispdir | etcdir | lockdir | pkgdir | \
695 archlibdir | docdir | package_path )
696 dnl If the value was omitted, get it from the next argument.
697 if test "$valomitted" = "yes"; then
698 if test "$#" = 0; then
699 USAGE_ERROR("The \`--$optname' option requires a value.");
705 dnl You need to synchronize this with the way the
706 dnl default values are built.
708 lispdir ) AC_DEFINE(LISPDIR_USER_DEFINED) ;;
709 dnl sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
710 etcdir ) AC_DEFINE(ETCDIR_USER_DEFINED) ;;
711 infodir ) AC_DEFINE(INFODIR_USER_DEFINED) ;;
712 infopath ) AC_DEFINE(INFOPATH_USER_DEFINED) ;;
713 package_path ) AC_DEFINE(PACKAGE_PATH_USER_DEFINED) ;;
715 AC_DEFINE(INFODIR_USER_DEFINED)
716 AC_DEFINE(LISPDIR_USER_DEFINED)
717 AC_DEFINE(ETCDIR_USER_DEFINED) ;;
718 statedir | lockdir ) AC_DEFINE(LOCKDIR_USER_DEFINED) ;;
719 exec_prefix | libdir | archlibdir ) AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;;
723 dnl --no-create added by autoconf for use by config.status
726 dnl Has the user asked for some help?
727 "usage" | "help" ) ${PAGER-more} ${srcdir}/configure.usage; exit 0 ;;
729 dnl Has the user specified the toolkit(s) to use for GUI elements?
731 "with_scrollbars" | \
734 l | lu | luc | luci | lucid ) val=lucid ;;
735 m | mo | mot | moti | motif ) val=motif ;;
736 athena3d | athena-3d ) val=athena3d ;;
737 a | at | ath | athe | athen | athena ) val=athena ;;
738 n | no | non | none ) val=no ;;
739 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
740 \`lucid', \`motif', \`athena', \`athena3d', or \`no'."]) ;;
745 dnl Obsolete legacy argument? Warn, but otherwise ignore.
748 AC_MSG_WARN([Obsolete option \`--$optname' ignored.])
751 dnl Unrecognized option? No mercy for user errors.
752 * ) USAGE_ERROR("Unrecognized option: $arg") ;;
757 dnl Assume anything with multiple hyphens is a configuration name.
758 *-*-*) configuration="$arg" ;;
760 dnl Unrecognized argument? No mercy for user errors.
761 *) USAGE_ERROR("Unrecognized argument: $arg") ;;
766 dnl -------------------------
767 dnl Finish options processing
768 dnl -------------------------
770 dnl Several options are equivalent to, and override, environment variables.
771 test -n "$cpp" && CPP="$cpp"
772 test -n "$cppflags" && CPPFLAGS="$cppflags"
773 test -n "$libs" && LIBS="$libs"
774 test -n "$ldflags" && LDFLAGS="$ldflags"
776 dnl Get the arguments back. See the diatribe on Shell Magic above.
777 eval set x "$quoted_arguments"; shift
779 dnl --extra-verbose implies --verbose
780 test "$extra_verbose" = "yes" && verbose=yes
782 dnl with_x is an obsolete synonym for with_x11
783 test -n "$with_x" && with_x11="$with_x"
785 dnl --with-quantify or --with-purify imply --use-system-malloc
786 if test "$with_purify" = "yes" -o "$with_quantify" = "yes"; then
787 test "$with_system_malloc" = "default" && with_system_malloc=yes
790 dnl --gung-ho=val is a synonym for
791 dnl --use-minimal-tagbits=val --use-indexed-lrecord-implementation=val
792 if test -n "$gung_ho"; then
793 test -z "$use_minimal_tagbits" && use_minimal_tagbits="$gung_ho"
794 test -z "$use_indexed_lrecord_implementation" && \
795 use_indexed_lrecord_implementation="$gung_ho"
797 if test "$use_minimal_tagbits" = "no"; then
798 test "$with_dlmalloc" = "yes" && \
799 USAGE_ERROR("--with-dlmalloc requires --use-minimal-tagbits")
803 dnl XE_CHECK_FEATURE_DEPENDENCY(feature1, feature2)
804 define([XE_CHECK_FEATURE_DEPENDENCY],
805 [if test "$with_$1 $with_$2" = "yes no"; then
806 USAGE_ERROR("--with-$1 requires --with-$2")
807 elif test "$with_$2" = "no" ; then with_$1=no
808 elif test "$with_$1" = "yes"; then with_$2=yes
812 dnl CDE requires tooltalk
813 XE_CHECK_FEATURE_DEPENDENCY(cde, tooltalk)
815 dnl Find the source directory.
818 dnl If srcdir is not specified, see if "." or ".." might work.
820 for dir in "`echo $0 | sed 's|//|/|' | sed 's|/[[^/]]*$||'`" "." ".." ; do
821 if test -f "$dir/src/lisp.h" -a \
822 -f "$dir/lisp/version.el" ; then
827 if test -z "$srcdir" ; then
828 USAGE_ERROR(["Neither the current directory nor its parent seem to
829 contain the XEmacs sources. If you do not want to build XEmacs in its
830 source tree, you should run \`$progname' in the directory in which
831 you wish to build XEmacs, using the \`--srcdir' option to say where the
832 sources may be found."])
836 dnl Otherwise, check if the directory they specified is okay.
838 if test ! -f "$srcdir/src/lisp.h" -o \
839 ! -f "$srcdir/lisp/version.el" ; then
840 USAGE_ERROR(["The directory specified with the \`--srcdir' option,
841 \`$srcdir', doesn't seem to contain the XEmacs sources. You should
842 either run the \`$progname' script at the top of the XEmacs source
843 tree, or use the \`--srcdir' option to specify the XEmacs source directory."])
848 dnl ###########################################################################
849 if test -z "$configuration"; then
850 dnl Guess the configuration
851 configuration=`${CONFIG_SHELL-/bin/sh} $srcdir/config.guess`
852 if test -z "$configuration"; then
853 USAGE_ERROR(["XEmacs has not been ported to this host type.
854 Try explicitly specifying the CONFIGURATION when rerunning configure."])
860 dnl Make symlinks for etc, lisp, and info directories while the path
861 dnl is still relative. We do not symlink lock because someone may
862 dnl have stuck the source on a read-only partition. Instead we
863 dnl create it as an actual directory later on if it does not already
865 for dir in lisp etc man info; do
866 if test ! -d "$dir" ; then
867 echo Making symbolic link to "$srcdir/$dir"
868 ${LN_S} "$srcdir/$dir" "$dir"
872 dnl Calculate canonical name for blddir (i.e. current directory).
873 dnl PWD may already be the preferable absolute name for ".",
874 dnl but we can't trust it - it is sometimes inaccurate.
875 absolute_pwd="`pwd`";
876 if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd"
878 else blddir="$absolute_pwd"
882 dnl Make srcdir absolute, if not already. It is important to
883 dnl avoid running the path through pwd unnecessary, since pwd can
884 dnl give you automounter prefixes, which can go away.
887 . ) srcdir="$blddir" ;;
888 * ) srcdir="`cd $srcdir && pwd`" ;;
891 dnl Check if the source directory already has a configured system in it.
892 if test `pwd` != `sh -c cd $srcdir && pwd` \
893 && test -f "$srcdir/src/config.h"; then
894 (echo "$progname: WARNING: The directory tree \`$srcdir' is being used"
895 echo " as a build directory right now; it has been configured in its own"
896 echo " right. To configure in another directory as well, you MUST"
897 echo " use GNU make. If you do not have GNU make, then you must"
898 echo " now do \`make distclean' in $srcdir,"
899 echo " and then run $progname again.") >&2
900 extrasub='/^VPATH[[ ]]*=/c\
906 vpath %.in $(srcdir)'
909 dnl ----------------------------------------
910 dnl Find out which version of XEmacs this is
911 dnl ----------------------------------------
912 . "$srcdir/version.sh" || exit 1;
913 dnl Must do the following first to determine verbosity for AC_DEFINE
914 if test -n "$emacs_beta_version"; then beta=yes; else beta=no; fi
915 : "${extra_verbose=$beta}"
916 version="${emacs_major_version}.${emacs_minor_version}"
917 AC_DEFINE_UNQUOTED(EMACS_MAJOR_VERSION, $emacs_major_version)
918 AC_DEFINE_UNQUOTED(EMACS_MINOR_VERSION, $emacs_minor_version)
919 if test -n "$emacs_beta_version"; then
920 version="${version}-b${emacs_beta_version}"
921 AC_DEFINE_UNQUOTED(EMACS_BETA_VERSION, $emacs_beta_version)
923 AC_DEFINE_UNQUOTED(XEMACS_CODENAME, "$xemacs_codename")
924 AC_DEFINE_UNQUOTED(EMACS_VERSION, "$version")
926 if test "$with_infodock" = "yes"; then
927 if test ! -f ../ID-INSTALL; then
928 echo "Cannot build InfoDock without InfoDock sources"
933 if test "$with_infodock" = "yes"; then
934 dnl InfoDock version numbers. XEmacs will use the same style of numbering
935 dnl after the release of XEmacs 21.0.
936 AC_DEFINE_UNQUOTED(INFODOCK_MAJOR_VERSION, $infodock_major_version)
937 AC_DEFINE_UNQUOTED(INFODOCK_MINOR_VERSION, $infodock_minor_version)
938 AC_DEFINE_UNQUOTED(INFODOCK_BUILD_VERSION, $infodock_build_version)
939 version=${infodock_major_version}.${infodock_minor_version}.${infodock_build_version}
941 CPPFLAGS="$CPPFLAGS -DINFODOCK"
946 dnl ----------------------------------
947 dnl Error checking and debugging flags
948 dnl ----------------------------------
949 dnl Error checking default to "yes" in beta versions, to "no" in releases.
950 dnl Same goes for --debug and --extra-verbosity.
951 if test -n "$emacs_beta_version"; then beta=yes; else beta=no; fi
952 test "${error_check_extents=$beta}" = yes && AC_DEFINE(ERROR_CHECK_EXTENTS)
953 test "${error_check_typecheck=$beta}" = yes && AC_DEFINE(ERROR_CHECK_TYPECHECK)
954 test "${error_check_bufpos=$beta}" = yes && AC_DEFINE(ERROR_CHECK_BUFPOS)
955 test "${error_check_gc=$beta}" = yes && AC_DEFINE(ERROR_CHECK_GC)
956 test "${error_check_malloc=$beta}" = yes && AC_DEFINE(ERROR_CHECK_MALLOC)
957 dnl debug=yes must be set when error checking is present. This should be
959 dnl debug implies other options
960 if test "${debug:=$beta}" = "yes"; then
961 use_assertions=yes memory_usage_stats=yes
963 AC_DEFINE(DEBUG_XEMACS)
965 test "$use_assertions" = "yes" && AC_DEFINE(USE_ASSERTIONS)
966 test "$memory_usage_stats" = "yes" && AC_DEFINE(MEMORY_USAGE_STATS)
968 dnl ------------------------------
969 dnl Determine the s&m files to use
970 dnl ------------------------------
971 dnl Given the configuration name, set machfile and opsysfile to the
972 dnl names of the m/*.h and s/*.h files we should use.
974 dnl Canonicalize the configuration name.
975 AC_MSG_CHECKING("host system type")
976 dnl allow -workshop suffix on configuration name
977 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'`
978 canonical=`${CONFIG_SHELL-/bin/sh} $srcdir/config.sub "$internal_configuration"`
979 XE_STRIP_4TH_COMPONENT(configuration)
980 XE_STRIP_4TH_COMPONENT(canonical)
981 AC_MSG_RESULT($configuration)
983 dnl If you add support for a new configuration, add code to this
984 dnl switch statement to recognize your configuration name and select
985 dnl the appropriate operating system and machine description files.
987 dnl You would hope that you could choose an m/*.h file pretty much
988 dnl based on the machine portion of the configuration name, and an s-
989 dnl file based on the operating system portion. However, it turns out
990 dnl that each m/*.h file is pretty manufacturer-specific - for
991 dnl example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are
992 dnl all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
993 dnl machines. So we basically have to have a special case for each
994 dnl configuration name.
996 dnl As far as handling version numbers on operating systems is
997 dnl concerned, make sure things will fail in a fixable way. If
998 dnl /etc/MACHINES says nothing about version numbers, be
999 dnl prepared to handle anything reasonably. If version numbers
1000 dnl matter, be sure /etc/MACHINES says something about it.
1002 dnl Eric Raymond says we should accept strings like "sysvr4" to mean
1003 dnl "System V Release 4"; he writes, "The old convention encouraged"
1004 dnl "confusion between `system' and `release' levels'."
1008 dnl Straightforward machine determination
1009 case "$canonical" in
1010 sparc-*-* ) machine=sparc ;;
1011 alpha*-*-* ) machine=alpha ;;
1012 vax-*-* ) machine=vax ;;
1013 mips-dec-* ) machine=pmax ;;
1014 mips-sgi-* ) machine=iris4d ;;
1015 romp-ibm-* ) machine=ibmrt ;;
1016 rs6000-ibm-aix* ) machine=ibmrs6000 ;;
1017 powerpc-ibm-aix* ) machine=ibmrs6000 ;;
1018 powerpc*-* ) machine=powerpc ;;
1019 hppa-*-* ) machine=hp800 ;;
1020 m88k-dg-* ) machine=aviion ;;
1021 m68*-sony-* ) machine=news ;;
1022 mips-sony-* ) machine=news-risc ;;
1023 clipper-* ) machine=clipper ;;
1024 arm-* ) machine=arm ;;
1025 ns32k-* ) machine=ns32000 ;;
1028 dnl Straightforward OS determination
1029 case "$canonical" in
1030 *-*-linux* ) opsys=linux ;;
1031 *-*-netbsd* ) opsys=netbsd ;;
1032 *-*-openbsd* ) opsys=openbsd ;;
1033 *-*-nextstep* ) opsys=nextstep ;;
1034 *-*-vms ) opsys=vms ;;
1037 *-dec-osf1.3 | *-dec-osf2* ) opsys=decosf1-3 ;;
1038 *-dec-osf1.2 | *-dec-osf1* ) opsys=decosf1-2 ;;
1039 *-dec-osf3.[[2-9]] ) opsys=decosf3-2 ;;
1040 *-dec-osf3* ) opsys=decosf3-1 ;;
1041 *-dec-osf4* ) opsys=decosf4-0 ;;
1044 *-*-ultrix[[0-3]].* | *-*-ultrix4.0* ) opsys=bsd4-2 ;;
1045 *-*-ultrix4.[[12]]* ) opsys=bsd4-3 ;;
1046 *-*-ultrix* ) opsys=ultrix4-3 ;;
1049 *-*-aix3.1* ) opsys=aix3-1 ;;
1050 *-*-aix3.2.5 ) opsys=aix3-2-5 ;;
1051 *-*-aix3* ) opsys=aix3-2 ;;
1052 *-*-aix4.0* ) opsys=aix4 ;;
1053 *-*-aix4.1* ) opsys=aix4-1 ;;
1054 *-*-aix4* ) opsys=aix4-2 ;;
1056 dnl Other generic OSes
1057 *-gnu* ) opsys=gnu ;;
1058 *-*-bsd4.[[01]] ) opsys=bsd4-1 ;;
1059 *-*-bsd4.2 ) opsys=bsd4-2 ;;
1060 *-*-bsd4.3 ) opsys=bsd4-3 ;;
1061 *-*-aos4.2 ) opsys=bsd4-2 ;;
1062 *-*-aos* ) opsys=bsd4-3 ;;
1063 *-*-sysv0 | *-*-sysvr0 ) opsys=usg5-0 ;;
1064 *-*-sysv2 | *-*-sysvr2 ) opsys=usg5-2 ;;
1065 *-*-sysv2.2 | *-*-sysvr2.2 ) opsys=usg5-2-2 ;;
1066 *-*-sysv3* | *-*-sysvr3* ) opsys=usg5-3 ;;
1067 *-*-sysv4.1* | *-*-sysvr4.1* )opsys=usg5-4 NON_GNU_CPP=/usr/lib/cpp ;;
1068 *-*-sysv4.[[2-9]]* | *-sysvr4.[[2-9]]* )
1069 if test -z "$NON_GNU_CPP" ; then
1070 for prog in "/usr/ccs/lib/cpp" "/lib/cpp"; do
1071 if test -f "$prog"; then NON_GNU_CPP="$prog"; break; fi
1075 *-sysv4* | *-sysvr4* ) opsys=usg5-4 ;;
1076 *-*-mach_bsd4.3* ) opsys=mach-bsd4-3 ;;
1079 case "$canonical" in
1083 case "$canonical" in
1084 i[[3-9]]86-*-netbsd*) machine=intel386 ;;
1085 hp300-*-netbsd* | amiga-*-netbsd* | sun3-*-netbsd* | mac68k-*-netbsd* | da30-*-netbsd* | m68k-*-netbsd* )
1086 dnl Yes, this is somewhat bogus.
1087 machine=hp9000s300 ;;
1088 pc532-*-netbsd* | ns32k-*-netbsd* ) machine=ns32000 ;;
1089 pmax-*-netbsd* | mips-*-netbsd* ) machine=pmax ;;
1095 case "${canonical}" in
1096 i386-*-openbsd*) machine=intel386 ;;
1097 m68k-*-openbsd*) machine=hp9000s300 ;;
1098 mipsel-*-openbsd*) machine=pmax ;;
1103 arm-acorn-riscix1.1* ) machine=acorn opsys=riscix1-1 ;;
1104 arm-acorn-riscix1.2* | arm-acorn-riscix ) machine=acorn opsys=riscix1-2 ;;
1106 dnl Alliant machines
1107 fx80-alliant-* ) machine=alliant4 opsys=bsd4-2 ;;
1108 i860-alliant-* ) machine=alliant-2800 opsys=bsd4-3 ;;
1111 m68*-altos-sysv* ) machine=altos opsys=usg5-2 ;;
1114 580-amdahl-sysv* ) machine=amdahl opsys=usg5-2-2 ;;
1116 dnl Apollo, Domain/OS
1117 m68*-apollo-* ) machine=apollo opsys=bsd4-3 ;;
1119 dnl AT&T 3b2, 3b5, 3b15, 3b20
1120 we32k-att-sysv* ) machine=att3b opsys=usg5-2-2 ;;
1122 dnl AT&T 3b1 - The Mighty Unix PC!
1123 m68*-att-sysv* ) machine=7300 opsys=usg5-2-2 ;;
1126 rs6000-bull-bosx* ) machine=ibmrs6000 opsys=aix3-2 ;; # dpx20
1127 m68*-bull-sysv3* ) machine=dpx2 opsys=usg5-3 ;; # dpx2
1128 m68*-bull-sysv2* ) machine=sps7 opsys=usg5-2 ;; # sps7
1130 dnl CCI 5/32, 6/32 -- see "Tahoe".
1133 celerity-celerity-bsd* ) machine=celerity opsys=bsd4-2 ;;
1136 *-convex-bsd* | *-convex-convexos* )
1137 machine=convex opsys=bsd4-3
1138 NON_GNU_CPP="cc -E -P"
1142 i[[3-9]]86-cubix-sysv* ) machine=intel386 opsys=usg5-3 ;;
1144 dnl Data General AViiON Machines
1145 i586-dg-dgux*R4* | i586-dg-dgux5.4.4* ) machine=aviion opsys=dgux5-4r4 ;;
1146 m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* ) opsys=dgux5-4r3 ;;
1147 m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* ) opsys=dgux5-4r2 ;;
1148 m88k-dg-dgux* ) opsys=dgux ;;
1150 dnl Motorola Delta machines
1151 m68k-motorola-sysv* | m68000-motorola-sysv* ) machine=delta opsys=usg5-3 ;;
1152 m88k-motorola-sysv4* )
1153 dnl jbotte@bnr.ca says that UNIX_System_V <hostName> 4.0 R40V4.3 m88k mc88110
1154 dnl needs POSIX_SIGNALS and therefore needs usg5-4-2.
1155 dnl I hope there are not other 4.0 versions for this machine
1156 dnl which really need usg5-4 instead.
1157 machine=delta88k opsys=usg5-4-2
1159 m88k-motorola-sysv* | m88k-motorola-m88kbcs* ) machine=delta88k opsys=usg5-3 ;;
1162 m68*-dual-sysv* ) machine=dual opsys=usg5-2 ;;
1163 m68*-dual-uniplus* ) machine=dual opsys=unipl5-2 ;;
1166 ns16k-encore-bsd* ) machine=ns16000 opsys=umax ;;
1168 dnl Gould Power Node and NP1
1169 pn-gould-bsd4.2* ) machine=gould opsys=bsd4-2 ;;
1170 pn-gould-bsd4.3* ) machine=gould opsys=bsd4-3 ;;
1171 np1-gould-bsd* ) machine=gould-np1 opsys=bsd4-3 ;;
1173 dnl Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000
1174 dnl as far as XEmacs is concerned).
1176 dnl Build needs to be different on 7.0 and later releases
1177 case "`uname -r`" in
1178 [[56]].[[0-9]] ) machine=nh4000 opsys=cxux ;;
1179 [[7]].[[0-9]] ) machine=nh4000 opsys=cxux7 ;;
1181 NON_GNU_CPP="/lib/cpp"
1183 dnl Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
1184 m68k-harris-cxux* ) machine=nh3000 opsys=cxux ;;
1185 dnl Harris power pc NightHawk running Power UNIX (Series 6000)
1186 powerpc-harris-powerunix ) machine=nh6000 opsys=powerunix NON_GNU_CPP="cc -Xo -E -P" ;;
1188 dnl Honeywell XPS100
1189 xps*-honeywell-sysv* ) machine=xps100 opsys=usg5-2 ;;
1191 dnl HP 9000 series 200 or 300
1192 m68*-hp-bsd* ) machine=hp9000s300 opsys=bsd4-3 ;;
1196 dnl Figure out machine and opsys orthogonally
1197 case "$canonical" in
1198 m68* ) machine=hp9000s300 ;;
1199 hppa* ) machine=hp800 ;;
1202 case "$canonical" in
1203 *-hp-hpux7* ) opsys=hpux ;;
1204 *-hp-hpux8* ) opsys=hpux8 ;;
1205 *-hp-hpux9* ) opsys=hpux9 ;;
1206 *-hp-hpux10* ) opsys=hpux10 ;;
1207 *-hp-hpux11* ) opsys=hpux11 ;;
1211 dnl HP has a broken "strcat"
1212 case "$opsys" in hpux9 | hpux10 ) XE_ADD_OBJS(strcat.o) ;; esac
1214 if test "$opsys" = "hpux10" -o "$opsys" = "hpux11"; then \
1215 ansi_flag="-Ae"; else ansi_flag="-Aa"; fi
1216 NON_GNU_CC="cc $ansi_flag" NON_GNU_CPP="cc $ansi_flag -E"
1218 case "$canonical" in *-hp-hpux*shr* ) opsys="${opsys}-shr" ;; esac
1222 orion-orion-bsd* ) machine=orion opsys=bsd4-2 ;;
1223 clipper-orion-bsd* ) machine=orion105 opsys=bsd4-2 ;;
1226 i[[3-9]]86-ibm-aix1.1* ) machine=ibmps2-aix opsys=usg5-2-2 ;;
1227 i[[3-9]]86-ibm-aix1.[[23]]* | i[[3-9]]86-ibm-aix* ) machine=ibmps2-aix opsys=usg5-3 ;;
1228 i370-ibm-aix*) machine=ibm370aix opsys=usg5-3 ;;
1229 romp-ibm-aos* ) opsys=bsd4-3 ;;
1230 romp-ibm-bsd* ) opsys=bsd4-3 ;;
1231 romp-ibm-mach* ) opsys=mach-bsd4-3 ;;
1233 dnl Integrated Solutions "Optimum V"
1234 m68*-isi-bsd4.2* ) machine=isi-ov opsys=bsd4-2 ;;
1235 m68*-isi-bsd4.3* ) machine=isi-ov opsys=bsd4-3 ;;
1237 dnl Intel 386 machines where we do care about the manufacturer
1238 i[[3-9]]86-intsys-sysv* ) machine=is386 opsys=usg5-2-2 ;;
1241 i[[3-9]]86-prime-sysv* ) machine=i386 opsys=usg5-3 ;;
1243 dnl Sequent Symmetry running Dynix
1244 i[[3-9]]86-sequent-bsd* ) machine=symmetry opsys=bsd4-3 ;;
1246 dnl Sequent Symmetry running DYNIX/ptx
1247 i[[3-9]]86-sequent-ptx* ) machine=sequent-ptx opsys=ptx NON_GNU_CPP="/lib/cpp" ;;
1249 dnl Unspecified sysv on an ncr machine defaults to svr4.2.
1250 dnl (Plain usg5-4 does not turn on POSIX signals, which we need.)
1251 i[[3-9]]86-ncr-sysv* ) machine=ncr386 opsys=usg5-4-2 ;;
1253 dnl Intel Paragon OSF/1
1254 i860-intel-osf1* ) machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp ;;
1257 i860-*-sysv4* ) machine=i860 opsys=usg5-4 NON_GNU_CC="/bin/cc" NON_GNU_CPP="/usr/ccs/lib/cpp" ;;
1259 dnl Masscomp machines
1260 m68*-masscomp-rtu* ) machine=masscomp opsys=rtu ;;
1262 dnl Megatest machines
1263 m68*-megatest-bsd* ) machine=mega68 opsys=bsd4-2 ;;
1265 dnl Workstations sold by MIPS
1266 dnl This is not necessarily all workstations using the MIPS processor -
1267 dnl Irises are produced by SGI, and DECstations by DEC.
1268 mips-mips-usg* ) machine=mips4 ;;
1271 NON_GNU_CC="cc -systype bsd43"
1272 NON_GNU_CPP="cc -systype bsd43 -E"
1273 case "$canonical" in
1274 mips-mips-riscos4* ) opsys=bsd4-3 ;;
1275 mips-mips-riscos5* ) opsys=riscos5 ;;
1278 mips-mips-bsd* ) machine=mips opsys=bsd4-3 ;;
1279 mips-mips-* ) machine=mips opsys=usg5-2-2 ;;
1282 m68*-next-* | m68k-*-nextstep* ) machine=m68k opsys=nextstep ;;
1284 dnl The complete machine from National Semiconductor
1285 ns32k-ns-genix* ) machine=ns32000 opsys=usg5-2 ;;
1288 m68*-ncr-sysv2* | m68*-ncr-sysvr2* ) machine=tower32 opsys=usg5-2-2 ;;
1289 m68*-ncr-sysv3* | m68*-ncr-sysvr3* ) machine=tower32v3 opsys=usg5-3 ;;
1291 dnl Nixdorf Targon 31
1292 m68*-nixdorf-sysv* ) machine=targon31 opsys=usg5-2-2 ;;
1295 m68*-nu-sysv* ) machine=nu opsys=usg5-2 ;;
1298 m68*-plexus-sysv* ) machine=plexus opsys=usg5-2 ;;
1300 dnl Pyramid machines
1301 pyramid-pyramid-bsd* ) machine=pyramid opsys=bsd4-2 ;;
1304 ns32k-sequent-bsd4.2* ) machine=sequent opsys=bsd4-2 ;;
1305 ns32k-sequent-bsd4.3* ) machine=sequent opsys=bsd4-3 ;;
1308 mips-siemens-sysv* | mips-sni-sysv*)
1309 machine=mips-siemens opsys=usg5-4
1310 NON_GNU_CC=/usr/ccs/bin/cc
1311 NON_GNU_CPP=/usr/ccs/lib/cpp
1317 NON_GNU_CC=/usr/ccs/bin/cc
1318 NON_GNU_CPP=/usr/ccs/lib/cpp
1321 dnl Silicon Graphics machines
1322 dnl Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
1323 m68*-sgi-iris3.5* ) machine=irist opsys=iris3-5 ;;
1324 m68*-sgi-iris3.6* | m68*-sgi-iris*) machine=irist opsys=iris3-6 ;;
1326 mips-sgi-irix3.* ) opsys=irix3-3 ;;
1327 mips-sgi-irix4.* ) opsys=irix4-0 ;;
1328 mips-sgi-irix6* ) opsys=irix6-0 ;;
1329 mips-sgi-irix5.1* ) opsys=irix5-1 ;;
1330 mips-sgi-irix5.2* ) opsys=irix5-2 ;;
1331 mips-sgi-irix5.* ) opsys=irix5-3 ;;
1332 mips-sgi-irix* ) opsys=irix5-0 ;;
1335 *-sony-newsos[[34]]* | *-sony-news[[34]]* ) opsys=bsd4-3 ;;
1336 *-sony-news* ) opsys=newsos5 ;;
1339 m68*-stride-sysv* ) machine=stride opsys=usg5-2 ;;
1342 *-*-solaris* | *-*-sunos* | *-sun-mach* | *-sun-bsd* )
1344 case "$canonical" in
1345 m68*-sunos1* ) machine=sun1 ;;
1346 m68*-sunos2* ) machine=sun2 ;;
1347 m68* ) machine=sun3 ;;
1348 i*86*-sun-sunos[[34]]* ) machine=sun386 ;;
1349 i*86-*-* ) machine=intel386 ;;
1350 rs6000* ) machine=rs6000 ;;
1353 dnl Make $canonical even more so.
1354 case "$canonical" in *-sunos5*)
1355 canonical=`echo $canonical | sed -e s/sunos5/solaris2/`;;
1358 dnl On SunOS 4, use /usr/lib/cpp, sans dynodump, /bin/ranlib
1359 dnl On SunOS 5, use cc -E, need dynodump, RANLIB not needed
1360 dnl But, SunOS 5.6 no longer needs dynodump because it has a similar
1361 dnl function integrated.
1362 case "$canonical" in
1364 #test -f /usr/lib/cpp && NON_GNU_CPP=/usr/lib/cpp ;;
1367 #test -f /usr/ccs/lib/cpp && NON_GNU_CPP=/usr/ccs/lib/cpp
1371 case "$canonical" in
1374 os_release=`uname -r | sed -e 's/^\([[0-9]]\)\.\([[0-9]]\).*/\1\2/'`
1375 AC_DEFINE_UNQUOTED(OS_RELEASE, $os_release) ;;
1377 dnl The last Sun386 ran 4.0.
1378 i*86-*-sunos4* ) opsys=sunos4-0 ;;
1379 *-sunos4.0* ) opsys=sunos4-0 ;;
1380 *-sunos4.1.2* ) opsys=sunos4-1-2 ;;
1381 *-sunos4.1.3* ) opsys=sunos4-1-3 ;;
1382 *-sunos4.1.[[4-9]]* ) opsys=sunos4-1-4 ;;
1383 *-sunos4* | *-sunos ) opsys=sunos4-1 ;;
1384 *-mach* ) opsys=mach-bsd4-3 ;;
1388 case "$canonical" in *-sunos4*shr* ) opsys="${opsys}-shr" ;; esac
1390 dnl Watch out for a compiler guaranteed not to work.
1391 test "$opsys $CC" = "sol2 /usr/ucb/cc" && CC=""
1395 m68*-tadpole-sysv* ) machine=tad68k opsys=usg5-3 ;;
1398 tahoe-tahoe-bsd4.2* ) machine=tahoe opsys=bsd4-2 ;;
1399 tahoe-tahoe-bsd4.3* ) machine=tahoe opsys=bsd4-3 ;;
1401 dnl Tandem Integrity S2
1402 mips-tandem-sysv* ) machine=tandem-s2 opsys=usg5-3 ;;
1405 m88k-tektronix-sysv3* ) machine=tekxd88 opsys=usg5-3 ;;
1407 dnl Tektronix 16000 box (6130?)
1408 ns16k-tektronix-bsd* ) machine=ns16000 opsys=bsd4-2 ;;
1410 dnl src/m/tek4300.h hints that this is a m68k machine.
1411 m68*-tektronix-bsd* ) machine=tek4300 opsys=bsd4-3 ;;
1414 titan-titan-sysv* ) machine=titan opsys=usg5-3 ;;
1416 dnl Ustation E30 (SS5E)
1417 m68*-unisys-uniplus* ) machine=ustation opsystem=unipl5-2 ;;
1421 case "$canonical" in
1422 *-sysv[[01]]* | *-sysvr[[01]]* ) opsys=usg5-0 ;;
1423 *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;;
1424 *-mach* ) opsys=mach-bsd4-3 ;;
1429 ns16k-whitechapel-* ) machine=mg1 ;;
1432 m68*-wicat-sysv* ) machine=wicat opsys=usg5-2 ;;
1434 dnl Intel 386 machines where we do not care about the manufacturer
1437 case "$canonical" in
1438 *-isc1.* | *-isc2.[[01]]* ) opsys=386-ix ;;
1439 *-isc2.2* ) opsys=isc2-2 ;;
1440 *-isc4.0* ) opsys=isc4-0 ;;
1441 *-isc4.* ) opsys=isc4-1
1442 GCC_TEST_OPTIONS=-posix
1443 NON_GCC_TEST_OPTIONS=-Xp
1445 *-isc* ) opsys=isc3-0 ;;
1446 *-esix5* ) opsys=esix5r4 NON_GNU_CPP=/usr/lib/cpp ;;
1447 *-esix* ) opsys=esix ;;
1448 *-mach* ) opsys=mach-bsd4-3 ;;
1449 *-xenix* ) opsys=xenix ;;
1450 *-sco3.2v4* ) opsys=sco4 NON_GNU_CPP=/lib/cpp ;;
1451 *-bsd386* | *-bsdi1* ) opsys=bsd386 ;;
1452 *-bsdi3* ) opsys=bsdos3 ;;
1453 *-bsdi2.1* ) opsys=bsdos2-1 ;;
1454 *-bsdi2* ) opsys=bsdos2 ;;
1455 *-sco3.2v5* ) opsys=sco5 ;
1456 dnl This is a pain. Like the current USL cc, SCO cc -E
1457 dnl tokenizes as it preprocesses, making configure very
1458 dnl unhappy. Unfortunately, /lib/cpp does not understand
1459 dnl flags like "-b elf", so we have to cheat in order to
1460 dnl pick up the right defines for UNEXEC from the s-file.
1461 dnl 01/05/95 robertl@dgii.com
1462 if test "$dynamic" = "yes" ; then
1463 NON_GNU_CPP="/lib/cpp -D_XOPEN_SOURCE -D_SCO_ELF" ;
1465 NON_GNU_CPP="/lib/cpp -D_XOPEN_SOURCE" ;
1467 *-386bsd* ) opsys=386bsd ;;
1468 *-freebsd* ) opsys=freebsd ;;
1469 *-nextstep* ) opsys=nextstep ;;
1470 *-pc-cygwin32 ) opsys=cygwin32 ;;
1471 dnl Otherwise, we fall through to the generic opsys code at the bottom.
1476 m68k-*-linux* ) machine=m68k opsys=linux ;;
1480 if test -z "$machine" -o -z "$opsys"; then
1481 (echo "$progname: XEmacs hasn't been ported to \`$canonical' systems."
1482 echo "$progname: Check \`etc/MACHINES' for recognized configuration names."
1487 if test -z "$dynamic"; then
1489 hpux* | sunos4* | sco5 ) dynamic=no ;;
1493 if test "$dynamic" = "yes"; then
1495 hpux* | sunos4* | sco5 ) opsys="${opsys}-shr" ;;
1496 decosf* ) ld_call_shared="-call_shared" ;;
1498 else dnl "$dynamic" = "no"
1501 echo "Static linking is not supported on Solaris 2."
1502 echo "Rerun configure without specifying --dynamic=no."
1504 linux ) ld_call_shared="-Bstatic" ;;
1505 decosf* ) ld_call_shared="-non_shared" ;;
1509 dnl Use xlc by default on AIX
1510 case "$opsys" in aix*) NON_GNU_CC=xlc ;; esac
1512 stack_trace_eye_catcher=`echo ${PROGNAME}_${version}_${canonical} | sed 'y/.-/__/'`
1513 AC_DEFINE_UNQUOTED(STACK_TRACE_EYE_CATCHER, $stack_trace_eye_catcher)
1515 machfile="m/${machine}.h"
1516 opsysfile="s/${opsys}.h"
1518 dnl --------------------------------------------------
1519 dnl Determine the compiler, set up for feature testing
1520 dnl --------------------------------------------------
1522 dnl Sun Development environment support
1523 test "$with_sparcworks" = "yes" && with_workshop=yes # compatibility alias
1524 XE_CHECK_FEATURE_DEPENDENCY(workshop, tooltalk)
1525 if test "$with_workshop" = "yes"; then
1527 XE_ADD_OBJS(sunpro.o)
1530 if test "$with_clash_detection" = "yes"; then
1531 AC_DEFINE(CLASH_DETECTION)
1532 XE_ADD_OBJS(filelock.o)
1535 dnl Choose a compiler from (in order)
1536 dnl --compiler, env var CC, with_gcc=no && ${NON_GNU_CC:-cc}, AC_PROG_CC
1537 test -n "$compiler" && CC="$compiler"
1538 if test "$with_gcc" = "no"; then dnl Try to find a non-gcc compiler
1539 case "$CC" in "" | *gcc* ) CC="${NON_GNU_CC-cc}" ;; esac
1542 dnl If we don't set CFLAGS here, AC_PROG_CC will set it.
1543 dnl But we know better what's good for us, so we do our own
1544 dnl computation of real CFLAGS later.
1545 dnl --cflags overrides environment variable CFLAGS
1546 test "${cflags-unset}" != unset && CFLAGS="$cflags"
1547 if test "${CFLAGS-unset}" != unset
1548 then cflags_specified=yes;
1549 else cflags_specified=no;
1552 xe_save_CFLAGS="$CFLAGS"
1554 AC_PROG_CC dnl Autoconf has its own magic for compiler autodetection
1556 dnl Retry using random guesswork if AC_PROG_CC got it wrong...
1557 if test "$with_gcc" = "no" -a "$GCC" = "yes"; then
1560 elif test "$with_gcc" = "yes" -a "$GCC" != "yes" ; then
1564 CFLAGS="$xe_save_CFLAGS"
1566 dnl Figure out what C preprocessor to use.
1568 dnl On Sun systems, people sometimes set up the variable CPP
1569 dnl with a value that is a directory, not an executable at all.
1570 dnl Detect that case, and ignore that value.
1571 test -n "$CPP" -a -d "$CPP" && CPP=
1573 test -n "$NON_GNU_CPP" -a "$GCC" != "yes" -a -z "$CPP" && CPP="$NON_GNU_CPP"
1579 AC_MSG_CHECKING(for GNU libc)
1580 AC_TRY_COMPILE([#include <features.h>],[
1581 #if ! (defined __GLIBC__ || defined __GNU_LIBRARY__)
1582 #error Not a GNU libc system :-(
1583 ******* ======= ******** &&&&&&&&
1585 ], have_glibc=yes, have_glibc=no)
1586 AC_MSG_RESULT($have_glibc)
1587 dnl I'm tired of pop being broken with GLIBC -slb
1588 dnl Well. then why not fix fucking pop?
1589 test "$have_glibc" = "yes" && AC_DEFINE(_GNU_SOURCE)
1592 dnl Identify compilers to enable compiler-specific hacks.
1593 dnl Add support for other compilers HERE!
1594 dnl GCC is already identified elsewhere.
1595 AC_TRY_RUN([int main () {
1596 #if defined __SUNPRO_C
1598 #elif defined __DECC
1604 [case "$conftest_rc" in
1605 11) echo "You appear to be using the SunPro C compiler."; __SUNPRO_C=yes ;;
1606 12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;;
1610 dnl case "$canonical" in
1611 dnl *-sun-sunos* ) test "$CPP" = "acc -E" && CPP="acc -E -Xs" ;;
1614 dnl --------------------------------------------------------------------
1615 dnl Extract some information from the operating system and machine files
1616 dnl --------------------------------------------------------------------
1618 echo "Extracting information from the machine- and system-dependent headers..."
1620 dnl It is not important that this name contain the PID; you cannot run
1621 dnl two configures in the same directory and have anything work
1623 tempcname="conftest.c"
1625 dnl CPP_to_sh(CPP_SYMBOL, SH_VAR, DEFAULT_VALUE)
1628 [#]define [$1]ifelse([$3],,, [ "$3"])
1630 configure___ [$2]=[$1]
1633 dnl CPP_boolean_to_sh(CPP_SYMBOL, SH_VAR)
1634 define([CPP_boolean_to_sh],
1636 configure___ [$2]=yes
1638 configure___ [$2]=no
1640 ])dnl CPP_boolean_to_sh
1642 cat > $tempcname <<EOF
1644 #define C_SWITCH_SITE
1645 #define C_SWITCH_X_SITE
1646 #define LD_SWITCH_SITE
1647 #define LD_SWITCH_X_SITE
1648 #define LD_SWITCH_X_SITE_AUX
1649 #define OS_RELEASE $os_release
1650 #include "$srcdir/src/$opsysfile"
1651 #include "$srcdir/src/$machfile"
1653 CPP_to_sh(LIBS_MACHINE, libs_machine)
1654 CPP_to_sh(LIBS_SYSTEM, libs_system)
1655 CPP_to_sh(LIBS_TERMCAP, libs_termcap)
1656 CPP_to_sh(LIB_STANDARD, libs_standard)
1658 CPP_to_sh(OBJECTS_MACHINE, objects_machine)
1659 CPP_to_sh(OBJECTS_SYSTEM, objects_system)
1661 CPP_to_sh(C_SWITCH_MACHINE, c_switch_machine)
1662 CPP_to_sh(C_SWITCH_SYSTEM, c_switch_system)
1664 CPP_to_sh(LD_SWITCH_MACHINE, ld_switch_machine)
1665 CPP_to_sh(LD_SWITCH_SYSTEM, ld_switch_system)
1667 CPP_to_sh(UNEXEC, unexec, unexec.o)
1669 CPP_to_sh(LD_SWITCH_SHARED, ld_switch_shared, -c)
1671 #ifdef ORDINARY_LINK
1672 #define LD "\$(CC) \$(CFLAGS)"
1673 #else /* no ORDINARY LINK */
1674 #ifdef COFF_ENCAPSULATE
1675 #define LD "\$(CC) -nostdlib"
1676 #else /* not COFF_ENCAPSULATE */
1679 #else /* ! defined (LINKER) */
1681 #endif /* ! defined (LINKER) */
1682 #endif /* ! defined (COFF_ENCAPSULATE) */
1683 #endif /* not ORDINARY_LINK */
1686 CPP_to_sh(LIB_GCC, lib_gcc)
1687 CPP_to_sh(LD_TEXT_START_ADDR, ld_text_start_addr)
1689 #if ! defined (ORDINARY_LINK) && !defined (START_FILES)
1691 #ifdef COFF_ENCAPSULATE
1692 #define START_FILES "pre-crt0.o /usr/local/lib/gcc-crt0.o"
1693 #else /* ! defined (COFF_ENCAPSULATE) */
1694 #define START_FILES "pre-crt0.o /lib/crt0.o"
1695 #endif /* ! defined (COFF_ENCAPSULATE) */
1696 #else /* ! defined (NO_REMAP) */
1697 #define START_FILES "ecrt0.o"
1698 #endif /* ! defined (NO_REMAP) */
1699 #endif /* no ORDINARY_LINK */
1703 configure___ start_files=START_FILES
1705 CPP_boolean_to_sh(ORDINARY_LINK, ordinary_link)
1706 CPP_boolean_to_sh(SYSTEM_MALLOC, system_malloc)
1707 CPP_boolean_to_sh(TERMINFO, have_terminfo)
1708 CPP_boolean_to_sh(MAIL_USE_FLOCK, mail_use_flock)
1709 CPP_boolean_to_sh(MAIL_USE_LOCKF, mail_use_lockf)
1712 dnl The value of CPP is a quoted variable reference, so we need to do this
1713 dnl to get its actual value...
1714 CPP=`eval "echo $CPP $CPPFLAGS"`
1717 eval `$CPP -Isrc $tempcname \
1718 | sed -n -e "s/[ TAB]*=[ TAB\"]*/='/" -e "s/[ TAB\"]*\$/'/" -e "s/^configure___//p"`
1719 changequote([, ])dnl
1723 dnl For debugging...
1724 test "$extra_verbose" = "yes" && \
1725 PRINT_VAR(libs_machine libs_system libs_termcap libs_standard
1726 objects_machine objects_system c_switch_machine c_switch_system
1727 ld_switch_machine ld_switch_system unexec ld_switch_shared
1728 ld lib_gcc ld_text_start_addr start_files ordinary_link
1729 have_terminfo mail_use_flock mail_use_lockf) && echo ""
1731 dnl Non-ordinary link usually requires -lc
1732 test "$ordinary_link" = "no" -a -z "$libs_standard" && libs_standard="-lc"
1734 dnl Compiler-specific hacks
1735 dnl DEC C requires -std
1736 test "$__DECC" = "yes" && XE_APPEND(-std, c_switch_site)
1738 dnl Calculalate value of CFLAGS:
1739 dnl Use either command line flag, environment var, or autodetection
1740 if test "$cflags_specified" = "no"; then
1741 dnl Following values of CFLAGS are known to work well.
1742 dnl Should we take debugging options into consideration?
1743 if test "$GCC" = "yes"; then
1744 CFLAGS="-g -O3 -Wall -Wno-switch"
1745 dnl I'm not convinced this is a good idea any more. -sb
1746 dnl test "$opsys $machine" = "linux intel386" && \
1747 dnl CFLAGS="$CFLAGS -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2"
1748 dnl cygwin can't cope with -O3
1749 test "$opsys $machine" = "cygwin32 intel386" && \
1750 CFLAGS="-g -O2 -Wall -Wno-switch"
1751 elif test "$__SUNPRO_C" = "yes"; then
1753 sol2 ) CFLAGS="-v -xO4" ;;
1754 sunos4* ) CFLAGS="-xO2";;
1756 elif test "$__DECC" = "yes"; then
1758 elif test "$CC" = "xlc"; then
1759 CFLAGS="-g -O3 -qstrict -qnoansialias -qlibansi -qinfo -qro -qmaxmem=20000"
1760 dnl ### Add optimal CFLAGS support for other compilers HERE!
1762 CFLAGS="-O" ;dnl The only POSIX-approved flag
1766 dnl Inform compiler that certain flags are meant for the linker
1767 dnl XE_PROTECT_LINKER_FLAGS(shell_var)
1768 define([XE_PROTECT_LINKER_FLAGS], [
1769 if test "$GCC" = "yes"; then
1770 set x $[$1]; shift; [$1]=""
1771 while test -n "[$]1"; do
1773 -L | -l | -u ) [$1]="$[$1] [$]1 [$]2"; shift ;;
1774 -L* | -l* | -u* | -Wl* | -pg ) [$1]="$[$1] [$]1" ;;
1776 * ) [$1]="$[$1] -Xlinker [$]1" ;;
1781 XE_PROTECT_LINKER_FLAGS(ld_switch_system)
1782 XE_PROTECT_LINKER_FLAGS(ld_switch_machine)
1783 XE_PROTECT_LINKER_FLAGS(LDFLAGS)
1784 XE_PROTECT_LINKER_FLAGS(ld_call_shared)
1786 dnl Add s&m-determined objects (including unexec) to link line
1787 test -n "$objects_machine" && XE_ADD_OBJS($objects_machine)
1788 test -n "$objects_system" && XE_ADD_OBJS($objects_system)
1789 test -n "$unexec" && XE_ADD_OBJS($unexec)
1791 dnl Dynodump (Solaris 2.x, x<6)
1792 AC_MSG_CHECKING(for dynodump)
1793 if test "$unexec" != "unexsol2.o"; then
1798 XE_APPEND(dynodump, MAKE_SUBDIR)
1799 XE_APPEND(dynodump, SRC_SUBDIR_DEPS)
1801 sparc ) dynodump_arch=sparc ;;
1802 *86* ) dynodump_arch=i386 ;;
1803 powerpc ) dynodump_arch=ppc ;;
1805 dnl Dynodump requires the system linker
1806 test "$GCC" = "yes" && XE_APPEND(-fno-gnu-linker, ld_switch_site)
1809 dnl Feed s&m crud to src/Makefile
1811 dnl Linux/powerpc needs the following magic for some reason
1812 test "$machine$opsys" = "powerpclinux" && start_flags="-T $srcdir/src/ppc.ldscript"
1814 if test "$unexec" = "unexaix.o"; then
1815 dnl AIX needs various hacks to make static linking work.
1816 if test "$dynamic" = "no"; then
1817 start_flags="-Wl,-bnso,-bnodelcsect"
1818 test "$GCC" = "yes" && start_flags="-B/bin/ ${start_flags}"
1819 for f in "/lib/syscalls.exp" "/lib/threads.exp"; do
1820 if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; fi
1822 for f in "/usr/lpp/X11/bin/smt.exp" "/usr/bin/X11/smt.exp"; do
1823 if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; break; fi
1825 AC_CHECK_LIB(C, terminateAndUnload, XE_APPEND(-lC, libs_system))
1827 elif test -n "$ld_text_start_addr"; then
1828 start_flags="-T $ld_text_start_addr -e __start"
1830 AC_SUBST(start_flags)
1832 AC_SUBST(ld_switch_shared)
1833 AC_SUBST(start_files)
1834 if test "$ordinary_link" = "no" -a "$GCC" = "yes"; then
1835 test -z "$linker" && linker='$(CC) -nostdlib'
1836 test -z "$lib_gcc" && lib_gcc='`$(CC) -print-libgcc-file-name`'
1838 test "$GCC" != "yes" && lib_gcc=
1842 dnl ---------------------------------------------------------------
1843 dnl Add site and system specific flags to compile and link commands
1844 dnl ---------------------------------------------------------------
1846 dnl Allow use of either ":" or spaces for lists of directories
1847 define(COLON_TO_SPACE,
1848 [case "$[$1]" in *:* [)] [$1]="`echo '' $[$1] | sed -e 's/^ //' -e 's/:/ /g'`";; esac])dnl
1850 dnl --site-libraries (multiple dirs)
1851 COLON_TO_SPACE(site_libraries)
1852 if test -n "$site_libraries"; then
1853 for arg in $site_libraries; do
1856 * ) test -d "$arg" || \
1857 XE_DIE("Invalid site library \`$arg': no such directory")
1860 XE_APPEND($arg, ld_switch_site)
1864 dnl --site-includes (multiple dirs)
1865 COLON_TO_SPACE(site_includes)
1866 if test -n "$site_includes"; then
1867 for arg in $site_includes; do
1870 * ) test -d "$arg" || \
1871 XE_DIE("Invalid site include \`$arg': no such directory")
1874 XE_APPEND($arg, c_switch_site)
1878 dnl --site-prefixes (multiple dirs)
1879 dnl --site-prefixes=dir1:dir2 is a convenient shorthand for
1880 dnl --site-libraries=dir1/lib:dir2/lib --site-includes=dir1/include:dir2/include
1881 dnl Site prefixes take precedence over the standard places, but not over
1882 dnl site-includes and site-libraries.
1883 COLON_TO_SPACE(site_prefixes)
1884 if test -n "$site_prefixes"; then
1885 for dir in $site_prefixes; do
1886 inc_dir="${dir}/include"
1887 lib_dir="${dir}/lib"
1888 if test ! -d "$dir"; then
1889 XE_DIE("Invalid site prefix \`$dir': no such directory")
1890 elif test ! -d "$inc_dir"; then
1891 XE_DIE("Invalid site prefix \`$dir': no such directory \`$inc_dir'")
1892 elif test ! -d "$lib_dir"; then
1893 XE_DIE("Invalid site prefix \`$dir': no such directory \`$lib_dir'")
1895 XE_APPEND("-I$inc_dir", c_switch_site)
1896 XE_APPEND("-L$lib_dir", ld_switch_site)
1901 dnl GNU software installs by default into /usr/local/{include,lib}
1902 dnl if test -d "/usr/local/include" -a -d "/usr/local/lib"; then
1903 dnl XE_APPEND("-L/usr/local/lib", ld_switch_site)
1904 dnl XE_APPEND("-I/usr/local/include", c_switch_site)
1907 dnl Extra system-specific library directories - please add to list
1908 for dir in "/usr/ccs/lib"; do
1909 test -d "$dir" && XE_APPEND(-L${dir}, ld_switch_site)
1912 dnl --site-runtime-libraries (multiple dirs)
1913 COLON_TO_SPACE(site_runtime_libraries)
1914 if test -n "$site_runtime_libraries"; then
1915 LD_RUN_PATH="`echo $site_runtime_libraries | sed -e 's/ */:/g'`"
1919 dnl -------------------------------------
1920 dnl Compute runtime library path
1921 dnl -------------------------------------
1923 if test "$dynamic" = "no"; then add_runtime_path=no
1924 elif test -n "$LD_RUN_PATH"; then add_runtime_path=yes
1925 else case "$opsys" in
1926 sol2 | irix* | *bsd* | decosf* ) add_runtime_path=yes ;;
1927 * ) add_runtime_path=no ;;
1931 if test "$add_runtime_path" = "yes"; then
1932 dnl Try to autodetect runtime library flag (usually -R),
1933 dnl and whether it works (or at least does no harm)
1934 AC_MSG_CHECKING("for runtime libraries flag")
1936 sol2 ) dash_r="-R" ;;
1937 decosf* | linux* ) dash_r="-rpath " ;;
1940 for try_dash_r in "-R" "-R " "-rpath "; do
1941 xe_check_libs="${try_dash_r}/no/such/file-or-directory"
1942 XE_PROTECT_LINKER_FLAGS(xe_check_libs)
1943 AC_TRY_LINK(, , dash_r="$try_dash_r")
1945 test -n "$dash_r" && break
1948 if test -n "$dash_r";
1949 then AC_MSG_RESULT("\"${dash_r}\"")
1950 else AC_MSG_RESULT(NONE)
1954 xe_add_unique_runpath_dir='
1956 for xe_dir in $runpath_dirs; do dnl Uniquify
1957 test "$xe_dir" = "$xe_runpath_dir" && xe_add_p=no
1959 if test "$xe_add_p" = "yes"; then
1960 test -n "$runpath" && runpath="${runpath}:"
1961 runpath="${runpath}${xe_runpath_dir}"
1962 runpath_dirs="$runpath_dirs $xe_runpath_dir"
1966 dnl XE_ADD_RUNPATH_DIR(directory)
1967 define([XE_ADD_RUNPATH_DIR],[{
1969 dnl PRINT_VAR(ld_switch_site ld_switch_x_site runpath xe_runpath_dir LD_RUN_PATH xe_ldflags)
1970 test "$xe_runpath_dir" != "/lib" -a \
1971 "$xe_runpath_dir" != "/usr/lib" -a \
1972 -n "`ls ${xe_runpath_dir}/*.s[[ol]] 2>/dev/null`" && \
1973 eval "$xe_add_unique_runpath_dir"
1976 dnl XE_COMPUTE_RUNPATH()
1977 define([XE_COMPUTE_RUNPATH],[
1978 if test "$add_runtime_path" = "yes" -a -n "$dash_r"; then
1979 dnl Remove runtime paths from current ld switches
1980 ld_switch_site=`echo '' $ld_switch_site | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"`
1981 ld_switch_x_site=`echo '' $ld_switch_x_site | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"`
1982 dnl PRINT_VAR(ld_switch_site ld_switch_x_site)
1984 dnl Fix up Runtime path
1985 dnl If LD_RUN_PATH is set in environment, use that.
1986 dnl In this case, assume user has set the right value.
1987 runpath="" runpath_dirs=""
1988 if test -n "$LD_RUN_PATH"; then
1989 runpath="$LD_RUN_PATH"
1990 elif test "$GCC" = "yes"; then
1991 dnl Compute runpath from gcc's -v output
1992 ld_switch_run_save="$ld_switch_run"; ld_switch_run=""
1993 echo "int main(int argc, char *argv[[]]) {return 0;}" > conftest.c
1994 xe_runpath_link='${CC-cc} -o conftest -v $CFLAGS '"$xe_ldflags"' conftest.$ac_ext 2>&1 1>/dev/null'
1995 for arg in `eval "$xe_runpath_link" | grep ' -L'`; do
1996 case "$arg" in P,* | -L* | -R* )
1997 for dir in `echo '' "$arg" | sed -e 's:^ ::' -e 's/^..//' -e 'y/:/ /'`; do
1998 XE_ADD_RUNPATH_DIR("$dir")
2002 ld_switch_run="$ld_switch_run_save"
2005 dnl Add all directories with .so files to runpath
2006 for arg in $ld_switch_site $ld_switch_x_site; do
2007 case "$arg" in -L*) XE_ADD_RUNPATH_DIR(`echo '' "$arg" | sed -e 's:^ ::' -e 's/^-L//'`);; esac
2009 dnl Sometimes /opt/SUNWdt/lib is the only installed Motif available
2010 if test "$opsys $need_motif" = "sol2 yes"; then
2011 xe_runpath_dir="/opt/SUNWdt/lib";
2012 eval "$xe_add_unique_runpath_dir";
2014 fi dnl Compute $runpath
2016 if test -n "$runpath"; then
2017 ld_switch_run="${dash_r}${runpath}"
2018 XE_PROTECT_LINKER_FLAGS(ld_switch_run)
2019 test "$extra_verbose" = "yes" && echo "Setting runpath to $runpath"
2023 XE_COMPUTE_RUNPATH()
2025 dnl -----------------------------------
2026 dnl Do some misc autoconf-special tests
2027 dnl -----------------------------------
2029 dnl Do the opsystem or machine files prohibit the use of the GNU malloc?
2030 dnl Assume not, until told otherwise.
2032 if test "$with_dlmalloc" != "no"; then
2037 after_morecore_hook_exists=yes
2038 AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
2039 AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
2040 AC_MSG_CHECKING(whether __after_morecore_hook exists)
2041 AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
2042 [AC_MSG_RESULT(yes)],
2044 after_morecore_hook_exists=no])
2045 if test "$system_malloc" = "yes" ; then
2048 (The GNU allocators don't work with this system configuration)."
2049 elif test "$with_system_malloc" = "yes" ; then
2052 (User chose not to use GNU allocators)."
2053 elif test "$with_debug_malloc" = "yes" ; then
2056 (User chose to use Debugging Malloc)."
2059 if test "$doug_lea_malloc" = "yes" ; then
2060 if test "$GNU_MALLOC" = yes ; then
2062 (Using Doug Lea's new malloc from the GNU C Library.)"
2064 AC_DEFINE(DOUG_LEA_MALLOC)
2065 if test "$after_morecore_hook_exists" = "no" ; then
2067 (Using Doug Lea's new malloc from the Linux C Library.)"
2068 AC_DEFINE(_NO_MALLOC_WARNING_)
2070 use_minimal_tagbits=yes
2073 dnl #### mcheck is broken in all versions of Linux libc and glibc.
2074 dnl Try this again when 2.1 hits the streets.
2075 dnl Avoid using free-hook.c if support exists for malloc debugging in libc
2076 dnl have_libmcheck=no
2077 dnl if test "$error_check_malloc" = "yes" -a \
2078 dnl "$have_glibc" = "yes" -a \
2079 dnl "$doug_lea_malloc" = "yes"; then
2080 dnl AC_CHECK_HEADERS(mcheck.h)
2081 dnl AC_CHECK_LIB(mcheck, mcheck, have_libmcheck=yes, have_libmcheck=no)
2084 dnl if test "$have_libmcheck" = "yes"; then
2085 dnl AC_DEFINE(HAVE_LIBMCHECK)
2086 dnl libmcheck=-lmcheck
2087 dnl AC_SUBST(libmcheck)
2090 dnl Some other nice autoconf tests. If you add a test here which
2091 dnl should make an entry in src/config.h, do not forget to add an
2092 dnl #undef clause to src/config.h.in for autoconf to modify.
2098 dnl checks for header files
2099 AC_CHECK_HEADERS(mach/mach.h sys/stropts.h sys/timeb.h sys/time.h unistd.h)
2100 AC_CHECK_HEADERS(utime.h locale.h libgen.h fcntl.h ulimit.h cygwin/version.h)
2101 AC_CHECK_HEADERS(kstat.h sys/pstat.h inttypes.h sys/un.h a.out.h)
2107 dnl Some systems have utime.h but do not declare the struct anyplace.
2108 AC_MSG_CHECKING(for struct utimbuf)
2109 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
2110 #include <sys/time.h>
2113 #ifdef HAVE_SYS_TIME_H
2114 #include <sys/time.h>
2121 #endif], [static struct utimbuf x; x.actime = x.modtime;],
2123 AC_DEFINE(HAVE_STRUCT_UTIMBUF)],
2126 dnl checks for typedefs
2134 AC_MSG_CHECKING(for struct timeval)
2135 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
2136 #include <sys/time.h>
2139 #ifdef HAVE_SYS_TIME_H
2140 #include <sys/time.h>
2144 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
2147 AC_DEFINE(HAVE_TIMEVAL)],
2151 dnl checks for structure members
2155 dnl checks for compiler characteristics
2158 dnl check for Make feature
2161 dnl check byte order
2164 dnl define SIZEOF_TYPE
2165 AC_CHECK_SIZEOF(short)
2166 if test "$ac_cv_sizeof_short" = 0; then
2168 echo "*** PANIC *** Configure tests are not working - compiler is broken."
2169 echo "*** PANIC *** Please examine config.log for compilation errors."
2172 AC_CHECK_SIZEOF(int)
2173 AC_CHECK_SIZEOF(long)
2174 AC_CHECK_SIZEOF(long long)
2175 AC_CHECK_SIZEOF(void *)
2177 dnl check for long file names
2178 AC_SYS_LONG_FILE_NAMES
2180 dnl -lm is required by LISP_FLOAT_TYPE, among other things
2181 AC_CHECK_LIB(m, sin)
2183 dnl Floating operation support is now unconditional
2184 AC_DEFINE(LISP_FLOAT_TYPE)
2186 AC_TRY_LINK([#include <math.h>],
2187 [return atanh(1.0) + asinh(1.0) + acosh(1.0); ],
2188 AC_DEFINE(HAVE_INVERSE_HYPERBOLIC))
2190 dnl Determine type of mail locking from configure args and s&m headers
2191 AC_CHECKING(type of mail spool file locking)
2192 test -z "$mail_locking" -a "$mail_use_flock" = "yes" && mail_locking=flock
2193 test -z "$mail_locking" -a "$mail_use_lockf" = "yes" && mail_locking=lockf
2194 if test "$mail_locking" = "lockf"; then AC_DEFINE(REAL_MAIL_USE_LOCKF)
2195 elif test "$mail_locking" = "flock"; then AC_DEFINE(REAL_MAIL_USE_FLOCK)
2196 else mail_locking="dot-locking"
2199 dnl Used by getloadavg() - does not require root priveleges
2200 AC_CHECK_LIB(kstat, kstat_open)
2202 dnl Another way to get the load average
2203 AC_CHECK_LIB(kvm, kvm_read)
2205 case "$opsys" in decosf*)
2206 AC_CHECK_LIB(pthreads, cma_open)
2207 test "$ac_cv_lib_pthreads_cma_open" = "yes" && \
2208 c_switch_site="$c_switch_site -threads" ;;
2211 AC_MSG_CHECKING(whether the -xildoff compiler flag is required)
2212 if ${CC-cc} '-###' -xildon no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then
2213 if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ;
2214 then AC_MSG_RESULT(no);
2215 else AC_MSG_RESULT(yes); XE_APPEND(-xildoff, ld_switch_site)
2217 else AC_MSG_RESULT(no)
2220 dnl Link with "-z ignore" on Solaris if supported
2221 if test "$opsys" = "sol2" && test "$OS_RELEASE" -ge 56; then
2222 AC_MSG_CHECKING(for \"-z ignore\" linker flag)
2223 case "`ld -h 2>&1`" in
2224 *-z\ ignore\|record* ) AC_MSG_RESULT(yes)
2225 XE_PREPEND(-z ignore, ld_switch_site) ;;
2226 *) AC_MSG_RESULT(no) ;;
2230 dnl ----------------------
2231 dnl Choose a window system
2232 dnl ----------------------
2234 AC_CHECKING("for specified window system")
2236 if test "$with_x11" != "no"; then
2237 dnl User-specified --x-includes or --x-libraries implies --with-x11.
2238 test "$x_includes $x_libraries" != "NONE NONE" && \
2239 window_system=x11 with_x11=yes
2241 dnl Autodetection of X11 libraries and includes
2242 dnl -------------------------------------------
2243 dnl AC_PATH_XTRA thinks it can find our X headers and includes, but
2244 dnl it often gets it wrong, so we only use it as a last resort.
2246 dnl $OPENWINHOME implies --x-includes and --x-libraries
2247 dnl Not (yet) handled by autoconf2
2248 if test "$x_includes $x_libraries" = "NONE NONE" \
2249 -a -n "$OPENWINHOME" \
2250 -a "$OPENWINHOME" != "/usr/openwin" \
2251 -a -d "$OPENWINHOME"; then
2252 test -d "$OPENWINHOME/lib" && x_libraries="$OPENWINHOME/lib"
2253 test -d "$OPENWINHOME/include" && x_includes="$OPENWINHOME/include"
2254 test -d "$OPENWINHOME/share/include" && x_includes="$OPENWINHOME/share/include"
2257 if test "$x_includes" = "NONE"; then
2258 dnl AC_PATH_XTRA often guesses /usr/include, when some other
2259 dnl include directory is a MUCH better guess (Linux, HP-UX 10.20).
2260 dnl This is a workaround for idiot (esp. HP) system vendors, who
2261 dnl provide a /usr/include/X11, but DON'T FULLY POPULATE IT.
2262 for dir in "/usr/X11" "/usr/X11R6"; do
2263 if test -d "$dir/include/X11"; then x_includes="$dir/include"; break; fi
2267 if test "$x_libraries" = "NONE"; then
2268 for dir in "/usr/X11/lib" "/usr/X11R6/lib" "/usr/lib/X11R6"; do
2269 if test -r "$dir/libX11.a"; then x_libraries="$dir"; break; fi
2273 AC_PATH_XTRA # Autoconf claims to find X library and include dirs for us.
2274 if test "$no_x" = "yes"
2275 then with_x11=no window_system=none HAVE_X_WINDOWS=no
2276 else with_x11=yes window_system=x11 HAVE_X_WINDOWS=yes
2281 yes ) window_system=x11 HAVE_X_WINDOWS=yes ;;
2282 no ) window_system=none HAVE_X_WINDOWS=no ;;
2285 if test "$with_x11" = "yes"; then
2286 AC_DEFINE(HAVE_X_WINDOWS)
2287 XE_APPEND(lwlib, MAKE_SUBDIR)
2288 XE_APPEND(lwlib, SRC_SUBDIR_DEPS)
2290 dnl Try to find Motif/CDE/Tooltalk dirs
2291 dnl These take precedence over other X libs/includes, so PRE-pend
2292 for lib_dir in "/usr/dt/lib" "/usr/lib/Motif2.1" "/usr/lib/Motif1.2" "/usr/lib/Motif1.1"; do
2293 inc_dir=`echo $lib_dir | sed -e 's/lib/include/'`
2294 if test -d "$lib_dir" -a -d "$inc_dir"; then
2295 case "$x_libraries" in *"$lib_dir"* ) ;; *)
2296 x_libraries="$lib_dir $x_libraries"
2297 XE_PREPEND(-L${lib_dir}, X_LIBS) ;;
2299 case "$x_includes" in "$inc_dir"* ) ;; *)
2300 x_includes="$inc_dir $x_includes"
2301 XE_PREPEND(-I${inc_dir}, X_CFLAGS) ;;
2303 break; dnl only need ONE Motif implementation!
2307 dnl Contrib X libs/includes do NOT take precedence, so AP-pend
2308 for rel in "X11R6" "X11R5" "X11R4"; do
2309 lib_dir="/usr/contrib/$rel/lib" inc_dir="/usr/contrib/$rel/include"
2310 if test -d "$lib_dir" -a -d "$inc_dir"; then
2311 case "$x_libraries" in *"$lib_dir"* ) ;; *)
2312 x_libraries="$x_libraries $lib_dir"
2313 XE_APPEND(-L${lib_dir}, X_LIBS)
2315 case "$x_includes" in "$inc_dir"* ) ;; *)
2316 x_includes="$x_includes $inc_dir"
2317 XE_APPEND(-I${inc_dir}, X_CFLAGS)
2319 break; dnl Only need ONE X11 implementation !
2323 dnl Avoid version mismatch for shared library libXm.so on osf4
2324 if test "$GCC" = yes -a -d /usr/shlib; then XE_APPEND(-L/usr/shlib, X_LIBS); fi
2326 ld_switch_x_site="$X_LIBS"
2328 XE_COMPUTE_RUNPATH()
2330 if test "$extra_verbose" = "yes"; then
2331 echo; echo "X11 compilation variables:"
2332 PRINT_VAR(x_libraries x_includes X_CFLAGS X_LIBS X_PRE_LIBS X_EXTRA_LIBS)
2336 dnl Set up bitmaps search path.
2337 dnl The original suggestion was to unconditionally to append X11/bitmaps
2338 dnl to each element of $x_includes, I'm pretty sure this is the wrong
2339 dnl thing to do. We test for bitmaps and X11/bitmaps directories on each
2340 dnl element and add them to BITMAPDIR if they exist.
2342 if test "$x_includes" != NONE; then
2343 for i in $x_includes; do
2344 if test -d "$i/bitmaps"; then
2345 bitmapdirs="$i/bitmaps:$bitmapdirs"
2347 if test -d "$i/X11/bitmaps"; then
2348 bitmapdirs="$i/X11/bitmaps:$bitmapdirs"
2351 bitmapdirs=`echo "$bitmapdirs" | sed s/.$//`
2353 test ! -z "$bitmapdirs" && AC_DEFINE_UNQUOTED(BITMAPDIR, "$bitmapdirs")
2355 dnl Autodetect defines extracted from X config by xmkmf, e.g. NARROWPROTO
2356 AC_CHECKING(for X defines extracted by xmkmf)
2358 if mkdir conftestdir; then
2360 cat > Imakefile <<'EOF'
2362 @echo ${PROTO_DEFINES} ${STD_DEFINES}
2364 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
2365 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
2366 xmkmf_defines=`${MAKE-make} xetest 2>/dev/null | grep -v make`
2370 for word in $xmkmf_defines; do
2373 -D* ) word=`echo '' $word | sed -e 's:^ *-D::'`
2374 AC_DEFINE_UNQUOTED($word) ;;
2379 dnl make sure we can find Intrinsic.h
2380 AC_CHECK_HEADER(X11/Intrinsic.h, ,
2381 [AC_MSG_ERROR("Unable to find X11 header files.")])
2383 dnl -lXt and -lX11 are required
2384 dnl Some broken systems require the magic "-b i486-linuxaout" flag
2385 AC_CHECK_LIB(X11, XOpenDisplay, have_lib_x11=yes)
2386 if test "$have_lib_x11" != "yes"; then
2387 AC_CHECK_LIB(X11, XGetFontProperty,
2388 ld_switch_x_site="-b i486-linuxaout $ld_switch_x_site",
2389 [AC_MSG_ERROR("Unable to find X11 libraries.")],
2393 test "$extra_verbose" = "yes" && echo " Setting libs_x to \"-lX11\""
2395 dnl Autodetect -lXext
2396 AC_CHECK_LIB(Xext, XShapeSelectInput, XE_PREPEND(-lXext, libs_x))
2399 AC_CHECK_LIB(Xt, XtOpenDisplay, XE_PREPEND(-lXt, libs_x),
2400 AC_MSG_ERROR("Unable to find X11 libraries."))
2402 AC_MSG_CHECKING(the version of X11 being used)
2403 AC_TRY_RUN([#include <X11/Intrinsic.h>
2404 int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }],
2405 [./conftest foobar; x11_release=$?],[x11_release=4],[x11_release=4])
2406 AC_MSG_RESULT(R${x11_release})
2407 AC_DEFINE_UNQUOTED(THIS_IS_X11R${x11_release})
2409 AC_CHECK_HEADERS(X11/Xlocale.h)
2411 dnl remove this - we should avoid checking for specific OS
2412 AC_MSG_CHECKING(for XFree86)
2413 if test -d "/usr/X386/include" -o \
2414 -f "/etc/XF86Config" -o \
2415 -f "/etc/X11/XF86Config" -o \
2416 -f "/usr/X11R6/lib/X11/XF86Config"; then
2418 AC_DEFINE(HAVE_XFREE386)
2423 dnl autodetect -lXmu
2424 test -z "$with_xmu" && { AC_CHECK_LIB(Xmu, XmuReadBitmapDataFromFile,
2425 with_xmu=yes, with_xmu=no) }
2426 if test "$with_xmu" = "no"; then
2429 XE_PREPEND(-lXmu, libs_x)
2433 dnl Autodetect -lXbsd
2434 dnl #### Someone, please add a better function than main
2435 AC_CHECK_LIB(Xbsd, main, XE_PREPEND(-lXbsd, libs_x))
2437 dnl Problem with the MIT distribution of X on AIX
2438 if test "$unexec" = "unexaix.o" -a "$x11_release" = "6"; then
2439 dnl X11R6 requires thread-safe code on AIX for some reason
2440 if test "$GCC" = "yes"; then
2441 XE_PREPEND(-mthreads, X_CFLAGS)
2442 XE_PREPEND(-mthreads, libs_x)
2445 "xlc" ) CC="xlc_r" ;;
2446 "xlC" ) CC="xlC_r" ;;
2452 fi dnl $with_x11 = yes
2454 if test "$with_msw" != "no"; then
2455 AC_CHECKING(for MS-Windows)
2456 AC_CHECK_LIB(gdi32,main,with_msw=yes)
2457 if test "$with_msw" = "yes"; then
2458 AC_DEFINE(HAVE_MS_WINDOWS)
2459 install_pp="$blddir/lib-src/installexe.sh"
2460 XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomctl32, libs_system)
2461 test "$with_dragndrop" != no && XE_APPEND(msw, dragndrop_proto)
2462 if test "$window_system" != x11; then
2464 test "$with_scrollbars" != "no" && with_scrollbars=msw \
2465 && XE_ADD_OBJS(scrollbar-msw.o)
2466 test "$with_menubars" != "no" && with_menubars=msw \
2467 && XE_ADD_OBJS(menubar-msw.o)
2468 test "$with_toolbars" != "no" && with_toolbars=msw \
2469 && XE_ADD_OBJS(toolbar-msw.o)
2470 test "$with_dialogs" != "no" && with_dialogs=msw \
2471 && XE_ADD_OBJS(dialog-msw.o)
2473 test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-msw.o)
2474 test "$with_menubars" != "no" && XE_ADD_OBJS(menubar-msw.o)
2475 test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar-msw.o)
2476 test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog-msw.o)
2478 dnl check for our special version of select
2479 AC_TRY_RUN([#include <fcntl.h>
2480 int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }],
2481 [AC_DEFINE(HAVE_MSG_SELECT)])
2483 with_file_coding=yes
2484 use_minimal_tagbits=yes
2485 use_indexed_lrecord_implementation=yes
2486 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)
2490 AC_SUBST(install_pp)
2492 test -z "$window_system" && window_system="none"
2494 dnl Test for features that require a window system - ANY window system
2495 if test "$window_system" = "none"; then
2496 for feature in menubars scrollbars toolbars dialogs dragndrop
2498 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2499 AC_MSG_WARN([--with-$feature ignored: Not valid without window system support])
2501 eval "with_${feature}=no"
2504 test -z "$with_toolbars" && with_toolbars=yes
2507 dnl ### Test for features that require mswindows support - currently none
2508 dnl ### MS-Windows folks: add code here..... (martin)
2509 if test "$with_msw" != "yes"; then
2510 for feature in MARTIN_IS_CLUELESS_ABOUT_MSW_FEATURES
2512 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2513 AC_MSG_WARN([--with-$feature ignored: Not valid without MS-Windows support])
2515 eval "with_${feature}=no"
2521 dnl Test for features that require X11 support
2522 if test "$with_x11" != "yes"; then
2523 dnl It ought to be reasonable to have no output device at all, and only use
2524 dnl XEmacs in --batch mode.
2525 dnl if test "$with_tty" = "no" ; then
2526 dnl AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.])
2528 for feature in tooltalk cde offix session xim xmu \
2531 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2532 AC_MSG_WARN([--with-$feature ignored: Not valid without X support])
2534 eval "with_${feature}=no"
2538 dnl FSF 19.29 has some bitmapdir stuff here.
2541 case "$window_system" in
2542 x11 ) HAVE_X_WINDOWS=yes; echo " Using X11." ;;
2543 msw ) HAVE_X_WINDOWS=no ; echo " Using MS-Windows." ;;
2544 none ) HAVE_X_WINDOWS=no ; echo " Using no window system." ;;
2547 case "$x_libraries" in *X11R4* )
2548 test "$opsys" = "hpux9" && opsysfile="s/hpux9-x11r4.h"
2549 test "$opsys" = "hpux9-shr" && opsysfile="s/hpux9shxr4.h"
2552 dnl Enable or disable proper session-management
2553 AC_CHECKING(for session-management option);
2554 dnl if test "$with_session" = "yes"; then
2555 if test "$with_session" != "no"; then
2556 AC_DEFINE(HAVE_SESSION)
2559 dnl Autodetect Xauth
2560 dnl -lXau is only used by gnuclient, so use a special variable for Xauth X libs
2561 test -z "$with_xauth" && test "$window_system" = "none" && with_xauth=no
2562 test -z "$with_xauth" && { AC_CHECK_HEADER(X11/Xauth.h, ,with_xauth=no) }
2563 test -z "$with_xauth" && { AC_CHECK_LIB(Xau, XauGetAuthByAddr,[:],with_xauth=no) }
2564 test -z "$with_xauth" && with_xauth=yes
2565 if test "$with_xauth" = "yes"; then
2566 AC_DEFINE(HAVE_XAUTH)
2567 XE_SPACE(libs_xauth, $X_EXTRA_LIBS -lXau $libs_x $X_PRE_LIBS)
2569 AC_SUBST(libs_xauth)
2571 dnl This one is for the static initializeds variables in
2572 dnl offix.c, so that the thing is dumped after lastfile.o
2575 dnl Autodetect tooltalk
2576 if test "$with_tooltalk" != "no" ; then
2577 dnl autodetect the location of tt_c.h
2578 dnl tt_c.h might be in Tt or desktop include directories
2579 for dir in "" "Tt/" "desktop/" ; do
2580 AC_CHECK_HEADER(${dir}tt_c.h, tt_c_h_path="${dir}tt_c.h"; break)
2582 if test -z "$tt_c_h_path"; then
2583 if test "$with_tooltalk" = "yes"; then
2584 USAGE_ERROR("Unable to find required tooltalk header files.")
2589 if test "$with_tooltalk" != "no" ; then
2590 for extra_libs in "" "-lI18N -lce" "-lcxx"; do
2591 AC_CHECK_LIB(tt, tt_message_create,
2592 tt_libs="-ltt $extra_libs"; break, [:],$extra_libs)
2594 if test -z "$tt_libs"; then
2595 if test "$with_tooltalk" = "yes"; then
2596 USAGE_ERROR("Unable to find required tooltalk libraries.")
2601 test -z "$with_tooltalk" && with_tooltalk=yes
2602 if test "$with_tooltalk" = "yes"; then
2604 AC_DEFINE_UNQUOTED(TT_C_H_PATH, "$tt_c_h_path")
2605 XE_PREPEND($tt_libs, libs_x)
2606 XE_ADD_OBJS(tooltalk.o)
2610 test -z "$with_cde" && { AC_CHECK_HEADER(Dt/Dt.h, , with_cde=no) }
2611 test -z "$with_cde" && { AC_CHECK_LIB(DtSvc, DtDndDragStart, [:], with_cde=no) }
2612 test -z "$with_cde" && with_cde=yes
2613 if test "$with_dragndrop" = no; then
2614 AC_MSG_WARN([No CDE without generic Drag'n'Drop support])
2617 if test "$with_cde" = "yes" ; then
2619 XE_PREPEND(-lDtSvc, libs_x)
2620 XE_APPEND(CDE, dragndrop_proto)
2621 with_tooltalk=yes # CDE requires Tooltalk
2622 need_motif=yes # CDE requires Motif
2625 dnl Always compile OffiX unless --without-offix is given, no
2626 dnl X11 support is compiled in, no standard Xmu is available,
2627 dnl or dragndrop support is disabled
2628 dnl Because OffiX support currently loses when more than one display
2629 dnl is in use, we now disable it by default -slb 07/10/1998.
2630 test "$window_system" != "x11" && with_offix=no
2631 if test "$with_xmu" != yes -a "$with_x11" = yes; then
2632 AC_MSG_WARN([No OffiX without real Xmu support])
2635 if test "$with_dragndrop" = no; then
2636 AC_MSG_WARN([No OffiX without generic Drag'n'Drop support])
2639 if test "$with_cde" = yes; then
2640 AC_MSG_WARN([CDE already found, disabling OffiX support])
2643 test -z "$with_offix" && with_offix=no
2644 if test "$with_offix" = "yes"; then
2645 AC_DEFINE(HAVE_OFFIX_DND)
2646 XE_APPEND(offix.o, dnd_objs)
2647 XE_APPEND(OffiX, dragndrop_proto)
2650 dnl Autodetect Drag'n'Drop support
2651 dnl always included if CDE, Offix, or MSWindows are defined
2652 AC_MSG_CHECKING(if drag and drop API is needed)
2653 if test "$with_dragndrop" != "no" ; then
2654 if test -n "$dragndrop_proto" ; then
2656 AC_MSG_RESULT([yes (${dragndrop_proto} )])
2657 AC_DEFINE(HAVE_DRAGNDROP)
2658 XE_APPEND(dragdrop.o, extra_objs)
2666 AC_CHECKING(for LDAP)
2667 test -z "$with_ldap" && { AC_CHECK_HEADER(ldap.h, ,with_ldap=no) }
2668 test -z "$with_ldap" && { AC_CHECK_HEADER(lber.h, ,with_ldap=no) }
2669 if test "$with_ldap" != "no"; then
2670 test -z "$with_umich_ldap" && { AC_CHECK_LIB(ldap, ldap_open, with_umich_ldap=yes, with_umich_ldap=no, -llber) }
2671 test "$with_umich_ldap" = "no" && { AC_CHECK_LIB(ldap10, ldap_set_option, with_ns_ldap=yes, with_ns_ldap=no) }
2672 test -z "$with_ldap" -a \( "$with_umich_ldap" = "yes" -o "$with_ns_ldap" = "yes" \) && with_ldap=yes
2674 if test "$with_ldap" = "yes"; then
2675 AC_DEFINE(HAVE_LDAP)
2676 XE_ADD_OBJS(eldap.o)
2677 if test "$with_umich_ldap" = "yes" ; then
2678 AC_DEFINE(HAVE_UMICH_LDAP)
2679 XE_PREPEND(-llber, LIBS)
2680 XE_PREPEND(-lldap, LIBS)
2681 elif test "$with_ldap" = "yes" -a "$with_ns_ldap" = "yes" ; then
2682 AC_DEFINE(HAVE_NS_LDAP)
2683 XE_PREPEND(-lldap10, LIBS)
2684 elif test "$with_ldap" = "yes" ; then
2685 XE_PREPEND(-lldap, LIBS)
2689 dnl ----------------------
2690 dnl Graphics libraries
2691 dnl ----------------------
2693 if test "$window_system" != "none"; then
2694 AC_CHECKING(for graphics libraries)
2698 if test -z "$with_xpm"; then
2699 AC_MSG_CHECKING(for Xpm - no older than 3.4f)
2701 AC_TRY_RUN([#include <X11/xpm.h>
2702 int main(int c, char **v) {
2704 XpmIncludeVersion != XpmLibraryVersion() ? 1 :
2705 XpmIncludeVersion < 30406 ? 2 : 0 ;}],
2706 [./conftest dummy_arg; xpm_status=$?;
2707 if test "$xpm_status" = "0"; then
2711 if test "$xpm_status" = "1"; then
2712 xpm_problem="Xpm library version and header file version don't match!"
2713 elif test "$xpm_status" = "2"; then
2714 xpm_problem="Xpm library version is too old!"
2716 xpm_problem="Internal xpm detection logic error!"
2719 *** WARNING *** $xpm_problem
2720 I'm not touching that with a 10-foot pole!
2721 If you really want to use the installed version of Xpm, rerun
2722 configure and add '--with-xpm=yes', but don't blame me if XEmacs crashes!"
2726 AC_MSG_RESULT($with_xpm)
2728 if test "$with_xpm" = "yes"; then
2730 XE_PREPEND(-lXpm, libs_x)
2731 AC_MSG_CHECKING(for \"FOR_MSW\" xpm)
2733 AC_TRY_LINK(, [XpmCreatePixmapFromData()],
2737 AC_MSG_RESULT($xpm_for_msw)
2738 if test "$xpm_for_msw" = "yes"; then
2743 dnl For a brief period we had the GIF code split out into a separate library,
2744 dnl but patent problems, etc. sort of squashed that idea.
2745 dnl We default to building with builtin GIF decoding
2746 if test "$with_gif" != "no"; then
2749 XE_ADD_OBJS(dgif_lib.o gif_io.o)
2752 dnl Too many stupid linkers can't detect cascaded lib dependencies until runtime
2753 dnl So we always search for libz compression support.
2754 if test "$with_png $with_tiff" != "no no"; then
2755 AC_CHECK_LIB(c, inflate, [:], [
2756 AC_CHECK_LIB(z, inflate, [XE_PREPEND(-lz, libs_x)],[
2757 AC_CHECK_LIB(gz, inflate, [XE_PREPEND(-lgz, libs_x)])])])
2761 test -z "$with_jpeg" && { AC_CHECK_HEADER(jpeglib.h, ,with_jpeg=no) }
2762 test -z "$with_jpeg" && { AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,[:],with_jpeg=no) }
2763 test -z "$with_jpeg" && with_jpeg=yes
2764 if test "$with_jpeg" = "yes"; then
2765 AC_DEFINE(HAVE_JPEG)
2766 XE_PREPEND(-ljpeg, libs_x)
2771 test -z "$with_png" && { AC_CHECK_FUNC(pow, ,with_png=no) }
2772 test -z "$with_png" && { AC_CHECK_HEADER(png.h, ,with_png=no) }
2773 test -z "$with_png" && { AC_CHECK_LIB(png, png_read_image,[:],with_png=no) }
2774 if test -z "$with_png"; then
2775 AC_MSG_CHECKING(for workable png version information)
2776 xe_check_libs="-lpng -lz"
2777 AC_TRY_RUN([#include <png.h>
2778 int main(int c, char **v) {
2779 if (c == 1) return 0;
2780 if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1;
2781 return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}],
2782 [./conftest dummy_arg; png_status=$?;
2783 if test "$png_status" = "0"; then
2787 if test "$png_status" = "1"; then
2788 png_problem="PNG library version and header file don't match!"
2789 elif test "$png_status" = "2"; then
2790 png_problem="PNG library version too old (pre 1.0.2)!"
2793 *** WARNING *** $png_problem
2794 I'm not touching that with a 10-foot pole!
2795 If you really want to use the installed version of libPNG, rerun
2796 configure and add '--with-png=yes', but don't blame me if XEmacs crashes!"
2800 AC_MSG_RESULT($with_png)
2802 if test "$with_png" = "yes"; then
2804 XE_PREPEND(-lpng, libs_x)
2808 test -z "$with_tiff" && { AC_CHECK_HEADER(tiffio.h, ,with_tiff=no) }
2809 test -z "$with_tiff" && { AC_CHECK_LIB(tiff, TIFFClientOpen,[:],with_tiff=no) }
2810 test -z "$with_tiff" && with_tiff=yes
2811 if test "$with_tiff" = "yes"; then
2812 AC_DEFINE(HAVE_TIFF)
2813 XE_PREPEND(-ltiff, libs_x)
2817 dnl ----------------------
2818 dnl X-Specific Graphics libraries
2819 dnl ----------------------
2821 if test "$with_x11" = "yes"; then
2823 AC_CHECKING(for X11 graphics libraries)
2825 dnl Autodetect XFACE
2826 test -z "$with_xface" && { AC_CHECK_HEADER(compface.h, ,with_xface=no) }
2827 test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) }
2828 test -z "$with_xface" && with_xface=yes
2829 if test "$with_xface" = "yes"; then
2830 AC_DEFINE(HAVE_XFACE)
2831 XE_PREPEND(-lcompface, libs_x)
2834 dnl Autodetect -lXaw
2835 AC_CHECK_LIB(Xaw, XawScrollbarSetThumb, have_xaw=yes, have_xaw=no)
2836 dnl if test "$have_xaw" = "yes"; then
2837 dnl AC_CHECK_HEADER(X11/Xaw/Reports.h, [
2838 dnl XE_APPEND(pkg-src/tree-x, MAKE_SUBDIR)
2839 dnl XE_APPEND(pkg-src/tree-x, INSTALL_ARCH_DEP_SUBDIR)])
2842 dnl autodetect Motif - but only add to libs_x later (if necessary)
2843 AC_CHECK_HEADER(Xm/Xm.h,
2844 [AC_CHECK_LIB(Xm, XmStringFree, have_motif=yes, have_motif=no)],
2847 if test "$have_motif" = "yes"; then
2848 dnl autodetect lesstif
2849 AC_MSG_CHECKING(for Lesstif)
2852 #ifdef LESSTIF_VERSION
2855 ], have_lesstif=yes, have_lesstif=no)
2856 AC_MSG_RESULT($have_lesstif)
2859 fi dnl "$with_x11" = "yes"
2861 dnl Finish ensuring that we have values for the various toolkit items.
2862 dnl Not all toolkits support all widgets
2863 dnl if Motif is available we use it for the dialog boxes.
2865 case "$with_menubars" in "" | "yes" | "athena" | "athena3d" )
2866 with_menubars="lucid" ;;
2868 case "$with_dialogs" in "" | "yes" | "lucid" )
2869 if test "$have_motif" = "yes"; then with_dialogs="motif"
2870 elif test "$have_xaw" = "yes"; then with_dialogs="athena"
2871 else with_dialogs=no
2874 case "$with_scrollbars" in "" | "yes" )
2875 with_scrollbars="lucid" ;;
2878 all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars"
2880 case "$all_widgets" in *athena* )
2881 AC_DEFINE(LWLIB_USES_ATHENA)
2882 AC_DEFINE(NEED_ATHENA)
2883 XE_APPEND(lwlib-Xaw.o, lwlib_objs)
2884 XE_PREPEND(-lXaw, libs_x) ;;
2887 case "$all_widgets" in *motif* )
2888 AC_DEFINE(LWLIB_USES_MOTIF)
2889 AC_DEFINE(NEED_MOTIF)
2890 XE_APPEND(lwlib-Xm.o, lwlib_objs)
2894 test "$with_menubars" = "lucid" && XE_APPEND(xlwmenu.o, lwlib_objs)
2895 test "$with_menubars" = "motif" && XE_APPEND(xlwmenu.o, lwlib_objs)
2896 test "$with_scrollbars" = "lucid" && XE_APPEND(xlwscrollbar.o, lwlib_objs)
2897 case "$all_widgets" in *lucid* )
2898 AC_DEFINE(NEED_LUCID)
2899 XE_APPEND(lwlib-Xlw.o, lwlib_objs) ;;
2902 AC_SUBST(lwlib_objs)
2904 case "$with_scrollbars" in athena* ) AC_DEFINE(LWLIB_SCROLLBARS_ATHENA);; esac
2905 case "$with_dialogs" in athena* ) AC_DEFINE(LWLIB_DIALOGS_ATHENA) ;; esac
2906 test "$with_scrollbars" = "athena3d" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA3D)
2907 test "$with_dialogs" = "athena3d" && AC_DEFINE(LWLIB_DIALOGS_ATHENA3D)
2909 test "$with_menubars" != "no" && AC_DEFINE(HAVE_MENUBARS)
2910 test "$with_scrollbars" != "no" && AC_DEFINE(HAVE_SCROLLBARS)
2911 test "$with_dialogs" != "no" && AC_DEFINE(HAVE_DIALOGS)
2912 test "$with_toolbars" != "no" && AC_DEFINE(HAVE_TOOLBARS)
2914 test "$with_menubars" = "lucid" && AC_DEFINE(LWLIB_MENUBARS_LUCID)
2915 test "$with_scrollbars" = "lucid" && AC_DEFINE(LWLIB_SCROLLBARS_LUCID)
2917 test "$with_menubars" = "motif" && AC_DEFINE(LWLIB_MENUBARS_MOTIF)
2918 test "$with_scrollbars" = "motif" && AC_DEFINE(LWLIB_SCROLLBARS_MOTIF)
2919 test "$with_dialogs" = "motif" && AC_DEFINE(LWLIB_DIALOGS_MOTIF)
2921 test "$with_menubars" != "no" && XE_ADD_OBJS(menubar.o)
2922 test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar.o)
2923 test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog.o)
2924 test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar.o)
2925 test "$all_widgets" != "no no no no" && XE_ADD_OBJS(gui.o)
2927 if test "$with_x11" = "yes"; then
2928 test "$with_menubars" != "no" && XE_ADD_OBJS(menubar-x.o)
2929 test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-x.o)
2930 test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog-x.o)
2931 test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar-x.o)
2932 test "$all_widgets" != "no no no no" && XE_ADD_OBJS(gui-x.o)
2934 if test \( "$with_sound" = "nas" \) -o \( "$with_sound" = "both" \); then
2935 echo "Attempt to Build NAS sound without X"
2936 echo "Please remove NAS configuration or build with X"
2941 test "$use_minimal_tagbits" = "yes" && AC_DEFINE(USE_MINIMAL_TAGBITS)
2942 test "$use_indexed_lrecord_implementation" = "yes" && \
2943 AC_DEFINE(USE_INDEXED_LRECORD_IMPLEMENTATION)
2945 dnl ----------------------
2946 dnl Mule-dependent options
2947 dnl ----------------------
2949 test -z "$with_mule" && with_mule=no
2950 test -z "$with_file_coding" && with_file_coding=no
2952 dnl if test "$with_mule" = "yes" && test ! -d "$srcdir/lisp/mule"; then
2953 dnl echo "Attempt to Build with Mule without Mule/Lisp"
2954 dnl echo "Please install the XEmacs/Mule tarball or"
2955 dnl echo "rerun configure with --with-mule=no"
2959 if test "$with_file_coding" = "yes" && test "$with_mule" = "no"; then
2960 AC_DEFINE(FILE_CODING)
2961 XE_ADD_OBJS(file-coding.o)
2964 if test "$with_mule" = "yes" ; then
2965 AC_CHECKING(for Mule-related features)
2967 AC_DEFINE(FILE_CODING)
2968 XE_ADD_OBJS(mule.o mule-ccl.o mule-charset.o mule-coding.o file-coding.o)
2970 dnl Use -lintl to get internationalized strerror for Mule
2971 AC_CHECK_HEADERS(libintl.h)
2972 AC_CHECK_LIB(intl, strerror)
2974 AC_CHECKING(for Mule input methods)
2975 dnl Do we have the XmIm* routines? And if so, do we want to use them?
2976 dnl XIM seems to be flaky except on Solaris...
2977 dnl test -z "$with_xim" -a "$opsys" != "sol2" && with_xim=no
2978 case "$with_xim" in "" | "yes" )
2979 AC_CHECKING(for XIM)
2980 dnl XIM + Lesstif is not (yet?) usable
2981 if test "$have_lesstif" = "yes"; then with_xim=xlib
2982 else AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif, with_xim=xlib)
2985 if test "$with_xim" != "no"; then
2987 if test "$with_xim" = "xlib"; then
2989 XE_ADD_OBJS(input-method-xlib.o)
2991 if test "$with_xim" = "motif"; then
2992 AC_DEFINE(XIM_MOTIF)
2994 XE_ADD_OBJS(input-method-motif.o)
2996 if test "$with_xim" = "motif"; then
3001 dnl "with_xim" = "yes"
3002 if test "$with_xfs" = "yes" ; then
3003 AC_CHECKING(for XFontSet)
3004 AC_CHECK_LIB(X11, XmbDrawString, [:], with_xfs=no)
3005 if test "$with_xfs" = "yes" && test "$with_menubars" = "lucid"; then
3006 AC_DEFINE(USE_XFONTSET)
3007 if test "$with_xim" = "no" ; then
3008 XE_ADD_OBJS(input-method-xfs.o)
3014 test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
3015 test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/jllib.h, ,with_wnn=no) }
3016 dnl Detour to find crypt
3017 if test "$with_wnn" != "no"; then
3018 AC_CHECK_FUNCS(crypt)
3019 test "$ac_cv_func_crypt" != "yes" && { AC_CHECK_LIB(crypt, crypt) }
3021 dnl Back to our regularly scheduled wnn hunting
3022 if test -z "$with_wnn" -o "$with_wnn" = "yes"; then
3023 AC_CHECK_LIB(wnn,jl_dic_list_e,libwnn=wnn,
3024 AC_CHECK_LIB(wnn4,jl_dic_list_e,libwnn=wnn4,
3025 AC_CHECK_LIB(wnn6,jl_dic_list_e,libwnn=wnn6,
3026 AC_CHECK_LIB(wnn6_fromsrc,dic_list_e,libwnn=wnn6_fromsrc,with_wnn=no))))
3028 test -z "$with_wnn" && with_wnn=yes
3029 if test "$with_wnn" = "yes"; then
3031 XE_PREPEND(-l$libwnn, libs_x)
3032 XE_ADD_OBJS(mule-wnnfns.o)
3033 if test "$with_wnn6" != "no"; then
3034 AC_CHECK_LIB($libwnn, jl_fi_dic_list, with_wnn6=yes)
3035 test "$with_wnn6" = "yes" && AC_DEFINE(WNN6)
3039 dnl Autodetect canna
3040 canna_includes_found=no
3041 if test "$with_canna" != "no"; then
3042 AC_CHECK_HEADER(canna/jrkanji.h,canna_includes_found=yes)
3044 if test "$canna_includes_found" = "no" -a "$with_canna" != "no" -a \
3045 -d "/usr/local/canna/include"; then
3046 save_c_switch_site="$c_switch_site"
3047 c_switch_site="$c_switch_site -I/usr/local/canna/include"
3048 AC_CHECK_HEADER(canna/jrkanji.h,canna_includes_found=yes)
3049 if test "$canna_includes_found" != "yes"; then
3050 c_switch_site="$save_c_switch_site"
3055 test -z "$with_canna" && { AC_CHECK_HEADER(canna/RK.h, , with_canna=no) }
3056 test -z "$with_canna" && { AC_CHECK_LIB(RKC, RkBgnBun, [:],with_canna=no) }
3057 test -z "$with_canna" && { AC_CHECK_LIB(canna,jrKanjiControl,[:],with_canna=no) }
3058 test -z "$with_canna" && with_canna=yes
3059 if test "$with_canna" = "yes"; then
3060 AC_DEFINE(HAVE_CANNA)
3061 XE_PREPEND(-lcanna -lRKC, libs_x)
3062 XE_ADD_OBJS(mule-canna.o)
3065 else dnl "$with_mule" = "no"
3066 for feature in xim canna wnn; do
3067 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
3068 AC_MSG_WARN("--with-${feature} ignored: Not valid without Mule support")
3070 eval "with_${feature}=no"
3075 dnl At this point, we know whether we need the motif lib or not.
3076 if test "$need_motif" = "yes" ; then
3077 XE_PREPEND(-lXm, libs_x)
3078 dnl AIX needs the following library for use with Motif
3079 AC_CHECK_LIB(i18n, layout_object_getvalue, [XE_PREPEND(-li18n, libs_x)])
3080 XE_COMPUTE_RUNPATH()
3083 AC_CHECK_FUNCS(cbrt closedir dup2 eaccess fmod fpathconf frexp ftime gethostname getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf strcasecmp strerror tzset ulimit usleep utimes waitpid vsnprintf)
3085 dnl realpath is buggy on linux, decosf and aix4
3087 dnl The realpath() in linux libc (4.6.27) sometimes fails with ELOOP.
3088 dnl The realpath in ELF linux libc's is O.K.
3089 dnl For example, call realpath on a file thirty-five or so directories deep
3090 dnl and you get ELOOP even if no symlinks at all are involved.
3091 dnl Reports as of 11/1997 indicate BSDi has problems too.
3092 dnl The realpath() in UnixWare2.1.3 could not get any pathname fragment in error condition.
3094 linuxaout* | bsdos3* | freebsd* | decosf4-0* | aix4* ) XE_ADD_OBJS(realpath.o) ;;
3096 case "$canonical" in
3097 *-*-sysv4.2uw2* ) XE_ADD_OBJS(realpath.o) ;;
3098 * ) AC_CHECK_FUNCS(realpath)
3099 test "$ac_cv_func_realpath" != "yes" && XE_ADD_OBJS(realpath.o) ;;
3103 dnl If netdb.h does not declare h_errno, we must declare it by hand.
3104 AC_MSG_CHECKING(whether netdb declares h_errno)
3105 AC_TRY_LINK([#include <netdb.h>],
3108 AC_DEFINE(HAVE_H_ERRNO)],
3109 [AC_MSG_RESULT(no)])
3111 AC_MSG_CHECKING(for sigsetjmp)
3112 AC_TRY_COMPILE([#include <setjmp.h>],
3113 [sigjmp_buf bar; sigsetjmp (bar, 0);],
3115 AC_DEFINE(HAVE_SIGSETJMP)],
3116 [AC_MSG_RESULT(no)])
3118 AC_MSG_CHECKING(whether localtime caches TZ)
3119 AC_CACHE_VAL(emacs_cv_localtime_cache,
3120 [if test "$ac_cv_func_tzset" = "yes"; then
3121 AC_TRY_RUN([#include <time.h>
3123 # include <stdlib.h>
3125 extern char **environ;
3129 for (to = from = environ; (*to = *from); from++)
3130 if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
3133 char TZ_GMT0[] = "TZ=GMT0";
3134 char TZ_PST8[] = "TZ=PST8";
3137 time_t now = time ((time_t *) 0);
3138 int hour_GMT0, hour_unset;
3139 if (putenv (TZ_GMT0) != 0)
3141 hour_GMT0 = localtime (&now)->tm_hour;
3143 hour_unset = localtime (&now)->tm_hour;
3144 if (putenv (TZ_PST8) != 0)
3146 if (localtime (&now)->tm_hour == hour_GMT0)
3149 if (localtime (&now)->tm_hour != hour_unset)
3152 }], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
3153 [# If we have tzset, assume the worst when cross-compiling.
3154 emacs_cv_localtime_cache=yes])
3156 # If we lack tzset, report that localtime does not cache TZ,
3157 # since we can't invalidate the cache if we don't have tzset.
3158 emacs_cv_localtime_cache=no
3160 AC_MSG_RESULT($emacs_cv_localtime_cache)
3161 if test $emacs_cv_localtime_cache = yes; then
3162 AC_DEFINE(LOCALTIME_CACHE)
3165 if test "$HAVE_TIMEVAL" = "yes"; then
3166 AC_MSG_CHECKING(whether gettimeofday accepts one or two arguments)
3168 #ifdef TIME_WITH_SYS_TIME
3169 #include <sys/time.h>
3172 #ifdef HAVE_SYS_TIME_H
3173 #include <sys/time.h>
3180 struct timeval time;
3181 struct timezone dummy;
3182 gettimeofday (&time, &dummy);
3184 [AC_MSG_RESULT(two)],
3186 AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)])
3191 if test "$ac_cv_c_inline" != "no"; then
3192 AC_DEFINE(HAVE_INLINE)
3193 test "$GCC" = "yes" && XE_ADD_OBJS(inline.o)
3196 dnl HP-UX has a working alloca in libPW.
3197 dnl case "${GCC}${opsys}" in hpux* )
3198 dnl AC_CHECK_FUNC(alloca, [:], [AC_CHECK_LIB(PW, alloca)])
3202 test -n "$ALLOCA" && XE_ADD_OBJS($ALLOCA)
3204 dnl Check whether vfork exists and works correctly. (This does more
3205 dnl than just check for its existence.) If so, it defines HAVE_VFORK_H.
3206 dnl If not, it defines vfork to be fork.
3209 dnl Check whether strcoll exists and works correctly. (This does more
3210 dnl than just check for its existence.) If so, it defines HAVE_STRCOLL.
3213 dnl If `getpgrp' takes no argument (the POSIX.1 version), define
3214 dnl `GETPGRP_VOID'. Otherwise, it is the BSD version, which takes a
3215 dnl process ID as an argument.
3216 AC_CHECK_FUNCS(getpgrp)
3219 dnl We used to call AC_FUNC_MMAP here
3220 dnl Instead we now use following, suggested by Neal Becker
3221 AC_MSG_CHECKING(for working mmap)
3222 case "$opsys" in ultrix* ) have_mmap=no ;; *)
3223 AC_TRY_RUN([#include <stdio.h>
3226 #include <sys/mman.h>
3228 #ifndef MAP_VARIABLE
3229 #define MAP_VARIABLE 0
3233 #define MAP_FAILED -1
3236 int main (int argc, char *argv[])
3240 #ifndef MAP_ANONYMOUS
3241 fd = open ("/dev/zero", O_RDWR);
3244 #define MAP_ANONYMOUS 0
3246 if (mmap(0, 1024, PROT_READ | PROT_WRITE,
3247 MAP_PRIVATE | MAP_VARIABLE | MAP_ANONYMOUS,
3248 fd, 0) != (void *) MAP_FAILED)
3250 perror ("conftest: mmap failed");
3252 }], have_mmap=yes, have_mmap=no) ;;
3254 AC_MSG_RESULT($have_mmap)
3255 test "$have_mmap" = "yes" && AC_DEFINE(HAVE_MMAP)
3258 dnl rel_alloc requires either GNU malloc or system malloc with mmap
3259 dnl We only turn rel_alloc on by default if mmap is available.
3260 test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && rel_alloc=no
3261 test "$rel_alloc" = "default" -a "$have_mmap" = "yes" && rel_alloc=yes
3262 test "$rel_alloc" = "yes" && AC_DEFINE(REL_ALLOC)
3264 dnl Check for terminal I/O variants
3265 dnl TERMIOS systems may have termio.h, but not vice-versa, I think.
3266 AC_CHECK_HEADER(termios.h,
3267 AC_DEFINE(HAVE_TERMIOS)
3268 AC_DEFINE(SIGNALS_VIA_CHARACTERS)
3269 AC_DEFINE(NO_TERMIO),
3270 [AC_CHECK_HEADER(termio.h, [AC_DEFINE(HAVE_TERMIO)])])
3273 dnl Check for Internet sockets.
3274 AC_CHECK_FUNC(socket,
3275 [AC_CHECK_HEADER(netinet/in.h,
3276 [AC_CHECK_HEADER(arpa/inet.h, [
3277 AC_DEFINE(HAVE_SOCKETS)
3278 AC_MSG_CHECKING("for sun_len member in struct sockaddr_un")
3280 #include <sys/types.h>
3281 #include <sys/socket.h>
3284 [static struct sockaddr_un x; x.sun_len = 1;],
3285 [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOCKADDR_SUN_LEN)],
3286 [AC_MSG_RESULT(no)])
3287 AC_MSG_CHECKING("for ip_mreq struct in netinet/in.h")
3289 #include <sys/types.h>
3290 #include <netinet/in.h>
3292 [static struct ip_mreq x;],
3293 [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_MULTICAST)],
3294 [AC_MSG_RESULT(no)])])])])
3296 dnl Check for SYS V IPC. (Inferior to sockets.)
3297 AC_CHECK_FUNC(msgget,
3298 [AC_CHECK_HEADER(sys/ipc.h,
3299 [AC_CHECK_HEADER(sys/msg.h,
3300 [AC_DEFINE(HAVE_SYSVIPC)])])])
3302 dnl Check for directory variants
3303 AC_CHECK_HEADER(dirent.h, [AC_DEFINE(SYSV_SYSTEM_DIR)],
3304 [AC_CHECK_HEADER(sys/dir.h, , [AC_DEFINE(NONSYSTEM_DIR_LIBRARY)])])
3306 dnl Check for nlist.h
3307 AC_CHECK_HEADER(nlist.h, AC_DEFINE(NLIST_STRUCT), )
3309 dnl Check for sound of various sorts.
3311 dnl Autodetect native sound
3312 AC_CHECKING("for sound support")
3313 case "$with_sound" in
3314 native | both ) with_native_sound=yes;;
3315 nas | no ) with_native_sound=no;;
3317 test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes
3319 if test "$with_native_sound" != "no"; then
3320 dnl Maybe sound is already on include path...
3321 if test -n "$native_sound_lib"; then
3322 AC_CHECK_HEADER(multimedia/audio_device.h,
3323 [sound_found=yes sound_cflags=""
3324 XE_ADD_OBJS(sunplay.o)])
3327 dnl Autodetect Sun native sound from SUNWaudmo package
3328 if test -z "$sound_found" -a -d "/usr/demo/SOUND"; then
3330 XE_ADD_OBJS(sunplay.o)
3331 if test -d "/usr/demo/SOUND/include"
3332 then sound_cflags="-I/usr/demo/SOUND/include"
3333 else sound_cflags="-I/usr/demo/SOUND"
3335 if test -z "$native_sound_lib" ; then
3336 if test -r "/usr/demo/SOUND/lib/libaudio.a"
3337 then native_sound_lib="/usr/demo/SOUND/lib/libaudio.a"
3338 else native_sound_lib="/usr/demo/SOUND/libaudio.a"
3343 dnl Check for SGI and HP native sound libs
3344 if test -z "$sound_found"; then
3345 case "$canonical" in
3347 if test -z "$native_sound_lib"; then
3348 AC_CHECK_LIB(audio, ALopenport, native_sound_lib="-laudio")
3350 if test -n "$native_sound_lib"; then
3351 sound_found=yes sound_cflags=""
3352 XE_ADD_OBJS(sgiplay.o)
3355 if test -z "$native_sound_lib"; then
3356 AC_CHECK_LIB(Alib, AOpenAudio, native_sound_lib="-lAlib")
3358 if test -n "$native_sound_lib"; then
3360 XE_ADD_OBJS(hpplay.o)
3361 if test "$GCC" = "yes" # Kludge city
3362 then sound_cflags="-Dconst= -Dvolatile= -I/usr/audio/examples"
3363 else sound_cflags="+e -I/usr/audio/examples"
3369 dnl Check for Linux/BSD native sound
3370 if test -z "$sound_found"; then
3371 for dir in "machine" "sys" "linux"; do
3372 AC_CHECK_HEADER(${dir}/soundcard.h,
3374 XE_ADD_OBJS(linuxplay.o)
3375 [AC_DEFINE_UNQUOTED(SOUNDCARD_H_PATH, "${dir}/soundcard.h")]
3380 test "$sound_found" = "yes" && with_native_sound=yes
3383 if test -z "$with_sound"; then
3384 if test "$with_native_sound" = "yes" -o -n "$native_sound_lib"; then
3389 if test "$with_native_sound" = "yes"; then
3390 AC_DEFINE(HAVE_NATIVE_SOUND)
3391 test -n "$native_sound_lib" && XE_PREPEND($native_sound_lib, LIBS)
3394 case "$with_sound" in both | nas )
3395 AC_DEFINE(HAVE_NAS_SOUND)
3397 XE_PREPEND(-laudio, libs_x)
3398 dnl If the nas library does not contain the error jump point,
3399 dnl then we force safer behavior.
3400 AC_EGREP_HEADER(AuXtErrorJump,audio/Xtutil.h,,[AC_DEFINE(NAS_NO_ERROR_JUMP)])
3403 dnl ---------------------
3404 dnl TTY-dependent options
3405 dnl ---------------------
3407 test -z "$with_tty" && with_tty=yes
3409 if test "$with_tty" = "yes" ; then
3410 AC_CHECKING(for TTY-related features)
3412 XE_ADD_OBJS(console-tty.o device-tty.o event-tty.o frame-tty.o objects-tty.o redisplay-tty.o cm.o)
3414 dnl Autodetect ncurses.
3415 if test -z "$with_ncurses"; then
3416 AC_CHECK_LIB(ncurses, tgetent, with_ncurses=yes, with_ncurses=no)
3418 if test "$with_ncurses" = "yes"; then
3419 AC_DEFINE(HAVE_NCURSES)
3420 AC_CHECK_HEADER(ncurses/curses.h, curses_h_path=ncurses/curses.h)
3421 AC_CHECK_HEADER(ncurses/term.h, term_h_path=ncurses/term.h)
3422 XE_ADD_OBJS(terminfo.o)
3423 XE_PREPEND(-lncurses, LIBS)
3425 if test "$ac_cv_header_ncurses_curses_h" != "yes" ; then
3426 dnl Try again, and check for the bogus ncurses/ include bug.
3427 dnl (i.e. ncurses/curses.h bogusly includes <unctrl.h> instead of
3428 dnl <ncurses/unctrl.h>)
3429 save_c_switch_site="$c_switch_site"
3430 c_switch_site="$c_switch_site -I/usr/include/ncurses"
3431 AC_CHECK_HEADER(ncurses/curses.h, curses_h_path=ncurses/curses.h)
3432 if test "$ac_cv_header_ncurses_curses_h" = "yes"
3433 then AC_MSG_WARN("Your system has the bogus ncurses include bug.")
3434 else c_switch_site="$save_c_switch_site"
3437 else dnl "$with_ncurses" = "no"
3438 dnl Autodetect terminfo/-lcurses/-ltermlib/-ltermcap
3439 if test "$have_terminfo" = "yes"; then
3440 XE_ADD_OBJS(terminfo.o)
3441 if test -n "$libs_termcap"; then
3442 XE_PREPEND($libs_termcap, LIBS)
3444 for lib in curses termlib termcap; do
3445 AC_CHECK_LIB($lib, tgetent, XE_PREPEND(-l${lib}, LIBS); break)
3448 else dnl "$have_terminfo" = "no" && "with_ncurses" = "no"
3449 XE_ADD_OBJS(tparam.o)
3450 dnl The HP-UX curses library seems to have a badly broken version of select(2)
3451 dnl that makes "poll: interrupted system call" messages to appear and
3452 dnl Emacs suprocesses to hang (e.g. TeX compilation w/ AUCTeX) */
3453 case "$opsys" in *-hp-hpux* ) libs_termcap="-ltermcap" ;; esac
3454 if test -n "$libs_termcap"; then
3455 XE_PREPEND($libs_termcap, LIBS)
3457 AC_CHECK_LIB(curses, tgetent, XE_PREPEND(-lcurses, LIBS),
3458 AC_CHECK_LIB(termcap, tgetent, XE_PREPEND(-ltermcap, LIBS),
3459 XE_ADD_OBJS(termcap.o)))
3463 AC_DEFINE_UNQUOTED(CURSES_H_PATH, "${curses_h_path-curses.h}")
3464 AC_DEFINE_UNQUOTED(TERM_H_PATH, "${term_h_path-term.h}")
3467 test -z "$with_gpm" && { AC_CHECK_HEADER(gpm.h, , with_gpm=no) }
3468 test -z "$with_gpm" && { AC_CHECK_LIB(gpm, Gpm_Open, with_gpm=yes, with_gpm=no) }
3469 if test "$with_gpm" = "yes"; then
3471 XE_ADD_OBJS(gpmevent.o)
3472 XE_PREPEND(-lgpm, LIBS)
3475 else dnl "$with_tty" = "no"
3476 for feature in ncurses gpm; do
3477 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
3478 AC_MSG_WARN("--with-${feature} ignored: Not valid without TTY support")
3480 eval "with_${feature}=no"
3484 dnl Do we need event-unixoid.o ?
3485 test "$with_x11" = "yes" -o "$with_tty" = "yes" && XE_ADD_OBJS(event-unixoid.o)
3487 dnl Database support
3488 dnl <mdiers@logware.de>
3489 dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support.
3490 dnl On FreeBSD, both DB and DBM are part of libc.
3491 dnl Note that unless support for DB/(G)DBM is explicitly disabled, we always
3492 dnl want to check for libdb/lib(g)dbm. Also note that libc will not be
3493 dnl checked if we have the libraries.
3494 dnl If support for DB/(G)DBM is requested, but we neither have libdb/lib(g)dbm,
3495 dnl nor does libc implement it, we are a bit lost :)
3497 AC_CHECKING(for database support)
3499 if test "$with_database_gnudbm" != "no"; then
3500 AC_CHECK_HEADERS(ndbm.h, have_ndbm_h=yes)
3501 if test "$have_ndbm_h" = "yes"; then
3502 AC_CHECK_LIB(gdbm, dbm_open, with_database_gnudbm=yes have_libgdbm=yes)
3504 if test "$with_database_gnudbm" != "yes"; then
3505 AC_CHECK_FUNC(dbm_open, with_database_gnudbm=yes)
3507 if test "$with_database_gnudbm" = "yes"; then
3509 test "$have_libgdbm" = "yes" && XE_PREPEND(-lgdbm, LIBS)
3510 with_database_dbm=no
3511 else with_database_gnudbm=no
3515 if test "$with_database_dbm" != "no"; then
3516 AC_CHECK_FUNC(dbm_open, with_database_dbm=yes need_libdbm=no)
3517 if test "$need_libdbm" != "no"; then
3518 AC_CHECK_LIB(dbm, dbm_open, with_database_dbm=yes need_libdbm=yes)
3520 if test "$with_database_dbm" = "yes"; then
3522 test "$need_libdbm" = "yes" && XE_PREPEND(-ldbm, LIBS)
3523 else with_database_dbm=no
3527 if test "$with_database_berkdb" != "no"; then
3528 AC_MSG_CHECKING(for Berkeley db.h)
3529 for path in "db/db.h" "db.h"; do
3530 AC_TRY_COMPILE([#ifdef HAVE_INTTYPES_H
3531 #define __BIT_TYPES_DEFINED__
3532 #include <inttypes.h>
3533 typedef uint8_t u_int8_t;
3534 typedef uint16_t u_int16_t;
3535 typedef uint32_t u_int32_t;
3536 #ifdef WE_DONT_NEED_QUADS
3537 typedef uint64_t u_int64_t;
3541 ],[], db_h_path="$path"; break)
3543 if test -z "$db_h_path"
3544 then AC_MSG_RESULT(no); with_database_berkdb=no
3545 else AC_MSG_RESULT($db_h_path)
3548 if test "$with_database_berkdb" != "no"; then
3549 AC_MSG_CHECKING(for Berkeley DB version)
3551 [#include <$db_h_path>
3552 #if DB_VERSION_MAJOR > 1
3555 ], [AC_MSG_RESULT(2); dbfunc=db_open], [AC_MSG_RESULT(1); dbfunc=dbopen])
3556 AC_CHECK_FUNC($dbfunc, with_database_berkdb=yes need_libdb=no, [
3557 AC_CHECK_LIB(db, $dbfunc, with_database_berkdb=yes need_libdb=yes)])
3560 if test "$with_database_berkdb" = "yes"; then
3561 AC_DEFINE_UNQUOTED(DB_H_PATH, "$db_h_path")
3562 AC_DEFINE(HAVE_BERKELEY_DB)
3563 test "$need_libdb" = "yes" && XE_PREPEND(-ldb, LIBS)
3564 else with_database_berkdb=no
3568 if test "$with_database_gnudbm $with_database_dbm $with_database_berkdb" \
3570 AC_DEFINE(HAVE_DATABASE)
3571 XE_ADD_OBJS(database.o)
3575 if test "$with_socks" = "yes"; then
3576 AC_CHECK_LIB(socks, SOCKSinit)
3577 test -n "$ac_cv_lib_socks_SOCKSinit" && AC_DEFINE(HAVE_SOCKS)
3580 dnl Usage tracking (undocumented and likely unused option)
3581 if test "$usage_tracking" = "yes"; then
3582 AC_DEFINE(USAGE_TRACKING)
3583 XE_PREPEND(-Bstatic -lut -Bdynamic, LIBS)
3586 dnl cygwin can't cope with dlfcn at the moment
3587 test -z "$with_shlib" && test "$opsys $machine" = "cygwin32 intel386" && with_shlib=no
3589 dnl autodetect dll support
3590 AC_CHECK_HEADERS(dlfcn.h, have_dlfcn=yes)
3591 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(dl, dlopen, [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=dl; with_shlib=yes]) }
3592 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c, _dlopen, [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=; with_shlib=yes]) }
3593 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c, dlopen, [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=; with_shlib=yes]) }
3594 test -z "$with_shlib" && { AC_CHECK_LIB(dld, shl_load, [ AC_DEFINE(HAVE_SHL_LOAD) DLL_LIB=dld; with_shlib=yes]) }
3595 test -z "$with_shlib" && { AC_CHECK_LIB(dld, dld_init, [ AC_DEFINE(HAVE_DLD_INIT) DLL_LIB=dld; with_shlib=yes]) }
3596 if test "$with_shlib" = "yes"; then
3597 AC_DEFINE(HAVE_SHLIB)
3598 XE_ADD_OBJS(sysdll.o)
3600 test ! -z "$DLL_LIB" && XE_PREPEND(-l${DLL_LIB}, LIBS)
3602 AC_CHECK_FUNCS(dlerror)
3603 ld_dynamic_link_flags=
3604 dnl Fill this in with other values as this gets more testing
3606 hpux*) ld_dynamic_link_flags="-Wl,-E" ;;
3607 linux*) ld_dynamic_link_flags="-rdynamic" ;;
3612 dnl Unfortunately, just because we can link doesn't mean we can run.
3613 dnl One of the above link tests may have succeeded but caused resulting
3614 dnl executables to fail to run. Also any tests using AC_TRY_RUN will
3615 dnl have reported incorrect results.
3616 AC_TRY_RUN([int main(int c,char *v[]){return 0;}],[:],[
3618 echo "*** PANIC *** The C compiler can no longer build working executables."
3619 echo "*** PANIC *** Please examine the tail of config.log for runtime errors."
3620 echo "*** PANIC *** The most likely reason for this problem is that configure"
3621 echo "*** PANIC *** links with shared libraries, but those libraries cannot be"
3622 echo "*** PANIC *** found at run time."
3623 echo "*** PANIC ***"
3624 echo "*** PANIC *** On a Linux system, edit /etc/ld.so.conf and re-run ldconfig."
3625 echo "*** PANIC *** On other systems, try telling configure where to find the"
3626 echo "*** PANIC *** shared libraries using the --site-runtime-libraries option"
3627 echo "*** PANIC ***"
3628 echo "*** PANIC *** Another way to shoot yourself in the foot is to specify"
3629 echo "*** PANIC *** --with-FEATURE when FEATURE is not actually installed"
3630 echo "*** PANIC *** on your system. Don't do that."
3633 dnl Process support (hardcoded)
3634 dnl every system that supports this runs configure, the others don't
3636 dnl We're not ready for this yet.
3637 AC_DEFINE(HAVE_UNIX_PROCESSES)
3638 XE_ADD_OBJS(process-unix.o)
3640 dnl --------------------------------
3641 dnl Compute SUBST-itutable variables
3642 dnl --------------------------------
3644 dnl We ignore (C|LD)_SWITCH_X_(MACHINE|SYSTEM)
3645 dnl Use XE_SPACE instead of plain assignment statements to remove extraneous blanks
3646 XE_SPACE(CFLAGS, $CFLAGS)
3647 XE_SPACE(extra_objs, $extra_objs)
3648 XE_SPACE(c_switch_general, -DHAVE_CONFIG_H $c_switch_site $c_switch_machine $c_switch_system)
3649 XE_SPACE(c_switch_window_system, $c_switch_x_site $X_CFLAGS)
3650 XE_SPACE(c_switch_all, $c_switch_general $c_switch_window_system)
3651 XE_SPACE(ld_switch_general, $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_run)
3652 XE_SPACE(ld_switch_window_system, $ld_switch_x_site)
3653 XE_SPACE(ld_switch_all, $ld_switch_general $ld_switch_window_system)
3654 XE_SPACE(ld_libs_general, $LIBS $libs_machine $libs_system $libs_standard)
3655 XE_SPACE(ld_libs_window_system, $X_EXTRA_LIBS $libs_x $X_PRE_LIBS)
3656 XE_SPACE(ld_libs_all, $ld_libs_window_system $ld_libs_general)
3658 dnl Compute lists of Makefiles and subdirs
3659 AC_SUBST(SRC_SUBDIR_DEPS)
3660 XE_APPEND(src, MAKE_SUBDIR)
3661 internal_makefile_list="Makefile.in"
3663 test -d lock || mkdir lock
3664 for dir in $MAKE_SUBDIR; do
3665 case "$dir" in */* ) dnl Implement mkdir -p
3666 ( for d in `echo $dir | sed 's:/: :g'` ; do
3667 test -d "$d" || mkdir "$d"; cd "$d"
3669 * ) test -d "$dir" || mkdir "$dir" ;;
3671 XE_SPACE(SUBDIR_MAKEFILES, $SUBDIR_MAKEFILES $dir/Makefile $dir/GNUmakefile)
3672 XE_SPACE(internal_makefile_list, $internal_makefile_list $dir/Makefile.in)
3674 AC_SUBST(INSTALL_ARCH_DEP_SUBDIR)
3675 AC_SUBST(MAKE_SUBDIR)
3676 AC_SUBST(SUBDIR_MAKEFILES)
3678 dnl Make s&m symlinks in the src directory, for config.h
3679 for dir in src/s src/m; do
3680 if test ! -d "$dir" ; then
3681 echo Making symbolic link to "$srcdir/$dir"
3682 ${LN_S} "$srcdir/$dir" "$dir"
3686 if test "$extra_verbose" = "yes"; then
3688 PRINT_VAR(extra_objs
3689 c_switch_general c_switch_window_system c_switch_all
3690 ld_switch_general ld_switch_window_system ld_switch_all
3691 ld_libs_general ld_libs_window_system ld_libs_all)
3695 dnl Create some auxiliary files
3696 if test -f $srcdir/src/gdbinit -a ! -f src/gdbinit ; then
3697 echo "creating src/gdbinit"; echo ""
3698 echo "source $srcdir/src/gdbinit" > src/gdbinit
3701 dnl Create top level .sbinit for Sun compilers
3702 if test "$__SUNPRO_C" = "yes"; then
3703 echo "creating .sbinit"; echo ""
3704 ( echo "# For use with Sun WorkShop's Source browser."
3705 echo "# See sbquery(1) and sbinit(4) for more information"
3706 for dir in $MAKE_SUBDIR; do echo "import $dir"; done
3710 dnl There are no more compile tests; remove the core they created.
3713 dnl ----------------------------------------------
3714 dnl Substitute into Makefile, config.h and paths.h
3715 dnl ----------------------------------------------
3717 dnl what sort of things to edit into Makefile, config.h and paths.h
3718 dnl configuration here uncanonicalized to avoid exceeding size limits.
3722 AC_SUBST(configuration)
3733 dnl Yo, Stephen Bourne! I want to marry you!
3737 *\$* ) eval "PREFIX=$PREFIX" ;;
3743 AC_SUBST(exec_prefix)
3744 EXEC_PREFIX=$exec_prefix
3746 case "$EXEC_PREFIX" in
3747 *\$* ) eval "EXEC_PREFIX=$EXEC_PREFIX" ;;
3751 AC_SUBST(EXEC_PREFIX)
3754 AC_SUBST(INFODIR_USER_DEFINED)
3758 *\$* ) eval "INFODIR=$INFODIR" ;;
3765 AC_SUBST(INFOPATH_USER_DEFINED)
3769 *\$* ) eval "INFOPATH=$INFOPATH" ;;
3775 AC_SUBST(package_path)
3776 AC_SUBST(PACKAGE_PATH_USER_DEFINED)
3777 PACKAGE_PATH=$package_path
3779 case "$PACKAGE_PATH" in
3780 *\$* ) eval "PACKAGE_PATH=$PACKAGE_PATH" ;;
3784 AC_SUBST(PACKAGE_PATH)
3787 AC_SUBST(LISPDIR_USER_DEFINED)
3791 *\$* ) eval "LISPDIR=$LISPDIR" ;;
3797 dnl AC_SUBST(sitelispdir)
3798 dnl AC_SUBST(SITELISPDIR_USER_DEFINED)
3799 dnl SITELISPDIR=$sitelispdir
3801 dnl case "$SITELISPDIR" in
3802 dnl *\$* ) eval "SITELISPDIR=$SITELISPDIR" ;;
3806 dnl AC_SUBST(SITELISPDIR)
3809 AC_SUBST(ETCDIR_USER_DEFINED)
3813 *\$* ) eval "ETCDIR=$ETCDIR" ;;
3820 AC_SUBST(LOCKDIR_USER_DEFINED)
3824 *\$* ) eval "LOCKDIR=$LOCKDIR" ;;
3830 AC_SUBST(archlibdir)
3831 AC_SUBST(ARCHLIBDIR_USER_DEFINED)
3832 ARCHLIBDIR=$archlibdir
3834 case "$ARCHLIBDIR" in
3835 *\$* ) eval "ARCHLIBDIR=$ARCHLIBDIR" ;;
3839 AC_SUBST(ARCHLIBDIR)
3843 AC_SUBST(extra_objs)
3844 AC_SUBST(ld_dynamic_link_flags)
3846 dnl The following flags combine all the information from:
3847 dnl - command line options (user always gets priority)
3848 dnl - user environment variables
3849 dnl - determined by configure
3850 dnl - the s&m header files (deprecated)
3853 AC_SUBST(c_switch_general)
3854 AC_SUBST(c_switch_window_system)
3855 AC_SUBST(c_switch_all)
3856 AC_SUBST(ld_switch_general)
3857 AC_SUBST(ld_switch_window_system)
3858 AC_SUBST(ld_switch_all)
3859 AC_SUBST(ld_libs_general)
3860 AC_SUBST(ld_libs_window_system)
3861 AC_SUBST(ld_libs_all)
3865 RECURSIVE_MAKE="\$(MAKE) \$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'"
3866 AC_SUBST(RECURSIVE_MAKE)
3868 AC_SUBST(native_sound_lib)
3869 AC_SUBST(sound_cflags)
3871 AC_SUBST(dynodump_arch)
3873 dnl Preliminary support for using a different compiler for xemacs itself.
3874 dnl Useful for building XEmacs with a C++ or 64-bit compiler.
3879 dnl The default is yes
3880 if test "$with_site_lisp" = "no"; then
3881 AC_DEFINE(INHIBIT_SITE_LISP)
3884 XE_SPACE(ac_configure_args, $ac_configure_args)
3885 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "$canonical")
3886 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "$ac_configure_args")
3887 AC_DEFINE_UNQUOTED(config_machfile, "$machfile")
3888 AC_DEFINE_UNQUOTED(config_opsysfile, "$opsysfile")
3890 dnl Following are deprecated
3893 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, $null_string)
3894 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, $null_string)
3895 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, $null_string)
3896 AC_DEFINE_UNQUOTED(LD_SWITCH_SITE, $null_string)
3897 AC_DEFINE_UNQUOTED(C_SWITCH_SITE, $null_string)
3899 dnl Note: as a general rule, *only* define things here that are not
3900 dnl autodetected. For things that are autodetected, define them
3901 dnl at the point where the autodetection occurs or would occur,
3902 dnl so that the user gets immediate feedback on the results of the
3905 test -n "$puresize" && AC_DEFINE_UNQUOTED(RAW_PURESIZE, $puresize)
3907 if test "$GNU_MALLOC" = "yes"; then AC_DEFINE(GNU_MALLOC)
3908 elif test "$with_system_malloc" = "yes"; then AC_DEFINE(USE_SYSTEM_MALLOC)
3909 elif test "$with_debug_malloc" = "yes"; then AC_DEFINE(USE_DEBUG_MALLOC)
3910 AC_DEFINE(USE_SYSTEM_MALLOC)
3912 test "$with_i18n3" = "yes" && AC_DEFINE(I18N3)
3913 test "$GCC" = "yes" && AC_DEFINE(USE_GCC)
3914 test "$external_widget" = "yes" && AC_DEFINE(EXTERNAL_WIDGET)
3915 test "$no_doc_file" = "yes" && AC_DEFINE(NO_DOC_FILE)
3916 dnl test "$const_is_losing" = "yes" && AC_DEFINE(CONST_IS_LOSING)
3917 test "$with_purify" = "yes" && AC_DEFINE(PURIFY)
3918 test "$with_quantify" = "yes" && AC_DEFINE(QUANTIFY)
3919 test "$with_pop" = "yes" && AC_DEFINE(MAIL_USE_POP)
3920 test "$with_kerberos" = "yes" && AC_DEFINE(KERBEROS)
3921 test "$with_hesiod" = "yes" && AC_DEFINE(HESIOD)
3922 test "$use_union_type" = "yes" && AC_DEFINE(USE_UNION_TYPE)
3924 dnl -------------------------------
3925 dnl Report on what we decided to do
3926 dnl -------------------------------
3929 dnl /etc/osversion is on SONY NEWS-OS
3930 if test -f /etc/osversion; then dnl SONY NEWS-OS
3931 echo "osversion: `cat /etc/osversion`"
3933 echo "uname -a: `uname -a`"
3936 echo "$0 $quoted_arguments"
3940 test ! -z "${emacs_beta_version}" && xemacs_betaname="-b${emacs_beta_version}"
3942 dnl Start stdout redirection to '| tee -a Installation'
3946 XEmacs ${emacs_major_version}.${emacs_minor_version}${xemacs_betaname} \"$xemacs_codename\" configured for \`$canonical'.
3948 Where should the build process find the source code? $srcdir
3949 What installation prefix should install use? $prefix
3950 What operating system and machine description files should XEmacs use?
3951 \`$opsysfile' and \`$machfile'
3952 What compiler should XEmacs be built with? $CC $CFLAGS
3953 Should XEmacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason}
3954 Should XEmacs use the relocating allocator for buffers? $rel_alloc
3955 What window system should XEmacs use? ${window_system}"
3956 if test "$with_x11" = "yes"; then
3957 echo " Where do we find X Windows header files? $x_includes"
3958 echo " Where do we find X Windows libraries? $x_libraries"
3960 if test -n "$site_includes"; then
3961 echo " Additional header files: $site_includes"
3963 if test -n "$site_libraries"; then
3964 echo " Additional libraries: $site_libraries"
3966 if test -n "$site_prefixes"; then
3967 echo " Additional prefixes: $site_prefixes"
3969 if test -n "$runpath"; then
3970 echo " Runtime library search path: $runpath"
3972 test "$with_dnet" = yes && echo " Compiling in support for DNET."
3973 test "$with_socks" = yes && echo " Compiling in support for SOCKS."
3974 test "$with_xauth" = yes && echo " Compiling in support for XAUTH."
3975 if test "$with_xmu" != yes -a "$with_x11" = yes; then
3976 echo " No Xmu; substituting equivalent routines."
3979 if test "$with_xpm" = yes; then
3980 echo " Compiling in support for XPM images."
3981 elif test "$with_x11" = yes; then
3982 echo " --------------------------------------------------------------------"
3983 echo " WARNING: Compiling without XPM support."
3984 if test "$xpm_problem" != ""; then
3985 echo " Reason: $xpm_problem"
3987 echo " WARNING: You should strongly consider installing XPM."
3988 echo " WARNING: Otherwise toolbars and other graphics will look suboptimal."
3989 echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
3990 echo " --------------------------------------------------------------------"
3992 if test "$with_png" = yes; then
3993 echo " Compiling in support for PNG image handling."
3994 elif test "$window_system" != "none"; then
3995 echo " --------------------------------------------------------------------"
3996 echo " WARNING: Compiling without PNG image support."
3997 if test "$png_problem" != ""; then
3998 echo " Reason: $png_problem"
4000 echo " WARNING: You should strongly consider installing the PNG libraries."
4001 echo " WARNING: Otherwise certain images and glyphs may not display."
4002 echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
4003 echo " --------------------------------------------------------------------"
4005 test "$with_gif" = yes && echo " Compiling in support for (builtin) GIF image handling."
4006 test "$with_jpeg" = yes && echo " Compiling in support for JPEG image handling."
4007 test "$with_tiff" = yes && echo " Compiling in support for TIFF image handling."
4008 test "$with_xface" = yes && echo " Compiling in support for X-Face message headers."
4009 case "$with_sound" in
4010 nas ) echo " Compiling in network sound (NAS) support." ;;
4011 native ) echo " Compiling in native sound support." ;;
4012 both ) echo " Compiling in both network and native sound support." ;;
4014 test "$old_nas" = yes && echo " nas library lacks error trapping, will play synchronously."
4016 test "$with_database_berkdb" = yes && echo " Compiling in support for Berkeley DB."
4017 test "$with_database_dbm" = yes && echo " Compiling in support for DBM."
4018 test "$with_database_gnudbm" = yes && echo " Compiling in support for GNU DBM."
4020 test "$with_umich_ldap" = yes && echo " Compiling in support for LDAP (UMich libs)."
4021 test "$with_ns_ldap" = yes && echo " Compiling in support for LDAP (Netscape SDK)."
4022 test "$with_ldap" = yes -a "$with_umich_ldap" = no -a "$with_ns_ldap" = no && echo " Compiling in support for LDAP (Generic)."
4024 test "$with_ncurses" = yes && echo " Compiling in support for ncurses."
4025 test "$with_gpm" = yes && echo " Compiling in support for GPM (General Purpose Mouse)."
4027 test "$with_mule" = yes && echo " Compiling in Mule (multi-lingual) support."
4028 test "$with_file_coding" = yes && echo " Compiling in File coding support."
4029 test "$with_xim" != no && echo " Compiling in XIM (X11R5+ I18N input method) support."
4030 test "$with_xim" = motif && echo " Using Motif to provide XIM support."
4031 test "$with_xim" = xlib && echo " Using raw Xlib to provide XIM support."
4032 test "$with_xfs" = yes && echo " Using XFontSet to provide bilingual menubar."
4033 test "$with_canna" = yes && echo " Compiling in support for Canna on Mule."
4034 if test "$with_wnn" = yes; then
4035 echo " Compiling in support for the WNN input method on Mule."
4036 test "$with_wnn6" = yes && echo " Using WNN version 6."
4038 test "$with_i18n3" = yes && echo " Compiling in I18N support, level 3 (doesn't currently work)."
4040 test "$with_cde" = yes && echo " Compiling in support for CDE."
4041 test "$with_tooltalk" = yes && echo " Compiling in support for ToolTalk."
4042 test "$with_offix" = yes && echo " Compiling in support for OffiX."
4043 test "$with_dragndrop" = yes && echo " Compiling in EXPERIMENTAL support for Drag'n'Drop ($dragndrop_proto )."
4044 test "$with_workshop" = yes && echo " Compiling in support for Sun WorkShop."
4045 test "$with_session" != no && echo " Compiling in support for proper session-management."
4046 case "$with_menubars" in
4047 lucid ) echo " Using Lucid menubars." ;;
4048 motif ) echo " Using Motif menubars."
4049 echo " *WARNING* The Motif menubar implementation is currently buggy."
4050 echo " We recommend using the Lucid menubar instead."
4051 echo " Re-run configure with --with-menubars='lucid'." ;;
4053 case "$with_scrollbars" in
4054 lucid ) echo " Using Lucid scrollbars." ;;
4055 motif ) echo " Using Motif scrollbars." ;;
4056 athena ) echo " Using Athena scrollbars." ;;
4057 athena3d ) echo " Using Athena-3d scrollbars." ;;
4059 case "$with_dialogs" in
4060 motif ) echo " Using Motif dialog boxes." ;;
4061 athena ) echo " Using Athena dialog boxes." ;;
4062 athena3d ) echo " Using Athena-3d dialog boxes." ;;
4064 test "$with_shlib" = "yes" && echo " Compiling in DLL support."
4065 test "$with_clash_detection" = yes && \
4066 echo " Clash detection will use \"$lockdir\" for locking files."
4067 echo " movemail will use \"$mail_locking\" for locking mail spool files."
4068 test "$with_pop" = yes && echo " Using POP for mail access."
4069 test "$with_kerberos" = yes && echo " Using Kerberos for POP authentication."
4070 test "$with_hesiod" = yes && echo " Using Hesiod to get POP server host."
4071 test "$use_union_type" = yes && echo " Using the union type for Lisp_Objects."
4072 test "$use_minimal_tagbits" = yes && echo " Using Lisp_Objects with minimal tagbits."
4073 test "$use_indexed_lrecord_implementation" = yes && echo " Using indexed lrecord implementation."
4074 test "$debug" = yes && echo " Compiling in extra code for debugging."
4075 test "$memory_usage_stats" = yes && echo " Compiling in code for checking XEmacs memory usage."
4076 test "$usage_tracking" = yes && echo " Compiling with usage tracking active (Sun internal)."
4077 if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc" \
4078 != "no no no no no"; then
4079 echo " WARNING: ---------------------------------------------------------"
4080 echo " WARNING: Compiling in support for runtime error checking."
4081 echo " WARNING: XEmacs will run noticeably more slowly as a result."
4082 echo " WARNING: Error checking is on by default for XEmacs beta releases."
4083 echo " WARNING: ---------------------------------------------------------"
4086 ) | tee -a Installation
4087 dnl echo "The above configure report is appended to \"Installation\" file."
4090 dnl Generate Installation.el
4091 echo '(setq Installation-string "' > Installation.el
4092 sed 's/"/\\"/g' Installation >> Installation.el
4093 echo '")' >> Installation.el
4095 dnl -----------------------------------
4096 dnl Now generate config.h and Makefiles
4097 dnl -----------------------------------
4098 dnl This has to be called in order for this variable to get into config.status
4099 AC_SUBST(internal_makefile_list)
4100 # Remove any trailing slashes in these variables.
4101 test -n "$prefix" &&
4102 prefix=`echo '' "$prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4103 test -n "$exec_prefix" &&
4104 exec_prefix=`echo '' "$exec_prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4106 dnl Build Makefile.in's from Makefile.in.in's
4107 dnl except ./Makefile from $srcdir/Makefile.in
4109 for file in $internal_makefile_list; do
4110 test "$file" = src/Makefile.in && \
4111 file="src/Makefile.in:src/Makefile.in.in:src/depend"
4112 ac_output_files="${ac_output_files+$ac_output_files }$file"
4114 ac_output_files="$ac_output_files src/paths.h lib-src/config.values"
4116 AC_OUTPUT($ac_output_files,
4117 [for dir in . $MAKE_SUBDIR; do
4122 sed -e '/^# Generated/d' \
4123 -e 's%/\*\*/#.*%%' \
4125 dnl Delete Makefile.in.in comment lines
4127 dnl Pass through CPP directives unchanged
4132 dnl Quote other lines to protect from CPP substitution
4139 dnl Create a GNUmakefile and Makefile from Makefile.in.
4141 changequote(<<,>>)dnl
4142 dnl CPP_MAKEFILE(CPPFLAGS,filename)
4143 define(<<CPP_MAKEFILE>>,
4144 echo creating $dir/<<$2>>
4145 $CPP -I. -I${top_srcdir}/src <<$1>> junk.c \
4146 dnl Delete line directives inserted by $CPP
4147 | sed -e 's/^\#.*//' \
4148 dnl Delete spurious blanks inserted by $CPP
4149 -e 's/^[ TAB][ TAB]*$//'\
4151 dnl Delete blank lines
4152 | sed -n -e '/^..*$/p' \
4153 dnl Restore lines quoted above to original contents.
4159 chmod 444 Makefile.new
4160 mv -f Makefile.new <<$2>>
4163 CPP_MAKEFILE(,Makefile)
4164 CPP_MAKEFILE(-DUSE_GNU_MAKE,GNUmakefile)
4170 dnl Append AC_DEFINE information to lib-src/config.values
4171 dnl (AC_SUBST information is already there (see config.values.sh).
4172 sed < config.status >> lib-src/config.values \
4173 -e '/{ac_dA}.*{ac_dB}.*{ac_dC}.*{ac_dD}$/!d' \
4174 -e 's/\${ac_dA}\(.*\)\${ac_dB}.*\${ac_dC}\(.*\)\${ac_dD}/\1 \2/' \
4175 -e 's/^\([[^ ]]*\) $/\1 ""/' \
4180 top_srcdir="$srcdir"
4181 MAKE_SUBDIR="$MAKE_SUBDIR"