Mercurial > hg > xemacs-beta
comparison configure.in @ 2938:ff857b8541b7
[xemacs-hg @ 2005-09-18 13:01:03 by malcolmp]
Autoconf 2.13 support removed. Final cutover to autoconf 2.59 based configure
scripts.
author | malcolmp |
---|---|
date | Sun, 18 Sep 2005 13:01:18 +0000 |
parents | 6fa9919a9a0b |
children |
comparison
equal
deleted
inserted
replaced
2937:a34fa5428e54 | 2938:ff857b8541b7 |
---|---|
1 dnl Define our own header notice with own copyright | 1 # XEmacs now uses autoconf 2.59. Please use configure.ac. |
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, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 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, 2002, 2003, 2004 Ben Wing. | |
10 #### Copyright (C) 2000, 2001 Martin Buchholz. | |
11 #### Copyright (C) 1998, 1999 J. Kean Johnston. | |
12 | 2 |
13 ### Don't edit this script! | 3 AC_PREREQ(2.59) |
14 ### This script was automatically generated by the `autoconf' program | |
15 ### from the file `./configure.in'. | |
16 ### To rebuild it, execute the command | |
17 ### autoconf | |
18 ### in the this directory. You must have autoconf version 2.13 or later. | |
19 ### Note: this script has not yet been ported to autoconf version 2.5x. | |
20 | 4 |
21 ### This file is part of XEmacs. | |
22 | |
23 ### XEmacs is free software; you can redistribute it and/or modify it | |
24 ### under the terms of the GNU General Public License as published by | |
25 ### the Free Software Foundation; either version 2, or (at your | |
26 ### option) any later version. | |
27 | |
28 ### XEmacs is distributed in the hope that it will be useful, but | |
29 ### WITHOUT ANY WARRANTY; without even the implied warranty of | |
30 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
31 ### General Public License for more details. | |
32 | |
33 ### You should have received a copy of the GNU General Public License | |
34 ### along with XEmacs; see the file COPYING. If not, write to the Free | |
35 ### Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | |
36 ### 02111-1307, USA. | |
37 | |
38 ### For usage, run `./configure --help' | |
39 ### For more detailed information on building and installing XEmacs, | |
40 ### read the file `INSTALL'. | |
41 ### | |
42 ### If configure succeeds, it leaves its status in config.status. | |
43 ### A log of configuration tests can be found in config.log. | |
44 ### If configure fails after disturbing the status quo, | |
45 ### config.status is removed. | |
46 ]) | |
47 | |
48 dnl Since XEmacs has configuration requirements that autoconf cannot | |
49 dnl meet, this file is an unholy marriage of custom-baked | |
50 dnl configuration code and autoconf macros. | |
51 | |
52 dnl We use the m4 quoting characters [ ] (as established by the | |
53 dnl autoconf system), so quote them like this: [[foo]] | |
54 | |
55 AC_PREREQ(2.13)dnl | |
56 | |
57 dnl #### Doesn't work currently. it would be really nice if we could | |
58 dnl get this working, because many autoconfs v2.5 come with support for | |
59 dnl v2.1 source files but get snafued by our nasty configure.ac kludge. | |
60 dnl | |
61 dnl m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]), 2.5), -1, | |
62 dnl [m4_fatal([Autoconf version 2.5 or higher not supported])]) | |
63 | |
64 dnl Redefine some standard autoconf macros | |
65 dnl here is how XEmacs is different: | |
66 dnl - no cache file | |
67 dnl - non-standard options | |
68 dnl - support for extra-verbosity | |
69 dnl - ordinary libs are handled separately from X libs (might be a mistake) | |
70 dnl - various random kludges (e.g. -with-dnet=no) | |
71 | |
72 dnl PRINT_VAR(var var ...) prints values of shell variables | |
73 define([PRINT_VAR],[for var in patsubst([$1],[[ | |
74 ]+],[ ]); do eval "echo \"$var = '\$$var'\""; done]) | |
75 | |
76 dnl Disable cache files: | |
77 dnl This is controversial, but I am convinced this is the right way to go, | |
78 dnl at least by default. Otherwise there are too many surprises. | |
79 dnl It's been several years, and nobody noticed. -- sjt, 2004-01-28 | |
80 define([AC_CACHE_LOAD], )dnl | |
81 define([AC_CACHE_SAVE], )dnl | |
82 define([AC_CACHE_VAL], [ | |
83 $2 | |
84 ])dnl | |
85 | |
86 dnl Redefine AC_TRY_RUN_NATIVE to not throw away stderr while running | |
87 dnl AC_TRY_RUN_NATIVE(PROGRAM, [ACTION-IF-TRUE [, ACTION-IF-FALSE]]) | |
88 define([AC_TRY_RUN_NATIVE], | |
89 [cat > conftest.$ac_ext <<EOF | |
90 [#]line __oline__ "configure" | |
91 #include "confdefs.h" | |
92 [$1] | |
93 EOF | |
94 if AC_TRY_EVAL(ac_link) && test -s conftest && (./conftest; exit $?) 2>&AC_FD_CC | |
95 then | |
96 dnl Do not remove the temporary files here, so they can be examined. | |
97 ifelse([$2], , :, [$2]) | |
98 else | |
99 conftest_rc="$?" | |
100 echo "configure: failed program was:" >&AC_FD_CC | |
101 cat conftest.$ac_ext >&AC_FD_CC | |
102 ifelse([$3], , , [ rm -fr conftest* | |
103 $3 | |
104 ])dnl | |
105 fi | |
106 rm -fr conftest*])dnl AC_TRY_RUN_NATIVE | |
107 | |
108 | |
109 dnl Avoid spurious cross-compiling warnings from AC_TRY_RUN | |
110 dnl XEmacs is unlikely to ever cross-compile | |
111 define([AC_TRY_RUN],[AC_TRY_RUN_NATIVE([$1], [$2], [$3])])dnl | |
112 | |
113 dnl Redefine AC_DEFINE* to provide more output if extra_verbose | |
114 dnl Set VARIABLE to VALUE, verbatim, or 1. | |
115 dnl AC_DEFINE(VARIABLE [, VALUE]) | |
116 define([AC_DEFINE], | |
117 [{ test "$extra_verbose" = "yes" && cat << \EOF | |
118 Defining $1[]ifelse($#, 2, [ = $2],) | |
119 EOF | |
120 cat >> confdefs.h <<\EOF | |
121 [#define] $1 ifelse($#, 2, [$2], 1) | |
122 EOF | |
123 } | |
124 ])dnl AC_DEFINE | |
125 | |
126 define([AC_DEFINE_UNQUOTED], | |
127 [{ test "$extra_verbose" = "yes" && cat << EOF | |
128 Defining $1[]ifelse($#, 2, [ = $2],) | |
129 EOF | |
130 cat >> confdefs.h <<EOF | |
131 [#define] $1 ifelse($#, 2, [$2], 1) | |
132 EOF | |
133 } | |
134 ])dnl AC_DEFINE_UNQUOTED | |
135 | |
136 dnl redefine AC_CHECK_LIB in accordance with our own value of ac_link | |
137 dnl Add in extra kludgy check to support with_dnet=no | |
138 dnl Add in extra LDFLAGS arg, which PRECEDES libs | |
139 dnl Support --with-dnet=no | |
140 | |
141 dnl AC_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND | |
142 dnl [, OTHER-LIBRARIES] [, LDFLAGS]]]]) | |
143 define([AC_CHECK_LIB], | |
144 [ifelse([$1],dnet, [if test "$with_dnet" = "no" ; then | |
145 ac_cv_lib_dnet_dnet_ntoa=no | |
146 ifelse([$4], , , [$4] | |
147 )dnl | |
148 else | |
149 ])] | |
150 AC_CHECK_LIB_ORIG_HACKED([$1],[$2],[$3],[$4],[$5], [$6]) | |
151 [ifelse([$1],dnet,[fi | |
152 ])]dnl | |
153 )dnl AC_CHECK_LIB | |
154 | |
155 define([AC_CHECK_LIB_ORIG_HACKED], | |
156 [ifelse([$5],,AC_MSG_CHECKING([for $2 in -l$1]), | |
157 xe_msg_checking="for [$2] in -l[$1]" | |
158 test -n "[$5]" && xe_msg_checking="$xe_msg_checking using extra libs [$5]" | |
159 AC_MSG_CHECKING("$xe_msg_checking")) | |
160 dnl Use a cache variable name containing both the library and function name, | |
161 dnl because the test really is for library $1 defining function $2, not | |
162 dnl just for library $1. Separate tests with the same $1 and different $2s | |
163 dnl may have different results. | |
164 ac_lib_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'` | |
165 AC_CACHE_VAL(ac_cv_lib_$ac_lib_var, | |
166 [xe_check_libs="$6 -l$1 $5" | |
167 AC_TRY_LINK(dnl | |
168 ifelse([$2], [main], , dnl Avoid conflicting decl of main. | |
169 [/* Override any gcc2 internal prototype to avoid an error. */ | |
170 ]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus | |
171 extern "C" | |
172 #endif | |
173 ])dnl | |
174 [/* We use char because int might match the return type of a gcc2 | |
175 builtin and then its argument prototype would still apply. */ | |
176 char $2(); | |
177 ]), | |
178 [$2()], | |
179 eval "ac_cv_lib_$ac_lib_var=yes", | |
180 eval "ac_cv_lib_$ac_lib_var=no") | |
181 xe_check_libs="" | |
182 ])dnl | |
183 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then | |
184 AC_MSG_RESULT(yes) | |
185 ifelse([$3], , | |
186 [changequote(, )dnl | |
187 ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \ | |
188 -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` | |
189 changequote([, ])dnl | |
190 AC_DEFINE_UNQUOTED($ac_tr_lib) | |
191 XE_PREPEND([-l$1], LIBS) | |
192 ], [$3]) | |
193 else | |
194 AC_MSG_RESULT(no) | |
195 ifelse([$4], , , [$4 | |
196 ])dnl | |
197 fi | |
198 ])dnl AC_CHECK_LIB_ORIG_HACKED | |
199 | |
200 | |
201 dnl AC_LANG_C() | |
202 define([AC_LANG_C], | |
203 [define([AC_LANG], [C])dnl | |
204 ac_ext=c | |
205 dnl CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. | |
206 dnl ac_cpp='$CPP $CPPFLAGS' | |
207 dnl ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&AC_FD_CC' | |
208 dnl ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC' | |
209 xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS' | |
210 xe_ldflags='$LDFLAGS $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_x_site $ld_switch_run' | |
211 xe_libs='$ld_call_shared $xe_check_libs $X_EXTRA_LIBS $libs_x $libs_gtk $X_PRE_LIBS $LIBS $libs_machine $libs_system $libs_standard' | |
212 ac_cpp='$CPP '"$xe_cppflags" | |
213 ac_compile='${CC-cc} -c $CFLAGS '"$xe_cppflags"' conftest.$ac_ext 1>&AC_FD_CC' | |
214 ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&AC_FD_CC' | |
215 cross_compiling=no | |
216 ]) dnl AC_LANG_C | |
217 | |
218 dnl The construct foo=`echo $w1 $w2 $w3` fails on some systems if $w1 = -e or -n | |
219 dnl So we use the following instead. | |
220 dnl XE_SPACE(var, words) | |
221 define([XE_SPACE],[ | |
222 T="" | |
223 for W in $2; do if test -z "$T"; then T="$W"; else T="$T $W"; fi; done | |
224 $1="$T" | |
225 ])dnl XE_SPACE | |
226 | |
227 dnl XE_ADD_OBJS(foo.o ...) | |
228 define([XE_ADD_OBJS], | |
229 [extra_objs="$extra_objs [$1]" && dnl | |
230 if test "$extra_verbose" = "yes"; then | |
231 echo " xemacs will be linked with \"[$1]\"" | |
232 fi])dnl XE_ADD_OBJS | |
233 | |
234 dnl XE_APPEND(value, varname) | |
235 define([XE_APPEND], | |
236 [[$2]="$[$2] [$1]" && dnl | |
237 if test "$extra_verbose" = "yes"; then echo " Appending \"[$1]\" to \$[$2]"; fi]) | |
238 | |
239 dnl XE_PREPEND(value, varname) | |
240 define([XE_PREPEND], | |
241 [[$2]="[$1] $[$2]" && dnl | |
242 if test "$extra_verbose" = "yes"; then echo " Prepending \"[$1]\" to \$[$2]"; fi]) | |
243 | |
244 dnl XE_DIE(message) | |
245 define([XE_DIE], [{ echo "Error:" $1 >&2; exit 1; }]) | |
246 | |
247 dnl XE_STRIP_4TH_COMPONENT(var) | |
248 dnl Changes i986-pc-linux-gnu to i986-pc-linux, as God (not RMS) intended. | |
249 define([XE_STRIP_4TH_COMPONENT], | |
250 [$1=`echo "$$1" | sed '[s/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/]'`]) | |
251 | |
252 define([USAGE_ERROR], | |
253 [(echo "$progname: Usage error:" | |
254 echo " " $1 | |
255 echo " Use \`$progname --help' to show usage.") >&2 && exit 1]) | |
256 | |
257 define([AC_INIT_PARSE_ARGS],[ | |
258 | |
259 dnl Get sane consistent behavior from various shells | |
260 dnl Avoid losing with weird user CDPATHs | |
261 | |
262 if test -n "$ZSH_VERSION"; then | |
263 dnl zsh's Bourne shell emulation options | |
264 setopt NO_BAD_PATTERN NO_BANG_HIST NO_BG_NICE NO_EQUALS NO_FUNCTION_ARGZERO | |
265 setopt GLOB_SUBST NO_HUP INTERACTIVE_COMMENTS KSH_ARRAYS NO_MULTIOS NO_NOMATCH | |
266 setopt RM_STAR_SILENT POSIX_BUILTINS SH_FILE_EXPANSION SH_GLOB SH_OPTION_LETTERS | |
267 setopt SH_WORD_SPLIT BSD_ECHO IGNORE_BRACES | |
268 dnl zsh-3.1-beta drops core on the following | |
269 dnl unset CDPATH | |
270 if test -n "$CDPATH"; then CDPATH="."; export CDPATH; fi | |
271 elif test -n "$BASH_VERSION"; then | |
272 dnl Use Posix mode with bash | |
273 set -o posix | |
274 unset CDPATH | |
275 else | |
276 if test -n "$CDPATH"; then CDPATH="."; export CDPATH; fi | |
277 fi | |
278 | |
279 dnl Find the source directory. | |
280 dnl srcdir is used internally by autoconf macros, | |
281 dnl so parse it here. | |
282 for xe_parse_arg | |
283 do | |
284 case $xe_parse_arg in | |
285 --srcdir) USAGE_ERROR(["The \`--srcdir' option requires a string value."]) ;; | |
286 --srcdir=*) srcdir=`echo $xe_parse_arg | sed -e 's/--srcdir=//'` ;; | |
287 *) ;; | |
288 esac | |
289 done | |
290 | |
291 dnl Initialize some variables set by options. | |
292 dnl The variables have the same names as the options, with | |
293 dnl dashes changed to underlines. | |
294 exec_prefix=NONE | |
295 host=NONE | |
296 no_create= | |
297 nonopt=NONE | |
298 no_recursion= | |
299 prefix=NONE | |
300 program_prefix=NONE | |
301 program_suffix=NONE | |
302 program_transform_name=s,x,x, | |
303 silent= | |
304 site= | |
305 target=NONE | |
306 verbose= | |
307 x_includes=NONE | |
308 x_libraries=NONE | |
309 | |
310 dnl Initialize some other variables. | |
311 subdirs= | |
312 MFLAGS= | |
313 MAKEFLAGS= | |
314 SHELL=${CONFIG_SHELL-/bin/sh} | |
315 dnl Maximum number of lines to put in a shell here document. | |
316 ac_max_here_lines=12 | |
317 ])dnl AC_INIT_PARSE_ARGS | |
318 | |
319 AC_INIT(src/lisp.h)dnl | |
320 AC_CONFIG_HEADER(src/config.h lwlib/config.h) | |
321 | |
322 dnl Remove any more than one leading "." element from the path name. | |
323 dnl If we do not remove them, then another "./" will be prepended to | |
324 dnl the file name each time we use config.status, and the program name | |
325 dnl will get larger and larger. This would not be a problem, except | |
326 dnl that since progname gets recorded in all the Makefiles this script | |
327 dnl produces, move-if-change thinks they're different when they're | |
328 dnl not. | |
329 dnl | |
330 dnl It would be nice if we could put the ./ in a \( \) group and then | |
331 dnl apply the * operator to that, so we remove as many leading './././'s | |
332 dnl as are present, but some seds (like Ultrix's sed) don't allow you to | |
333 dnl apply * to a \( \) group. Bleah. | |
334 progname="`echo $0 | sed 's:^\./\./:\./:'`" | |
335 | |
336 dnl ----------------------------------------------------------------- | |
337 dnl Establish some default values | |
338 dnl Some switches have idiosyncratic syntax, but in most cases a null | |
339 dnl value means to autodetect | |
340 dnl ----------------------------------------------------------------- | |
341 | |
342 XE_APPEND(lib-src, MAKE_SUBDIR) | |
343 XE_APPEND(lib-src, INSTALL_ARCH_DEP_SUBDIR) | |
344 | |
345 prefix='/usr/local' | |
346 exec_prefix='${prefix}' | |
347 bindir='${exec_prefix}/bin' | |
348 dnl FSF 19.29 changes to: | |
349 dnl datadir='${prefix}/share' | |
350 dnl sharedstatedir='${prefix}/com' | |
351 dnl libexecdir='${exec_prefix}/libexec' | |
352 datadir='${prefix}/lib' | |
353 statedir='${prefix}/lib' | |
354 libdir='${exec_prefix}/lib' | |
355 mandir='${prefix}/man/man1' | |
356 inststaticdir='${PROGNAME}' | |
357 instvardir='${PROGNAME}-${version}' | |
358 infodir='${datadir}/${instvardir}/info' | |
359 infopath='' | |
360 install_pp='' | |
361 lispdir='${datadir}/${instvardir}/lisp' | |
362 moduledir='${libdir}/${instvardir}/${configuration}/modules' | |
363 sitelispdir='${datadir}/${inststaticdir}/site-lisp' | |
364 sitemoduledir='${libdir}/${inststaticdir}/site-modules' | |
365 package_path='' | |
366 etcdir='${datadir}/${instvardir}/etc' | |
367 archlibdir='${libdir}/${instvardir}/${configuration}' | |
368 docdir='${archlibdir}' | |
369 with_netinstall="no" | |
370 with_prefix='yes' | |
371 with_site_lisp='no' | |
372 with_site_modules='yes' | |
373 need_modules_common='' | |
374 with_menubars='' | |
375 with_scrollbars='' | |
376 with_widgets='' | |
377 with_dialogs='' | |
378 cpp='' cppflags='' libs='' ldflags='' | |
379 extra_includes='' | |
380 dynamic='' | |
381 with_x11='' | |
382 with_msw='' | |
383 rel_alloc='default' | |
384 with_system_malloc='default' | |
385 with_dlmalloc='default' | |
386 dnl ESD Considered Harmful (plays nasty games with interrupts) | |
387 with_native_sound='' | |
388 with_nas_sound='' | |
389 with_esd_sound='no' | |
390 native_sound_lib='' | |
391 dnl These should be set to the empty string when we want gtk / gnome to | |
392 dnl be auto-detected instead of manually specified. | |
393 with_gtk='no' | |
394 with_gnome='no' | |
395 dnl use_assertions should be 'yes' by default. Too many people in this | |
396 dnl world have core dumps turned off by default or \"cannot find where the | |
397 dnl core file went\". At least we should get some useful output ... | |
398 use_assertions="yes" | |
399 with_toolbars="" | |
400 with_tty="" | |
401 use_union_type="no" | |
402 with_dnet="" | |
403 use_number_lib="no" | |
404 dnl pdump defaults per opsys, do not default it here | |
405 pdump="" | |
406 dnl dragndrop is still experimental, except on Windows. When it is stable, | |
407 dnl comment out the following line: | |
408 with_dragndrop_default="no" | |
409 dnl Too annoying, even if mandated by IPv6 (and I'm not even sure of that) | |
410 dnl Change this to yes when somebody understands IPv6 and handle bugs. | |
411 with_ipv6_cname="no" | |
412 | |
413 dnl ------------------ | |
414 dnl Options Processing | |
415 dnl ------------------ | |
416 | |
417 dnl Record all the arguments, so we can save them in config.status. | |
418 arguments="$@" | |
419 | |
420 dnl Shell Magic: Quote the quoted arguments in ARGUMENTS. At a later date, | |
421 dnl in order to get the arguments back in $@, we have to do an | |
422 dnl 'eval set x "$quoted_arguments"; shift' | |
423 dnl # We use sed to turn embedded ' into '"'"'. I truly hate sh quoting. | |
424 quoted_sed_magic=s/"'"/"'"'"'"'"'"'"'"/g | |
425 quoted_arguments= | |
426 for i in "$@"; do | |
427 case "$i" in | |
428 -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | |
429 | --no-cr | --no-c) ;; | |
430 -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | |
431 | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; | |
432 *) | |
433 quoted_i="`echo '' $i | sed -e 's:^ ::' -e $quoted_sed_magic`" | |
434 quoted_arguments="$quoted_arguments '$quoted_i'" ;; | |
435 esac | |
436 done | |
437 | |
438 dnl Do not use shift -- that destroys the argument list, which autoconf needs | |
439 dnl to produce config.status. It turns out that "set - $arguments" does not | |
440 dnl work portably. | |
441 dnl However, it also turns out that many shells cannot expand ${10} at all. | |
442 dnl So using an index variable does not work either. It is possible to use | |
443 dnl some shell magic to make 'set x "$arguments"; shift' work portably. | |
444 while test $# != 0; do | |
445 arg="$1"; shift | |
446 case "$arg" in | |
447 --no-create|--no-recursion) ;; | |
448 --srcdir=*) ;; dnl Ignore here; parsed during AC_INIT. | |
449 dnl Anything starting with a hyphen we assume is an option. | |
450 -* ) | |
451 dnl Separate the switch name from the value it is being given. | |
452 case "$arg" in | |
453 -*=*) | |
454 opt=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*\([[^=]]*\)=.*$:\1:'` | |
455 val=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*[[^=]]*=\(.*\)$:\1:'` | |
456 valomitted=no | |
457 ;; | |
458 dnl special case these strings since echo may silently eat them: | |
459 dnl --help ) opt=help val=yes valomitted=yes ;; | |
460 dnl --version ) opt=version val=yes valomitted=yes ;; | |
461 dnl -e ) opt=e val=yes valomitted=yes ;; | |
462 dnl -E ) opt=E val=yes valomitted=yes ;; | |
463 dnl -n ) opt=n val=yes valomitted=yes ;; | |
464 -*) | |
465 dnl If FOO is a boolean argument, --FOO is equivalent to | |
466 dnl --FOO=yes. Otherwise, the value comes from the next | |
467 dnl argument - see below. | |
468 opt=`echo '' $arg | sed -e 's:^ ::' -e 's:^-*\(.*\)$:\1:'` | |
469 val="yes" valomitted=yes | |
470 ;; | |
471 esac | |
472 | |
473 dnl translate "-" in option string to "_" | |
474 optname="$opt" | |
475 opt="`echo '' $opt | sed -e 's:^ ::' | tr - _`" | |
476 | |
477 dnl Support --without-FOO as a synonym for --with-FOO=no | |
478 case "${valomitted}-${opt}" in yes-without_* ) | |
479 opt=`echo $opt | sed 's/without/with/'` | |
480 valomitted="no" val="no" ;; | |
481 esac | |
482 | |
483 dnl Process the option. | |
484 case "$opt" in | |
485 | |
486 dnl Process (many) boolean options | |
487 with_site_lisp | \ | |
488 with_prefix | \ | |
489 with_site_modules | \ | |
490 with_x | \ | |
491 with_x11 | \ | |
492 with_gtk | \ | |
493 with_gnome | \ | |
494 with_msw | \ | |
495 with_gcc | \ | |
496 dynamic | \ | |
497 with_ncurses | \ | |
498 with_dnet | \ | |
499 with_socks | \ | |
500 with_dragndrop | \ | |
501 with_cde | \ | |
502 with_offix | \ | |
503 with_gpm | \ | |
504 with_xpm | \ | |
505 with_xface | \ | |
506 with_gif | \ | |
507 with_jpeg | \ | |
508 with_png | \ | |
509 with_tiff | \ | |
510 with_zlib | \ | |
511 with_wmcommand | \ | |
512 with_xmu | \ | |
513 with_purify | \ | |
514 with_quantify | \ | |
515 with_toolbars | \ | |
516 with_tty | \ | |
517 with_xfs | \ | |
518 with_mule | \ | |
519 with_default_eol_detection | \ | |
520 with_canna | \ | |
521 with_wnn | \ | |
522 with_wnn6 | \ | |
523 with_workshop | \ | |
524 with_sparcworks | \ | |
525 with_tooltalk | \ | |
526 with_ldap | \ | |
527 with_postgresql | \ | |
528 with_pop | \ | |
529 with_kerberos | \ | |
530 with_hesiod | \ | |
531 with_dnet | \ | |
532 with_infodock | \ | |
533 with_netinstall | \ | |
534 with_optimization | \ | |
535 with_ipv6_cname | \ | |
536 external_widget | \ | |
537 use_kkcc | \ | |
538 mc_alloc | \ | |
539 verbose | \ | |
540 extra_verbose | \ | |
541 usage_tracking | \ | |
542 use_union_type | \ | |
543 pdump | \ | |
544 dump_in_exec | \ | |
545 debug | \ | |
546 use_assertions | \ | |
547 memory_usage_stats | \ | |
548 with_clash_detection | \ | |
549 with_modules | \ | |
550 quick_build ) | |
551 dnl Make sure the value given was either "yes" or "no". | |
552 case "$val" in | |
553 y | ye | yes ) val=yes ;; | |
554 n | no ) val=no ;; | |
555 * ) USAGE_ERROR("The \`--$optname' option requires a boolean value: \`yes' or \`no'.") ;; | |
556 esac | |
557 eval "$opt=\"$val\"" ;; | |
558 | |
559 | |
560 dnl Options that take a user-supplied value, as in --x-includes=/usr/X11R6/include | |
561 dnl The cache-file option is ignored (for compatibility with other configures) | |
562 compiler | \ | |
563 xemacs_compiler | \ | |
564 cflags | \ | |
565 cflags_warning | \ | |
566 cflags_optimization | \ | |
567 cflags_debugging | \ | |
568 cpp | \ | |
569 cppflags | \ | |
570 libs | \ | |
571 ldflags | \ | |
572 cache_file | \ | |
573 native_sound_lib| \ | |
574 site_lisp | \ | |
575 x_includes | \ | |
576 x_libraries | \ | |
577 site_includes | \ | |
578 site_libraries | \ | |
579 site_prefixes | \ | |
580 site_runtime_libraries ) | |
581 dnl If the value was omitted, get it from the next argument. | |
582 if test "$valomitted" = "yes" ; then | |
583 dnl Get the next argument from the argument list, if there is one. | |
584 if test "$#" = 0 ; then | |
585 USAGE_ERROR("The \`--$optname' option requires a value."); | |
586 fi | |
587 val="$1"; shift | |
588 fi | |
589 eval "$opt=\"$val\"" | |
590 ;; | |
591 | |
592 dnl Options that take "yes", "no", or "default" values | |
593 rel_alloc | \ | |
594 with_dlmalloc | \ | |
595 with_debug_malloc | use_debug_malloc | \ | |
596 with_system_malloc | use_system_malloc ) | |
597 case "$val" in | |
598 y | ye | yes ) val=yes ;; | |
599 n | no ) val=no ;; | |
600 d | de | def | defa | defau | defaul | default ) val=default ;; | |
601 * ) USAGE_ERROR(["The \`--$optname' option requires one of these values: | |
602 \`yes', \`no', or \`default'."]) ;; | |
603 esac | |
604 case "$opt" in use_* ) opt="`echo $opt | sed s/use/with/`" ;; esac | |
605 eval "$opt=\"$val\"" | |
606 ;; | |
607 | |
608 dnl Has the user requested database support? | |
609 "with_database" ) | |
610 with_database_berkdb=no | |
611 with_database_dbm=no | |
612 with_database_gdbm=no | |
613 for x in `echo "$val" | sed -e 's/,/ /g'` ; do | |
614 case "$x" in | |
615 no ) ;; | |
616 b | be | ber | berk | berkd | berkdb ) with_database_berkdb=yes ;; | |
617 d | db | dbm ) with_database_dbm=yes ;; | |
618 g | gn | gnu | gnud | gnudb | gnudbm | gdbm) with_database_gdbm=yes ;; | |
619 * ) USAGE_ERROR(["The \`--$optname' option value | |
620 must be either \`no' or a comma-separated list | |
621 of one or more of \`berkdb' and either \`dbm' or \`gnudbm'."]) ;; | |
622 esac | |
623 done | |
624 if test "$with_database_dbm" = "yes" -a \ | |
625 "$with_database_gdbm" = "yes"; then | |
626 USAGE_ERROR("Only one of \`dbm' and \`gnudbm' may be specified | |
627 with the \`--$optname' option.") | |
628 fi | |
629 ;; | |
630 | |
631 dnl Has the user requested sound support? | |
632 "with_sound" ) | |
633 dnl values is a subset of all,native,nas,esd | |
634 dnl or their negatives: none,nonative,nonas,noesd | |
635 for x in `echo "$val" | sed -e 's/,/ /g'` ; do | |
636 case "$x" in | |
637 dnl all and none are only permitted as the first in the list. | |
638 n | no | non | none ) new_sdefault=no ;; | |
639 a | al | all | both ) new_sdefault=yes ;; | |
640 | |
641 native ) with_native_sound=yes ;; | |
642 nonative ) with_native_sound=no ;; | |
643 | |
644 nas ) with_nas_sound=yes ;; | |
645 nonas ) with_nas_sound=no ;; | |
646 | |
647 esd ) with_esd_sound=yes ;; | |
648 noesd ) with_esd_sound=no ;; | |
649 | |
650 * ) bogus_sound=yes ;; | |
651 esac | |
652 if test "$bogus_sound" -o \ | |
653 \( -n "$new_sdefault" -a -n "$sound_notfirst" \) ; then | |
654 types="\`all', \`none', \`(no)native', \`no(nas)', \`(no)esd'." | |
655 USAGE_ERROR(["Valid types for the \`--$optname' option are: | |
656 $types. | |
657 Option \`all' or \`none' must be first in the list. | |
658 The default is to autodetect native and NAS sound support."]) | |
659 elif test -n "$new_sdefault" ; then | |
660 with_native_sound=$new_sdefault | |
661 with_nas_sound=$new_sdefault | |
662 with_esd_sound=$new_sdefault | |
663 new_sdefault= # reset this | |
664 fi | |
665 sound_notfirst=true | |
666 done | |
667 ;; | |
668 | |
669 dnl Has the user specified a preferred Athena widget set? | |
670 dnl This bit expands any alias names out for us... | |
671 "with_athena" ) | |
672 case "$val" in | |
673 xa | xaw ) val=xaw ;; | |
674 3 | 3d | xaw3d ) val=3d ;; | |
675 dnl No `n' for next, someone may try `no' | |
676 ne | nex | next | naxtaw) val=next ;; | |
677 dnl Have not tested the next two... | |
678 9 | 95 | xaw95 ) val=95 ;; | |
679 xp | xpm | xawxpm ) val=xpm ;; | |
680 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values: | |
681 \`xaw', \`3d', \`next', \`95', or \`xpm'."]) ;; | |
682 esac | |
683 eval "$opt=\"$val\"" | |
684 ;; | |
685 | |
686 dnl Has the user requested XIM support? | |
687 "with_xim" ) | |
688 case "$val" in | |
689 y | ye | yes ) val=yes ;; | |
690 n | no | non | none ) val=no ;; | |
691 x | xl | xli | xlib ) val=xlib ;; | |
692 m | mo | mot | moti | motif ) val=motif ;; | |
693 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values: | |
694 \`motif', \`xlib', \`yes', or \`no'."]) ;; | |
695 esac | |
696 eval "$opt=\"$val\"" | |
697 ;; | |
698 | |
699 dnl Mail locking specification | |
700 "mail_locking" ) | |
701 case "$val" in | |
702 lockf ) val=lockf ;; | |
703 flock ) val=flock ;; | |
704 file | dot ) val=file ;; | |
705 locking ) val=locking ;; | |
706 mmdf ) val=mmdf ;; | |
707 pop ) val=pop ;; | |
708 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values: | |
709 \`lockf', \`flock', \`file', \`dot', \`locking', \`mmdf', or \`pop'."]) ;; | |
710 esac | |
711 eval "$opt=\"$val\"" | |
712 ;; | |
713 | |
714 dnl Enhanced Lisp numbers | |
715 "use_number_lib" ) | |
716 case "$val" in | |
717 gmp ) val=gmp ;; | |
718 mp ) val=mp ;; | |
719 no|non|none ) val=no ;; | |
720 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values: | |
721 \`gmp', \`mp', or \`no'."]) ;; | |
722 esac | |
723 eval "$opt=\"$val\"" | |
724 ;; | |
725 | |
726 dnl Has the user requested error-checking? | |
727 "error_checking" ) | |
728 dnl value can be all, none, and/or a list of categories to check. | |
729 dnl Example: --error-checking=all,noextents,nocharbpos | |
730 dnl Example: --error-checking=none,malloc,gc | |
731 | |
732 for x in `echo "$val" | sed -e 's/,/ /g'` ; do | |
733 case "$x" in | |
734 dnl all and none are only permitted as the first in the list. | |
735 n | no | non | none ) new_default=no ;; | |
736 a | al | all ) new_default=yes ;; | |
737 | |
738 extents ) error_check_extents=yes ;; | |
739 noextents ) error_check_extents=no ;; | |
740 | |
741 types ) error_check_types=yes ;; | |
742 notypes ) error_check_types=no ;; | |
743 | |
744 text ) error_check_text=yes ;; | |
745 notext ) error_check_text=no ;; | |
746 | |
747 gc ) error_check_gc=yes ;; | |
748 nogc ) error_check_gc=no ;; | |
749 | |
750 malloc ) error_check_malloc=yes ;; | |
751 nomalloc ) error_check_malloc=no ;; | |
752 | |
753 byte_code ) error_check_byte_code=yes ;; | |
754 nobyte_code ) error_check_byte_code=no ;; | |
755 | |
756 glyphs ) error_check_glyphs=yes ;; | |
757 noglyphs ) error_check_glyphs=no ;; | |
758 | |
759 display ) error_check_display=yes ;; | |
760 nodisplay ) error_check_display=no ;; | |
761 | |
762 structures ) error_check_structures=yes ;; | |
763 nostructures ) error_check_structures=no ;; | |
764 | |
765 * ) bogus_error_check=yes ;; | |
766 esac | |
767 if test "$bogus_error_check" -o \ | |
768 \( -n "$new_default" -a -n "$echeck_notfirst" \) ; then | |
769 if test "$error_check_default" = yes ; then | |
770 types="\`all' (default), \`none', \`noextents', \`notypes', \`notext', \`nogc', \`nomalloc', \`noglyphs', \`nobyte-code', \`nodisplay', \`nostructures'." | |
771 else | |
772 types="\`all', \`none' (default), \`extents', \`types', \`text', \`gc', \`malloc', \`glyphs', \`byte-code', \`display', \`structures'." | |
773 fi | |
774 USAGE_ERROR(["Valid types for the \`--$optname' option are: | |
775 $types."]) | |
776 elif test -n "$new_default" ; then | |
777 error_check_extents=$new_default | |
778 error_check_types=$new_default | |
779 error_check_text=$new_default | |
780 error_check_gc=$new_default | |
781 error_check_malloc=$new_default | |
782 error_check_byte_code=$new_default | |
783 error_check_glyphs=$new_default | |
784 error_check_display=$new_default | |
785 error_check_structures=$new_default | |
786 new_default= # reset this | |
787 fi | |
788 echeck_notfirst=true | |
789 done | |
790 ;; | |
791 | |
792 dnl Has the user specified one of the path options? | |
793 prefix | exec_prefix | bindir | datadir | statedir | libdir | \ | |
794 mandir | infodir | infopath | lispdir | etcdir | \ | |
795 archlibdir | docdir | package_path | package_prefix | moduledir ) | |
796 dnl If the value was omitted, get it from the next argument. | |
797 if test "$valomitted" = "yes"; then | |
798 if test "$#" = 0; then | |
799 USAGE_ERROR("The \`--$optname' option requires a value."); | |
800 fi | |
801 val="$1"; shift | |
802 fi | |
803 eval "$opt=\"$val\"" | |
804 | |
805 dnl You need to synchronize this with the way the | |
806 dnl default values are built. | |
807 case "$opt" in | |
808 dnl prefix is taken care of by --with-prefix | |
809 exec_prefix ) AC_DEFINE(EXEC_PREFIX_USER_DEFINED) ;; | |
810 lispdir ) AC_DEFINE(LISPDIR_USER_DEFINED) ;; | |
811 sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;; | |
812 moduledir ) AC_DEFINE(MODULEDIR_USER_DEFINED) ;; | |
813 etcdir ) AC_DEFINE(ETCDIR_USER_DEFINED) ;; | |
814 infodir ) AC_DEFINE(INFODIR_USER_DEFINED) ;; | |
815 infopath ) AC_DEFINE(INFOPATH_USER_DEFINED) ;; | |
816 package_prefix ) AC_DEFINE(PACKAGE_PATH_USER_DEFINED) ;; | |
817 package_path ) AC_DEFINE(PACKAGE_PATH_USER_DEFINED) ;; | |
818 datadir ) | |
819 AC_DEFINE(INFODIR_USER_DEFINED) | |
820 AC_DEFINE(LISPDIR_USER_DEFINED) | |
821 AC_DEFINE(MODULEDIR_USER_DEFINED) | |
822 AC_DEFINE(ETCDIR_USER_DEFINED) | |
823 AC_DEFINE(DOCDIR_USER_DEFINED) | |
824 AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;; | |
825 docdir ) AC_DEFINE(DOCDIR_USER_DEFINED) ;; | |
826 exec_prefix | libdir | archlibdir ) AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;; | |
827 esac | |
828 ;; | |
829 | |
830 dnl --no-create added by autoconf for use by config.status | |
831 "no_create" ) ;; | |
832 | |
833 dnl Has the user asked for some help? | |
834 "usage" | "help" ) ${PAGER-more} ${srcdir}/configure.usage; exit 0 ;; | |
835 | |
836 dnl Has the user specified the toolkit(s) to use for GUI elements? | |
837 "with_menubars" | \ | |
838 "with_scrollbars" | \ | |
839 "with_dialogs" | \ | |
840 "with_widgets" ) | |
841 case "$val" in | |
842 l | lu | luc | luci | lucid ) val=lucid ;; | |
843 mo | mot | moti | motif ) val=motif ;; | |
844 a | at | ath | athe | athen | athena ) val=athena ;; | |
845 n | no | non | none ) val=no ;; | |
846 y | ye | yes ) val=yes ;; | |
847 dnl Explicit --with-widgets on command line means yes. | |
848 "") val=yes ;; | |
849 g | gt | gtk ) val=gtk ;; | |
850 ms | msw ) val=msw ;; | |
851 * ) USAGE_ERROR(["The \`--$optname' option must have one of these values: | |
852 \`gtk', \`lucid', \`motif', \`athena', \`yes', or \`no'."]) ;; | |
853 esac | |
854 eval "$opt=\"$val\"" | |
855 ;; | |
856 | |
857 dnl Obsolete legacy argument? Warn, but otherwise ignore. | |
858 "use_minimal_tagbits" | \ | |
859 "use_indexed_lrecord_implementation" | \ | |
860 "run_in_place" | \ | |
861 "const_is_losing" | \ | |
862 "with_gnu_make" ) | |
863 AC_MSG_WARN([Obsolete option \`--$optname' ignored.]) | |
864 ;; | |
865 | |
866 dnl Unrecognized option? No mercy for user errors. | |
867 * ) USAGE_ERROR("Unrecognized option: $arg") ;; | |
868 | |
869 esac | |
870 ;; | |
871 | |
872 dnl Assume anything with multiple hyphens is a configuration name. | |
873 *-*-*) configuration="$arg" ;; | |
874 | |
875 dnl Unrecognized argument? No mercy for user errors. | |
876 *) USAGE_ERROR("Unrecognized argument: $arg") ;; | |
877 | |
878 esac | |
879 done | |
880 | |
881 dnl ------------------------- | |
882 dnl Finish options processing | |
883 dnl ------------------------- | |
884 | |
885 dnl Several options are equivalent to, and override, environment variables. | |
886 test -n "$cpp" && CPP="$cpp" | |
887 test -n "$cppflags" && CPPFLAGS="$cppflags" | |
888 test -n "$libs" && LIBS="$libs" | |
889 test -n "$ldflags" && LDFLAGS="$ldflags" | |
890 | |
891 dnl Get the arguments back. See the diatribe on Shell Magic above. | |
892 eval set x "$quoted_arguments"; shift | |
893 | |
894 dnl --extra-verbose implies --verbose | |
895 test "$extra_verbose" = "yes" && verbose=yes | |
896 | |
897 dnl with_x is an obsolete synonym for with_x11 | |
898 test -n "$with_x" && with_x11="$with_x" | |
899 | |
900 dnl --with-quantify or --with-purify imply --use-system-malloc | |
901 if test "$with_purify" = "yes" -o "$with_quantify" = "yes"; then | |
902 test "$with_system_malloc" = "default" && with_system_malloc=yes | |
903 fi | |
904 | |
905 dnl XE_CHECK_FEATURE_DEPENDENCY(feature1, feature2) | |
906 define([XE_CHECK_FEATURE_DEPENDENCY], | |
907 [if test "$with_$1 $with_$2" = "yes no"; then | |
908 USAGE_ERROR("--with-$1 requires --with-$2") | |
909 elif test "$with_$2" = "no" ; then with_$1=no | |
910 elif test "$with_$1" = "yes"; then with_$2=yes | |
911 fi | |
912 ]) | |
913 | |
914 dnl CDE requires tooltalk | |
915 XE_CHECK_FEATURE_DEPENDENCY(cde, tooltalk) | |
916 | |
917 dnl Done parsing options. | |
918 dnl ########################################################################### | |
919 if test -z "$configuration"; then | |
920 dnl Guess the configuration | |
921 configuration=`${CONFIG_SHELL-/bin/sh} $srcdir/config.guess` | |
922 if test -z "$configuration"; then | |
923 USAGE_ERROR(["XEmacs has not been ported to this host type. | |
924 Try explicitly specifying the CONFIGURATION when rerunning configure."]) | |
925 fi | |
926 fi | |
927 | |
928 AC_PROG_LN_S | |
929 | |
930 dnl Make symlinks for etc, lisp, and info directories while the path | |
931 dnl is still relative. We do not symlink lock because someone may | |
932 dnl have stuck the source on a read-only partition. Instead we | |
933 dnl create it as an actual directory later on if it does not already | |
934 dnl exist. | |
935 for dir in lisp etc man info tests; do | |
936 if test ! -d "$dir" ; then | |
937 echo Making symbolic link to "$srcdir/$dir" | |
938 ${LN_S} "$srcdir/$dir" "$dir" | |
939 fi | |
940 done | |
941 | |
942 dnl Do our best to deal with automounter brokenness | |
943 dnl CANONICALIZE_PATH(varname) | |
944 define([CANONICALIZE_PATH], | |
945 [if test -d "/net"; then | |
946 if test -d "/tmp_mnt/net"; then tdir="tmp_mnt/net"; else tdir="tmp_mnt"; fi | |
947 $1=`echo "[$]$1" | \ | |
948 sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"` | |
949 fi])dnl | |
950 | |
951 dnl Calculate canonical name for blddir (i.e. current directory). | |
952 dnl PWD may already be the preferable absolute name for ".", | |
953 dnl but we can't trust it - it is sometimes inaccurate. | |
954 absolute_pwd="`pwd`"; | |
955 if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd" | |
956 then blddir="$PWD" | |
957 else blddir="$absolute_pwd"; CANONICALIZE_PATH(blddir) | |
958 fi | |
959 AC_SUBST(blddir) | |
960 | |
961 dnl Make srcdir absolute, if not already. It is important to | |
962 dnl avoid running the path through pwd unnecessary, since pwd can | |
963 dnl give you automounter prefixes, which can go away. | |
964 case "$srcdir" in | |
965 /* ) ;; | |
966 . ) srcdir="$blddir" ;; | |
967 * ) srcdir="`cd $srcdir && pwd`"; CANONICALIZE_PATH(srcdir) ;; | |
968 esac | |
969 | |
970 dnl Check if the source directory already has a configured system in it. | |
971 if test `pwd` != `sh -c cd $srcdir && pwd` \ | |
972 && test -f "$srcdir/src/config.h"; then | |
973 (echo "$progname: WARNING: The directory tree \`$srcdir' is being used" | |
974 echo " as a build directory right now; it has been configured in its own" | |
975 echo " right. To configure in another directory as well, you MUST" | |
976 echo " use GNU make. If you do not have GNU make, then you must" | |
977 echo " now do \`make distclean' in $srcdir," | |
978 echo " and then run $progname again.") >&2 | |
979 extrasub='/^VPATH[[ ]]*=/c\ | |
980 vpath %.c $(srcdir)\ | |
981 vpath %.h $(srcdir)\ | |
982 vpath %.y $(srcdir)\ | |
983 vpath %.l $(srcdir)\ | |
984 vpath %.s $(srcdir)\ | |
985 vpath %.in $(srcdir)' | |
986 fi | |
987 | |
988 dnl ---------------------------------------- | |
989 dnl Find out which version of XEmacs this is | |
990 dnl ---------------------------------------- | |
991 . "$srcdir/version.sh" || exit 1; | |
992 dnl Must do the following first to determine verbosity for AC_DEFINE | |
993 if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi | |
994 : "${extra_verbose=$beta}" | |
995 version="${emacs_major_version}.${emacs_minor_version}" | |
996 AC_DEFINE_UNQUOTED(EMACS_MAJOR_VERSION, $emacs_major_version) | |
997 AC_DEFINE_UNQUOTED(EMACS_MINOR_VERSION, $emacs_minor_version) | |
998 if test -n "$emacs_beta_version" ; then | |
999 if test "$beta" = "yes"; then | |
1000 version="${version}-b${emacs_beta_version}" | |
1001 AC_DEFINE_UNQUOTED(EMACS_BETA_VERSION, $emacs_beta_version) | |
1002 else | |
1003 version="${version}.${emacs_beta_version}" | |
1004 AC_DEFINE_UNQUOTED(EMACS_PATCH_LEVEL, $emacs_beta_version) | |
1005 fi | |
1006 fi | |
1007 AC_DEFINE_UNQUOTED(XEMACS_CODENAME, "$xemacs_codename") | |
1008 if test "$xemacs_extra_name" != ""; then | |
1009 AC_DEFINE_UNQUOTED(XEMACS_EXTRA_NAME, "$xemacs_extra_name") | |
1010 fi | |
1011 if test "$xemacs_release_date" != ""; then | |
1012 AC_DEFINE_UNQUOTED(XEMACS_RELEASE_DATE, "$xemacs_release_date") | |
1013 fi | |
1014 AC_DEFINE_UNQUOTED(EMACS_VERSION, "$version") | |
1015 | |
1016 if test "$with_infodock" = "yes"; then | |
1017 if test ! -f ../../ID-INSTALL; then | |
1018 echo "Cannot build InfoDock without InfoDock sources" | |
1019 with_infodock=no | |
1020 fi | |
1021 fi | |
1022 | |
1023 if test "$with_infodock" = "yes"; then | |
1024 dnl InfoDock version numbers. XEmacs will use the same style of numbering | |
1025 dnl after the release of XEmacs 21.0. | |
1026 AC_DEFINE_UNQUOTED(INFODOCK_MAJOR_VERSION, $infodock_major_version) | |
1027 AC_DEFINE_UNQUOTED(INFODOCK_MINOR_VERSION, $infodock_minor_version) | |
1028 AC_DEFINE_UNQUOTED(INFODOCK_BUILD_VERSION, $infodock_build_version) | |
1029 version=${infodock_major_version}.${infodock_minor_version}.${infodock_build_version} | |
1030 PROGNAME=infodock | |
1031 CPPFLAGS="$CPPFLAGS -DINFODOCK" | |
1032 else | |
1033 PROGNAME=xemacs | |
1034 fi | |
1035 | |
1036 AC_DEFINE_UNQUOTED(EMACS_PROGNAME, "$PROGNAME") | |
1037 | |
1038 dnl ---------------------------------- | |
1039 dnl Error checking and debugging flags | |
1040 dnl ---------------------------------- | |
1041 dnl Error checking default to "yes" in beta versions, to "no" in releases. | |
1042 dnl Same goes for --debug and --extra-verbosity. | |
1043 if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi | |
1044 test "${error_check_extents=$beta}" = yes && AC_DEFINE(ERROR_CHECK_EXTENTS) | |
1045 test "${error_check_types=$beta}" = yes && AC_DEFINE(ERROR_CHECK_TYPES) | |
1046 test "${error_check_text=$beta}" = yes && AC_DEFINE(ERROR_CHECK_TEXT) | |
1047 test "${error_check_gc=$beta}" = yes && AC_DEFINE(ERROR_CHECK_GC) | |
1048 test "${error_check_malloc=$beta}" = yes && AC_DEFINE(ERROR_CHECK_MALLOC) | |
1049 test "${error_check_byte_code=$beta}" = yes && AC_DEFINE(ERROR_CHECK_BYTE_CODE) | |
1050 test "${error_check_glyphs=$beta}" = yes && AC_DEFINE(ERROR_CHECK_GLYPHS) | |
1051 test "${error_check_display=$beta}" = yes && AC_DEFINE(ERROR_CHECK_DISPLAY) | |
1052 test "${error_check_structures=$beta}" = yes && AC_DEFINE(ERROR_CHECK_STRUCTURES) | |
1053 dnl debug=yes must be set when error checking is present. This should be | |
1054 dnl fixed up. | |
1055 dnl debug implies other options | |
1056 if test "${debug:=$beta}" = "yes"; then | |
1057 use_assertions=yes | |
1058 memory_usage_stats=yes | |
1059 AC_DEFINE(DEBUG_XEMACS) | |
1060 fi | |
1061 test "$use_assertions" = "yes" && AC_DEFINE(USE_ASSERTIONS) | |
1062 test "$memory_usage_stats" = "yes" && AC_DEFINE(MEMORY_USAGE_STATS) | |
1063 | |
1064 dnl ------------------------------ | |
1065 dnl Determine the s&m files to use | |
1066 dnl ------------------------------ | |
1067 dnl Given the configuration name, set machfile and opsysfile to the | |
1068 dnl names of the m/*.h and s/*.h files we should use. | |
1069 | |
1070 dnl Canonicalize the configuration name. | |
1071 AC_MSG_CHECKING("host system type") | |
1072 dnl allow -workshop suffix on configuration name | |
1073 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'` | |
1074 canonical=`${CONFIG_SHELL-/bin/sh} $srcdir/config.sub "$internal_configuration"` | |
1075 XE_STRIP_4TH_COMPONENT(configuration) | |
1076 XE_STRIP_4TH_COMPONENT(canonical) | |
1077 AC_MSG_RESULT($configuration) | |
1078 | |
1079 dnl If you add support for a new configuration, add code to this | |
1080 dnl switch statement to recognize your configuration name and select | |
1081 dnl the appropriate operating system and machine description files. | |
1082 | |
1083 dnl You would hope that you could choose an m/*.h file pretty much | |
1084 dnl based on the machine portion of the configuration name, and an s- | |
1085 dnl file based on the operating system portion. However, it turns out | |
1086 dnl that each m/*.h file is pretty manufacturer-specific - for | |
1087 dnl example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are | |
1088 dnl all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS | |
1089 dnl machines. So we basically have to have a special case for each | |
1090 dnl configuration name. | |
1091 | |
1092 dnl As far as handling version numbers on operating systems is | |
1093 dnl concerned, make sure things will fail in a fixable way. If | |
1094 dnl /etc/MACHINES says nothing about version numbers, be | |
1095 dnl prepared to handle anything reasonably. If version numbers | |
1096 dnl matter, be sure /etc/MACHINES says something about it. | |
1097 | |
1098 dnl Eric Raymond says we should accept strings like "sysvr4" to mean | |
1099 dnl "System V Release 4"; he writes, "The old convention encouraged" | |
1100 dnl "confusion between `system' and `release' levels'." | |
1101 | |
1102 machine='' opsys='' | |
1103 | |
1104 dnl Straightforward machine determination | |
1105 case "$canonical" in | |
1106 sparc-*-* ) machine=sparc ;; | |
1107 alpha*-*-* ) machine=alpha ;; | |
1108 vax-*-* ) machine=vax ;; | |
1109 mips-dec-* ) machine=pmax ;; | |
1110 mips-sgi-irix6* ) machine=iris6d ;; | |
1111 mips-sgi-* ) machine=iris4d ;; | |
1112 mips*-linux ) machine=mips ;; | |
1113 romp-ibm-* ) machine=ibmrt ;; | |
1114 rs6000-ibm-aix* ) machine=ibmrs6000 ;; | |
1115 powerpc-ibm-aix* ) machine=ibmrs6000 ;; | |
1116 powerpc*-* ) machine=powerpc ;; | |
1117 hppa-*-* ) machine=hp800 ;; | |
1118 m88k-dg-* ) machine=aviion ;; | |
1119 m68*-sony-* ) machine=news ;; | |
1120 mips-sony-* ) machine=news-risc ;; | |
1121 clipper-* ) machine=clipper ;; | |
1122 arm* ) machine=arm ;; | |
1123 ns32k-* ) machine=ns32000 ;; | |
1124 esac | |
1125 | |
1126 dnl Straightforward OS determination | |
1127 case "$canonical" in | |
1128 *-*-linux* ) opsys=linux ;; | |
1129 *-*-netbsd* ) opsys=netbsd ;; | |
1130 *-*-openbsd* ) opsys=openbsd ;; | |
1131 *-*-nextstep* ) opsys=nextstep ;; | |
1132 *-*-vms ) opsys=vms ;; | |
1133 | |
1134 dnl DEC OSF | |
1135 *-dec-osf1.3 | *-dec-osf2* ) opsys=decosf1-3 ;; | |
1136 *-dec-osf1.2 | *-dec-osf1* ) opsys=decosf1-2 ;; | |
1137 *-dec-osf3.[[2-9]] ) opsys=decosf3-2 ;; | |
1138 *-dec-osf3* ) opsys=decosf3-1 ;; | |
1139 *-dec-osf[[4-9]]* ) opsys=decosf4-0 ;; | |
1140 | |
1141 dnl DEC Ultrix | |
1142 *-*-ultrix[[0-3]].* | *-*-ultrix4.0* ) opsys=bsd4-2 ;; | |
1143 *-*-ultrix4.[[12]]* ) opsys=bsd4-3 ;; | |
1144 *-*-ultrix* ) opsys=ultrix4-3 ;; | |
1145 | |
1146 dnl AIX | |
1147 *-*-aix3.1* ) opsys=aix3-1 ;; | |
1148 *-*-aix3.2.5 ) opsys=aix3-2-5 ;; | |
1149 *-*-aix3* ) opsys=aix3-2 ;; | |
1150 *-*-aix4.0* ) opsys=aix4 ;; | |
1151 *-*-aix4.1* ) opsys=aix4-1 ;; | |
1152 *-*-aix[[4-9]]* ) opsys=aix4-2 ;; | |
1153 | |
1154 dnl Other generic OSes | |
1155 *-gnu* ) opsys=gnu ;; | |
1156 *-*-bsd4.[[01]] ) opsys=bsd4-1 ;; | |
1157 *-*-bsd4.2 ) opsys=bsd4-2 ;; | |
1158 *-*-bsd4.3 ) opsys=bsd4-3 ;; | |
1159 *-*-aos4.2 ) opsys=bsd4-2 ;; | |
1160 *-*-aos* ) opsys=bsd4-3 ;; | |
1161 *-*-sysv0 | *-*-sysvr0 ) opsys=usg5-0 ;; | |
1162 *-*-sysv2 | *-*-sysvr2 ) opsys=usg5-2 ;; | |
1163 *-*-sysv2.2 | *-*-sysvr2.2 ) opsys=usg5-2-2 ;; | |
1164 *-*-sysv3* | *-*-sysvr3* ) opsys=usg5-3 ;; | |
1165 *-*-sysv4.1* | *-*-sysvr4.1* )opsys=usg5-4 NON_GNU_CPP=/usr/lib/cpp ;; | |
1166 *-*-sysv4.[[2-9]]* | *-sysvr4.[[2-9]]* ) | |
1167 if test -z "$NON_GNU_CPP" ; then | |
1168 for prog in "/usr/ccs/lib/cpp" "/lib/cpp"; do | |
1169 if test -f "$prog"; then NON_GNU_CPP="$prog"; break; fi | |
1170 done | |
1171 fi | |
1172 opsys=usg5-4-2 ;; | |
1173 *-sysv4* | *-sysvr4* ) opsys=usg5-4 ;; | |
1174 *-*-mach_bsd4.3* ) opsys=mach-bsd4-3 ;; | |
1175 esac | |
1176 | |
1177 case "$canonical" in | |
1178 | |
1179 dnl NetBSD ports | |
1180 *-*-netbsd* ) | |
1181 case "$canonical" in | |
1182 i[[3-9]]86-*-netbsd*) machine=intel386 ;; | |
1183 hp300-*-netbsd* | amiga-*-netbsd* | sun3-*-netbsd* | mac68k-*-netbsd* | da30-*-netbsd* | m68k-*-netbsd* ) | |
1184 dnl Yes, this is somewhat bogus. | |
1185 machine=hp9000s300 ;; | |
1186 pc532-*-netbsd* | ns32k-*-netbsd* ) machine=ns32000 ;; | |
1187 pmax-*-netbsd* | mips-*-netbsd* ) machine=pmax ;; | |
1188 esac | |
1189 ;; | |
1190 | |
1191 dnl OpenBSD ports | |
1192 *-*-openbsd* ) | |
1193 case "${canonical}" in | |
1194 i386-*-openbsd*) machine=intel386 ;; | |
1195 m68k-*-openbsd*) machine=hp9000s300 ;; | |
1196 mipsel-*-openbsd*) machine=pmax ;; | |
1197 esac | |
1198 ;; | |
1199 | |
1200 dnl Acorn RISCiX: | |
1201 arm-acorn-riscix1.1* ) machine=acorn opsys=riscix1-1 ;; | |
1202 arm-acorn-riscix1.2* | arm-acorn-riscix ) machine=acorn opsys=riscix1-2 ;; | |
1203 | |
1204 dnl Alliant machines | |
1205 fx80-alliant-* ) machine=alliant4 opsys=bsd4-2 ;; | |
1206 i860-alliant-* ) machine=alliant-2800 opsys=bsd4-3 ;; | |
1207 | |
1208 dnl Altos 3068 | |
1209 m68*-altos-sysv* ) machine=altos opsys=usg5-2 ;; | |
1210 | |
1211 dnl Amdahl UTS | |
1212 580-amdahl-sysv* ) machine=amdahl opsys=usg5-2-2 ;; | |
1213 | |
1214 dnl Apollo, Domain/OS | |
1215 m68*-apollo-* ) machine=apollo opsys=bsd4-3 ;; | |
1216 | |
1217 dnl AT&T 3b2, 3b5, 3b15, 3b20 | |
1218 we32k-att-sysv* ) machine=att3b opsys=usg5-2-2 ;; | |
1219 | |
1220 dnl AT&T 3b1 - The Mighty Unix PC! | |
1221 m68*-att-sysv* ) machine=7300 opsys=usg5-2-2 ;; | |
1222 | |
1223 dnl Bull machines | |
1224 rs6000-bull-bosx* ) machine=ibmrs6000 opsys=aix3-2 ;; # dpx20 | |
1225 m68*-bull-sysv3* ) machine=dpx2 opsys=usg5-3 ;; # dpx2 | |
1226 m68*-bull-sysv2* ) machine=sps7 opsys=usg5-2 ;; # sps7 | |
1227 | |
1228 dnl CCI 5/32, 6/32 -- see "Tahoe". | |
1229 | |
1230 dnl Celerity | |
1231 celerity-celerity-bsd* ) machine=celerity opsys=bsd4-2 ;; | |
1232 | |
1233 dnl Convex | |
1234 *-convex-bsd* | *-convex-convexos* ) | |
1235 machine=convex opsys=bsd4-3 | |
1236 NON_GNU_CPP="cc -E -P" | |
1237 ;; | |
1238 | |
1239 dnl Cubix QBx/386 | |
1240 i[[3-9]]86-cubix-sysv* ) machine=intel386 opsys=usg5-3 ;; | |
1241 | |
1242 dnl Darwin, a.k.a. MacOS X (based on Mach and Freebsd) | |
1243 *-*-darwin*) | |
1244 opsys=darwin | |
1245 ;; | |
1246 | |
1247 dnl Data General AViiON Machines | |
1248 i586-dg-dgux*R4* | i586-dg-dgux5.4.4* ) machine=aviion opsys=dgux5-4r4 ;; | |
1249 m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* ) opsys=dgux5-4r3 ;; | |
1250 m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* ) opsys=dgux5-4r2 ;; | |
1251 m88k-dg-dgux* ) opsys=dgux ;; | |
1252 | |
1253 dnl Motorola Delta machines | |
1254 m68k-motorola-sysv* | m68000-motorola-sysv* ) machine=delta opsys=usg5-3 ;; | |
1255 m88k-motorola-sysv4* ) | |
1256 dnl jbotte@bnr.ca says that UNIX_System_V <hostName> 4.0 R40V4.3 m88k mc88110 | |
1257 dnl needs POSIX_SIGNALS and therefore needs usg5-4-2. | |
1258 dnl I hope there are not other 4.0 versions for this machine | |
1259 dnl which really need usg5-4 instead. | |
1260 machine=delta88k opsys=usg5-4-2 | |
1261 ;; | |
1262 m88k-motorola-sysv* | m88k-motorola-m88kbcs* ) machine=delta88k opsys=usg5-3 ;; | |
1263 | |
1264 dnl Dual machines | |
1265 m68*-dual-sysv* ) machine=dual opsys=usg5-2 ;; | |
1266 m68*-dual-uniplus* ) machine=dual opsys=unipl5-2 ;; | |
1267 | |
1268 dnl Encore machines | |
1269 ns16k-encore-bsd* ) machine=ns16000 opsys=umax ;; | |
1270 | |
1271 dnl Gould Power Node and NP1 | |
1272 pn-gould-bsd4.2* ) machine=gould opsys=bsd4-2 ;; | |
1273 pn-gould-bsd4.3* ) machine=gould opsys=bsd4-3 ;; | |
1274 np1-gould-bsd* ) machine=gould-np1 opsys=bsd4-3 ;; | |
1275 | |
1276 dnl Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000 | |
1277 dnl as far as XEmacs is concerned). | |
1278 m88k-harris-cxux* ) | |
1279 dnl Build needs to be different on 7.0 and later releases | |
1280 case "`uname -r`" in | |
1281 [[56]].[[0-9]] ) machine=nh4000 opsys=cxux ;; | |
1282 [[7]].[[0-9]] ) machine=nh4000 opsys=cxux7 ;; | |
1283 esac | |
1284 NON_GNU_CPP="/lib/cpp" | |
1285 ;; | |
1286 dnl Harris ecx or gcx running CX/UX (Series 1200, Series 3000) | |
1287 m68k-harris-cxux* ) machine=nh3000 opsys=cxux ;; | |
1288 dnl Harris power pc NightHawk running Power UNIX (Series 6000) | |
1289 powerpc-harris-powerunix ) machine=nh6000 opsys=powerunix NON_GNU_CPP="cc -Xo -E -P" ;; | |
1290 | |
1291 dnl Honeywell XPS100 | |
1292 xps*-honeywell-sysv* ) machine=xps100 opsys=usg5-2 ;; | |
1293 | |
1294 dnl HP 9000 series 200 or 300 | |
1295 m68*-hp-bsd* ) machine=hp9000s300 opsys=bsd4-3 ;; | |
1296 | |
1297 dnl HP-UX | |
1298 *-hp-hpux* ) | |
1299 dnl Figure out machine and opsys orthogonally | |
1300 case "$canonical" in | |
1301 m68* ) machine=hp9000s300 ;; | |
1302 hppa* ) machine=hp800 ;; | |
1303 esac | |
1304 | |
1305 case "$canonical" in | |
1306 *-hp-hpux7* ) opsys=hpux ;; | |
1307 *-hp-hpux8* ) opsys=hpux8 ;; | |
1308 *-hp-hpux9* ) opsys=hpux9 ;; | |
1309 *-hp-hpux10* ) opsys=hpux10 ;; | |
1310 *-hp-hpux11* ) opsys=hpux11 ;; | |
1311 * ) opsys=hpux ;; | |
1312 esac | |
1313 | |
1314 dnl HP has a broken "strcat" | |
1315 case "$opsys" in hpux9 | hpux10 ) XE_ADD_OBJS(strcat.o) ;; esac | |
1316 | |
1317 if test "$opsys" = "hpux10" -o "$opsys" = "hpux11"; then \ | |
1318 ansi_flag="-Ae"; else ansi_flag="-Aa"; fi | |
1319 NON_GNU_CC="cc $ansi_flag" NON_GNU_CPP="cc $ansi_flag -E" | |
1320 | |
1321 case "$canonical" in *-hp-hpux*shr* ) opsys="${opsys}-shr" ;; esac | |
1322 ;; | |
1323 | |
1324 dnl Orion machines | |
1325 orion-orion-bsd* ) machine=orion opsys=bsd4-2 ;; | |
1326 clipper-orion-bsd* ) machine=orion105 opsys=bsd4-2 ;; | |
1327 | |
1328 dnl IBM machines | |
1329 i[[3-9]]86-ibm-aix1.1* ) machine=ibmps2-aix opsys=usg5-2-2 ;; | |
1330 i[[3-9]]86-ibm-aix1.[[23]]* | i[[3-9]]86-ibm-aix* ) machine=ibmps2-aix opsys=usg5-3 ;; | |
1331 i370-ibm-aix*) machine=ibm370aix opsys=usg5-3 ;; | |
1332 romp-ibm-aos* ) opsys=bsd4-3 ;; | |
1333 romp-ibm-bsd* ) opsys=bsd4-3 ;; | |
1334 romp-ibm-mach* ) opsys=mach-bsd4-3 ;; | |
1335 | |
1336 dnl Integrated Solutions "Optimum V" | |
1337 m68*-isi-bsd4.2* ) machine=isi-ov opsys=bsd4-2 ;; | |
1338 m68*-isi-bsd4.3* ) machine=isi-ov opsys=bsd4-3 ;; | |
1339 | |
1340 dnl Intel 386 machines where we do care about the manufacturer | |
1341 i[[3-9]]86-intsys-sysv* ) machine=is386 opsys=usg5-2-2 ;; | |
1342 | |
1343 dnl Prime EXL | |
1344 i[[3-9]]86-prime-sysv* ) machine=i386 opsys=usg5-3 ;; | |
1345 | |
1346 dnl Sequent Symmetry running Dynix | |
1347 i[[3-9]]86-sequent-bsd* ) machine=symmetry opsys=bsd4-3 ;; | |
1348 | |
1349 dnl Sequent Symmetry running DYNIX/ptx | |
1350 i[[3-9]]86-sequent-ptx* ) machine=sequent-ptx opsys=ptx NON_GNU_CPP="/lib/cpp" ;; | |
1351 | |
1352 dnl Unspecified sysv on an ncr machine defaults to svr4.2. | |
1353 dnl (Plain usg5-4 does not turn on POSIX signals, which we need.) | |
1354 i[[3-9]]86-ncr-sysv* ) machine=ncr386 opsys=usg5-4-2 ;; | |
1355 | |
1356 dnl Intel Paragon OSF/1 | |
1357 i860-intel-osf1* ) machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp ;; | |
1358 | |
1359 dnl Intel 860 | |
1360 i860-*-sysv4* ) machine=i860 opsys=usg5-4 NON_GNU_CC="/bin/cc" NON_GNU_CPP="/usr/ccs/lib/cpp" ;; | |
1361 | |
1362 dnl Masscomp machines | |
1363 m68*-masscomp-rtu* ) machine=masscomp opsys=rtu ;; | |
1364 | |
1365 dnl Megatest machines | |
1366 m68*-megatest-bsd* ) machine=mega68 opsys=bsd4-2 ;; | |
1367 | |
1368 dnl Workstations sold by MIPS | |
1369 dnl This is not necessarily all workstations using the MIPS processor - | |
1370 dnl Irises are produced by SGI, and DECstations by DEC. | |
1371 mips-mips-usg* ) machine=mips4 ;; | |
1372 mips-mips-riscos4 ) | |
1373 machine=mips4 | |
1374 NON_GNU_CC="cc -systype bsd43" | |
1375 NON_GNU_CPP="cc -systype bsd43 -E" | |
1376 case "$canonical" in | |
1377 mips-mips-riscos4* ) opsys=bsd4-3 ;; | |
1378 mips-mips-riscos5* ) opsys=riscos5 ;; | |
1379 esac | |
1380 ;; | |
1381 mips-mips-bsd* ) machine=mips opsys=bsd4-3 ;; | |
1382 mips-mips-* ) machine=mips opsys=usg5-2-2 ;; | |
1383 | |
1384 dnl NeXT | |
1385 m68*-next-* | m68k-*-nextstep* ) machine=m68k opsys=nextstep ;; | |
1386 | |
1387 dnl The complete machine from National Semiconductor | |
1388 ns32k-ns-genix* ) machine=ns32000 opsys=usg5-2 ;; | |
1389 | |
1390 dnl NCR machines | |
1391 m68*-ncr-sysv2* | m68*-ncr-sysvr2* ) machine=tower32 opsys=usg5-2-2 ;; | |
1392 m68*-ncr-sysv3* | m68*-ncr-sysvr3* ) machine=tower32v3 opsys=usg5-3 ;; | |
1393 | |
1394 dnl Nixdorf Targon 31 | |
1395 m68*-nixdorf-sysv* ) machine=targon31 opsys=usg5-2-2 ;; | |
1396 | |
1397 dnl Nu (TI or LMI) | |
1398 m68*-nu-sysv* ) machine=nu opsys=usg5-2 ;; | |
1399 | |
1400 dnl Plexus | |
1401 m68*-plexus-sysv* ) machine=plexus opsys=usg5-2 ;; | |
1402 | |
1403 dnl Pyramid machines | |
1404 pyramid-pyramid-bsd* ) machine=pyramid opsys=bsd4-2 ;; | |
1405 | |
1406 dnl Sequent Balance | |
1407 ns32k-sequent-bsd4.2* ) machine=sequent opsys=bsd4-2 ;; | |
1408 ns32k-sequent-bsd4.3* ) machine=sequent opsys=bsd4-3 ;; | |
1409 | |
1410 dnl Siemens Nixdorf | |
1411 mips-siemens-sysv* | mips-sni-sysv*) | |
1412 machine=mips-siemens opsys=usg5-4 | |
1413 NON_GNU_CC=/usr/ccs/bin/cc | |
1414 NON_GNU_CPP=/usr/ccs/lib/cpp | |
1415 ;; | |
1416 | |
1417 dnl NEC | |
1418 mips-nec-sysv*) | |
1419 machine=mips-nec | |
1420 NON_GNU_CC=/usr/ccs/bin/cc | |
1421 NON_GNU_CPP=/usr/ccs/lib/cpp | |
1422 ;; | |
1423 | |
1424 dnl Silicon Graphics machines | |
1425 dnl Iris 2500 and Iris 2500 Turbo (aka the Iris 3030) | |
1426 m68*-sgi-iris3.5* ) machine=irist opsys=iris3-5 ;; | |
1427 m68*-sgi-iris3.6* | m68*-sgi-iris*) machine=irist opsys=iris3-6 ;; | |
1428 dnl Iris 4D | |
1429 mips-sgi-irix3.* ) opsys=irix3-3 ;; | |
1430 mips-sgi-irix4.* ) opsys=irix4-0 ;; | |
1431 mips-sgi-irix6* ) opsys=irix6-0 ;; | |
1432 mips-sgi-irix5.1* ) opsys=irix5-1 ;; | |
1433 mips-sgi-irix5.2* ) opsys=irix5-2 ;; | |
1434 mips-sgi-irix5.* ) opsys=irix5-3 ;; | |
1435 mips-sgi-irix* ) opsys=irix5-0 ;; | |
1436 | |
1437 dnl SONY machines | |
1438 *-sony-newsos[[34]]* | *-sony-news[[34]]* ) opsys=bsd4-3 ;; | |
1439 *-sony-news* ) opsys=newsos5 ;; | |
1440 | |
1441 dnl Stride | |
1442 m68*-stride-sysv* ) machine=stride opsys=usg5-2 ;; | |
1443 | |
1444 dnl Suns | |
1445 *-*-solaris* | *-*-sunos* | *-sun-mach* | *-sun-bsd* ) | |
1446 dnl Hardware type | |
1447 case "$canonical" in | |
1448 m68*-sunos1* ) machine=sun1 ;; | |
1449 m68*-sunos2* ) machine=sun2 ;; | |
1450 m68* ) machine=sun3 ;; | |
1451 i*86*-sun-sunos[[34]]* ) machine=sun386 ;; | |
1452 i*86-*-* ) machine=intel386 ;; | |
1453 rs6000* ) machine=rs6000 ;; | |
1454 esac | |
1455 | |
1456 dnl Make $canonical even more so. | |
1457 case "$canonical" in *-sunos5*) | |
1458 canonical=`echo $canonical | sed -e s/sunos5/solaris2/`;; | |
1459 esac | |
1460 | |
1461 dnl On SunOS 4, use /usr/lib/cpp, sans dynodump, /bin/ranlib | |
1462 dnl On SunOS 5, use cc -E, need dynodump, RANLIB not needed | |
1463 dnl But, SunOS 5.6 no longer needs dynodump because it has a similar | |
1464 dnl function integrated. | |
1465 case "$canonical" in | |
1466 *-sunos4* ) | |
1467 #test -f /usr/lib/cpp && NON_GNU_CPP=/usr/lib/cpp ;; | |
1468 : ;; | |
1469 *-solaris2* ) | |
1470 #test -f /usr/ccs/lib/cpp && NON_GNU_CPP=/usr/ccs/lib/cpp | |
1471 RANLIB=':' ;; | |
1472 esac | |
1473 | |
1474 case "$canonical" in | |
1475 *-solaris* ) | |
1476 opsys=sol2 | |
1477 os_release_major=`uname -r | sed -e 's/^\([[0-9]]\{1,\}\)\.\([[0-9]]\{1,\}\).*/\1/'` | |
1478 os_release_minor=`uname -r | sed -e 's/^\([[0-9]]\{1,\}\)\.\([[0-9]]\{1,\}\).*/\2/'` | |
1479 case "$os_release_minor" in [[0-9]]) | |
1480 os_release_minor="0${os_release_minor}";; | |
1481 esac | |
1482 os_release="${os_release_major}${os_release_minor}" | |
1483 AC_DEFINE_UNQUOTED(OS_RELEASE, $os_release) ;; | |
1484 | |
1485 dnl The last Sun386 ran 4.0. | |
1486 i*86-*-sunos4* ) opsys=sunos4-0 ;; | |
1487 *-sunos4.0* ) opsys=sunos4-0 ;; | |
1488 *-sunos4.1.2* ) opsys=sunos4-1-2 ;; | |
1489 *-sunos4.1.3* ) opsys=sunos4-1-3 ;; | |
1490 *-sunos4.1.[[4-9]]* ) opsys=sunos4-1-4 ;; | |
1491 *-sunos4* | *-sunos ) opsys=sunos4-1 ;; | |
1492 *-mach* ) opsys=mach-bsd4-3 ;; | |
1493 * ) opsys=bsd4-2 ;; | |
1494 esac | |
1495 | |
1496 case "$canonical" in *-sunos4*shr* ) opsys="${opsys}-shr" ;; esac | |
1497 | |
1498 dnl Watch out for a compiler guaranteed not to work. | |
1499 test "$opsys $CC" = "sol2 /usr/ucb/cc" && CC="" | |
1500 ;; | |
1501 | |
1502 dnl Tadpole 68k | |
1503 m68*-tadpole-sysv* ) machine=tad68k opsys=usg5-3 ;; | |
1504 | |
1505 dnl Tahoe machines | |
1506 tahoe-tahoe-bsd4.2* ) machine=tahoe opsys=bsd4-2 ;; | |
1507 tahoe-tahoe-bsd4.3* ) machine=tahoe opsys=bsd4-3 ;; | |
1508 | |
1509 dnl Tandem Integrity S2 | |
1510 mips-tandem-sysv* ) machine=tandem-s2 opsys=usg5-3 ;; | |
1511 | |
1512 dnl Tektronix XD88 | |
1513 m88k-tektronix-sysv3* ) machine=tekxd88 opsys=usg5-3 ;; | |
1514 | |
1515 dnl Tektronix 16000 box (6130?) | |
1516 ns16k-tektronix-bsd* ) machine=ns16000 opsys=bsd4-2 ;; | |
1517 dnl Tektronix 4300 | |
1518 dnl src/m/tek4300.h hints that this is a m68k machine. | |
1519 m68*-tektronix-bsd* ) machine=tek4300 opsys=bsd4-3 ;; | |
1520 | |
1521 dnl Titan P2 or P3 | |
1522 titan-titan-sysv* ) machine=titan opsys=usg5-3 ;; | |
1523 | |
1524 dnl Ustation E30 (SS5E) | |
1525 m68*-unisys-uniplus* ) machine=ustation opsystem=unipl5-2 ;; | |
1526 | |
1527 dnl Vaxen. | |
1528 vax-dec-* ) | |
1529 case "$canonical" in | |
1530 *-sysv[[01]]* | *-sysvr[[01]]* ) opsys=usg5-0 ;; | |
1531 *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;; | |
1532 *-mach* ) opsys=mach-bsd4-3 ;; | |
1533 esac | |
1534 ;; | |
1535 | |
1536 dnl Whitechapel MG1 | |
1537 ns16k-whitechapel-* ) machine=mg1 ;; | |
1538 | |
1539 dnl Wicat | |
1540 m68*-wicat-sysv* ) machine=wicat opsys=usg5-2 ;; | |
1541 | |
1542 dnl Intel 386 machines where we do not care about the manufacturer | |
1543 i[[3-9]]86-*-* ) | |
1544 machine=intel386 | |
1545 case "$canonical" in | |
1546 *-isc1.* | *-isc2.[[01]]* ) opsys=386-ix ;; | |
1547 *-isc2.2* ) opsys=isc2-2 ;; | |
1548 *-isc4.0* ) opsys=isc4-0 ;; | |
1549 *-isc4.* ) opsys=isc4-1 | |
1550 GCC_TEST_OPTIONS=-posix | |
1551 NON_GCC_TEST_OPTIONS=-Xp | |
1552 ;; | |
1553 *-isc* ) opsys=isc3-0 ;; | |
1554 *-esix5* ) opsys=esix5r4 NON_GNU_CPP=/usr/lib/cpp ;; | |
1555 *-esix* ) opsys=esix ;; | |
1556 *-mach* ) opsys=mach-bsd4-3 ;; | |
1557 *-xenix* ) opsys=xenix ;; | |
1558 *-sco3.2v4* ) opsys=sco4 NON_GNU_CPP=/lib/cpp ;; | |
1559 *-bsd386* | *-bsdi1* ) opsys=bsd386 ;; | |
1560 *-bsdi4* ) opsys=bsdos4 ;; | |
1561 *-bsdi3* ) opsys=bsdos3 ;; | |
1562 *-bsdi2.1* ) opsys=bsdos2-1 ;; | |
1563 *-bsdi2* ) opsys=bsdos2 ;; | |
1564 *-sco3.2v5* ) opsys=sco5 ;; | |
1565 *-sysv5* ) opsys=sco7 ;; | |
1566 *-386bsd* ) opsys=386bsd ;; | |
1567 *-freebsd* ) opsys=freebsd ;; | |
1568 *-nextstep* ) opsys=nextstep ;; | |
1569 *-pc-cygwin* ) opsys=cygwin32 ;; | |
1570 *-pc-mingw* ) opsys=mingw32 ; | |
1571 test -z "$with_tty" && with_tty="no";; | |
1572 dnl Otherwise, we fall through to the generic opsys code at the bottom. | |
1573 esac | |
1574 ;; | |
1575 | |
1576 dnl Linux/68k | |
1577 m68k-*-linux* ) machine=m68k opsys=linux ;; | |
1578 | |
1579 esac | |
1580 | |
1581 dnl Initialize machine from $canonical if not in our database above. | |
1582 test -z "$machine" && machine=`echo $canonical | sed 's/-.*$//'` | |
1583 | |
1584 dnl Initialize opsys from `uname -s` if not in our database above. | |
1585 test -z "$opsys" && opsys=`uname -s | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` | |
1586 | |
1587 dnl Use configure-time autodetection if s&m not available | |
1588 if test -r "${srcdir}/src/m/${machine}.h"; then | |
1589 machfile="m/${machine}.h" | |
1590 AC_DEFINE_UNQUOTED(config_machfile, "$machfile") | |
1591 else | |
1592 echo "XEmacs has no builtin knowledge of \`$machine' machines." | |
1593 echo "Using configure-time autodetection only." | |
1594 fi | |
1595 | |
1596 if test -r "${srcdir}/src/s/${opsys}.h"; then | |
1597 opsysfile="s/${opsys}.h" | |
1598 AC_DEFINE_UNQUOTED(config_opsysfile, "$opsysfile") | |
1599 else | |
1600 echo "XEmacs has no builtin knowledge of \`$opsys' operating systems." | |
1601 echo "Using configure-time autodetection only." | |
1602 fi | |
1603 | |
1604 dnl -------------------------------------------------------------- | |
1605 dnl $opsys detection complete; defaults depending on $opsys follow | |
1606 dnl -------------------------------------------------------------- | |
1607 | |
1608 if test -z "$pdump"; then | |
1609 case "$opsys" in | |
1610 linux* ) pdump=yes ;; dnl glibc 2.3.1 seems to hose unexec | |
1611 darwin ) pdump=yes ;; dnl No "native" working dumper available | |
1612 cygwin* ) pdump=yes ;; dnl unexec is broken | |
1613 * ) pdump=no ;; | |
1614 esac | |
1615 fi | |
1616 | |
1617 dnl Dump into executable | |
1618 if test -z "$dump_in_exec"; then | |
1619 if test "$pdump" = "yes"; then | |
1620 if test "$mc_alloc" = "yes"; then | |
1621 dump_in_exec=no | |
1622 else | |
1623 dump_in_exec=yes | |
1624 fi | |
1625 fi | |
1626 fi | |
1627 | |
1628 if test -z "$dynamic"; then | |
1629 case "$opsys" in | |
1630 hpux* | sunos4* ) dynamic=no ;; | |
1631 *) dynamic=yes ;; | |
1632 esac | |
1633 fi | |
1634 if test "$dynamic" = "yes"; then | |
1635 case "$opsys" in | |
1636 hpux* | sunos4* | sco5 ) opsys="${opsys}-shr" ;; | |
1637 decosf* ) ld_call_shared="-call_shared" ;; | |
1638 darwin ) AC_DEFINE(DLSYM_NEEDS_UNDERSCORE) ;; | |
1639 esac | |
1640 else dnl "$dynamic" = "no" | |
1641 case "$opsys" in | |
1642 sol2 ) | |
1643 echo "Static linking is not supported on Solaris 2." | |
1644 echo "Rerun configure without specifying --dynamic=no." | |
1645 exit 1 ;; | |
1646 linux ) ld_call_shared="-Bstatic" ;; | |
1647 decosf* ) ld_call_shared="-non_shared" ;; | |
1648 esac | |
1649 fi | |
1650 | |
1651 dnl Tools configuration | |
1652 case "$opsys" in | |
1653 aix* ) NON_GNU_CC=xlc ;; dnl Use xlc by default on AIX | |
1654 darwin ) RANLIB="ranlib -c" ;; dnl Avoid link error in lwlib-config.c | |
1655 esac | |
1656 | |
1657 stack_trace_eye_catcher=`echo ${PROGNAME}_${version}_${canonical} | sed 'y/.-/__/'` | |
1658 AC_DEFINE_UNQUOTED(STACK_TRACE_EYE_CATCHER, $stack_trace_eye_catcher) | |
1659 | |
1660 dnl -------------------------------------------------- | |
1661 dnl Determine the compiler, set up for feature testing | |
1662 dnl -------------------------------------------------- | |
1663 | |
1664 dnl Sun Development environment support | |
1665 test "$with_sparcworks" = "yes" && with_workshop=yes # compatibility alias | |
1666 XE_CHECK_FEATURE_DEPENDENCY(workshop, tooltalk) | |
1667 if test "$with_workshop" = "yes"; then | |
1668 AC_DEFINE(SUNPRO) | |
1669 fi | |
1670 | |
1671 if test "$with_clash_detection" != "no"; then | |
1672 AC_DEFINE(CLASH_DETECTION) | |
1673 fi | |
1674 | |
1675 dnl Choose a compiler from (in order) | |
1676 dnl --compiler, env var CC, with_gcc=no && ${NON_GNU_CC:-cc}, AC_PROG_CC | |
1677 test -n "$compiler" && CC="$compiler" | |
1678 if test "$with_gcc" = "no"; then dnl Try to find a non-gcc compiler | |
1679 case "$CC" in "" | *gcc* ) CC="${NON_GNU_CC-cc}" ;; esac | |
1680 fi | |
1681 | |
1682 dnl If we don't set CFLAGS here, AC_PROG_CC will set it. | |
1683 dnl But we know better what's good for us, so we do our own | |
1684 dnl computation of real CFLAGS later. | |
1685 dnl --cflags overrides environment variable CFLAGS | |
1686 test "${cflags-unset}" != unset && CFLAGS="$cflags" | |
1687 if test "${CFLAGS-unset}" != unset | |
1688 then cflags_specified=yes; | |
1689 else cflags_specified=no; | |
1690 fi | |
1691 | |
1692 if test "${cflags_warning-unset}" != unset | |
1693 then cflags_warning_specified=yes; | |
1694 else cflags_warning_specified=no; | |
1695 fi | |
1696 | |
1697 if test "${cflags_optimization-unset}" != unset | |
1698 then cflags_optimization_specified=yes; | |
1699 else cflags_optimization_specified=no; | |
1700 fi | |
1701 | |
1702 if test "${cflags_debugging-unset}" != unset | |
1703 then cflags_debugging_specified=yes; | |
1704 else cflags_debugging_specified=no; | |
1705 fi | |
1706 | |
1707 xe_save_CFLAGS="$CFLAGS" | |
1708 | |
1709 AC_PROG_CC dnl Autoconf has its own magic for compiler autodetection | |
1710 | |
1711 dnl Retry using random guesswork if AC_PROG_CC got it wrong... | |
1712 if test "$with_gcc" = "no" -a "$GCC" = "yes"; then | |
1713 CC=${NON_GNU_CC-cc} | |
1714 AC_PROG_CC | |
1715 elif test "$with_gcc" = "yes" -a "$GCC" != "yes" ; then | |
1716 CC=gcc | |
1717 AC_PROG_CC | |
1718 fi | |
1719 CFLAGS="$xe_save_CFLAGS" | |
1720 | |
1721 dnl Determine GCC version. | |
1722 if test "$GCC" = "yes"; then | |
1723 AC_TRY_RUN([int main () { | |
1724 #if __GNUC__ >= 3 | |
1725 return 11; | |
1726 #else | |
1727 return 0; | |
1728 #endif | |
1729 }], [], | |
1730 [case "$conftest_rc" in | |
1731 11) echo "You appear to be using GCC version 3 or above."; __GCC3=yes ;; | |
1732 esac]) | |
1733 fi | |
1734 | |
1735 dnl Support for using a different compiler for xemacs itself. | |
1736 dnl Useful for building XEmacs with a C++ compiler. | |
1737 dnl For example, `configure --compiler=gcc --xemacs-compiler=g++ | |
1738 | |
1739 dnl The compiler used to build xemacs, as opposed to the compiler | |
1740 dnl used by configure and lib-src, is determined from the following | |
1741 dnl sources, in order of priority: | |
1742 dnl o --xemacs-compiler configure flag | |
1743 dnl o XEMACS_CC environment variable | |
1744 dnl o same as the regular compiler, (determined previously) | |
1745 | |
1746 dnl We don't do AC_PROG_CC for XEMACS_CC; if we can't trust these people.... | |
1747 test -n "$xemacs_compiler" && XEMACS_CC="$xemacs_compiler" | |
1748 : ${XEMACS_CC:="$CC"} | |
1749 | |
1750 dnl Figure out what C preprocessor to use. | |
1751 | |
1752 dnl On Sun systems, people sometimes set up the variable CPP | |
1753 dnl with a value that is a directory, not an executable at all. | |
1754 dnl Detect that case, and ignore that value. | |
1755 test -n "$CPP" -a -d "$CPP" && CPP= | |
1756 | |
1757 test -n "$NON_GNU_CPP" -a "$GCC" != "yes" -a -z "$CPP" && CPP="$NON_GNU_CPP" | |
1758 | |
1759 AC_PROG_CPP | |
1760 | |
1761 dnl -------------------------------------------------------------------- | |
1762 dnl Compiler feature macros | |
1763 dnl -------------------------------------------------------------------- | |
1764 | |
1765 AC_AIX dnl Defines _ALL_SOURCE on AIX. | |
1766 | |
1767 dnl We want feature macros defined here *and* in config.h.in, so that | |
1768 dnl the compilation environment at configure time and compile time agree. | |
1769 | |
1770 AC_MSG_CHECKING(for GNU libc) | |
1771 AC_TRY_COMPILE([#include <features.h>],[ | |
1772 #if ! (defined __GLIBC__ || defined __GNU_LIBRARY__) | |
1773 #error Not a GNU libc system :-( | |
1774 ******* ======= ******** &&&&&&&& | |
1775 #endif | |
1776 ], have_glibc=yes, have_glibc=no) | |
1777 AC_MSG_RESULT($have_glibc) | |
1778 dnl I'm tired of pop being broken with GLIBC -slb | |
1779 dnl Well. then why not fix fucking pop? | |
1780 test "$have_glibc" = "yes" && AC_DEFINE(_GNU_SOURCE) | |
1781 | |
1782 dnl We'd like to use vendor extensions, where available. | |
1783 dnl We'd like to use functions from the latest Unix98 standards. | |
1784 dnl See http://www.opengroup.org/onlinepubs/007908799/xsh/compilation.html | |
1785 case "$opsys" in | |
1786 sol2) | |
1787 AC_DEFINE(__EXTENSIONS__) | |
1788 dnl Solaris 2 before 2.5 had some bugs with feature test macro interaction. | |
1789 if test "$os_release" -ge 505; then | |
1790 AC_DEFINE(_XOPEN_SOURCE,500) | |
1791 AC_DEFINE(_XOPEN_SOURCE_EXTENDED) | |
1792 fi ;; | |
1793 linux) | |
1794 AC_DEFINE(_POSIX_C_SOURCE,199506L) | |
1795 dnl #### should this be 600? | |
1796 AC_DEFINE(_XOPEN_SOURCE,500) | |
1797 AC_DEFINE(_XOPEN_SOURCE_EXTENDED) | |
1798 ;; | |
1799 freebsd4*) | |
1800 AC_DEFINE(_POSIX_C_SOURCE,199506L) | |
1801 dnl #### Do we want these too? Apparently yes for _XOPEN_SOURCE=500. | |
1802 AC_DEFINE(_XOPEN_SOURCE,500) | |
1803 dnl AC_DEFINE(_XOPEN_SOURCE_EXTENDED) | |
1804 ;; | |
1805 esac | |
1806 | |
1807 dnl Identify compilers to enable compiler-specific hacks. | |
1808 dnl Add support for other compilers HERE! | |
1809 dnl GCC is already identified elsewhere. | |
1810 AC_TRY_RUN([int main () { | |
1811 #if defined __SUNPRO_C | |
1812 return 11; | |
1813 #elif defined __DECC | |
1814 return 12; | |
1815 #elif defined __USLC__ && defined __SCO_VERSION__ | |
1816 return 13; | |
1817 #elif defined __INTEL_COMPILER | |
1818 return 14; | |
1819 #else | |
1820 return 0; | |
1821 #endif | |
1822 }], [], | |
1823 [case "$conftest_rc" in | |
1824 11) echo "You appear to be using the SunPro C compiler." ; __SUNPRO_C=yes ;; | |
1825 12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;; | |
1826 13) echo "You appear to be using the SCO C compiler." ; __USLC__=yes ;; | |
1827 14) echo "You appear to be using the Intel C++ compiler."; __ICC=yes | |
1828 dnl Newer versions of icc claim to be GCC | |
1829 GCC=no ;; | |
1830 esac]) | |
1831 | |
1832 | |
1833 dnl case "$canonical" in | |
1834 dnl *-sun-sunos* ) test "$CPP" = "acc -E" && CPP="acc -E -Xs" ;; | |
1835 dnl esac | |
1836 | |
1837 dnl -------------------------------------------------------------------- | |
1838 dnl Extract some information from the operating system and machine files | |
1839 dnl -------------------------------------------------------------------- | |
1840 | |
1841 echo "Extracting information from the machine- and system-dependent headers..." | |
1842 | |
1843 dnl It is not important that this name contain the PID; you cannot run | |
1844 dnl two configures in the same directory and have anything work | |
1845 dnl anyway. | |
1846 tempcname="conftest.c" | |
1847 | |
1848 dnl CPP_to_sh(CPP_SYMBOL, SH_VAR, DEFAULT_VALUE) | |
1849 define([CPP_to_sh], | |
1850 [[#]ifndef [$1] | |
1851 [#]define [$1]ifelse([$3],,, [ "$3"]) | |
1852 [#]endif | |
1853 configure___ [$2]=[$1] | |
1854 ])dnl CPP_to_sh | |
1855 | |
1856 dnl CPP_boolean_to_sh(CPP_SYMBOL, SH_VAR) | |
1857 define([CPP_boolean_to_sh], | |
1858 [[#]ifdef [$1] | |
1859 configure___ [$2]=yes | |
1860 [#]else | |
1861 configure___ [$2]=no | |
1862 [#]endif | |
1863 ])dnl CPP_boolean_to_sh | |
1864 | |
1865 cat > $tempcname < confdefs.h | |
1866 cat >> $tempcname <<EOF | |
1867 #define NOT_C_CODE | |
1868 #define C_SWITCH_SITE | |
1869 #define C_SWITCH_X_SITE | |
1870 #define LD_SWITCH_SITE | |
1871 #define LD_SWITCH_X_SITE | |
1872 #define LD_SWITCH_X_SITE_AUX | |
1873 #define OS_RELEASE $os_release | |
1874 | |
1875 #ifdef config_opsysfile | |
1876 #include "$srcdir/src/$opsysfile" | |
1877 #endif | |
1878 | |
1879 #ifdef config_machfile | |
1880 #include "$srcdir/src/$machfile" | |
1881 #endif | |
1882 | |
1883 CPP_to_sh(LIBS_MACHINE, libs_machine) | |
1884 CPP_to_sh(LIBS_SYSTEM, libs_system) | |
1885 CPP_to_sh(LIBS_TERMCAP, libs_termcap) | |
1886 CPP_to_sh(LIB_STANDARD, libs_standard) | |
1887 | |
1888 CPP_to_sh(OBJECTS_MACHINE, objects_machine) | |
1889 CPP_to_sh(OBJECTS_SYSTEM, objects_system) | |
1890 | |
1891 CPP_to_sh(C_SWITCH_MACHINE, c_switch_machine) | |
1892 CPP_to_sh(C_SWITCH_SYSTEM, c_switch_system) | |
1893 | |
1894 CPP_to_sh(LD_SWITCH_MACHINE, ld_switch_machine) | |
1895 CPP_to_sh(LD_SWITCH_SYSTEM, ld_switch_system) | |
1896 | |
1897 CPP_to_sh(UNEXEC, unexec) | |
1898 | |
1899 CPP_to_sh(SYSTEM_TYPE, system_type) | |
1900 | |
1901 CPP_to_sh(LD_SWITCH_SHARED, ld_switch_shared, -c) | |
1902 | |
1903 #define ORDINARY_LD "\$(CC) \$(CFLAGS)" | |
1904 configure___ ordinary_ld=ORDINARY_LD | |
1905 | |
1906 #ifdef ORDINARY_LINK | |
1907 #define LD ORDINARY_LD | |
1908 #else /* no ORDINARY LINK */ | |
1909 #ifdef COFF_ENCAPSULATE | |
1910 #define LD "\$(CC) -nostdlib" | |
1911 #else /* not COFF_ENCAPSULATE */ | |
1912 #ifdef LINKER | |
1913 #define LD LINKER | |
1914 #else /* ! defined (LINKER) */ | |
1915 #define LD "ld" | |
1916 #endif /* ! defined (LINKER) */ | |
1917 #endif /* ! defined (COFF_ENCAPSULATE) */ | |
1918 #endif /* not ORDINARY_LINK */ | |
1919 configure___ ld=LD | |
1920 | |
1921 CPP_to_sh(LIB_GCC, lib_gcc) | |
1922 CPP_to_sh(LD_TEXT_START_ADDR, ld_text_start_addr) | |
1923 | |
1924 #if ! defined (ORDINARY_LINK) && !defined (START_FILES) | |
1925 #ifdef NO_REMAP | |
1926 #ifdef COFF_ENCAPSULATE | |
1927 #define START_FILES "pre-crt0.o /usr/local/lib/gcc-crt0.o" | |
1928 #else /* ! defined (COFF_ENCAPSULATE) */ | |
1929 #define START_FILES "pre-crt0.o /lib/crt0.o" | |
1930 #endif /* ! defined (COFF_ENCAPSULATE) */ | |
1931 #else /* ! defined (NO_REMAP) */ | |
1932 #define START_FILES "ecrt0.o" | |
1933 #endif /* ! defined (NO_REMAP) */ | |
1934 #endif /* no ORDINARY_LINK */ | |
1935 #ifndef START_FILES | |
1936 #define START_FILES | |
1937 #endif | |
1938 configure___ start_files=START_FILES | |
1939 | |
1940 CPP_boolean_to_sh(ORDINARY_LINK, ordinary_link) | |
1941 CPP_boolean_to_sh(SYSTEM_MALLOC, system_malloc) | |
1942 CPP_boolean_to_sh(TERMINFO, have_terminfo) | |
1943 dnl The MAIL_USE_xxx variables come from the s&m headers | |
1944 CPP_boolean_to_sh(MAIL_USE_FLOCK, mail_use_flock) | |
1945 CPP_boolean_to_sh(MAIL_USE_LOCKF, mail_use_lockf) | |
1946 CPP_boolean_to_sh(MAIL_USE_LOCKING, mail_use_locking) | |
1947 CPP_boolean_to_sh(HAVE_WIN32_PROCESSES, win32_processes) | |
1948 EOF | |
1949 | |
1950 dnl The value of CPP is a quoted variable reference, so we need to do this | |
1951 dnl to get its actual value... | |
1952 CPP=`eval "echo $CPP $CPPFLAGS"` | |
1953 define(TAB, [ ])dnl | |
1954 changequote(, )dnl | |
1955 eval `$CPP -Isrc $tempcname \ | |
1956 | sed -n -e "s/[ TAB]*=[ TAB\"]*/='/" -e "s/[ TAB\"]*\$/'/" -e "s/^configure___//p"` | |
1957 changequote([, ])dnl | |
1958 | |
1959 rm $tempcname | |
1960 | |
1961 dnl s&m files shouldn't be required to define anything, or even to exist. | |
1962 dnl So we default SYSTEM_TYPE to the obvious documented standard, `uname -s`, | |
1963 dnl appropriately emacsulated. | |
1964 test -z "$system_type" && \ | |
1965 AC_DEFINE_UNQUOTED(SYSTEM_TYPE,"`uname -s | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`") | |
1966 | |
1967 dnl If the s&m files don't define a system-specific dumper, simply use pdump. | |
1968 dnl Sometime in the future, we'll remove all definitions of UNEXEC | |
1969 dnl from all the s&m files. | |
1970 test -z "$unexec" && pdump=yes | |
1971 | |
1972 if test "$pdump" = "yes"; then | |
1973 ordinary_link="yes" | |
1974 ld="${ordinary_ld}" | |
1975 start_files= | |
1976 libs_standard= | |
1977 unexec= | |
1978 lib_gcc= | |
1979 fi | |
1980 | |
1981 dnl For debugging... | |
1982 test "$extra_verbose" = "yes" && \ | |
1983 PRINT_VAR(libs_machine libs_system libs_termcap libs_standard | |
1984 objects_machine objects_system c_switch_machine c_switch_system | |
1985 ld_switch_machine ld_switch_system unexec ld_switch_shared | |
1986 ld lib_gcc ld_text_start_addr start_files ordinary_link | |
1987 have_terminfo mail_use_flock mail_use_lockf mail_using_locking) && echo "" | |
1988 | |
1989 dnl Pick up mingw include path | |
1990 dnl We only cope with headers in mingw, not mingw32: no previous version of | |
1991 dnl XEmacs supported mingw and cygnus have made this incompatible change | |
1992 dnl so we just go with the flow. | |
1993 case "$opsys" in mingw* | cygwin*) | |
1994 cygwin_include=`eval "gcc -print-file-name=libc.a"` ; | |
1995 cygwin_include=`eval "dirname $cygwin_include"` ; | |
1996 cygwin_include="-I$cygwin_include/../include" ; | |
1997 extra_includes="$cygwin_include/mingw $cygwin_include" ; | |
1998 case "$opsys" in mingw*) | |
1999 XE_APPEND($extra_includes, c_switch_system) ;; | |
2000 esac | |
2001 ;; | |
2002 esac | |
2003 | |
2004 dnl Non-ordinary link usually requires -lc | |
2005 test "$ordinary_link" = "no" -a -z "$libs_standard" && libs_standard="-lc" | |
2006 | |
2007 dnl ----------------------- | |
2008 dnl Compiler-specific hacks | |
2009 dnl ----------------------- | |
2010 | |
2011 dnl DEC C `-std1' means ANSI C mode | |
2012 test "$__DECC" = "yes" && XE_APPEND(-std1, c_switch_site) | |
2013 | |
2014 dnl Some versions of SCO native compiler need -Kalloca | |
2015 if test "$__USLC__" = yes; then | |
2016 AC_MSG_CHECKING(for whether the -Kalloca compiler flag is needed) | |
2017 need_kalloca=no | |
2018 AC_TRY_LINK([], [void *x = alloca(4);], [:], [ | |
2019 xe_save_c_switch_system="$c_switch_system" | |
2020 c_switch_system="$c_switch_system -Kalloca" | |
2021 AC_TRY_LINK([], [void *x = alloca(4);], [ need_kalloca=yes ]) | |
2022 c_switch_system="$xe_save_c_switch_system"]) | |
2023 AC_MSG_RESULT($need_kalloca) | |
2024 test "$need_kalloca" = "yes" && XE_APPEND(-Kalloca,c_switch_system) | |
2025 fi | |
2026 | |
2027 dnl If we're specifying XEMACS_CC, it'd better be in the same family | |
2028 dnl as CC or the following flag calculations are bogus. | |
2029 dnl #### We may want to actually error and abort here, but I am not sure. | |
2030 if test "$CC" != "$XEMACS_CC"; then | |
2031 if test "$XEMACS_CC" = "g++" -a "$GCC" != "yes"; then | |
2032 AC_MSG_WARN([CC and g++ are mismatched; XE_CFLAGS may be wrong]) | |
2033 xemacs_cc_cc_mismatch=yes | |
2034 elif test -n "$GCC" -a "$XEMACS_CC" != "g++"; then | |
2035 AC_MSG_WARN([gcc and XEMACS_CC are mismatched; XE_CFLAGS may be wrong]) | |
2036 xemacs_cc_cc_mismatch=yes | |
2037 dnl #### Add other detectable mismatches here. | |
2038 else | |
2039 xemacs_cc_cc_mismatch=no | |
2040 fi | |
2041 fi | |
2042 | |
2043 dnl Calculate optimization flags. These will be off by default in beta | |
2044 dnl versions and on in release versions. | |
2045 | |
2046 if test -z "$with_optimization" ; then | |
2047 if test -n "$emacs_is_beta" ; then | |
2048 with_optimization=no | |
2049 else | |
2050 with_optimization=yes | |
2051 fi | |
2052 fi | |
2053 | |
2054 dnl #### We should be checking C_OPTIMIZE_SWITCH in m/*, s/*. | |
2055 | |
2056 AC_MSG_CHECKING([for preferred optimization flags]) | |
2057 if test "$with_optimization" = "yes" ; then | |
2058 if test "$cflags_optimization_specified" = "no"; then | |
2059 dnl Following values of cflags_optimization are known to work well. | |
2060 dnl Should we take debugging options into consideration? | |
2061 if test "$GCC" = "yes"; then | |
2062 cflags_optimization="-O3" | |
2063 elif test "$__SUNPRO_C" = "yes"; then | |
2064 case "$opsys" in | |
2065 sol2 ) cflags_optimization="-xO4" ;; | |
2066 sunos4* ) cflags_optimization="-xO2" ;; | |
2067 esac | |
2068 elif test "$__DECC" = "yes"; then | |
2069 cflags_optimization="-O3" | |
2070 elif test "$CC" = "xlc"; then | |
2071 dnl see http://www.nersc.gov/vendor_docs/ibm/vac/sc094959.pdf | |
2072 cflags_optimization="-O3 -qstrict -qnoansialias -qlibansi -qmaxmem=20000" | |
2073 elif test "$__ICC" = "yes"; then | |
2074 cflags_optimization="-O3 -Ob2" | |
2075 dnl ### Add optimal cflags_optimization support for other compilers HERE! | |
2076 else | |
2077 cflags_optimization="-O" ;dnl The only POSIX-approved flag | |
2078 fi | |
2079 fi | |
2080 else | |
2081 cflags_optimization= | |
2082 fi | |
2083 | |
2084 AC_MSG_RESULT([${cflags_optimization}]) | |
2085 | |
2086 dnl #### We should be checking C_DEBUG_SWITCH in m/*, s/*. | |
2087 | |
2088 AC_MSG_CHECKING([for preferred debugging flags]) | |
2089 if test "$cflags_debugging_specified" = "no"; then | |
2090 dnl ### Add optimal debugging support for other compilers HERE! | |
2091 cflags_debugging="-g" | |
2092 | |
2093 debugging_ok_with_optimization=no | |
2094 if test "$GCC" = "yes" -o "$CC" = "xlc" -o "$__ICC" = "yes"; then | |
2095 debugging_ok_with_optimization=yes | |
2096 fi | |
2097 | |
2098 if test "$with_optimization" = "yes" -a "$debugging_ok_with_optimization" = "no"; then | |
2099 cflags_debugging= | |
2100 fi | |
2101 fi | |
2102 AC_MSG_RESULT([${cflags_debugging}]) | |
2103 | |
2104 dnl Calculate warning flags. We separate the flags for warnings from | |
2105 dnl the other flags because we want to force the warnings to be seen | |
2106 dnl by everyone who doesn't specifically override them. | |
2107 | |
2108 AC_MSG_CHECKING([for preferred warning flags for XEMACS_CC]) | |
2109 | |
2110 dnl If this stays nil, it will be set to cflags_warning before use. | |
2111 xe_cflags_warning="" | |
2112 | |
2113 if test "$cflags_warning_specified" = "no"; then | |
2114 dnl Following warning flags are known to work well. | |
2115 if test "$__SUNPRO_C" = "yes"; then | |
2116 case "$opsys" in | |
2117 sol2 ) cflags_warning="-v" ;; | |
2118 esac | |
2119 elif test "$CC" = "xlc"; then | |
2120 cflags_warning="-qinfo" | |
2121 elif test "$GCC" = "yes"; then | |
2122 cflags_warning="-Wall -Wno-switch -Wundef" | |
2123 dnl This is not very useful, as it issues warnings that may appear | |
2124 dnl or disappear rather randomly, cannot easily be fixed, and are | |
2125 dnl not a big deal. If you want it, add it yourself. | |
2126 dnl cflags_warning="$cflags_warning -Winline" | |
2127 | |
2128 dnl Yuck, bad compares have been worth at least 3 crashes! | |
2129 dnl Warnings about char subscripts are pretty pointless, though, | |
2130 dnl and we use them in various places. | |
2131 cflags_warning="$cflags_warning -Wsign-compare -Wno-char-subscripts" | |
2132 test "$__GCC3" = "yes" && cflags_warning="$cflags_warning -Wpacked" | |
2133 dnl glibc is intentionally not `-Wpointer-arith'-clean. | |
2134 dnl Ulrich Drepper has rejected patches to fix the glibc header files. | |
2135 test "$have_glibc" != "yes" && \ | |
2136 cflags_warning="$cflags_warning -Wpointer-arith" | |
2137 dnl Warning flags that may differ for gcc and g++ (xemacs_compiler) | |
2138 dnl With g++, -Wshadow produces five zillion utterly random warnings -- | |
2139 dnl a local var named `buffer' conflicts with `struct buffer' for | |
2140 dnl example. Even with gcc, -Wshadow is questionable because of its | |
2141 dnl complaints about parameters with the same names as global functions. | |
2142 dnl There is no -Wmissing-declarations under g++. | |
2143 dnl But gcc warns about -Weffc++ in C compiles. | |
2144 dnl With g++, there is no effective way to use -Wunused-parameter without | |
2145 dnl some very ugly code changes. | |
2146 if test "$xemacs_compiler" = "g++"; then | |
2147 xe_cflags_warning="$cflags_warning -Weffc++" | |
2148 elif test "$__GCC3" = "yes"; then | |
2149 xe_cflags_warning="$cflags_warning -Wunused-parameter" | |
2150 fi | |
2151 cflags_warning="$cflags_warning -Wshadow -Wmissing-declarations" | |
2152 cflags_warning="$cflags_warning -Wmissing-prototypes -Wstrict-prototypes" | |
2153 dnl **** If more gcc/g++ flags are added, from here on must handle | |
2154 dnl **** cflags_warning and xe_cflags_warning in parallel | |
2155 elif test "$__ICC" = "yes"; then | |
2156 cflags_warning="-Wall -w1 -we147" | |
2157 dnl ### Add optimal cflags_warning support for other compilers HERE! | |
2158 fi | |
2159 fi | |
2160 test -z "$xe_cflags_warning" && xe_cflags_warning="$cflags_warning" | |
2161 AC_MSG_RESULT([${xe_cflags_warning}]) | |
2162 | |
2163 AC_MSG_CHECKING([for preferred warning flags for CC]) | |
2164 AC_MSG_RESULT([${cflags_warning}]) | |
2165 | |
2166 dnl Calculate remaining cflags. | |
2167 dnl Use either command line flag, environment var, or autodetection | |
2168 | |
2169 AC_MSG_CHECKING([for remaining CFLAGS]) | |
2170 | |
2171 if test "$cflags_specified" = "no"; then | |
2172 dnl Following values of CFLAGS are known to work well. | |
2173 if test "$CC" = "xlc"; then | |
2174 CFLAGS="-qro" | |
2175 dnl ### Add optimal CFLAGS support for other compilers HERE! | |
2176 fi | |
2177 fi | |
2178 AC_MSG_RESULT([${CFLAGS}]) | |
2179 | |
2180 dnl Now combine all C flags. Put the warning and optimization flags first | |
2181 dnl so that user-specified flags will override. | |
2182 dnl Do XE_CFLAGS before adding flags to CFLAGS. | |
2183 dnl Flags for XEMACS_CC: | |
2184 | |
2185 XE_CFLAGS="$xe_cflags_warning $cflags_debugging $cflags_optimization $CFLAGS" | |
2186 dnl Flags for CC: | |
2187 CFLAGS="$cflags_warning $cflags_debugging $cflags_optimization $CFLAGS" | |
2188 | |
2189 AC_MSG_CHECKING([total value of XE_CFLAGS]) | |
2190 AC_MSG_RESULT([${XE_CFLAGS}]) | |
2191 AC_MSG_CHECKING([total value of CFLAGS]) | |
2192 AC_MSG_RESULT([${CFLAGS}]) | |
2193 | |
2194 dnl Search for GCC specific build problems we know about | |
2195 if test "$GCC" = "yes"; then | |
2196 AC_MSG_CHECKING(for buggy gcc versions) | |
2197 GCC_VERSION=`$CC --version` | |
2198 case `uname -s`:`uname -m`:$GCC_VERSION in | |
2199 dnl egcs 2.90.21 (egcs-1.00 release) | |
2200 dnl egcs 2.90.29 (egcs-1.0.3 release) | |
2201 *:sun4*:2.8.1|*:sun4*:egcs-2.90.*) | |
2202 dnl Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures | |
2203 dnl without also using `-fno-schedule-insns'. | |
2204 case "$CFLAGS" in | |
2205 *-O2*|*-O3*) | |
2206 case "$CFLAGS" in | |
2207 *-fno-schedule-insns*) ;; | |
2208 *) | |
2209 AC_MSG_RESULT(yes) | |
2210 AC_MSG_WARN([Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures]) | |
2211 AC_MSG_WARN([without also using -fno-schedule-insns.]) | |
2212 AC_MSG_ERROR([Aborting due to known problem]) | |
2213 ;; | |
2214 esac | |
2215 ;; | |
2216 esac | |
2217 ;; | |
2218 dnl egcs-2.91.57 (egcs-1.1 release) | |
2219 dnl egcs-2.91.66 (egcs-1.1.2 release) | |
2220 Linux:alpha:egcs-2.91.*) | |
2221 AC_MSG_RESULT(yes) | |
2222 AC_MSG_WARN([There have been reports of egcs-1.1 not compiling XEmacs correctly on]) | |
2223 AC_MSG_WARN([Alpha Linux. There have also been reports that egcs-1.0.3a is O.K.]) | |
2224 AC_MSG_ERROR([Aborting due to known problem]) | |
2225 ;; | |
2226 *:i*86*:2.7.2*) | |
2227 case "$CFLAGS" in | |
2228 *-O2*|*-O3*) | |
2229 case "$GCC_VERSION" in | |
2230 2.7.2) | |
2231 case "$CFLAGS" in | |
2232 *-fno-strength-reduce*) ;; | |
2233 *) | |
2234 AC_MSG_RESULT(yes) | |
2235 AC_MSG_WARN([Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using]) | |
2236 AC_MSG_WARN([-fno-strength-reduce.]) | |
2237 AC_MSG_ERROR([Aborting due to known problem]) | |
2238 ;; | |
2239 esac | |
2240 ;; | |
2241 esac | |
2242 case "$CFLAGS" in | |
2243 *-fno-caller-saves*) ;; | |
2244 *) | |
2245 AC_MSG_RESULT(yes) | |
2246 AC_MSG_WARN([Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using]) | |
2247 AC_MSG_WARN([-fno-caller-saves.]) | |
2248 AC_MSG_ERROR([Aborting due to known problem]) | |
2249 ;; | |
2250 esac | |
2251 ;; | |
2252 esac | |
2253 ;; | |
2254 esac | |
2255 AC_MSG_RESULT(no) | |
2256 fi | |
2257 | |
2258 dnl GNU ld now defaults to combreloc, which screws up unexec, but not pdump. | |
2259 dnl Note that it's OK if the GNU style long option causes non-GNU ld to barf | |
2260 dnl a usage message, that's often good enough. Please report it, though. | |
2261 dnl #### Should make this Solaris-friendly. | |
2262 dnl Link with -z nocombreloc for now. | |
2263 if test "$pdump" != "yes"; then | |
2264 AC_MSG_CHECKING(for \"-z nocombreloc\" linker flag) | |
2265 case "`ld --help 2>&1`" in | |
2266 *-z\ nocombreloc* ) AC_MSG_RESULT(yes) | |
2267 XE_PREPEND(-z nocombreloc, ld_switch_site) ;; | |
2268 *) AC_MSG_RESULT(no) ;; | |
2269 esac | |
2270 fi | |
2271 | |
2272 | |
2273 dnl Inform compiler that certain flags are meant for the linker | |
2274 dnl XE_PROTECT_LINKER_FLAGS(shell_var) | |
2275 define([XE_PROTECT_LINKER_FLAGS], [ | |
2276 if test "$GCC" = "yes"; then | |
2277 set x $[$1]; shift; [$1]="" | |
2278 while test -n "[$]1"; do | |
2279 case [$]1 in | |
2280 -L | -l | -u ) [$1]="$[$1] [$]1 [$]2"; shift ;; | |
2281 -L* | -l* | -u* | -Wl* | -pg ) [$1]="$[$1] [$]1" ;; | |
2282 -Xlinker* ) ;; | |
2283 * ) [$1]="$[$1] -Xlinker [$]1" ;; | |
2284 esac | |
2285 shift | |
2286 done | |
2287 fi])dnl | |
2288 XE_PROTECT_LINKER_FLAGS(ld_switch_system) | |
2289 XE_PROTECT_LINKER_FLAGS(ld_switch_machine) | |
2290 XE_PROTECT_LINKER_FLAGS(ld_switch_site) | |
2291 XE_PROTECT_LINKER_FLAGS(LDFLAGS) | |
2292 XE_PROTECT_LINKER_FLAGS(ld_call_shared) | |
2293 | |
2294 dnl Add s&m-determined objects (including unexec) to link line | |
2295 test -n "$objects_machine" && XE_ADD_OBJS($objects_machine) | |
2296 test -n "$objects_system" && XE_ADD_OBJS($objects_system) | |
2297 test -n "$unexec" && test ! "$pdump" = "yes" && XE_ADD_OBJS($unexec) | |
2298 test "$pdump" = "yes" && XE_ADD_OBJS(dumper.o) | |
2299 | |
2300 dnl Dynodump (Solaris 2.x, x<6) | |
2301 AC_MSG_CHECKING(for dynodump) | |
2302 if test "$unexec" != "unexsol2.o"; then | |
2303 AC_MSG_RESULT(no) | |
2304 else | |
2305 AC_MSG_RESULT(yes) | |
2306 AC_DEFINE(DYNODUMP) | |
2307 XE_APPEND(dynodump, MAKE_SUBDIR) | |
2308 XE_APPEND(dynodump, SRC_SUBDIR_DEPS) | |
2309 case "$machine" in | |
2310 sparc ) dynodump_arch=sparc ;; | |
2311 *86* ) dynodump_arch=i386 ;; | |
2312 powerpc ) dynodump_arch=ppc ;; | |
2313 esac | |
2314 dnl Dynodump requires the system linker | |
2315 test "$GCC" = "yes" && XE_APPEND(-fno-gnu-linker, ld_switch_site) | |
2316 fi | |
2317 | |
2318 dnl Feed s&m crud to src/Makefile | |
2319 | |
2320 dnl Linux/powerpc needs the following magic for some reason | |
2321 dnl [Not needed with YellowDog 2.3 and causes link problems with YellowDog 3.0, | |
2322 dnl the two most popular PowerPC distributions.] | |
2323 dnl test "$machine$opsys" = "powerpclinux" && start_flags="-T $srcdir/src/ppc.ldscript" | |
2324 | |
2325 if test "$unexec" = "unexaix.o"; then | |
2326 dnl AIX needs various hacks to make static linking work. | |
2327 if test "$dynamic" = "no"; then | |
2328 start_flags="-Wl,-bnso,-bnodelcsect" | |
2329 test "$GCC" = "yes" && start_flags="-B/bin/ ${start_flags}" | |
2330 for f in "/lib/syscalls.exp" "/lib/threads.exp"; do | |
2331 if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; fi | |
2332 done | |
2333 for f in "/usr/lpp/X11/bin/smt.exp" "/usr/bin/X11/smt.exp"; do | |
2334 if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; break; fi | |
2335 done | |
2336 AC_CHECK_LIB(C, terminateAndUnload, XE_APPEND(-lC, libs_system)) | |
2337 fi | |
2338 elif test -n "$ld_text_start_addr"; then | |
2339 start_flags="-T $ld_text_start_addr -e __start" | |
2340 fi | |
2341 AC_SUBST(start_flags) | |
2342 | |
2343 AC_SUBST(ld_switch_shared) | |
2344 AC_SUBST(start_files) | |
2345 if test "$ordinary_link" = "no" -a "$GCC" = "yes"; then | |
2346 test -z "$linker" && linker='$(CC) -nostdlib' | |
2347 test -z "$lib_gcc" && lib_gcc='`$(CC) -print-libgcc-file-name`' | |
2348 fi | |
2349 test "$GCC" != "yes" && lib_gcc= | |
2350 AC_SUBST(ld) | |
2351 AC_SUBST(lib_gcc) | |
2352 | |
2353 dnl --------------------------------------------------------------- | |
2354 dnl Get version information for: | |
2355 dnl C compiler, libc | |
2356 dnl #### should do CC compiler, too, if different from XEMACS_CC | |
2357 dnl --------------------------------------------------------------- | |
2358 | |
2359 compiler_version="" | |
2360 gcc_compiler_specs="" | |
2361 libc_version="" | |
2362 | |
2363 AC_MSG_CHECKING(for compiler version information) | |
2364 | |
2365 dnl First try portable compilers, then crack system secrets | |
2366 dnl #### Is this code correct if $XEMACS_CC != $CC? XEMACS_CC hasn't been | |
2367 dnl run through the AC_PROG_CC mill. | |
2368 dnl Would anybody really build libsrc with GCC and XEmacs with non-GCC? | |
2369 if test "$GCC" = "yes"; then | |
2370 compiler_version=`$XEMACS_CC --version | head -1` | |
2371 gcc_compiler_specs=`$XEMACS_CC -v 2>&1 | sed 's/.* \([[^ ]]\)/\1/' | head -1` | |
2372 else case "$XEMACS_CC" in | |
2373 dnl The Intel cc compiler | |
2374 ic*) | |
2375 compiler_version=`icc -V 2>&1 | head -1` | |
2376 ;; | |
2377 dnl non-gcc machine-specific magic - contributions welcome | |
2378 *) case "$canonical" in | |
2379 *-*-aix* ) | |
2380 dnl Yes, it's this ugly for AIX... | |
2381 realcc=`which $XEMACS_CC` | |
2382 dnl Might be a symlink created by replaceCset command | |
2383 if test -L $realcc ; then | |
2384 ccdir=`dirname $realcc` | |
2385 ccprog=`/bin/ls -l $realcc | sed 's/.* \([[^ ]]\)/\1/'` | |
2386 dnl This doesn't handle ../../xlc type stuff, but I've not seen one... | |
2387 case $ccprog in | |
2388 */*) realcc=$ccprog;; | |
2389 *) realcc=$ccdir/$ccprog;; | |
2390 esac | |
2391 fi | |
2392 lpp=`lslpp -wqc $realcc | cut -f2 -d:` | |
2393 if test ! -z "$lpp" ; then | |
2394 lppstr=`lslpp -Lqc $lpp` | |
2395 lpplev=`echo "$lppstr" | cut -f3 -d:` | |
2396 lppdesc=`echo "$lppstr" | cut -f8 -d:` | |
2397 fi | |
2398 if test ! -z "$lpplev" ; then | |
2399 compiler_version="$lpp $lpplev - $lppdesc" | |
2400 fi | |
2401 ;; | |
2402 | |
2403 *-*-solaris*) | |
2404 compiler_version=`$XEMACS_CC -V 2>&1 | head -1` | |
2405 ;; | |
2406 | |
2407 alpha*-dec-osf*) | |
2408 compiler_version=`$XEMACS_CC -V | tr '\n' ' '` | |
2409 ;; | |
2410 | |
2411 mips-sgi-irix*) | |
2412 compiler_version=`$XEMACS_CC -version` | |
2413 ;; | |
2414 esac | |
2415 esac | |
2416 fi | |
2417 | |
2418 dnl Awww, shucks. | |
2419 if test -z "$compiler_version"; then | |
2420 compiler_version="detection failed (please report this)" | |
2421 fi | |
2422 | |
2423 AC_MSG_CHECKING(for standard C library version information) | |
2424 | |
2425 case "$canonical" in | |
2426 *-*-linux*) | |
2427 dnl #### who would ever _not_ be running the distro's libc? | |
2428 dnl Maybe it would be better to get/augment this info with ldd? | |
2429 if test -f /etc/redhat-release ; then | |
2430 libc_version=`rpm -q glibc` | |
2431 elif test -f /etc/debian_version ; then | |
2432 libc_version=`dpkg-query --showformat='${version}' --show libc6` | |
2433 libc_version="GNU libc $libc_version (Debian)" | |
2434 dnl need SuSE et al checks here... | |
2435 fi | |
2436 dnl #### Tested on Debian, does this actually work elsewhere? ;-) | |
2437 if test -z "$libc_version"; then | |
2438 libc_version=`ls /lib/libc-*.so | sed -e 's,/lib/libc-\(.*\)\.so,\1,'` | |
2439 fi | |
2440 ;; | |
2441 | |
2442 *-*-aix*) | |
2443 libc_version="bos.rte.libc `lslpp -Lqc bos.rte.libc | cut -f3 -d:`" | |
2444 ;; | |
2445 | |
2446 *-*-solaris*) | |
2447 libc=`pkginfo -l SUNWcsl | grep VERSION: | awk '{print $2}'` | |
2448 libc_version="SUNWcsl $libc" | |
2449 | |
2450 ;; | |
2451 | |
2452 mips-sgi-irix*) | |
2453 libc_version="IRIX libc `uname -sRm`" | |
2454 ;; | |
2455 | |
2456 alpha*-dec-osf*) | |
2457 dnl Another ugly case | |
2458 (cd /usr/.smdb.; | |
2459 libc_version=` grep -h libc.so *.inv | awk '$9 == "f" {print $12}' | tr '\n' ','` | |
2460 ) | |
2461 ;; | |
2462 esac | |
2463 | |
2464 dnl Awww, shucks. | |
2465 if test -z "libc_version"; then | |
2466 libc_version="detection failed (please report this)" | |
2467 fi | |
2468 | |
2469 dnl --------------------------------------------------------------- | |
2470 dnl Add site and system specific flags to compile and link commands | |
2471 dnl --------------------------------------------------------------- | |
2472 | |
2473 dnl Allow use of either ":" or spaces for lists of directories | |
2474 define(COLON_TO_SPACE, | |
2475 [case "$[$1]" in *:* [)] [$1]="`echo '' $[$1] | sed -e 's/^ //' -e 's/:/ /g'`";; esac])dnl | |
2476 | |
2477 dnl --site-libraries (multiple dirs) | |
2478 COLON_TO_SPACE(site_libraries) | |
2479 if test -n "$site_libraries"; then | |
2480 for arg in $site_libraries; do | |
2481 case "$arg" in | |
2482 -* ) ;; | |
2483 * ) test -d "$arg" || \ | |
2484 XE_DIE("Invalid site library \`$arg': no such directory") | |
2485 arg="-L${arg}" ;; | |
2486 esac | |
2487 XE_APPEND($arg, ld_switch_site) | |
2488 done | |
2489 fi | |
2490 | |
2491 dnl --site-includes (multiple dirs) | |
2492 COLON_TO_SPACE(site_includes) | |
2493 if test -n "$site_includes"; then | |
2494 for arg in $site_includes; do | |
2495 case "$arg" in | |
2496 -* ) ;; | |
2497 * ) test -d "$arg" || \ | |
2498 XE_DIE("Invalid site include \`$arg': no such directory") | |
2499 arg="-I${arg}" ;; | |
2500 esac | |
2501 XE_APPEND($arg, c_switch_site) | |
2502 done | |
2503 fi | |
2504 | |
2505 dnl --site-prefixes (multiple dirs) | |
2506 dnl --site-prefixes=dir1:dir2 is a convenient shorthand for | |
2507 dnl --site-libraries=dir1/lib:dir2/lib --site-includes=dir1/include:dir2/include | |
2508 dnl Site prefixes take precedence over the standard places, but not over | |
2509 dnl site-includes and site-libraries. | |
2510 COLON_TO_SPACE(site_prefixes) | |
2511 if test -n "$site_prefixes"; then | |
2512 for dir in $site_prefixes; do | |
2513 lib_dir="${dir}/lib" | |
2514 inc_dir="${dir}/include" | |
2515 if test ! -d "$dir"; then | |
2516 XE_DIE("Invalid site prefix \`$dir': no such directory") | |
2517 elif test ! -d "$lib_dir"; then | |
2518 XE_DIE("Invalid site prefix \`$dir': no such directory \`$lib_dir'") | |
2519 else | |
2520 if test -d "$inc_dir"; then | |
2521 XE_APPEND("-I$inc_dir", c_switch_site) | |
2522 fi | |
2523 XE_APPEND("-L$lib_dir", ld_switch_site) | |
2524 fi | |
2525 done | |
2526 fi | |
2527 | |
2528 dnl GNU software installs by default into /usr/local/{include,lib} | |
2529 dnl if test -d "/usr/local/include" -a -d "/usr/local/lib"; then | |
2530 dnl XE_APPEND("-L/usr/local/lib", ld_switch_site) | |
2531 dnl XE_APPEND("-I/usr/local/include", c_switch_site) | |
2532 dnl fi | |
2533 | |
2534 dnl Extra system-specific library directories - please add to list | |
2535 for dir in "/usr/ccs/lib"; do | |
2536 test -d "$dir" && XE_APPEND(-L${dir}, ld_switch_system) | |
2537 done | |
2538 | |
2539 dnl --site-runtime-libraries (multiple dirs) | |
2540 COLON_TO_SPACE(site_runtime_libraries) | |
2541 if test -n "$site_runtime_libraries"; then | |
2542 LD_RUN_PATH="`echo $site_runtime_libraries | sed -e 's/ */:/g'`" | |
2543 export LD_RUN_PATH | |
2544 fi | |
2545 | |
2546 dnl Linux systems have dynamic runtime library directories listed in | |
2547 dnl /etc/ld.so.conf. Since those are used at run time, it seems pretty | |
2548 dnl safe to use them at link time, and less controversial than forcing | |
2549 dnl the run-time to use the link-time libraries. This also helps avoid | |
2550 dnl mismatches between the link-time and run-time libraries. | |
2551 | |
2552 dnl #### Unfortunately, there are horrible libc4 and libc5 libraries | |
2553 dnl listed in /etc/ld.so.conf on some systems, and including them on | |
2554 dnl the link path leads to linking in utterly broken libc's. | |
2555 dnl There are many clever ways of approaching this problem, | |
2556 dnl but finding one that actually works... | |
2557 | |
2558 dnl if test -z "$LD_RUN_PATH" -a -r "/etc/ld.so.conf"; then | |
2559 dnl for dir in `cat /etc/ld.so.conf`; do | |
2560 dnl test -d "$dir" && XE_APPEND(-L${dir}, ld_switch_system) | |
2561 dnl done | |
2562 dnl add_runtime_path=no | |
2563 dnl fi | |
2564 | |
2565 dnl ------------------------------------- | |
2566 dnl Compute runtime library path | |
2567 dnl ------------------------------------- | |
2568 | |
2569 if test -n "$add_runtime_path"; then :; | |
2570 elif test "$dynamic" = "no"; then add_runtime_path=no | |
2571 elif test -n "$LD_RUN_PATH"; then add_runtime_path=yes | |
2572 else case "$opsys" in | |
2573 sol2 | irix* | *bsd* | decosf* ) add_runtime_path=yes ;; | |
2574 * ) add_runtime_path=no ;; | |
2575 esac | |
2576 fi | |
2577 | |
2578 if test "$add_runtime_path" = "yes"; then | |
2579 dnl Try to autodetect runtime library flag (usually -R), | |
2580 dnl and whether it works (or at least does no harm) | |
2581 AC_MSG_CHECKING("for runtime libraries flag") | |
2582 case "$opsys" in | |
2583 sol2 ) dash_r="-R" ;; | |
2584 decosf* | linux* | irix*) dash_r="-rpath " ;; | |
2585 *) | |
2586 dash_r="" | |
2587 for try_dash_r in "-R" "-R " "-rpath "; do | |
2588 xe_check_libs="${try_dash_r}/no/such/file-or-directory" | |
2589 XE_PROTECT_LINKER_FLAGS(xe_check_libs) | |
2590 AC_TRY_LINK(, , dash_r="$try_dash_r") | |
2591 xe_check_libs="" | |
2592 test -n "$dash_r" && break | |
2593 done ;; | |
2594 esac | |
2595 if test -n "$dash_r"; | |
2596 then AC_MSG_RESULT("\"${dash_r}\"") | |
2597 else AC_MSG_RESULT(NONE) | |
2598 fi | |
2599 fi | |
2600 | |
2601 xe_add_unique_runpath_dir=' | |
2602 xe_add_p=yes | |
2603 for xe_dir in $runpath_dirs; do dnl Uniquify | |
2604 test "$xe_dir" = "$xe_runpath_dir" && xe_add_p=no | |
2605 done | |
2606 if test "$xe_add_p" = "yes"; then | |
2607 test -n "$runpath" && runpath="${runpath}:" | |
2608 runpath="${runpath}${xe_runpath_dir}" | |
2609 runpath_dirs="$runpath_dirs $xe_runpath_dir" | |
2610 fi' | |
2611 | |
2612 | |
2613 dnl XE_ADD_RUNPATH_DIR(directory) | |
2614 define([XE_ADD_RUNPATH_DIR],[{ | |
2615 xe_runpath_dir=$1 | |
2616 dnl PRINT_VAR(ld_switch_site ld_switch_x_site runpath xe_runpath_dir LD_RUN_PATH xe_ldflags) | |
2617 test "$xe_runpath_dir" != "/lib" -a \ | |
2618 "$xe_runpath_dir" != "/usr/lib" -a \ | |
2619 -n "`ls ${xe_runpath_dir}/*.s[[ol]] 2>/dev/null`" && \ | |
2620 eval "$xe_add_unique_runpath_dir" | |
2621 }])dnl | |
2622 | |
2623 dnl XE_COMPUTE_RUNPATH() | |
2624 define([XE_COMPUTE_RUNPATH],[ | |
2625 if test "$add_runtime_path" = "yes" -a -n "$dash_r"; then | |
2626 dnl Remove runtime paths from current ld switches | |
2627 ld_switch_site=`echo '' $ld_switch_site | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"` | |
2628 ld_switch_x_site=`echo '' $ld_switch_x_site | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"` | |
2629 dnl PRINT_VAR(ld_switch_site ld_switch_x_site) | |
2630 | |
2631 dnl Fix up Runtime path | |
2632 dnl If LD_RUN_PATH is set in environment, use that. | |
2633 dnl In this case, assume user has set the right value. | |
2634 runpath="" runpath_dirs="" | |
2635 if test -n "$LD_RUN_PATH"; then | |
2636 runpath="$LD_RUN_PATH" | |
2637 elif test "$GCC" = "yes"; then | |
2638 dnl Compute runpath from gcc's -v output | |
2639 ld_switch_run_save="$ld_switch_run"; ld_switch_run="" | |
2640 echo "int main(int argc, char *argv[[]]) {return 0;}" > conftest.c | |
2641 xe_runpath_link='${CC-cc} -o conftest -v $CFLAGS '"$xe_ldflags"' conftest.$ac_ext 2>&1 1>/dev/null' | |
2642 for arg in `eval "$xe_runpath_link" | grep ' -L'`; do | |
2643 case "$arg" in P,* | -L* | -R* ) | |
2644 for dir in `echo '' "$arg" | sed -e 's:^ ::' -e 's/^..//' -e 'y/:/ /'`; do | |
2645 XE_ADD_RUNPATH_DIR("$dir") | |
2646 done ;; | |
2647 esac | |
2648 done | |
2649 ld_switch_run="$ld_switch_run_save" | |
2650 rm -f conftest* | |
2651 else | |
2652 dnl Add all directories with .so files to runpath | |
2653 for arg in $ld_switch_site $ld_switch_x_site; do | |
2654 case "$arg" in -L*) XE_ADD_RUNPATH_DIR(`echo '' "$arg" | sed -e 's:^ ::' -e 's/^-L//'`);; esac | |
2655 done | |
2656 dnl Sometimes /opt/SUNWdt/lib is the only installed Motif available | |
2657 if test "$opsys $need_motif" = "sol2 yes"; then | |
2658 xe_runpath_dir="/opt/SUNWdt/lib"; | |
2659 eval "$xe_add_unique_runpath_dir"; | |
2660 fi | |
2661 fi dnl Compute $runpath | |
2662 | |
2663 if test -n "$runpath"; then | |
2664 ld_switch_run="${dash_r}${runpath}" | |
2665 XE_PROTECT_LINKER_FLAGS(ld_switch_run) | |
2666 test "$extra_verbose" = "yes" && echo "Setting runpath to $runpath" | |
2667 fi | |
2668 fi | |
2669 ])dnl | |
2670 XE_COMPUTE_RUNPATH() | |
2671 | |
2672 dnl ----------------------------------- | |
2673 dnl Do some misc autoconf-special tests | |
2674 dnl ----------------------------------- | |
2675 | |
2676 dnl Do the opsystem or machine files prohibit the use of the GNU malloc? | |
2677 dnl Assume not, until told otherwise. | |
2678 GNU_MALLOC=yes | |
2679 if test "$with_dlmalloc" != "no"; then | |
2680 doug_lea_malloc=yes | |
2681 else | |
2682 doug_lea_malloc=no | |
2683 fi | |
2684 after_morecore_hook_exists=yes | |
2685 AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no) | |
2686 AC_MSG_CHECKING(whether __after_morecore_hook exists) | |
2687 AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0], | |
2688 [AC_MSG_RESULT(yes)], | |
2689 [AC_MSG_RESULT(no) | |
2690 after_morecore_hook_exists=no]) | |
2691 if test "$system_malloc" = "yes" ; then | |
2692 GNU_MALLOC=no | |
2693 GNU_MALLOC_reason=" | |
2694 - The GNU allocators don't work with this system configuration." | |
2695 elif test "$with_system_malloc" = "yes" ; then | |
2696 GNU_MALLOC=no | |
2697 GNU_MALLOC_reason=" | |
2698 - User chose not to use GNU allocators." | |
2699 elif test "$with_debug_malloc" = "yes" ; then | |
2700 GNU_MALLOC=no | |
2701 GNU_MALLOC_reason=" | |
2702 - User chose to use Debugging Malloc." | |
2703 fi | |
2704 | |
2705 if test "$doug_lea_malloc" = "yes" -a "$GNU_MALLOC" = "yes" ; then | |
2706 GNU_MALLOC_reason=" | |
2707 - Using Doug Lea's new malloc from the GNU C Library." | |
2708 AC_DEFINE(DOUG_LEA_MALLOC) | |
2709 if test "$after_morecore_hook_exists" = "no" ; then | |
2710 GNU_MALLOC_reason=" | |
2711 - Using Doug Lea's new malloc from the Linux C Library." | |
2712 AC_DEFINE(_NO_MALLOC_WARNING_) | |
2713 fi | |
2714 fi | |
2715 | |
2716 dnl #### mcheck is broken in all versions of Linux libc and glibc. | |
2717 dnl Try this again when 2.1 hits the streets. | |
2718 dnl Avoid using free-hook.c if support exists for malloc debugging in libc | |
2719 dnl have_libmcheck=no | |
2720 dnl if test "$error_check_malloc" = "yes" -a \ | |
2721 dnl "$have_glibc" = "yes" -a \ | |
2722 dnl "$doug_lea_malloc" = "yes"; then | |
2723 dnl AC_CHECK_HEADERS(mcheck.h) | |
2724 dnl AC_CHECK_LIB(mcheck, mcheck, have_libmcheck=yes, have_libmcheck=no) | |
2725 dnl fi | |
2726 | |
2727 dnl if test "$have_libmcheck" = "yes"; then | |
2728 dnl AC_DEFINE(HAVE_LIBMCHECK) | |
2729 dnl libmcheck=-lmcheck | |
2730 dnl AC_SUBST(libmcheck) | |
2731 dnl fi | |
2732 | |
2733 dnl Some other nice autoconf tests. If you add a test here which | |
2734 dnl should make an entry in src/config.h, do not forget to add an | |
2735 dnl #undef clause to src/config.h.in for autoconf to modify. | |
2736 | |
2737 AC_PROG_RANLIB | |
2738 AC_PROG_INSTALL | |
2739 AC_PROG_YACC | |
2740 | |
2741 dnl checks for header files | |
2742 AC_CHECK_HEADERS(dnl | |
2743 a.out.h dnl | |
2744 elf.h dnl | |
2745 cygwin/version.h dnl | |
2746 fcntl.h dnl | |
2747 inttypes.h dnl | |
2748 libgen.h dnl | |
2749 locale.h dnl | |
2750 wchar.h dnl | |
2751 mach/mach.h dnl | |
2752 sys/param.h dnl | |
2753 sys/pstat.h dnl | |
2754 sys/resource.h dnl | |
2755 sys/time.h dnl | |
2756 sys/timeb.h dnl | |
2757 sys/times.h dnl | |
2758 sys/un.h dnl | |
2759 sys/vlimit.h dnl | |
2760 ulimit.h dnl | |
2761 unistd.h dnl | |
2762 ) | |
2763 AC_HEADER_SYS_WAIT | |
2764 AC_HEADER_STDC | |
2765 AC_HEADER_TIME | |
2766 AC_DECL_SYS_SIGLIST | |
2767 | |
2768 | |
2769 dnl ---------------------------------------------------------------- | |
2770 dnl Checking for utime() or utimes(). | |
2771 dnl We prefer utime, since it is more standard. | |
2772 dnl Some systems have utime.h but do not declare the struct anyplace, | |
2773 dnl so we use a more sophisticated test for utime than AC_CHECK_FUNCS. | |
2774 dnl ---------------------------------------------------------------- | |
2775 AC_MSG_CHECKING(for utime) | |
2776 AC_TRY_COMPILE([#include <sys/types.h> | |
2777 #include <utime.h>], | |
2778 [struct utimbuf x; x.actime = x.modtime = 0; utime ("/", &x);], | |
2779 [AC_MSG_RESULT(yes) | |
2780 AC_DEFINE(HAVE_UTIME)], | |
2781 [AC_MSG_RESULT(no) | |
2782 dnl We don't have utime(); how about utimes()? | |
2783 AC_CHECK_FUNCS(utimes)]) | |
2784 | |
2785 | |
2786 dnl checks for typedefs | |
2787 AC_TYPE_SIGNAL | |
2788 AC_TYPE_SIZE_T | |
2789 AC_TYPE_PID_T | |
2790 AC_TYPE_UID_T | |
2791 AC_TYPE_MODE_T | |
2792 AC_TYPE_OFF_T | |
2793 AC_CHECK_TYPE(ssize_t, int) | |
2794 | |
2795 dnl not AC_CHECK_TYPE; lisp.h does hairy conditional typedef | |
2796 if test "$ac_cv_header_inttypes_h" != "yes"; then | |
2797 AC_MSG_CHECKING(for intptr_t in sys/types.h) | |
2798 AC_TRY_COMPILE([#include <sys/types.h> | |
2799 intptr_t x; | |
2800 ],[],[AC_MSG_RESULT(yes) | |
2801 AC_DEFINE(HAVE_INTPTR_T_IN_SYS_TYPES_H,1)], | |
2802 [AC_MSG_RESULT(no)]) | |
2803 fi | |
2804 | |
2805 dnl check for Unix98 socklen_t | |
2806 AC_MSG_CHECKING(for socklen_t) | |
2807 AC_TRY_COMPILE([#include <sys/types.h> | |
2808 #include <sys/socket.h> | |
2809 socklen_t x; | |
2810 ],[],[AC_MSG_RESULT(yes)],[ | |
2811 AC_TRY_COMPILE([#include <sys/types.h> | |
2812 #include <sys/socket.h> | |
2813 int accept (int, struct sockaddr *, size_t *); | |
2814 ],[],[ | |
2815 AC_MSG_RESULT(size_t) | |
2816 AC_DEFINE(socklen_t,size_t)], [ | |
2817 AC_MSG_RESULT(int) | |
2818 AC_DEFINE(socklen_t,int)])]) | |
2819 | |
2820 AC_MSG_CHECKING(for struct timeval) | |
2821 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME | |
2822 #include <sys/time.h> | |
2823 #include <time.h> | |
2824 #else | |
2825 #ifdef HAVE_SYS_TIME_H | |
2826 #include <sys/time.h> | |
2827 #else | |
2828 #include <time.h> | |
2829 #endif | |
2830 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;], | |
2831 [AC_MSG_RESULT(yes) | |
2832 HAVE_TIMEVAL=yes | |
2833 AC_DEFINE(HAVE_TIMEVAL)], | |
2834 [AC_MSG_RESULT(no) | |
2835 HAVE_TIMEVAL=no]) | |
2836 | |
2837 dnl checks for structure members | |
2838 AC_STRUCT_TM | |
2839 AC_STRUCT_TIMEZONE | |
2840 | |
2841 dnl checks for compiler characteristics | |
2842 AC_C_CONST | |
2843 | |
2844 dnl check for Make feature | |
2845 AC_PROG_MAKE_SET | |
2846 | |
2847 dnl check byte order | |
2848 AC_C_BIGENDIAN | |
2849 | |
2850 dnl define SIZEOF_TYPE | |
2851 AC_CHECK_SIZEOF(short) | |
2852 if test "$ac_cv_sizeof_short" = 0; then | |
2853 echo "" | |
2854 echo "*** PANIC *** Configure tests are not working - compiler is broken." | |
2855 echo "*** PANIC *** Please examine config.log for compilation errors." | |
2856 exit 1 | |
2857 fi | |
2858 AC_CHECK_SIZEOF(int) | |
2859 AC_CHECK_SIZEOF(long) | |
2860 AC_CHECK_SIZEOF(long long) | |
2861 AC_CHECK_SIZEOF(void *) | |
2862 AC_CHECK_SIZEOF(double) | |
2863 | |
2864 dnl check for long file names | |
2865 AC_SYS_LONG_FILE_NAMES | |
2866 | |
2867 dnl -lm is required for floating point support, among other things | |
2868 AC_CHECK_FUNC(sin, ,AC_CHECK_LIB(m, sin)) | |
2869 | |
2870 AC_TRY_LINK([#include <math.h>], | |
2871 [return atanh(1.0) + asinh(1.0) + acosh(1.0); ], | |
2872 AC_DEFINE(HAVE_INVERSE_HYPERBOLIC)) | |
2873 | |
2874 dnl See if mkstemp is available | |
2875 AC_CHECK_FUNCS(mkstemp) | |
2876 | |
2877 dnl Determine type of mail locking from configure args and s&m headers | |
2878 AC_CHECKING(type of mail spool file locking) | |
2879 AC_CHECK_FUNCS(lockf flock) | |
2880 dnl The mail_use_xxx variables are set according to the s&m headers. | |
2881 test -z "$mail_locking" -a "$mail_use_flock" = "yes" && mail_locking=flock | |
2882 test -z "$mail_locking" -a "$mail_use_lockf" = "yes" && mail_locking=lockf | |
2883 test -z "$mail_locking" -a "$mail_use_locking" = "yes" && mail_locking=locking | |
2884 if test -z "$mail_locking"; then | |
2885 case "$opsys" in cygwin* | mingw*) | |
2886 mail_locking=pop ;; | |
2887 esac | |
2888 fi | |
2889 | |
2890 if test "$mail_locking" = "lockf"; then AC_DEFINE(MAIL_LOCK_LOCKF) | |
2891 elif test "$mail_locking" = "flock"; then AC_DEFINE(MAIL_LOCK_FLOCK) | |
2892 elif test "$mail_locking" = "locking"; then AC_DEFINE(MAIL_LOCK_LOCKING) | |
2893 elif test "$mail_locking" = "pop"; then | |
2894 with_pop=yes | |
2895 mail_locking= | |
2896 elif test "$mail_locking" = "mmdf"; then AC_DEFINE(MAIL_LOCK_MMDF) | |
2897 else mail_locking="file"; AC_DEFINE(MAIL_LOCK_DOT) | |
2898 fi | |
2899 test "$mail_locking" = "lockf" -a "$ac_cv_func_lockf" != "yes" && \ | |
2900 XE_DIE("lockf mail locking requested but not available.") | |
2901 test "$mail_locking" = "flock" -a "$ac_cv_func_flock" != "yes" && \ | |
2902 XE_DIE("flock mail locking requested but not available.") | |
2903 test "$mail_locking" = "locking" -a "$ac_cv_func_locking" != "yes" && \ | |
2904 XE_DIE("locking mail locking requested but not available.") | |
2905 | |
2906 case "$opsys" in decosf*) | |
2907 AC_CHECK_LIB(pthreads, cma_open) | |
2908 test "$ac_cv_lib_pthreads_cma_open" = "yes" && \ | |
2909 c_switch_site="$c_switch_site -threads" ;; | |
2910 esac | |
2911 | |
2912 dnl ---------------------------------------------------------------- | |
2913 dnl Miscellaneous flags | |
2914 dnl ---------------------------------------------------------------- | |
2915 | |
2916 AC_MSG_CHECKING(whether the -xildoff compiler flag is required) | |
2917 if ${CC-cc} '-###' -xildon no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then | |
2918 if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; | |
2919 then AC_MSG_RESULT(no); | |
2920 else AC_MSG_RESULT(yes); XE_APPEND(-xildoff, ld_switch_site) | |
2921 fi | |
2922 else AC_MSG_RESULT(no) | |
2923 fi | |
2924 | |
2925 dnl Link with "-z ignore" on Solaris if supported | |
2926 if test "$opsys" = "sol2"; then | |
2927 if test "$os_release" -ge 506; then | |
2928 AC_MSG_CHECKING(for \"-z ignore\" linker flag) | |
2929 case "`ld -h 2>&1`" in | |
2930 *-z\ ignore\|record* ) AC_MSG_RESULT(yes) | |
2931 XE_PREPEND(-z ignore, ld_switch_site) ;; | |
2932 *) AC_MSG_RESULT(no) ;; | |
2933 esac | |
2934 fi | |
2935 fi | |
2936 | |
2937 dnl ---------------------- | |
2938 dnl Choose a window system | |
2939 dnl ---------------------- | |
2940 | |
2941 AC_CHECKING("for specified window system") | |
2942 | |
2943 dnl Autodetection of Gdk libraries and includes | |
2944 dnl ------------------------------------------- | |
2945 dnl On some systems (FreeBSD springs to mind), they use | |
2946 dnl versions on the utility routines, so instead of gtk-config | |
2947 dnl you must use gtk12-config, etc, etc. | |
2948 | |
2949 GNOME_CONFIG=no | |
2950 GTK_CONFIG=no | |
2951 | |
2952 if test "$with_gnome" != "no"; then | |
2953 AC_MSG_CHECKING(for GNOME configuration script) | |
2954 for possible in gnome-config | |
2955 do | |
2956 possible_version=`${possible} --version 2> /dev/null` | |
2957 if test "x${possible_version}" != "x"; then | |
2958 GNOME_CONFIG="${possible}" | |
2959 with_gnome=yes | |
2960 with_gtk=yes | |
2961 break | |
2962 fi | |
2963 done | |
2964 AC_MSG_RESULT([${GNOME_CONFIG}]) | |
2965 fi | |
2966 | |
2967 if test "${GNOME_CONFIG}" != "no"; then | |
2968 GNOME_LIBS=`${GNOME_CONFIG} --libs gnomeui` | |
2969 GNOME_CFLAGS=`${GNOME_CONFIG} --cflags gnomeui` | |
2970 AC_DEFINE(HAVE_GNOME) | |
2971 XE_APPEND(${GNOME_LIBS}, libs_gtk) | |
2972 XE_APPEND(${GNOME_CFLAGS}, c_switch_gtk) | |
2973 fi | |
2974 | |
2975 if test "$with_gtk" != "no";then | |
2976 AC_MSG_CHECKING(for GTK configuration script) | |
2977 for possible in gtk12-config gtk14-config gtk-config | |
2978 do | |
2979 possible_version=`${possible} --version 2> /dev/null` | |
2980 if test "x${possible_version}" != "x"; then | |
2981 GTK_CONFIG="${possible}" | |
2982 case "${possible_version}" in | |
2983 1.0.*) AC_MSG_WARN([GTK 1.2 is required, please upgrade your version of GTK.]); with_gtk=no;; | |
2984 1.3.*) AC_MSG_WARN([GTK 1.3 is not supported right now]); with_gtk=no;; | |
2985 1.2.*) | |
2986 with_gtk=yes | |
2987 break | |
2988 ;; | |
2989 *) AC_MSG_WARN([Found unsupported version of GTK: $possible_version]);; | |
2990 esac | |
2991 fi | |
2992 done | |
2993 AC_MSG_RESULT([${GTK_CONFIG}]) | |
2994 fi | |
2995 | |
2996 if test "${GTK_CONFIG}" != "no"; then | |
2997 AC_MSG_CHECKING(gtk version) | |
2998 GTK_VERSION=`${GTK_CONFIG} --version` | |
2999 AC_MSG_RESULT(${GTK_VERSION}) | |
3000 | |
3001 AC_MSG_CHECKING(gtk libs) | |
3002 GTK_LIBS=`${GTK_CONFIG} --libs` | |
3003 XE_APPEND(${GTK_LIBS}, libs_gtk) | |
3004 AC_MSG_RESULT(${GTK_LIBS}) | |
3005 | |
3006 AC_MSG_CHECKING(gtk cflags) | |
3007 GTK_CFLAGS=`${GTK_CONFIG} --cflags` | |
3008 if test "$GCC" = "yes"; then | |
3009 GTK_CFLAGS="${GTK_CFLAGS} -Wno-shadow" | |
3010 fi | |
3011 XE_APPEND(${GTK_CFLAGS}, c_switch_gtk) | |
3012 AC_MSG_RESULT(${GTK_CFLAGS}) | |
3013 | |
3014 AC_CHECK_LIB(gdk_imlib, main, XE_PREPEND(-lgdk_imlib, libs_gtk)) | |
3015 AC_CHECK_LIB(Imlib, Imlib_init, XE_APPEND(-lImlib, libs_gtk)) | |
3016 AC_CHECK_FUNCS(gdk_imlib_init) | |
3017 | |
3018 AC_DEFINE(HAVE_XPM) | |
3019 AC_DEFINE(HAVE_GTK) | |
3020 AC_SUBST(GTK_CONFIG) | |
3021 | |
3022 window_system=gtk | |
3023 with_gtk=yes | |
3024 if test "$with_x11" != "no"; then | |
3025 AC_MSG_WARN([Configuring GTK, forcing with_x11 to no]) | |
3026 with_x11=no | |
3027 fi | |
3028 | |
3029 for feature in scrollbars toolbars menubars dialogs widgets | |
3030 do | |
3031 eval "feature_value=\${with_${feature}}" | |
3032 case "${feature_value}" in | |
3033 yes|no|gtk|"" ) | |
3034 ;; | |
3035 * ) | |
3036 feature_conflict_with_gtk=yes | |
3037 AC_MSG_WARN([--with-${feature}=${feature_value} is incompatible with --with-gtk]) ;; | |
3038 esac | |
3039 done | |
3040 if test "${feature_conflict_with_gtk}" = "yes"; then | |
3041 XE_DIE(["One or more GUI toolkit features conflict with GTK"]) | |
3042 fi | |
3043 | |
3044 test "${with_scrollbars}" != "no" && with_scrollbars=gtk | |
3045 test "${with_toolbars}" != "no" && with_toolbars=gtk | |
3046 test "${with_menubars}" != "no" && with_menubars=gtk | |
3047 test "${with_dialogs}" != "no" && with_dialogs=gtk | |
3048 test "${with_widgets}" != "no" && with_widgets=gtk | |
3049 | |
3050 dnl Check for libglade support (it rocks) | |
3051 OLD_CFLAGS="${CFLAGS}" | |
3052 OLD_CPPFLAGS="${CPPFLAGS}" | |
3053 OLD_LDFLAGS="${LDFLAGS}" | |
3054 CFLAGS="${GTK_CFLAGS} ${CFLAGS}" | |
3055 CPPFLAGS="${GTK_CFLAGS} ${CFLAGS}" | |
3056 LDFLAGS="${LDFLAGS} ${GTK_LIBS}" | |
3057 AC_CHECK_HEADERS(glade/glade.h glade.h) | |
3058 AC_CHECK_LIB(xml, main, XE_PREPEND(-lxml, libs_gtk)) | |
3059 AC_CHECK_LIB(glade, main, XE_PREPEND(-lglade, libs_gtk)) | |
3060 AC_CHECK_LIB(glade-gnome, main, XE_PREPEND(-lglade-gnome, libs_gtk)) | |
3061 AC_EGREP_HEADER([char \*txtdomain;], [glade/glade-xml.h], | |
3062 [AC_MSG_RESULT(yes) | |
3063 AC_DEFINE(LIBGLADE_XML_TXTDOMAIN,1)], | |
3064 [AC_MSG_RESULT(no)]) | |
3065 CFLAGS="${OLD_CFLAGS}" | |
3066 CPPFLAGS="${OLD_CPPFLAGS}" | |
3067 LDFLAGS="${OLD_LDFLAGS}" | |
3068 fi | |
3069 | |
3070 dnl We may eventually prefer gtk/gdk over vanilla X11... | |
3071 | |
3072 if test "$with_x11" != "no"; then | |
3073 dnl User-specified --x-includes or --x-libraries implies --with-x11. | |
3074 test "$x_includes $x_libraries" != "NONE NONE" && \ | |
3075 window_system=x11 with_x11=yes | |
3076 | |
3077 dnl Autodetection of X11 libraries and includes | |
3078 dnl ------------------------------------------- | |
3079 dnl AC_PATH_XTRA thinks it can find our X headers and includes, but | |
3080 dnl it often gets it wrong, so we only use it as a last resort. | |
3081 | |
3082 dnl $OPENWINHOME implies --x-includes and --x-libraries | |
3083 dnl Not (yet) handled by autoconf2 | |
3084 if test "$x_includes $x_libraries" = "NONE NONE" \ | |
3085 -a -n "$OPENWINHOME" \ | |
3086 -a "$OPENWINHOME" != "/usr/openwin" \ | |
3087 -a -d "$OPENWINHOME"; then | |
3088 test -d "$OPENWINHOME/lib" && x_libraries="$OPENWINHOME/lib" | |
3089 test -d "$OPENWINHOME/include" && x_includes="$OPENWINHOME/include" | |
3090 test -d "$OPENWINHOME/share/include" && x_includes="$OPENWINHOME/share/include" | |
3091 fi | |
3092 | |
3093 if test "$x_includes" = "NONE"; then | |
3094 dnl AC_PATH_XTRA often guesses /usr/include, when some other | |
3095 dnl include directory is a MUCH better guess (Linux, HP-UX 10.20). | |
3096 dnl This is a workaround for idiot (esp. HP) system vendors, who | |
3097 dnl provide a /usr/include/X11, but DON'T FULLY POPULATE IT. | |
3098 for dir in "/usr/X11" "/usr/X11R6"; do | |
3099 if test -d "$dir/include/X11"; then x_includes="$dir/include"; break; fi | |
3100 done | |
3101 fi | |
3102 | |
3103 if test "$x_libraries" = "NONE"; then | |
3104 for dir in "/usr/X11/lib" "/usr/X11R6/lib" "/usr/lib/X11R6"; do | |
3105 if test -r "$dir/libX11.a"; then x_libraries="$dir"; break; fi | |
3106 done | |
3107 fi | |
3108 | |
3109 AC_PATH_XTRA # Autoconf claims to find X library and include dirs for us. | |
3110 if test "$no_x" = "yes" | |
3111 then with_x11=no window_system=none HAVE_X_WINDOWS=no | |
3112 else with_x11=yes window_system=x11 HAVE_X_WINDOWS=yes | |
3113 fi | |
3114 fi | |
3115 | |
3116 dnl #### wmperry:: !x11 != NONE | |
3117 dnl case "$with_x11" in | |
3118 dnl yes ) window_system=x11 HAVE_X_WINDOWS=yes ;; | |
3119 dnl no ) window_system=none HAVE_X_WINDOWS=no ;; | |
3120 dnl esac | |
3121 | |
3122 if test "$with_x11" = "yes"; then | |
3123 AC_DEFINE(HAVE_X_WINDOWS) | |
3124 XE_APPEND(lwlib, MAKE_SUBDIR) | |
3125 XE_APPEND(lwlib, SRC_SUBDIR_DEPS) | |
3126 | |
3127 | |
3128 dnl Look for Motif, but only if not found in $x_includes and $x_libraries | |
3129 AC_CHECK_HEADER(Xm/Xm.h, [AC_CHECK_LIB(Xm, XmStringFree, got_motif=yes)]) | |
3130 | |
3131 if test "$got_motif" != "yes"; then | |
3132 dnl Try to find Motif/CDE/Tooltalk dirs | |
3133 dnl These take precedence over other X libs/includes, so PRE-pend | |
3134 for lib_dir in "/usr/dt/lib" "/usr/lib/Motif2.1" \ | |
3135 "/usr/lib/Motif1.2" "/usr/lib/Motif1.1"; do | |
3136 inc_dir=`echo $lib_dir | sed -e 's/lib/include/'` | |
3137 if test -d "$lib_dir" -a -d "$inc_dir"; then | |
3138 case "$x_libraries" in *"$lib_dir"* ) ;; *) | |
3139 x_libraries="$lib_dir $x_libraries" | |
3140 XE_PREPEND(-L${lib_dir}, X_LIBS) ;; | |
3141 esac | |
3142 case "$x_includes" in "$inc_dir"* ) ;; *) | |
3143 x_includes="$inc_dir $x_includes" | |
3144 XE_PREPEND(-I${inc_dir}, X_CFLAGS) ;; | |
3145 esac | |
3146 break; dnl only need ONE Motif implementation! | |
3147 fi | |
3148 done | |
3149 fi | |
3150 | |
3151 dnl Contrib X libs/includes do NOT take precedence, so AP-pend | |
3152 for rel in "X11R6" "X11R5" "X11R4"; do | |
3153 lib_dir="/usr/contrib/$rel/lib" inc_dir="/usr/contrib/$rel/include" | |
3154 if test -d "$lib_dir" -a -d "$inc_dir"; then | |
3155 case "$x_libraries" in *"$lib_dir"* ) ;; *) | |
3156 x_libraries="$x_libraries $lib_dir" | |
3157 XE_APPEND(-L${lib_dir}, X_LIBS) | |
3158 esac | |
3159 case "$x_includes" in "$inc_dir"* ) ;; *) | |
3160 x_includes="$x_includes $inc_dir" | |
3161 XE_APPEND(-I${inc_dir}, X_CFLAGS) | |
3162 esac | |
3163 break; dnl Only need ONE X11 implementation ! | |
3164 fi | |
3165 done | |
3166 | |
3167 dnl Avoid version mismatch for shared library libXm.so on osf4 | |
3168 case "$opsys" in | |
3169 decosf*) if test "$GCC" = yes -a -d /usr/shlib; then XE_APPEND(-L/usr/shlib, X_LIBS); fi ;; | |
3170 esac | |
3171 | |
3172 ld_switch_x_site="$X_LIBS" | |
3173 | |
3174 XE_COMPUTE_RUNPATH() | |
3175 | |
3176 if test "$extra_verbose" = "yes"; then | |
3177 echo; echo "X11 compilation variables:" | |
3178 PRINT_VAR(x_libraries x_includes X_CFLAGS X_LIBS X_PRE_LIBS X_EXTRA_LIBS) | |
3179 echo | |
3180 fi | |
3181 | |
3182 dnl Set up bitmaps search path. | |
3183 dnl The original suggestion was to unconditionally to append X11/bitmaps | |
3184 dnl to each element of $x_includes, I'm pretty sure this is the wrong | |
3185 dnl thing to do. We test for bitmaps and X11/bitmaps directories on each | |
3186 dnl element and add them to BITMAPDIR if they exist. | |
3187 bitmapdirs= | |
3188 if test "$x_includes" != NONE; then | |
3189 for i in $x_includes; do | |
3190 if test -d "$i/bitmaps"; then | |
3191 bitmapdirs="$i/bitmaps:$bitmapdirs" | |
3192 fi | |
3193 if test -d "$i/X11/bitmaps"; then | |
3194 bitmapdirs="$i/X11/bitmaps:$bitmapdirs" | |
3195 fi | |
3196 done | |
3197 bitmapdirs=`echo "$bitmapdirs" | sed s/.$//` | |
3198 fi | |
3199 test ! -z "$bitmapdirs" && AC_DEFINE_UNQUOTED(BITMAPDIR, "$bitmapdirs") | |
3200 | |
3201 dnl Autodetect defines extracted from X config by xmkmf, e.g. NARROWPROTO | |
3202 AC_CHECKING(for X defines extracted by xmkmf) | |
3203 rm -fr conftestdir | |
3204 if mkdir conftestdir; then | |
3205 cd conftestdir | |
3206 cat > Imakefile <<'EOF' | |
3207 xetest: | |
3208 @echo ${PROTO_DEFINES} ${STD_DEFINES} | |
3209 EOF | |
3210 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then | |
3211 # GNU make sometimes prints "make[1]: Entering...", which would confuse us. | |
3212 xmkmf_defines=`${MAKE-make} xetest 2>/dev/null | grep -v make` | |
3213 fi | |
3214 cd .. | |
3215 rm -fr conftestdir | |
3216 for word in $xmkmf_defines; do | |
3217 case "$word" in | |
3218 -D__STDC__*) ;; | |
3219 -D* ) | |
3220 sym=`echo '' $word | sed -e 's:^ *-D::' -e 's:=.*::'` | |
3221 case "$word" in | |
3222 -D*=* ) val=`echo '' $word | sed -e 's:^.*=::'` ;; | |
3223 * ) val=1 ;; | |
3224 esac | |
3225 dnl Avoid re-AC_DEFINE-ing xmkmf symbols we've already defined above. | |
3226 if grep "^#define $sym " confdefs.h >/dev/null; then :; else | |
3227 if test "$val" = "1" | |
3228 then AC_DEFINE_UNQUOTED($sym) | |
3229 else AC_DEFINE_UNQUOTED($sym,$val) | |
3230 fi | |
3231 fi ;; | |
3232 esac | |
3233 done | |
3234 fi | |
3235 | |
3236 dnl make sure we can find Intrinsic.h | |
3237 AC_CHECK_HEADER(X11/Intrinsic.h, , | |
3238 [AC_MSG_ERROR([Unable to find X11 header files.])]) | |
3239 | |
3240 dnl -lXt and -lX11 are required | |
3241 dnl Some broken systems require the magic "-b i486-linuxaout" flag | |
3242 AC_CHECK_LIB(X11, XOpenDisplay, have_lib_x11=yes) | |
3243 if test "$have_lib_x11" != "yes"; then | |
3244 AC_CHECK_LIB(X11, XGetFontProperty, | |
3245 ld_switch_x_site="-b i486-linuxaout $ld_switch_x_site", | |
3246 [AC_MSG_ERROR([Unable to find X11 libraries.])], | |
3247 -b i486-linuxaout) | |
3248 fi | |
3249 libs_x="-lX11" | |
3250 test "$extra_verbose" = "yes" && echo " Setting libs_x to \"-lX11\"" | |
3251 | |
3252 dnl Autodetect -lXext | |
3253 AC_CHECK_LIB(Xext, XShapeSelectInput, XE_PREPEND(-lXext, libs_x)) | |
3254 | |
3255 dnl Require -lXt | |
3256 AC_CHECK_LIB(Xt, XtOpenDisplay, XE_PREPEND(-lXt, libs_x), | |
3257 AC_MSG_ERROR([Unable to find X11 libraries.])) | |
3258 | |
3259 AC_MSG_CHECKING(the version of X11 being used) | |
3260 AC_TRY_RUN([#include <X11/Intrinsic.h> | |
3261 int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }], | |
3262 [./conftest foobar; x11_release=$?],[x11_release=4],[x11_release=4]) | |
3263 AC_MSG_RESULT(R${x11_release}) | |
3264 AC_DEFINE_UNQUOTED(THIS_IS_X11R${x11_release}) | |
3265 | |
3266 if test "${x11_release}" = "4"; then | |
3267 case "$with_widgets" in | |
3268 "" | "no") with_widgets=no ;; | |
3269 *) XE_DIE("Widget support requires X11R5 or greater") ;; | |
3270 esac | |
3271 fi | |
3272 | |
3273 AC_CHECK_FUNCS(XConvertCase XtRegisterDrawable) | |
3274 | |
3275 AC_CHECK_HEADERS(X11/Xlocale.h) | |
3276 | |
3277 dnl XFree86 has a non-standard prototype for this X11R6 function | |
3278 AC_CHECK_FUNCS(XRegisterIMInstantiateCallback) | |
3279 AC_MSG_CHECKING(for standard XRegisterIMInstantiateCallback prototype) | |
3280 AC_TRY_COMPILE([ | |
3281 #define NeedFunctionPrototypes 1 | |
3282 #include <X11/Xlib.h> | |
3283 extern Bool XRegisterIMInstantiateCallback( | |
3284 Display*, struct _XrmHashBucketRec*, char*, char*, XIMProc, XPointer*); | |
3285 ], [], | |
3286 [AC_MSG_RESULT(yes)], | |
3287 [AC_MSG_RESULT(no) | |
3288 AC_DEFINE(XREGISTERIMINSTANTIATECALLBACK_NONSTANDARD_PROTOTYPE)]) | |
3289 | |
3290 dnl autodetect -lXmu | |
3291 test -z "$with_xmu" && { AC_CHECK_LIB(Xmu, XmuReadBitmapDataFromFile, | |
3292 with_xmu=yes, with_xmu=no) } | |
3293 if test "$with_xmu" = "no"; then | |
3294 XE_ADD_OBJS(xmu.o) | |
3295 else | |
3296 XE_PREPEND(-lXmu, libs_x) | |
3297 AC_DEFINE(HAVE_XMU) | |
3298 fi | |
3299 | |
3300 dnl Autodetect -lXbsd | |
3301 dnl #### Someone, please add a better function than main | |
3302 AC_CHECK_LIB(Xbsd, main, XE_PREPEND(-lXbsd, libs_x)) | |
3303 | |
3304 dnl Problem with the MIT distribution of X on AIX | |
3305 if test "$unexec" = "unexaix.o" -a "$x11_release" = "6"; then | |
3306 dnl X11R6 requires thread-safe code on AIX for some reason | |
3307 if test "$GCC" = "yes"; then | |
3308 XE_PREPEND(-mthreads, X_CFLAGS) | |
3309 XE_PREPEND(-mthreads, libs_x) | |
3310 else | |
3311 case "$CC" in | |
3312 "xlc" ) CC="xlc_r" ;; | |
3313 "xlC" ) CC="xlC_r" ;; | |
3314 "cc" ) CC="cc_r" ;; | |
3315 esac | |
3316 fi | |
3317 fi | |
3318 | |
3319 fi dnl $with_x11 = yes | |
3320 | |
3321 if test "$with_msw" != "no"; then | |
3322 AC_CHECKING(for MS-Windows) | |
3323 AC_CHECK_LIB(gdi32,main,with_msw=yes) | |
3324 if test "$with_msw" = "yes"; then | |
3325 AC_DEFINE(HAVE_MS_WINDOWS) | |
3326 | |
3327 dnl The net installer only works with MS-Windows currently | |
3328 if test "$with_netinstall" = "yes"; then | |
3329 XE_APPEND(netinstall, MAKE_SUBDIR) | |
3330 XE_APPEND(netinstall, SRC_SUBDIR_DEPS) | |
3331 XE_APPEND(netinstall, INSTALL_ARCH_DEP_SUBDIR) | |
3332 fi | |
3333 | |
3334 install_pp="$srcdir/lib-src/installexe.sh" | |
3335 XE_APPEND(-limm32 -lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lole32 -luuid -lwinspool -lmpr, libs_system) | |
3336 if test "$with_dragndrop" != no; then | |
3337 XE_APPEND(msw, dragndrop_proto) | |
3338 with_dragndrop=yes | |
3339 fi | |
3340 if test "$window_system" != x11; then | |
3341 window_system=msw | |
3342 test "$with_scrollbars" != "no" && with_scrollbars=msw | |
3343 test "$with_menubars" != "no" && with_menubars=msw | |
3344 test "$with_toolbars" != "no" && with_toolbars=msw | |
3345 test "$with_dialogs" != "no" && with_dialogs=msw | |
3346 test "$with_widgets" != "no" && with_widgets=msw | |
3347 fi | |
3348 dnl check for our special version of select | |
3349 AC_TRY_RUN([#include <fcntl.h> | |
3350 int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }], | |
3351 [AC_DEFINE(HAVE_MSG_SELECT)]) | |
3352 fi | |
3353 fi | |
3354 | |
3355 AC_SUBST(install_pp) | |
3356 | |
3357 test -z "$with_dragndrop" && with_dragndrop="$with_dragndrop_default" | |
3358 test -z "$window_system" && window_system="none" | |
3359 | |
3360 dnl Test for features that require a window system - ANY window system | |
3361 if test "$window_system" = "none"; then | |
3362 for feature in menubars scrollbars toolbars dialogs dragndrop xface | |
3363 do | |
3364 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then | |
3365 AC_MSG_WARN([--with-$feature ignored: Not valid without window system support]) | |
3366 fi | |
3367 eval "with_${feature}=no" | |
3368 done | |
3369 else | |
3370 test -z "$with_toolbars" && with_toolbars=yes | |
3371 fi | |
3372 | |
3373 dnl ### Test for features that require mswindows support - currently none | |
3374 dnl ### MS-Windows folks: add code here..... (martin) | |
3375 if test "$with_msw" != "yes"; then | |
3376 for feature in MARTIN_IS_CLUELESS_ABOUT_MSW_FEATURES | |
3377 do | |
3378 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then | |
3379 AC_MSG_WARN([--with-$feature ignored: Not valid without MS-Windows support]) | |
3380 fi | |
3381 eval "with_${feature}=no" | |
3382 done | |
3383 else | |
3384 : | |
3385 fi | |
3386 | |
3387 dnl Test for features that require X11 support | |
3388 if test "$with_x11" != "yes"; then | |
3389 dnl It ought to be reasonable to have no output device at all, and only use | |
3390 dnl XEmacs in --batch mode. | |
3391 dnl if test "$with_tty" = "no" ; then | |
3392 dnl AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.]) | |
3393 dnl fi | |
3394 for feature in tooltalk cde offix wmcommand xim xmu nas_sound | |
3395 do | |
3396 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then | |
3397 AC_MSG_WARN([--with-$feature ignored: Not valid without X support]) | |
3398 fi | |
3399 eval "with_${feature}=no" | |
3400 done | |
3401 fi | |
3402 | |
3403 dnl Balloon Help requires the Shape extension, not available everywhere, | |
3404 dnl for example not on AIX 4.3. | |
3405 if test "$with_x11" = "yes"; then | |
3406 AC_CHECK_HEADER(X11/extensions/shape.h, [ | |
3407 AC_DEFINE(HAVE_BALLOON_HELP) | |
3408 ]) | |
3409 fi | |
3410 | |
3411 dnl FSF 19.29 has some bitmapdir stuff here. | |
3412 bitmapdir= | |
3413 | |
3414 case "$window_system" in | |
3415 x11 ) HAVE_X_WINDOWS=yes; echo " Using X11." ;; | |
3416 msw ) HAVE_X_WINDOWS=no ; echo " Using MS-Windows." ;; | |
3417 gtk ) | |
3418 HAVE_X_WINDOWS=no | |
3419 test "$with_gnome" = "yes" && echo " Using GNOME." | |
3420 test "$with_gnome" = "no" && echo " Using GTK." | |
3421 ;; | |
3422 none ) HAVE_X_WINDOWS=no ; echo " Using no window system." ;; | |
3423 esac | |
3424 | |
3425 case "$x_libraries" in *X11R4* ) | |
3426 test "$opsys" = "hpux9" && opsysfile="s/hpux9-x11r4.h" | |
3427 test "$opsys" = "hpux9-shr" && opsysfile="s/hpux9shxr4.h" | |
3428 esac | |
3429 | |
3430 dnl Enable or disable proper handling of WM_COMMAND | |
3431 AC_CHECKING(for WM_COMMAND option); | |
3432 dnl if test "$with_wmcommand" = "yes"; then | |
3433 if test "$with_wmcommand" != "no"; then | |
3434 AC_DEFINE(HAVE_WMCOMMAND) | |
3435 fi | |
3436 | |
3437 dnl Autodetect Xauth | |
3438 dnl -lXau is only used by gnuclient, so use a special variable for Xauth X libs | |
3439 test -z "$with_xauth" && test "$window_system" = "none" && with_xauth=no | |
3440 test -z "$with_xauth" && { AC_CHECK_HEADER(X11/Xauth.h, ,with_xauth=no) } | |
3441 test -z "$with_xauth" && { AC_CHECK_LIB(Xau, XauGetAuthByAddr,[:],with_xauth=no) } | |
3442 test -z "$with_xauth" && with_xauth=yes | |
3443 if test "$with_xauth" = "yes"; then | |
3444 AC_DEFINE(HAVE_XAUTH) | |
3445 XE_SPACE(libs_xauth, $GTK_LIBS $X_EXTRA_LIBS -lXau $libs_x $X_PRE_LIBS) | |
3446 fi | |
3447 AC_SUBST(libs_xauth) | |
3448 | |
3449 dnl This one is for the static initializeds variables in | |
3450 dnl offix.c, so that the thing is dumped after lastfile.o | |
3451 AC_SUBST(dnd_objs) | |
3452 | |
3453 dnl Autodetect dll support | |
3454 | |
3455 dnl If g++ is used, we have to explicitly link modules with -lstdc++ on Cygwin | |
3456 dnl to avoid undefined symbol errors. This will never hurt, so just do it on | |
3457 dnl all platforms in case others have the same brain damage. | |
3458 if test "$xemacs_compiler" = "g++"; then | |
3459 LIBSTDCPP=-lstdc++ | |
3460 else | |
3461 LIBSTDCPP= | |
3462 fi | |
3463 AC_SUBST(LIBSTDCPP) | |
3464 | |
3465 dnl This must come before the detection code for anything that is in a module | |
3466 if test "$with_modules" != "no"; then | |
3467 AC_CHECKING(for module support) | |
3468 | |
3469 case "$opsys" in | |
3470 mingw* | cygwin* ) have_dl=yes ;; | |
3471 darwin ) have_dl=yes | |
3472 AC_DEFINE(HAVE_DYLD) | |
3473 ;; | |
3474 * ) | |
3475 dnl Check for the ELFish dlopen() | |
3476 AC_CHECK_HEADER(dlfcn.h, [ | |
3477 AC_MSG_CHECKING([for dlopen in -lc]) | |
3478 AC_TRY_LINK([#include <dlfcn.h>],dnl | |
3479 [dlopen ("", 0);], [ have_dl=yes ], [ | |
3480 AC_MSG_CHECKING([for dlopen in -ldl]) | |
3481 ac_save_LIBS="$LIBS" | |
3482 LIBS="$LIBS -ldl" | |
3483 AC_TRY_LINK([#include <dlfcn.h>],dnl | |
3484 [dlopen ("", 0);], [ have_dl=yes ], [ | |
3485 AC_MSG_CHECKING([for dlopen in -lsvld]) | |
3486 LIBS="$ac_save_LIBS -lsvld" | |
3487 AC_TRY_LINK([#include <dlfcn.h>],dnl | |
3488 [dlopen ("", 0);], [ have_dl=yes ], [LIBS="$ac_save_LIBS"])])])]) | |
3489 if test "$have_dl" = "yes"; then | |
3490 AC_DEFINE(HAVE_DLOPEN) | |
3491 else | |
3492 dnl Check for HP/UX shl_load | |
3493 AC_CHECK_HEADER(dl.h, [ | |
3494 AC_MSG_CHECKING([for shl_load in -lc]) | |
3495 AC_TRY_LINK([#include <dl.h>],dnl | |
3496 [shl_load ("", 0, 0);], [have_dl=yes], [ | |
3497 AC_MSG_CHECKING([for shl_load in -ldl]) | |
3498 ac_save_LIBS="$LIBS" | |
3499 LIBS="$LIBS -ldld" | |
3500 AC_TRY_LINK([#include <dl.h>],dnl | |
3501 [shl_load ("", 0, 0);], [have_dl=yes], [LIBS="$ac_save_LIBS"])])]) | |
3502 if test "$have_dl" = "yes"; then | |
3503 AC_DEFINE(HAVE_SHL_LOAD) | |
3504 else | |
3505 dnl Check for libtool's libltdl | |
3506 AC_CHECK_HEADER(ltdl.h, [ | |
3507 AC_MSG_CHECKING([for lt_dlinit in -lltdl]) | |
3508 ac_save_LIBS="$LIBS" | |
3509 LIBS="$LIBS -lltdl" | |
3510 AC_TRY_LINK([#include <ltdl.h>],dnl | |
3511 [lt_dlinit ();], [have_dl=yes], [LIBS="$ac_save_LIBS"])]) | |
3512 if test "$have_dl" = "yes"; then | |
3513 AC_DEFINE(HAVE_LTDL) | |
3514 fi | |
3515 dnl end !HP/UX | |
3516 fi | |
3517 dnl end !dlopen | |
3518 fi | |
3519 ac_save_LIBS= | |
3520 dnl end !darwin | |
3521 esac | |
3522 | |
3523 if test -n "$have_dl"; then | |
3524 dnl XE_SHLIB_STUFF (in aclocal.m4) defines $can_build_shared | |
3525 XE_SHLIB_STUFF | |
3526 fi | |
3527 | |
3528 if test "$can_build_shared" = "yes"; then | |
3529 AC_DEFINE(HAVE_SHLIB) | |
3530 dnl src must be built before modules on MacOSX and Windows platforms, since | |
3531 dnl the binary must be available to properly link the modules | |
3532 dnl For no-module builds, this is added *after* the module directories | |
3533 XE_APPEND(src, MAKE_SUBDIR) | |
3534 XE_APPEND(src, INSTALL_ARCH_DEP_SUBDIR) | |
3535 test -n "$libdl" && XE_PREPEND(-l${libdl}, LIBS) | |
3536 AC_CHECK_FUNCS(dlerror _dlerror) | |
3537 with_modules=yes | |
3538 MOD_CC="../../lib-src/ellcc" | |
3539 MODCFLAGS="\$(CFLAGS) --mode=compile --mod-output=\$@ -I../../src -I\$(srcdir)/../../src" | |
3540 INSTALLPATH="\$(moduledir)" | |
3541 MOD_INSTALL_PROGRAM=${INSTALL_PROGRAM} | |
3542 OBJECT_TO_BUILD="\$(MODNAME).ell" | |
3543 else | |
3544 if test "$with_modules" = "yes"; then | |
3545 XE_DIE("Required module support cannot be provided.") | |
3546 else | |
3547 echo " No module support." | |
3548 fi | |
3549 with_modules=no | |
3550 fi | |
3551 fi | |
3552 if test "$with_modules" != "yes"; then | |
3553 MOD_CC="$XEMACS_CC" | |
3554 MODCFLAGS="\$(XE_CFLAGS) -I../../src -I\$(srcdir)/../../src" | |
3555 INSTALLPATH="" | |
3556 MOD_INSTALL_PROGRAM="true" | |
3557 OBJECT_TO_BUILD="\$(MODNAME).o" | |
3558 fi | |
3559 MODARCHDIR= | |
3560 MAKE_DOCFILE="../../lib-src/make-docfile" | |
3561 AC_SUBST(with_modules) | |
3562 AC_SUBST(MOD_CC) | |
3563 AC_SUBST(MODARCHDIR) | |
3564 AC_SUBST(MAKE_DOCFILE) | |
3565 AC_SUBST(MODCFLAGS) | |
3566 AC_SUBST(INSTALLPATH) | |
3567 AC_SUBST(MOD_INSTALL_PROGRAM) | |
3568 AC_SUBST(OBJECT_TO_BUILD) | |
3569 | |
3570 dnl Autodetect tooltalk | |
3571 if test "$with_tooltalk" != "no" ; then | |
3572 dnl autodetect the location of tt_c.h | |
3573 dnl tt_c.h might be in Tt or desktop include directories | |
3574 for dir in "" "Tt/" "desktop/" ; do | |
3575 AC_CHECK_HEADER(${dir}tt_c.h, tt_c_h_file="${dir}tt_c.h"; break) | |
3576 done | |
3577 if test -z "$tt_c_h_file"; then | |
3578 if test "$with_tooltalk" = "yes"; then | |
3579 USAGE_ERROR("Unable to find required tooltalk header files.") | |
3580 fi | |
3581 with_tooltalk=no | |
3582 fi | |
3583 fi | |
3584 if test "$with_tooltalk" != "no" ; then | |
3585 for extra_libs in "" "-lI18N -lce" "-lcxx"; do | |
3586 AC_CHECK_LIB(tt, tt_message_create, | |
3587 tt_libs="-ltt $extra_libs"; break, [:],$extra_libs) | |
3588 done | |
3589 if test -z "$tt_libs"; then | |
3590 if test "$with_tooltalk" = "yes"; then | |
3591 USAGE_ERROR("Unable to find required tooltalk libraries.") | |
3592 fi | |
3593 with_tooltalk=no | |
3594 fi | |
3595 fi | |
3596 test -z "$with_tooltalk" && with_tooltalk=yes | |
3597 if test "$with_tooltalk" = "yes"; then | |
3598 AC_DEFINE(TOOLTALK) | |
3599 AC_DEFINE_UNQUOTED(TT_C_H_FILE, "$tt_c_h_file") | |
3600 XE_PREPEND($tt_libs, libs_x) | |
3601 fi | |
3602 | |
3603 dnl Autodetect CDE | |
3604 test -z "$with_cde" && { AC_CHECK_HEADER(Dt/Dt.h, , with_cde=no) } | |
3605 test -z "$with_cde" && { AC_CHECK_LIB(DtSvc, DtDndDragStart, [:], with_cde=no) } | |
3606 if test "$with_dragndrop" = "no" ; then | |
3607 if test "$with_cde" = "yes" ; then | |
3608 AC_MSG_WARN([--with-cde forced to \`no'; no generic Drag'n'Drop support]) | |
3609 fi | |
3610 with_cde=no | |
3611 fi | |
3612 test -z "$with_cde" && with_cde=yes | |
3613 if test "$with_cde" = "yes" ; then | |
3614 AC_DEFINE(HAVE_CDE) | |
3615 XE_PREPEND(-lDtSvc, libs_x) | |
3616 XE_APPEND(CDE, dragndrop_proto) | |
3617 with_tooltalk=yes # CDE requires Tooltalk | |
3618 need_motif=yes # CDE requires Motif | |
3619 fi | |
3620 | |
3621 dnl Always compile OffiX unless --without-offix is given, no | |
3622 dnl X11 support is compiled in, no standard Xmu is available, | |
3623 dnl or dragndrop support is disabled | |
3624 dnl Because OffiX support currently loses when more than one display | |
3625 dnl is in use, we now disable it by default -slb 07/10/1998. | |
3626 test "$window_system" != "x11" && with_offix=no | |
3627 if test "$with_xmu" != yes -a "$with_x11" = yes; then | |
3628 if test "$with_offix" = "yes" ; then | |
3629 AC_MSG_WARN([--with-offix forced to \`no'; no real Xmu support]) | |
3630 fi | |
3631 with_offix=no | |
3632 fi | |
3633 if test "$with_dragndrop" = no; then | |
3634 if test "$with_offix" = "yes" ; then | |
3635 AC_MSG_WARN([--with-offix forced to \`no'; no generic Drag'n'Drop support]) | |
3636 fi | |
3637 with_offix=no | |
3638 fi | |
3639 if test "$with_cde" = yes; then | |
3640 if test "$with_offix" = "yes" ; then | |
3641 AC_MSG_WARN([--with-offix forced to \`no'; CDE already found]) | |
3642 fi | |
3643 with_offix=no | |
3644 fi | |
3645 test -z "$with_offix" && with_offix=no | |
3646 if test "$with_offix" = "yes"; then | |
3647 AC_DEFINE(HAVE_OFFIX_DND) | |
3648 XE_APPEND(offix.o, dnd_objs) | |
3649 XE_APPEND(OffiX, dragndrop_proto) | |
3650 fi | |
3651 if test "$with_gtk" = "yes"; then | |
3652 XE_APPEND(GTK, dragndrop_proto) | |
3653 fi | |
3654 | |
3655 dnl Autodetect Drag'n'Drop support | |
3656 dnl always included if CDE, Offix, or MSWindows are defined | |
3657 if test "$with_dragndrop" != "no" ; then | |
3658 AC_MSG_CHECKING(if drag and drop API is needed) | |
3659 if test -n "$dragndrop_proto" ; then | |
3660 with_dragndrop=yes | |
3661 AC_MSG_RESULT([yes (${dragndrop_proto} )]) | |
3662 AC_DEFINE(HAVE_DRAGNDROP) | |
3663 XE_APPEND(dragdrop.o, extra_objs) | |
3664 else | |
3665 with_dragndrop=no | |
3666 AC_MSG_RESULT(no) | |
3667 fi | |
3668 fi | |
3669 | |
3670 dnl Autodetect LDAP | |
3671 AC_CHECKING(for LDAP) | |
3672 ldap_libs= | |
3673 test -z "$with_ldap" && { AC_CHECK_HEADER(ldap.h, ,with_ldap=no) } | |
3674 test -z "$with_ldap" && { AC_CHECK_HEADER(lber.h, ,with_ldap=no) } | |
3675 if test "$with_ldap" != "no"; then | |
3676 AC_CHECK_LIB(ldap, ldap_search, with_ldap=yes) | |
3677 dnl Check for other libraries we need to link with to get the main routines. | |
3678 test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes], , -llber) } | |
3679 test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes with_ldap_krb=yes], , -llber -lkrb) } | |
3680 test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes with_ldap_krb=yes with_ldap_des=yes], , -llber -lkrb -ldes) } | |
3681 dnl Recently, we need -lber even though the main routines are elsewhere, | |
3682 dnl because otherwise be get link errors w.r.t. ber_pvt_opt_on. So just | |
3683 dnl check for that (it's a variable not a fun but that doesn't seem to | |
3684 dnl matter in these checks) and stick in -lber if so. Can't hurt (even to | |
3685 dnl stick it in always shouldn't hurt, I don't think) ... #### Someone who | |
3686 dnl #### understands LDAP needs to fix this properly. | |
3687 test "$with_ldap_lber" != "yes" && { AC_CHECK_LIB(lber, ber_pvt_opt_on, with_ldap_lber=yes) } | |
3688 fi | |
3689 if test "$with_ldap" = "yes"; then | |
3690 AC_DEFINE(HAVE_LDAP) | |
3691 if test "$with_ldap_des" = "yes" ; then | |
3692 XE_PREPEND(-ldes, ldap_libs) | |
3693 fi | |
3694 if test "$with_ldap_krb" = "yes" ; then | |
3695 XE_PREPEND(-lkrb, ldap_libs) | |
3696 fi | |
3697 if test "$with_ldap_lber" = "yes" ; then | |
3698 XE_PREPEND(-llber, ldap_libs) | |
3699 fi | |
3700 XE_PREPEND(-lldap, ldap_libs) | |
3701 save_LIBS="$LIBS" LIBS="$LIBS $ldap_libs" | |
3702 AC_CHECK_FUNCS(ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result) | |
3703 LIBS="$save_LIBS" | |
3704 XE_APPEND(modules/ldap, MAKE_SUBDIR) | |
3705 need_modules_common=yes | |
3706 if test "$with_modules" = "yes"; then | |
3707 XE_APPEND(modules/ldap, INSTALL_ARCH_DEP_SUBDIR) | |
3708 fi | |
3709 fi | |
3710 AC_SUBST(ldap_libs) | |
3711 | |
3712 dnl Autodetect PostgreSQL | |
3713 dnl On many Linux systems, PostgreSQL is packaged to be installed in /usr; | |
3714 dnl in this case, configure will easily detect it there. | |
3715 dnl | |
3716 dnl If PostgreSQL is installed into a different prefix, | |
3717 dnl (such as the default /usr/local/pgsql when building from source), | |
3718 dnl that prefix must be specified using the --site-prefixes flag. | |
3719 postgresql_libs= | |
3720 if test "$with_postgresql" != "no"; then | |
3721 AC_CHECKING(for PostgreSQL) | |
3722 | |
3723 dnl Look for these standard header file locations, known to be used on Linux | |
3724 for header_dir in "" "pgsql/" "postgresql/"; do | |
3725 AC_CHECK_HEADER(${header_dir}libpq-fe.h, | |
3726 libpq_fe_h_file=${header_dir}libpq-fe.h; break) | |
3727 done | |
3728 | |
3729 test -n "$libpq_fe_h_file" && { AC_CHECK_LIB(pq,PQconnectdb,have_libpq=yes) } | |
3730 | |
3731 if test -n "$libpq_fe_h_file" -a "$have_libpq" = "yes"; then | |
3732 with_postgresql=yes | |
3733 AC_DEFINE(HAVE_POSTGRESQL) | |
3734 AC_CHECK_LIB(pq,PQconnectStart, [ | |
3735 with_postgresqlv7=yes; | |
3736 AC_DEFINE(HAVE_POSTGRESQLV7)]) | |
3737 AC_DEFINE_UNQUOTED(LIBPQ_FE_H_FILE, "$libpq_fe_h_file") | |
3738 XE_PREPEND(-lpq, postgresql_libs) | |
3739 XE_APPEND(modules/postgresql, MAKE_SUBDIR) | |
3740 need_modules_common=yes | |
3741 if test "$with_modules" = "yes"; then | |
3742 XE_APPEND(modules/postgresql, INSTALL_ARCH_DEP_SUBDIR) | |
3743 fi | |
3744 elif test "$with_postgresql" = "yes"; then | |
3745 XE_DIE("Required PostgreSQL support cannot be provided. Check --site-prefixes.") | |
3746 fi | |
3747 fi | |
3748 AC_SUBST(postgresql_libs) | |
3749 | |
3750 dnl ---------------------- | |
3751 dnl Graphics libraries | |
3752 dnl ---------------------- | |
3753 | |
3754 if test "$window_system" != "none"; then | |
3755 AC_CHECKING(for graphics libraries) | |
3756 | |
3757 dnl add special code to handle xpm-nox on Cygwin (csw) | |
3758 dnl -- should only happen if CYGWIN && WITH_XPM && WITH_MSW && !WITH_X | |
3759 libpath_xpm= | |
3760 incpath_xpm= | |
3761 case "$opsys" in | |
3762 cygwin*) | |
3763 cygwin_top=`eval "gcc -print-file-name=libc.a"` ; | |
3764 cygwin_top=`eval "dirname ${cygwin_top}"`; | |
3765 cygwin_top="${cygwin_top}/.."; | |
3766 case "$window_system" in | |
3767 dnl use "standard" search pattern | |
3768 x11) ;; | |
3769 dnl hardcode "standard" non-X11 xpm lib/inc dirs | |
3770 msw) libpath_xpm="-L${cygwin_top}/lib/noX" | |
3771 incpath_xpm="-I${cygwin_top}/include/noX" | |
3772 ;; | |
3773 dnl not supported on cygwin (yet?) | |
3774 gtk) ;; | |
3775 dnl probably not reached... | |
3776 none) ;; | |
3777 dnl ditto | |
3778 *) ;; | |
3779 esac | |
3780 ;; | |
3781 dnl use "standard" search pattern for all other OS's | |
3782 *) ;; | |
3783 esac | |
3784 dnl Autodetect Xpm | |
3785 xpm_problem="" | |
3786 if test -z "$with_xpm"; then | |
3787 XE_PREPEND("$incpath_xpm", CFLAGS) | |
3788 XE_PREPEND("$libpath_xpm", LDFLAGS) | |
3789 AC_MSG_CHECKING(for Xpm - no older than 3.4f) | |
3790 xe_check_libs=-lXpm | |
3791 AC_TRY_RUN([#define XPM_NUMBERS | |
3792 #include <X11/xpm.h> | |
3793 int main(int c, char **v) { | |
3794 return c == 1 ? 0 : | |
3795 XpmIncludeVersion != XpmLibraryVersion() ? 1 : | |
3796 XpmIncludeVersion < 30406 ? 2 : 0 ;}], | |
3797 [./conftest dummy_arg; xpm_status=$?; | |
3798 if test "$xpm_status" = "0"; then | |
3799 with_xpm=yes; | |
3800 else | |
3801 with_xpm=no; | |
3802 if test "$xpm_status" = "1"; then | |
3803 xpm_problem="Xpm library version and header file version don't match!" | |
3804 elif test "$xpm_status" = "2"; then | |
3805 xpm_problem="Xpm library version is too old!" | |
3806 else | |
3807 xpm_problem="Internal xpm detection logic error!" | |
3808 fi | |
3809 echo " | |
3810 *** WARNING *** $xpm_problem | |
3811 I'm not touching that with a 10-foot pole! | |
3812 If you really want to use the installed version of Xpm, rerun | |
3813 configure and add '--with-xpm=yes', but don't blame me if XEmacs crashes!" | |
3814 fi], | |
3815 [with_xpm=no]) | |
3816 xe_check_libs= | |
3817 AC_MSG_RESULT($with_xpm) | |
3818 fi | |
3819 if test "$with_xpm" = "yes"; then | |
3820 dnl #### This code assumes that if AC_CHECK_LIB fails, | |
3821 dnl #### then it will succeed if FOR_MSW is defined, | |
3822 dnl #### but doesn't actually verify this assumption. | |
3823 AC_DEFINE(HAVE_XPM) | |
3824 XE_PREPEND("$libpath_xpm", LDFLAGS) | |
3825 XE_PREPEND(-lXpm, libs_x) | |
3826 XE_PREPEND("$incpath_xpm", CFLAGS) | |
3827 AC_MSG_CHECKING(for \"FOR_MSW\" xpm) | |
3828 xe_check_libs=-lXpm | |
3829 AC_TRY_LINK(, [XpmCreatePixmapFromData()], | |
3830 [xpm_for_msw=no], | |
3831 [xpm_for_msw=yes]) | |
3832 xe_check_libs= | |
3833 AC_MSG_RESULT($xpm_for_msw) | |
3834 if test "$xpm_for_msw" = "yes"; then | |
3835 AC_DEFINE(FOR_MSW) | |
3836 fi | |
3837 fi | |
3838 | |
3839 dnl Autodetect XFACE | |
3840 test -z "$with_xface" && { AC_CHECK_HEADER(compface.h, ,with_xface=no) } | |
3841 test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) } | |
3842 test -z "$with_xface" && with_xface=yes | |
3843 if test "$with_xface" = "yes"; then | |
3844 AC_DEFINE(HAVE_XFACE) | |
3845 XE_PREPEND(-lcompface, libs_x) | |
3846 fi | |
3847 | |
3848 dnl For a brief period we had the GIF code split out into a separate library, | |
3849 dnl but patent problems, etc. sort of squashed that idea. | |
3850 dnl We default to building with builtin GIF decoding | |
3851 if test "$with_gif" != "no"; then | |
3852 with_gif="yes" | |
3853 AC_DEFINE(HAVE_GIF) | |
3854 fi | |
3855 | |
3856 dnl Too many stupid linkers can't detect cascaded lib dependencies until runtime | |
3857 dnl So we always search for libz compression support. | |
3858 if test "$with_png $with_tiff" != "no no"; then | |
3859 AC_CHECK_LIB(c, inflate, [:], [ | |
3860 AC_CHECK_LIB(z, inflate, [XE_PREPEND(-lz, libs_x)],[ | |
3861 AC_CHECK_LIB(gz, inflate, [XE_PREPEND(-lgz, libs_x)])])]) | |
3862 fi | |
3863 | |
3864 dnl autodetect JPEG | |
3865 test -z "$with_jpeg" && { AC_CHECK_HEADER(jpeglib.h, ,with_jpeg=no) } | |
3866 test -z "$with_jpeg" && { AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,[:],with_jpeg=no) } | |
3867 test -z "$with_jpeg" && with_jpeg=yes | |
3868 if test "$with_jpeg" = "yes"; then | |
3869 AC_DEFINE(HAVE_JPEG) | |
3870 XE_PREPEND(-ljpeg, libs_x) | |
3871 fi | |
3872 | |
3873 dnl autodetect PNG | |
3874 png_problem="" | |
3875 test -z "$with_png" && { AC_CHECK_FUNC(pow, ,with_png=no) } | |
3876 test -z "$with_png" && { AC_CHECK_HEADER(png.h, ,with_png=no) } | |
3877 test -z "$with_png" && { AC_CHECK_LIB(png, png_read_image,[:],with_png=no) } | |
3878 if test -z "$with_png"; then | |
3879 AC_MSG_CHECKING(for workable png version information) | |
3880 xe_check_libs="-lpng -lz" | |
3881 AC_TRY_RUN([#include <png.h> | |
3882 int main(int c, char **v) { | |
3883 if (c == 1) return 0; | |
3884 if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1; | |
3885 return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}], | |
3886 [./conftest dummy_arg; png_status=$?; | |
3887 if test "$png_status" = "0"; then | |
3888 with_png=yes; | |
3889 else | |
3890 with_png=no; | |
3891 if test "$png_status" = "1"; then | |
3892 png_problem="PNG library version and header file don't match!" | |
3893 elif test "$png_status" = "2"; then | |
3894 png_problem="PNG library version too old (pre 1.0.2)!" | |
3895 fi | |
3896 echo " | |
3897 *** WARNING *** $png_problem | |
3898 I'm not touching that with a 10-foot pole! | |
3899 If you really want to use the installed version of libPNG, rerun | |
3900 configure and add '--with-png=yes', but don't blame me if XEmacs crashes!" | |
3901 fi], | |
3902 [with_png=no]) | |
3903 xe_check_libs= | |
3904 AC_MSG_RESULT($with_png) | |
3905 fi | |
3906 if test "$with_png" = "yes"; then | |
3907 AC_DEFINE(HAVE_PNG) | |
3908 XE_PREPEND(-lpng, libs_x) | |
3909 fi | |
3910 | |
3911 dnl autodetect TIFF | |
3912 test -z "$with_tiff" && { AC_CHECK_HEADER(tiffio.h, ,with_tiff=no) } | |
3913 test -z "$with_tiff" && { AC_CHECK_LIB(tiff, TIFFClientOpen,[:],with_tiff=no) } | |
3914 test -z "$with_tiff" && with_tiff=yes | |
3915 if test "$with_tiff" = "yes"; then | |
3916 AC_DEFINE(HAVE_TIFF) | |
3917 XE_PREPEND(-ltiff, libs_x) | |
3918 fi | |
3919 fi | |
3920 | |
3921 dnl ---------------------- | |
3922 dnl GTK-Specific Graphics libraries | |
3923 dnl ---------------------- | |
3924 | |
3925 if test "$with_gtk" = "yes"; then | |
3926 dnl Autodetect XFACE | |
3927 test -z "$with_xface" && { AC_CHECK_HEADER(compface.h, ,with_xface=no) } | |
3928 test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) } | |
3929 test -z "$with_xface" && with_xface=yes | |
3930 if test "$with_xface" = "yes"; then | |
3931 AC_DEFINE(HAVE_XFACE) | |
3932 XE_PREPEND(-lcompface, libs_gtk) | |
3933 fi | |
3934 fi | |
3935 | |
3936 | |
3937 dnl ---------------------- | |
3938 dnl X-Specific Graphics libraries | |
3939 dnl ---------------------- | |
3940 | |
3941 if test "$with_x11" = "yes"; then | |
3942 AC_CHECKING(for X11 graphics libraries) | |
3943 fi | |
3944 | |
3945 dnl We don't automatically trigger widgets if athena is present | |
3946 dnl because of stability concerns. | |
3947 dnl But if the user wants widgets, still offer him autodetections | |
3948 case "$with_widgets" in | |
3949 "yes" | "athena") detect_athena=yes ;; | |
3950 *) detect_athena=no ;; | |
3951 esac | |
3952 | |
3953 if test "$with_x11" = "yes" -a "$detect_athena" = "yes" ; then | |
3954 AC_CHECKING(for the Athena widgets) | |
3955 | |
3956 dnl What in heck did the user actually want? | |
3957 case "$with_athena" in | |
3958 dnl This is the default, old fashioned flat Athena. | |
3959 "xaw" | "") athena_variant=Xaw athena_3d=no ;; | |
3960 "3d") athena_variant=Xaw3d athena_3d=yes ;; | |
3961 "next") athena_variant=neXtaw athena_3d=yes ;; | |
3962 "95") athena_variant=Xaw95 athena_3d=yes ;; | |
3963 "xpm") athena_variant=XawXpm athena_3d=yes ;; | |
3964 *) XE_DIE("Unknown Athena widget set \`$with_athena'. This should not happen.") ;; | |
3965 esac | |
3966 | |
3967 dnl Search for the Athena library... | |
3968 if test "$athena_3d" = "no"; then | |
3969 AC_CHECK_LIB($athena_variant, XawScrollbarSetThumb, | |
3970 [ | |
3971 dnl Must not be a 3d library... | |
3972 AC_CHECK_LIB($athena_variant, threeDClassRec, | |
3973 AC_MSG_WARN([Could not find a non-3d Athena widget library.]), | |
3974 athena_lib=$athena_variant) | |
3975 ], | |
3976 AC_MSG_WARN([Could not find an Athena widget library.])) | |
3977 else | |
3978 dnl The real configuration, need 3d library | |
3979 AC_CHECK_LIB($athena_variant, threeDClassRec, athena_lib=$athena_variant, | |
3980 dnl OK, couldn't find it with a proper name, try the standard Athena lib | |
3981 dnl If that is 3d, presume the user asked for what they have installed. | |
3982 AC_CHECK_LIB(Xaw, threeDClassRec, | |
3983 [ | |
3984 athena_lib=Xaw; | |
3985 AC_MSG_WARN([Assuming that libXaw is actually $athena_variant.]); | |
3986 ], | |
3987 AC_MSG_WARN([Could not find a 3d Athena widget library that looked like $athena_variant.]))) | |
3988 fi | |
3989 | |
3990 dnl Now we locate the Athena headers that we need. | |
3991 if test "$athena_3d" = "no"; then | |
3992 AC_CHECK_HEADER(X11/Xaw/ThreeD.h, | |
3993 AC_MSG_WARN([Could not find a non-3d Athena header set.]), | |
3994 AC_CHECK_HEADER(X11/Xaw/XawInit.h, | |
3995 athena_h_path=X11/Xaw, | |
3996 AC_MSG_WARN([Could not find a non-3d Athena header set.]))) | |
3997 else | |
3998 dnl The three-d Athena headers are so much more slippery. | |
3999 dnl Curse this `Lets replace standard libraries' thing that they did. :/ | |
4000 AC_CHECK_HEADER(X11/$athena_variant/XawInit.h, | |
4001 AC_CHECK_HEADER(X11/$athena_variant/ThreeD.h, | |
4002 athena_h_path=X11/$athena_variant,)) | |
4003 | |
4004 dnl Is the variant specific header directory directly under include? | |
4005 if test -z "$athena_h_path"; then | |
4006 AC_CHECK_HEADER($athena_variant/XawInit.h, | |
4007 AC_CHECK_HEADER($athena_variant/ThreeD.h, | |
4008 athena_h_path=$athena_variant,)) | |
4009 fi | |
4010 | |
4011 dnl If we couldn't find the specific variant, try the generic Athena 3d headers | |
4012 if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then | |
4013 AC_CHECK_HEADER(X11/Xaw3d/XawInit.h, | |
4014 AC_CHECK_HEADER(X11/Xaw3d/ThreeD.h, | |
4015 [ | |
4016 AC_MSG_WARN([Assuming that X11/Xaw3d headers are suitable for $athena_variant.]) | |
4017 athena_h_path=X11/Xaw3d | |
4018 ],)) | |
4019 fi | |
4020 | |
4021 dnl Also generic 3d headers directly under include dir | |
4022 if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then | |
4023 AC_CHECK_HEADER(Xaw3d/XawInit.h, | |
4024 AC_CHECK_HEADER(Xaw3d/ThreeD.h, | |
4025 [ | |
4026 AC_MSG_WARN([Assuming that Xaw3d headers are suitable for $athena_variant.]) | |
4027 athena_h_path=Xaw3d | |
4028 ],)) | |
4029 fi | |
4030 | |
4031 dnl If nothing yet found, see if Xaw is a 3d header set... | |
4032 dnl We AC_MSG_WARN if we fail because I am all out of ideas... | |
4033 if test -z "$athena_h_path"; then | |
4034 AC_CHECK_HEADER(X11/Xaw/ThreeD.h, | |
4035 [ | |
4036 AC_MSG_WARN([Assuming that X11/Xaw headers are suitable for $athena_variant.]) | |
4037 athena_h_path=X11/Xaw | |
4038 ], | |
4039 AC_MSG_WARN([Could not find a suitable 3d Athena header set.])) | |
4040 fi | |
4041 fi | |
4042 | |
4043 dnl Do we actually have a usable Athena widget set? Please? | |
4044 if test -n "$athena_lib" -a -n "$athena_h_path"; then | |
4045 have_xaw=yes | |
4046 else | |
4047 have_xaw=no | |
4048 fi | |
4049 | |
4050 else | |
4051 have_xaw=no | |
4052 fi dnl "$with_x11" = "yes" -a "detect_athena" = "yes" | |
4053 | |
4054 if test "$with_x11" = "yes"; then | |
4055 dnl autodetect Motif - but only add to libs_x later (if necessary) | |
4056 AC_CHECK_HEADER(Xm/Xm.h, | |
4057 [AC_CHECK_LIB(Xm, XmStringFree, have_motif=yes, have_motif=no)], | |
4058 have_motif=no) | |
4059 | |
4060 if test "$have_motif" = "yes"; then | |
4061 dnl autodetect lesstif | |
4062 AC_MSG_CHECKING(for Lesstif) | |
4063 AC_EGREP_CPP(yes, | |
4064 [#include <Xm/Xm.h> | |
4065 #ifdef LESSTIF_VERSION | |
4066 yes | |
4067 #endif | |
4068 ], have_lesstif=yes, have_lesstif=no) | |
4069 AC_MSG_RESULT($have_lesstif) | |
4070 fi | |
4071 | |
4072 fi dnl "$with_x11" = "yes" | |
4073 | |
4074 dnl Finish ensuring that we have values for the various toolkit items. | |
4075 dnl Not all toolkits support all widgets | |
4076 dnl if Motif is available we use it for the dialog boxes. | |
4077 | |
4078 case "$with_menubars" in "" | "yes" | "athena" ) | |
4079 with_menubars="lucid" ;; | |
4080 esac | |
4081 case "$with_dialogs" in "" | "yes" | "lucid" ) | |
4082 if test "$have_motif" = "yes"; then with_dialogs="motif" | |
4083 elif test "$have_xaw" = "yes"; then with_dialogs="athena" | |
4084 elif test "$with_msw" = "yes"; then with_dialogs="msw" | |
4085 else with_dialogs=no | |
4086 fi ;; | |
4087 esac | |
4088 case "$with_scrollbars" in "" | "yes" ) | |
4089 with_scrollbars="lucid" ;; | |
4090 esac | |
4091 case "$with_widgets" in "" | "yes" | "lucid") | |
4092 if test "$have_motif" = "yes"; then with_widgets="motif" | |
4093 elif test "$have_xaw" = "yes"; then with_widgets="athena" | |
4094 elif test "$with_msw" = "yes"; then with_widgets="msw" | |
4095 else with_widgets=no | |
4096 fi ;; | |
4097 esac | |
4098 | |
4099 all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars $with_widgets" | |
4100 | |
4101 case "$all_widgets" in | |
4102 *athena* ) | |
4103 if test "$have_xaw" != "yes"; then | |
4104 XE_DIE("Could not find a suitable Athena library to build with.") | |
4105 fi | |
4106 | |
4107 dnl Add the Lucid widget Athena code | |
4108 XE_APPEND(lwlib-Xaw.o, lwlib_objs) | |
4109 | |
4110 dnl Add the Athena widget library we located earlier | |
4111 XE_PREPEND(-l$athena_lib, libs_x) | |
4112 | |
4113 dnl Tell lwlib where to find the Athena header files. | |
4114 dnl Many people have tried to create a `smart' way of doing this, | |
4115 dnl but all have failed. Before changing the following ugly definitions, | |
4116 dnl consult the veterans of many a battle. | |
4117 AC_DEFINE_UNQUOTED(ATHENA_Scrollbar_h_,"$athena_h_path/Scrollbar.h") | |
4118 AC_DEFINE_UNQUOTED(ATHENA_Dialog_h_,"$athena_h_path/Dialog.h") | |
4119 AC_DEFINE_UNQUOTED(ATHENA_Form_h_,"$athena_h_path/Form.h") | |
4120 AC_DEFINE_UNQUOTED(ATHENA_Command_h_,"$athena_h_path/Command.h") | |
4121 AC_DEFINE_UNQUOTED(ATHENA_Label_h_,"$athena_h_path/Label.h") | |
4122 AC_DEFINE_UNQUOTED(ATHENA_LabelP_h_,"$athena_h_path/LabelP.h") | |
4123 AC_DEFINE_UNQUOTED(ATHENA_Toggle_h_,"$athena_h_path/Toggle.h") | |
4124 AC_DEFINE_UNQUOTED(ATHENA_ToggleP_h_,"$athena_h_path/ToggleP.h") | |
4125 AC_DEFINE_UNQUOTED(ATHENA_AsciiText_h_,"$athena_h_path/AsciiText.h") | |
4126 AC_DEFINE_UNQUOTED(ATHENA_XawInit_h_,"$athena_h_path/XawInit.h") | |
4127 | |
4128 AC_DEFINE(LWLIB_USES_ATHENA) | |
4129 AC_DEFINE(NEED_ATHENA) | |
4130 need_athena="yes" | |
4131 | |
4132 if test "$athena_3d" = "yes"; then | |
4133 AC_DEFINE(HAVE_ATHENA_3D) | |
4134 fi | |
4135 ;; | |
4136 esac | |
4137 | |
4138 case "$all_widgets" in *motif* ) | |
4139 AC_DEFINE(LWLIB_USES_MOTIF) | |
4140 AC_DEFINE(NEED_MOTIF) | |
4141 XE_APPEND(lwlib-Xm.o, lwlib_objs) | |
4142 need_motif=yes ;; | |
4143 esac | |
4144 | |
4145 test "$with_menubars" = "lucid" && XE_APPEND(xlwmenu.o, lwlib_objs) | |
4146 test "$with_menubars" = "motif" && XE_APPEND(xlwmenu.o, lwlib_objs) | |
4147 test "$with_scrollbars" = "lucid" && XE_APPEND(xlwscrollbar.o, lwlib_objs) | |
4148 test "$with_widgets" != "no" && test "$with_widgets" != "msw" && \ | |
4149 XE_APPEND(xlwtabs.o xlwgcs.o, lwlib_objs) | |
4150 case "$with_widgets" in athena* ) | |
4151 XE_APPEND(xlwradio.o xlwcheckbox.o xlwgauge.o, lwlib_objs);; | |
4152 esac | |
4153 case "$all_widgets" in *lucid* ) | |
4154 AC_DEFINE(NEED_LUCID) | |
4155 XE_APPEND(lwlib-Xlw.o, lwlib_objs) ;; | |
4156 esac | |
4157 | |
4158 AC_SUBST(lwlib_objs) | |
4159 | |
4160 test "$with_scrollbars" = "athena" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA) | |
4161 test "$with_dialogs" = "athena" && AC_DEFINE(LWLIB_DIALOGS_ATHENA) | |
4162 | |
4163 if test "$athena_3d" = "yes"; then | |
4164 test "$with_scrollbars" = "athena" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA3D) | |
4165 test "$with_dialogs" = "athena" && AC_DEFINE(LWLIB_DIALOGS_ATHENA3D) | |
4166 fi | |
4167 | |
4168 case "$with_widgets" in athena* ) AC_DEFINE(LWLIB_WIDGETS_ATHENA);; esac | |
4169 test "$with_widgets" != "no" && test "$with_widgets" != "msw" && \ | |
4170 AC_DEFINE(LWLIB_TABS_LUCID) | |
4171 | |
4172 test "$with_menubars" != "no" && AC_DEFINE(HAVE_MENUBARS) | |
4173 test "$with_scrollbars" != "no" && AC_DEFINE(HAVE_SCROLLBARS) | |
4174 test "$with_dialogs" != "no" && AC_DEFINE(HAVE_DIALOGS) | |
4175 test "$with_toolbars" != "no" && AC_DEFINE(HAVE_TOOLBARS) | |
4176 test "$with_widgets" != "no" && AC_DEFINE(HAVE_WIDGETS) | |
4177 | |
4178 test "$with_menubars" = "lucid" && AC_DEFINE(LWLIB_MENUBARS_LUCID) | |
4179 test "$with_scrollbars" = "lucid" && AC_DEFINE(LWLIB_SCROLLBARS_LUCID) | |
4180 | |
4181 test "$with_menubars" = "motif" && AC_DEFINE(LWLIB_MENUBARS_MOTIF) | |
4182 test "$with_scrollbars" = "motif" && AC_DEFINE(LWLIB_SCROLLBARS_MOTIF) | |
4183 test "$with_dialogs" = "motif" && AC_DEFINE(LWLIB_DIALOGS_MOTIF) | |
4184 test "$with_widgets" = "motif" && AC_DEFINE(LWLIB_WIDGETS_MOTIF) | |
4185 | |
4186 dnl ---------------------- | |
4187 dnl Mule-dependent options | |
4188 dnl ---------------------- | |
4189 | |
4190 test -z "$with_mule" && with_mule=no | |
4191 | |
4192 dnl if test "$with_mule" = "yes" && test ! -d "$srcdir/lisp/mule"; then | |
4193 dnl echo "Attempt to Build with Mule without Mule/Lisp" | |
4194 dnl echo "Please install the XEmacs/Mule tarball or" | |
4195 dnl echo "rerun configure with --with-mule=no" | |
4196 dnl exit 1 | |
4197 dnl fi | |
4198 | |
4199 if test "$with_default_eol_detection" = "yes"; then | |
4200 AC_DEFINE(HAVE_DEFAULT_EOL_DETECTION) | |
4201 fi | |
4202 | |
4203 if test "$with_mule" = "yes" ; then | |
4204 AC_CHECKING(for Mule-related features) | |
4205 AC_DEFINE(MULE) | |
4206 | |
4207 dnl Use -lintl to get internationalized strerror for Mule | |
4208 AC_CHECK_HEADERS(libintl.h) | |
4209 AC_CHECK_LIB(intl, strerror) | |
4210 | |
4211 AC_CHECKING(for Mule input methods) | |
4212 dnl Do we have the XmIm* routines? And if so, do we want to use them? | |
4213 dnl XIM seems to be flaky except on Solaris... | |
4214 dnl test -z "$with_xim" -a "$opsys" != "sol2" && with_xim=no | |
4215 case "$with_xim" in "" | "yes" ) | |
4216 AC_CHECKING(for XIM) | |
4217 AC_CHECK_LIB(X11, XOpenIM, with_xim=xlib, with_xim=no) | |
4218 dnl XIM + Lesstif is not (yet?) usable | |
4219 if test "$have_motif $have_lesstif" = "yes no"; then | |
4220 AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif) | |
4221 fi ;; | |
4222 esac | |
4223 if test "$with_xim" != "no"; then | |
4224 AC_DEFINE(HAVE_XIM) | |
4225 if test "$with_xim" = "xlib"; then | |
4226 AC_DEFINE(XIM_XLIB) | |
4227 XE_ADD_OBJS(input-method-xlib.o) | |
4228 fi | |
4229 if test "$with_xim" = "motif"; then | |
4230 AC_DEFINE(XIM_MOTIF) | |
4231 need_motif=yes | |
4232 XE_ADD_OBJS(input-method-motif.o) | |
4233 fi | |
4234 if test "$with_xim" = "motif"; then | |
4235 with_xfs=no | |
4236 fi | |
4237 fi | |
4238 | |
4239 dnl "with_xfs" = "yes" | |
4240 if test "$with_xfs" = "yes" ; then | |
4241 AC_CHECKING(for XFontSet) | |
4242 AC_CHECK_LIB(X11, XmbDrawString, [:], with_xfs=no) | |
4243 if test "$with_xfs" = "yes" && test "$with_menubars" = "lucid"; then | |
4244 AC_DEFINE(USE_XFONTSET) | |
4245 if test "$with_xim" = "no" ; then | |
4246 XE_ADD_OBJS(input-method-xlib.o) | |
4247 fi | |
4248 fi | |
4249 fi dnl with_xfs | |
4250 | |
4251 dnl Autodetect WNN | |
4252 test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support | |
4253 test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/jllib.h, ,with_wnn=no) } | |
4254 dnl gcc 2.97 fixincludes breaks inclusion of wnn/commonhd.h | |
4255 test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/commonhd.h, ,with_wnn=no) } | |
4256 dnl Detour to find crypt | |
4257 if test "$with_wnn" != "no"; then | |
4258 AC_CHECK_FUNCS(crypt) | |
4259 test "$ac_cv_func_crypt" != "yes" && { AC_CHECK_LIB(crypt, crypt) } | |
4260 fi | |
4261 dnl Back to our regularly scheduled wnn hunting | |
4262 if test -z "$with_wnn" -o "$with_wnn" = "yes"; then | |
4263 AC_CHECK_LIB(wnn,jl_dic_list_e,libwnn=wnn, | |
4264 AC_CHECK_LIB(wnn4,jl_dic_list_e,libwnn=wnn4, | |
4265 AC_CHECK_LIB(wnn6,jl_dic_list_e,libwnn=wnn6, | |
4266 AC_CHECK_LIB(wnn6_fromsrc,dic_list_e,libwnn=wnn6_fromsrc,with_wnn=no)))) | |
4267 fi | |
4268 test -z "$with_wnn" && with_wnn=yes | |
4269 if test "$with_wnn" = "yes"; then | |
4270 AC_DEFINE(HAVE_WNN) | |
4271 XE_PREPEND(-l$libwnn, libs_x) | |
4272 if test "$with_wnn6" != "no"; then | |
4273 AC_CHECK_LIB($libwnn, jl_fi_dic_list, with_wnn6=yes) | |
4274 test "$with_wnn6" = "yes" && AC_DEFINE(WNN6) | |
4275 fi | |
4276 fi | |
4277 | |
4278 dnl Autodetect canna | |
4279 canna_includes_found=no | |
4280 if test "$with_canna" != "no"; then | |
4281 AC_CHECK_HEADER(canna/jrkanji.h,canna_includes_found=yes) | |
4282 fi | |
4283 if test "$canna_includes_found" = "no" -a "$with_canna" != "no" -a \ | |
4284 -d "/usr/local/canna/include"; then | |
4285 save_c_switch_site="$c_switch_site" | |
4286 c_switch_site="$c_switch_site -I/usr/local/canna/include" | |
4287 AC_CHECK_HEADER(canna/jrkanji.h,canna_includes_found=yes) | |
4288 if test "$canna_includes_found" != "yes"; then | |
4289 c_switch_site="$save_c_switch_site" | |
4290 with_canna="no" | |
4291 fi | |
4292 fi | |
4293 | |
4294 test -z "$with_canna" && { AC_CHECK_HEADER(canna/RK.h, , with_canna=no) } | |
4295 test -z "$with_canna" && { AC_CHECK_LIB(RKC, RkBgnBun, [:],with_canna=no) } | |
4296 test -z "$with_canna" && { AC_CHECK_LIB(canna,jrKanjiControl,[:],with_canna=no) } | |
4297 test -z "$with_canna" && with_canna=yes | |
4298 if test "$with_canna" = "yes"; then | |
4299 AC_DEFINE(HAVE_CANNA) | |
4300 XE_PREPEND(-lcanna -lRKC, libs_x) | |
4301 fi | |
4302 | |
4303 else dnl "$with_mule" = "no" | |
4304 for feature in xim canna wnn; do | |
4305 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then | |
4306 AC_MSG_WARN([--with-${feature} ignored: Not valid without Mule support]) | |
4307 fi | |
4308 eval "with_${feature}=no" | |
4309 done | |
4310 fi dnl with_mule | |
4311 | |
4312 | |
4313 dnl At this point, we know whether we need the motif lib or not. | |
4314 if test "$need_motif" = "yes" ; then | |
4315 XE_PREPEND(-lXm, libs_x) | |
4316 dnl AIX needs the following library for use with Motif | |
4317 AC_CHECK_LIB(i18n, layout_object_getvalue, [XE_PREPEND(-li18n, libs_x)]) | |
4318 XE_COMPUTE_RUNPATH() | |
4319 fi | |
4320 | |
4321 dnl ---------------------------------------------------------------- | |
4322 dnl Check for POSIX functions | |
4323 dnl ---------------------------------------------------------------- | |
4324 | |
4325 AC_CHECK_FUNCS(cbrt closedir dup2 eaccess fmod fpathconf frexp fsync ftime ftruncate getaddrinfo gethostname getnameinfo getpagesize getrlimit gettimeofday getcwd link logb lrand48 matherr mkdir mktime perror poll random readlink rename res_init rint rmdir select setitimer setpgid setsid sigblock sighold sigprocmask snprintf strerror strlwr strupr symlink tzset ulimit umask usleep vlimit vsnprintf waitpid wcscmp wcslen) | |
4326 | |
4327 dnl getaddrinfo() is borked under hpux11 | |
4328 if test "$ac_cv_func_getaddrinfo" != "no" ; then | |
4329 case "$opsys" in | |
4330 hpux11 ) | |
4331 AC_MSG_WARN([Use of getaddrinfo is disabled for HP-UX 11.XX.]) | |
4332 ac_cv_func_getaddrinfo=no | |
4333 ;; | |
4334 esac | |
4335 fi | |
4336 | |
4337 dnl ---------------------------------------------------------------- | |
4338 dnl Check for Unixoid pty/process support. | |
4339 dnl ---------------------------------------------------------------- | |
4340 | |
4341 dnl There is no "standard" pty allocation method. Every system is different. | |
4342 dnl getpt() is the preferred pty allocation method on glibc systems. | |
4343 dnl _getpty() is the preferred pty allocation method on SGI systems. | |
4344 dnl grantpt(), unlockpt(), ptsname() are defined by Unix98. | |
4345 AC_CHECK_FUNCS(getpt _getpty grantpt unlockpt ptsname killpg tcgetpgrp) | |
4346 | |
4347 dnl openpty() is the preferred pty allocation method on BSD and Tru64 systems. | |
4348 dnl openpty() might be declared in: | |
4349 dnl - pty.h (Tru64 or Linux) | |
4350 dnl - libutil.h (FreeBSD) | |
4351 dnl - util.h (NetBSD) | |
4352 AC_CHECK_FUNC(openpty, have_openpty=yes, [ | |
4353 AC_CHECK_LIB(util, openpty, have_openpty=yes need_libutil=yes)]) | |
4354 if test "$have_openpty" = "yes"; then | |
4355 AC_DEFINE(HAVE_OPENPTY) | |
4356 AC_CHECK_HEADERS(libutil.h util.h, break) | |
4357 test "$need_libutil" = "yes" && XE_APPEND(-lutil, libs_system) | |
4358 fi | |
4359 | |
4360 dnl Check for system-specific pty header files | |
4361 dnl Often the TIOCSIG* symbols are hiding there. | |
4362 case "$opsys" in | |
4363 dnl HPUX pty.h #defines TRUE and FALSE, so just use ptyio.h there. | |
4364 hpux*) AC_CHECK_HEADERS(sys/ptyio.h) ;; | |
4365 *) AC_CHECK_HEADERS(pty.h) | |
4366 test "$ac_cv_header_pty_h" = "no" && AC_CHECK_HEADERS(sys/pty.h) | |
4367 ;; | |
4368 esac | |
4369 | |
4370 dnl Check for STREAM support functions. | |
4371 dnl Confusingly, "str" means both "string" and "SysV Streams". | |
4372 AC_CHECK_HEADERS(stropts.h) | |
4373 if test "$ac_cv_header_stropts_h" = "yes"; then | |
4374 AC_CHECK_FUNCS(isastream) | |
4375 AC_CHECK_HEADERS(strtio.h) dnl TIOCSIGNAL | |
4376 fi | |
4377 | |
4378 dnl Check whether the system provides getloadavg(). | |
4379 AC_CHECK_FUNCS(getloadavg) | |
4380 | |
4381 if test "$ac_cv_func_getloadavg" = "yes"; then | |
4382 dnl Solaris 8 declares getloadavg() in <sys/loadavg.h>. | |
4383 dnl glibc 2.2 declares getloadavg() in <stdlib.h>... | |
4384 dnl ...if we #define _GNU_SOURCE, which we do. | |
4385 AC_CHECK_HEADERS(sys/loadavg.h) | |
4386 else | |
4387 dnl We define our own getloadavg() using lower level functions. | |
4388 XE_ADD_OBJS(getloadavg.o) | |
4389 | |
4390 dnl Used by getloadavg() - does not require root priveleges | |
4391 AC_CHECK_LIB(kstat, kstat_open) | |
4392 AC_CHECK_HEADERS(kstat.h) | |
4393 | |
4394 dnl Another way to get the load average | |
4395 AC_CHECK_LIB(kvm, kvm_read) | |
4396 fi | |
4397 | |
4398 dnl If netdb.h does not declare h_errno, we must declare it by hand. | |
4399 AC_MSG_CHECKING(whether netdb declares h_errno) | |
4400 AC_TRY_LINK([#include <netdb.h>], | |
4401 [return h_errno;], | |
4402 [AC_MSG_RESULT(yes) | |
4403 AC_DEFINE(HAVE_H_ERRNO)], | |
4404 [AC_MSG_RESULT(no)]) | |
4405 | |
4406 AC_MSG_CHECKING(for sigsetjmp) | |
4407 AC_TRY_COMPILE([#include <setjmp.h>], | |
4408 [sigjmp_buf bar; sigsetjmp (bar, 0);], | |
4409 [AC_MSG_RESULT(yes) | |
4410 AC_DEFINE(HAVE_SIGSETJMP)], | |
4411 [AC_MSG_RESULT(no)]) | |
4412 | |
4413 AC_MSG_CHECKING(whether localtime caches TZ) | |
4414 AC_CACHE_VAL(emacs_cv_localtime_cache, | |
4415 [if test "$ac_cv_func_tzset" = "yes"; then | |
4416 AC_TRY_RUN([#include <time.h> | |
4417 #if STDC_HEADERS | |
4418 # include <stdlib.h> | |
4419 #endif | |
4420 extern char **environ; | |
4421 unset_TZ () | |
4422 { | |
4423 char **from, **to; | |
4424 for (to = from = environ; (*to = *from); from++) | |
4425 if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '=')) | |
4426 to++; | |
4427 } | |
4428 char TZ_GMT0[] = "TZ=GMT0"; | |
4429 char TZ_PST8[] = "TZ=PST8"; | |
4430 main() | |
4431 { | |
4432 time_t now = time ((time_t *) 0); | |
4433 int hour_GMT0, hour_unset; | |
4434 if (putenv (TZ_GMT0) != 0) | |
4435 exit (1); | |
4436 hour_GMT0 = localtime (&now)->tm_hour; | |
4437 unset_TZ (); | |
4438 hour_unset = localtime (&now)->tm_hour; | |
4439 if (putenv (TZ_PST8) != 0) | |
4440 exit (1); | |
4441 if (localtime (&now)->tm_hour == hour_GMT0) | |
4442 exit (1); | |
4443 unset_TZ (); | |
4444 if (localtime (&now)->tm_hour != hour_unset) | |
4445 exit (1); | |
4446 exit (0); | |
4447 }], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes, | |
4448 [# If we have tzset, assume the worst when cross-compiling. | |
4449 emacs_cv_localtime_cache=yes]) | |
4450 else | |
4451 # If we lack tzset, report that localtime does not cache TZ, | |
4452 # since we can't invalidate the cache if we don't have tzset. | |
4453 emacs_cv_localtime_cache=no | |
4454 fi],[:])dnl | |
4455 AC_MSG_RESULT($emacs_cv_localtime_cache) | |
4456 if test $emacs_cv_localtime_cache = yes; then | |
4457 AC_DEFINE(LOCALTIME_CACHE) | |
4458 fi | |
4459 | |
4460 if test "$HAVE_TIMEVAL" = "yes"; then | |
4461 AC_MSG_CHECKING(whether gettimeofday accepts one or two arguments) | |
4462 AC_TRY_LINK([ | |
4463 #ifdef TIME_WITH_SYS_TIME | |
4464 #include <sys/time.h> | |
4465 #include <time.h> | |
4466 #else | |
4467 #ifdef HAVE_SYS_TIME_H | |
4468 #include <sys/time.h> | |
4469 #else | |
4470 #include <time.h> | |
4471 #endif | |
4472 #endif | |
4473 ], | |
4474 [ | |
4475 struct timeval time; | |
4476 gettimeofday (&time, 0); | |
4477 ], | |
4478 [AC_MSG_RESULT(two)], | |
4479 [AC_MSG_RESULT(one) | |
4480 AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)]) | |
4481 fi | |
4482 | |
4483 | |
4484 AC_C_INLINE | |
4485 test "$ac_cv_c_inline" != "no" -a "$GCC" = "yes" && XE_ADD_OBJS(inline.o) | |
4486 | |
4487 dnl check for the typeof extension | |
4488 AC_MSG_CHECKING(for typeof) | |
4489 AC_TRY_COMPILE(, [int i; __typeof__(i) j;], typeofname="__typeof__", | |
4490 [AC_TRY_COMPILE(, [int i; typeof(i) j;], typeofname="typeof", | |
4491 typeofname=no)]) | |
4492 AC_MSG_RESULT($typeofname) | |
4493 if test "$typeofname" != "no"; then | |
4494 AC_DEFINE_UNQUOTED(TYPEOF, $typeofname) | |
4495 fi | |
4496 | |
4497 dnl HP-UX has a working alloca in libPW. | |
4498 dnl case "${GCC}${opsys}" in hpux* ) | |
4499 dnl AC_CHECK_FUNC(alloca, [:], [AC_CHECK_LIB(PW, alloca)]) | |
4500 dnl esac | |
4501 | |
4502 dnl AC_FUNC_ALLOCA doesn't know about DEC C's #pragma intrinsic(alloca) | |
4503 if test "$__DECC" != "yes"; then | |
4504 AC_FUNC_ALLOCA | |
4505 test -n "$ALLOCA" && XE_ADD_OBJS($ALLOCA) | |
4506 fi | |
4507 | |
4508 AC_MSG_CHECKING(for working alloca in function calls) | |
4509 AC_TRY_RUN([ | |
4510 #if defined (__CYGWIN__) | |
4511 #include <alloca.h> | |
4512 #elif defined (__GNUC__) | |
4513 #define alloca __builtin_alloca | |
4514 #elif defined (__DECC) | |
4515 #include <alloca.h> | |
4516 #pragma intrinsic(alloca) | |
4517 #elif defined (HAVE_ALLOCA_H) | |
4518 #include <alloca.h> | |
4519 #elif defined (_AIX) | |
4520 #pragma alloca | |
4521 #elif ! defined (alloca) | |
4522 #ifdef C_ALLOCA | |
4523 #define alloca xemacs_c_alloca | |
4524 #else | |
4525 void *alloca (); | |
4526 #endif /* C_ALLOCA */ | |
4527 #endif /* !defined (alloca) */ | |
4528 | |
4529 void | |
4530 f1 (double a, void *ptr, int b) | |
4531 { | |
4532 unsigned char *ptr2 = (unsigned char *) ptr; | |
4533 if (ptr2[0] != 0xBF || ptr2[1] != 0xBF || ptr2[3000] != 0xBF) | |
4534 exit (1); | |
4535 if (a != 3.1415 || b != -5490) | |
4536 exit (1); | |
4537 } | |
4538 | |
4539 int | |
4540 f2 (short c, void *ptr, long e) | |
4541 { | |
4542 unsigned char *ptr2 = (unsigned char *) ptr; | |
4543 if (ptr2[0] != 0xFB || ptr2[1] != 0xFB || ptr2[1000] != 0xFB) | |
4544 exit (1); | |
4545 if (c != 665 || e != 776776776) | |
4546 exit (1); | |
4547 f1 (3.1415, memset (alloca (3001), 0xBF, 3001), -5490); | |
4548 return 42; | |
4549 } | |
4550 | |
4551 int | |
4552 main (int argc, char *argv[]) | |
4553 { | |
4554 if (f2 (665, memset (alloca (1001), 0xFB, 1001), 776776776) != 42) | |
4555 return 1; | |
4556 return 0; | |
4557 } | |
4558 ], working_alloca_in_function_calls=yes, working_alloca_in_function_calls=no) | |
4559 AC_MSG_RESULT($working_alloca_in_function_calls) | |
4560 test "$working_alloca_in_function_calls" != "yes" && \ | |
4561 AC_DEFINE(BROKEN_ALLOCA_IN_FUNCTION_CALLS) | |
4562 | |
4563 AC_MSG_CHECKING(for working scanf) | |
4564 AC_TRY_RUN([ | |
4565 int | |
4566 main (int argc, char **argv) | |
4567 { | |
4568 int ret, cp1, cp2, endcount; | |
4569 char *p = "0x7d 0x000E "; | |
4570 ret = sscanf (p, "%i %i%n", &cp1, &cp2, &endcount); | |
4571 /* endcount should be 13 but it's 11 in Cygwin newlib after 6/04; | |
4572 this breaks unicode.c */ | |
4573 return endcount != 13; | |
4574 } | |
4575 ], working_scanf=yes, working_scanf=no) | |
4576 AC_MSG_RESULT($working_scanf) | |
4577 test "$working_scanf" != "yes" && \ | |
4578 AC_DEFINE(CYGWIN_SCANF_BUG) | |
4579 | |
4580 dnl Check whether strcoll exists and works correctly. (This does more | |
4581 dnl than just check for its existence.) If so, it defines HAVE_STRCOLL. | |
4582 AC_FUNC_STRCOLL | |
4583 | |
4584 dnl If `getpgrp' takes no argument (the POSIX.1 version), define | |
4585 dnl `GETPGRP_VOID'. Otherwise, it is the BSD version, which takes a | |
4586 dnl process ID as an argument. | |
4587 AC_CHECK_FUNCS(getpgrp) | |
4588 AC_FUNC_GETPGRP | |
4589 | |
4590 dnl We used to call AC_FUNC_MMAP here | |
4591 dnl Instead we now use following, suggested by Neal Becker | |
4592 AC_MSG_CHECKING(for working mmap) | |
4593 case "$opsys" in ultrix* ) have_mmap=no ;; *) | |
4594 AC_TRY_RUN([#include <stdio.h> | |
4595 #include <unistd.h> | |
4596 #include <fcntl.h> | |
4597 #include <sys/mman.h> | |
4598 | |
4599 #ifndef MAP_VARIABLE | |
4600 #define MAP_VARIABLE 0 | |
4601 #endif | |
4602 | |
4603 #ifndef MAP_FAILED | |
4604 #define MAP_FAILED -1 | |
4605 #endif | |
4606 | |
4607 int main (int argc, char *argv[]) | |
4608 { | |
4609 int fd = -1; | |
4610 caddr_t p; | |
4611 #ifndef MAP_ANONYMOUS | |
4612 fd = open ("/dev/zero", O_RDWR); | |
4613 if (fd < 0) | |
4614 return 1; | |
4615 #define MAP_ANONYMOUS 0 | |
4616 #endif | |
4617 if (mmap(0, 1024, PROT_READ | PROT_WRITE, | |
4618 MAP_PRIVATE | MAP_VARIABLE | MAP_ANONYMOUS, | |
4619 fd, 0) != (void *) MAP_FAILED) | |
4620 return 0; | |
4621 perror ("conftest: mmap failed"); | |
4622 return 1; | |
4623 }], have_mmap=yes, have_mmap=no) ;; | |
4624 esac | |
4625 AC_MSG_RESULT($have_mmap) | |
4626 test "$have_mmap" = "yes" && AC_DEFINE(HAVE_MMAP) | |
4627 | |
4628 dnl By default we switch off rel-alloc on cygwin as it generally causes us grief | |
4629 case "$opsys" in cygwin*) | |
4630 test "$rel_alloc" = "default" && rel_alloc=no ;; | |
4631 esac | |
4632 dnl rel_alloc requires either GNU malloc or system malloc with mmap | |
4633 dnl We only turn rel_alloc on by default if mmap is available. | |
4634 test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && rel_alloc=no | |
4635 if test "$rel_alloc $have_mmap" = "default yes"; then | |
4636 if test "$doug_lea_malloc" = "yes"; then | |
4637 dnl Check if malloc() calls mmap(), making rel_alloc pointless. | |
4638 AC_MSG_CHECKING(for M_MMAP_THRESHOLD) | |
4639 AC_TRY_COMPILE([#include <malloc.h>],[ | |
4640 #ifndef M_MMAP_THRESHOLD | |
4641 #error No M_MMAP_THRESHOLD :-( | |
4642 !@+$%^&*_)(_ - unlikely to compile... | |
4643 #endif | |
4644 ], [rel_alloc=no; AC_MSG_RESULT(yes);], [rel_alloc=yes; AC_MSG_RESULT(no);]) | |
4645 else | |
4646 rel_alloc=yes | |
4647 fi | |
4648 fi | |
4649 test "$rel_alloc" = "yes" && AC_DEFINE(REL_ALLOC) | |
4650 | |
4651 dnl Check for terminal I/O variants | |
4652 dnl TERMIOS systems may have termio.h, but not vice-versa, I think. | |
4653 AC_CHECK_HEADER(termios.h, | |
4654 AC_DEFINE(HAVE_TERMIOS) | |
4655 AC_DEFINE(SIGNALS_VIA_CHARACTERS) | |
4656 AC_DEFINE(NO_TERMIO), | |
4657 [AC_CHECK_HEADER(termio.h, [AC_DEFINE(HAVE_TERMIO)])]) | |
4658 | |
4659 | |
4660 dnl Check for Internet sockets. | |
4661 AC_CHECK_FUNC(socket, | |
4662 [AC_CHECK_HEADER(netinet/in.h, | |
4663 [AC_CHECK_HEADER(arpa/inet.h, [ | |
4664 AC_DEFINE(HAVE_SOCKETS) | |
4665 AC_MSG_CHECKING("for sun_len member in struct sockaddr_un") | |
4666 AC_TRY_LINK([ | |
4667 #include <sys/types.h> | |
4668 #include <sys/socket.h> | |
4669 #include <sys/un.h> | |
4670 ], | |
4671 [static struct sockaddr_un x; x.sun_len = 1;], | |
4672 [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOCKADDR_SUN_LEN)], | |
4673 [AC_MSG_RESULT(no)]) | |
4674 AC_MSG_CHECKING("for ip_mreq struct in netinet/in.h") | |
4675 AC_TRY_LINK([ | |
4676 #include <sys/types.h> | |
4677 #include <netinet/in.h> | |
4678 ], | |
4679 [static struct ip_mreq x;], | |
4680 [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_MULTICAST)], | |
4681 [AC_MSG_RESULT(no)])])])]) | |
4682 | |
4683 dnl Check for SYS V IPC. (Inferior to sockets.) | |
4684 AC_CHECK_FUNC(msgget, | |
4685 [AC_CHECK_HEADER(sys/ipc.h, | |
4686 [AC_CHECK_HEADER(sys/msg.h, | |
4687 [AC_DEFINE(HAVE_SYSVIPC)])])]) | |
4688 | |
4689 dnl Check for directory variants | |
4690 AC_CHECK_HEADER(dirent.h, [AC_DEFINE(SYSV_SYSTEM_DIR)], | |
4691 [AC_CHECK_HEADER(sys/dir.h, , [AC_DEFINE(NONSYSTEM_DIR_LIBRARY)])]) | |
4692 | |
4693 dnl Check for nlist.h | |
4694 AC_CHECK_HEADER(nlist.h, AC_DEFINE(NLIST_STRUCT), ) | |
4695 | |
4696 dnl Check for sound of various sorts. | |
4697 | |
4698 dnl Autodetect native sound | |
4699 AC_CHECKING("for sound support") | |
4700 test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes | |
4701 | |
4702 if test "$with_native_sound" != "no"; then | |
4703 dnl Maybe sound is already on include path... | |
4704 if test -n "$native_sound_lib"; then | |
4705 AC_CHECK_HEADER(multimedia/audio_device.h, | |
4706 [sound_found=yes sound_cflags="" | |
4707 XE_ADD_OBJS(sunplay.o)]) | |
4708 fi | |
4709 | |
4710 dnl Autodetect Sun native sound from SUNWaudmo package | |
4711 if test -z "$sound_found" -a -d "/usr/demo/SOUND"; then | |
4712 if test -d "/usr/demo/SOUND/include/multimedia"; then | |
4713 sun_sound_cflags="-I/usr/demo/SOUND/include" | |
4714 elif test -d "/usr/demo/SOUND/multimedia"; then | |
4715 sun_sound_cflags="-I/usr/demo/SOUND" | |
4716 fi | |
4717 | |
4718 if test -n "$native_sound_lib"; then | |
4719 sun_sound_lib="$native_sound_lib" | |
4720 elif test -r "/usr/demo/SOUND/lib/libaudio.a"; then | |
4721 sun_sound_lib="/usr/demo/SOUND/lib/libaudio.a" | |
4722 elif test -r "/usr/demo/SOUND/libaudio.a"; then | |
4723 sun_sound_lib="/usr/demo/SOUND/libaudio.a" | |
4724 fi | |
4725 | |
4726 if test -n "$sun_sound_cflags" -a -n "$sun_sound_lib"; then | |
4727 native_sound_lib="$sun_sound_lib" | |
4728 sound_cflags="$sun_sound_cflags" | |
4729 sound_found=yes | |
4730 XE_ADD_OBJS(sunplay.o) | |
4731 fi | |
4732 fi | |
4733 | |
4734 dnl Check for SGI and HP native sound libs | |
4735 if test -z "$sound_found"; then | |
4736 case "$canonical" in | |
4737 *-sgi-* ) | |
4738 if test -z "$native_sound_lib"; then | |
4739 AC_CHECK_LIB(audio, ALopenport, native_sound_lib="-laudio") | |
4740 fi | |
4741 if test -n "$native_sound_lib"; then | |
4742 sound_found=yes sound_cflags="" | |
4743 XE_ADD_OBJS(sgiplay.o) | |
4744 fi ;; | |
4745 hppa*-hp-hpux* ) | |
4746 if test -z "$native_sound_lib"; then | |
4747 AC_CHECK_LIB(Alib, AOpenAudio, native_sound_lib="-lAlib") | |
4748 fi | |
4749 if test -n "$native_sound_lib"; then | |
4750 sound_found=yes | |
4751 XE_ADD_OBJS(hpplay.o) | |
4752 if test "$GCC" = "yes" # Kludge city | |
4753 then sound_cflags="-Dconst= -Dvolatile= -I/usr/audio/examples" | |
4754 else sound_cflags="+e -I/usr/audio/examples" | |
4755 fi | |
4756 fi ;; | |
4757 esac | |
4758 fi | |
4759 | |
4760 dnl Win32 Native uses native sound | |
4761 if test -z "$sound_found"; then | |
4762 if test "$with_msw" = "yes"; then | |
4763 sound_found=yes | |
4764 native_sound_lib= | |
4765 XE_ADD_OBJS(ntplay.o) | |
4766 fi | |
4767 fi | |
4768 | |
4769 dnl Check for Linux/BSD native sound (also on recent Cygwins) | |
4770 if test -z "$sound_found"; then | |
4771 for dir in "machine" "sys" "linux"; do | |
4772 AC_CHECK_HEADER(${dir}/soundcard.h, | |
4773 sound_found=yes | |
4774 need_miscplay=yes | |
4775 XE_ADD_OBJS(linuxplay.o) | |
4776 [AC_DEFINE_UNQUOTED(SOUNDCARD_H_FILE, "${dir}/soundcard.h")] | |
4777 break) | |
4778 done | |
4779 fi | |
4780 | |
4781 if test "$sound_found" = "yes"; then | |
4782 with_native_sound=yes | |
4783 | |
4784 dnl NetBSD can use Linux's sound API, but it needs an extra library at | |
4785 dnl link time to do so. (OpenBSD apparently needs the same; not written | |
4786 dnl or tested.) | |
4787 if test "$opsys" = "netbsd" ; then | |
4788 AC_CHECK_LIB(ossaudio, _oss_ioctl, native_sound_lib="-lossaudio") | |
4789 fi | |
4790 fi | |
4791 fi | |
4792 | |
4793 if test "$with_native_sound" = "yes"; then | |
4794 AC_DEFINE(HAVE_NATIVE_SOUND) | |
4795 test -n "$native_sound_lib" && XE_PREPEND($native_sound_lib, LIBS) | |
4796 fi | |
4797 | |
4798 dnl NAS Sound support | |
4799 if test "$with_nas_sound" != "no"; then | |
4800 AC_CHECK_HEADER(audio/audiolib.h, [ | |
4801 AC_CHECK_LIB(audio, AuOpenServer, have_nas_sound=yes)]) | |
4802 if test "$have_nas_sound" = "yes"; then | |
4803 with_nas_sound=yes | |
4804 AC_DEFINE(HAVE_NAS_SOUND) | |
4805 XE_ADD_OBJS(nas.o) | |
4806 XE_PREPEND(-laudio, libs_x) | |
4807 dnl If the nas library does not contain the error jump point, | |
4808 dnl then we force safer behavior. | |
4809 AC_EGREP_HEADER(AuXtErrorJump,audio/Xtutil.h,,[old_nas=yes; AC_DEFINE(NAS_NO_ERROR_JUMP)]) | |
4810 else | |
4811 test "$with_nas_sound" = "yes" && \ | |
4812 XE_DIE("Required NAS sound support cannot be provided.") | |
4813 with_nas_sound=no | |
4814 fi | |
4815 fi | |
4816 | |
4817 dnl ESD Sound support | |
4818 if test "$with_esd_sound" != "no"; then | |
4819 AC_CHECK_PROG(have_esd_config, esd-config, yes, no) | |
4820 if test "$have_esd_config" = "yes"; then | |
4821 save_c_switch_site="$c_switch_site" save_LIBS="$LIBS" | |
4822 XE_APPEND(`esd-config --cflags`, c_switch_site) | |
4823 XE_PREPEND(`esd-config --libs`, LIBS) | |
4824 AC_CHECK_FUNC(esd_play_stream, | |
4825 have_esd_sound=yes, | |
4826 c_switch_site="$save_c_switch_site" LIBS="$save_LIBS") | |
4827 fi | |
4828 | |
4829 if test "$have_esd_sound" = "yes"; then | |
4830 with_esd_sound=yes | |
4831 need_miscplay=yes | |
4832 XE_ADD_OBJS(esd.o) | |
4833 AC_DEFINE(HAVE_ESD_SOUND) | |
4834 else | |
4835 test "$with_esd_sound" = "yes" && \ | |
4836 XE_DIE("Required ESD sound support cannot be provided.") | |
4837 with_esd_sound=no | |
4838 fi | |
4839 fi | |
4840 | |
4841 test "$need_miscplay" = "yes" && XE_ADD_OBJS(miscplay.o) | |
4842 | |
4843 dnl --------------------- | |
4844 dnl TTY-dependent options | |
4845 dnl --------------------- | |
4846 | |
4847 test -z "$with_tty" && with_tty=yes | |
4848 | |
4849 if test "$with_tty" = "yes" ; then | |
4850 AC_CHECKING(for TTY-related features) | |
4851 AC_DEFINE(HAVE_TTY) | |
4852 | |
4853 dnl Autodetect ncurses. | |
4854 if test -z "$with_ncurses"; then | |
4855 AC_CHECK_LIB(ncurses, tgetent, with_ncurses=yes, with_ncurses=no) | |
4856 fi | |
4857 if test "$with_ncurses" = "yes"; then | |
4858 AC_DEFINE(HAVE_NCURSES) | |
4859 AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h) | |
4860 AC_CHECK_HEADER(ncurses/term.h, term_h_file=ncurses/term.h) | |
4861 XE_ADD_OBJS(terminfo.o) | |
4862 XE_PREPEND(-lncurses, LIBS) | |
4863 | |
4864 if test "$ac_cv_header_ncurses_curses_h" != "yes" ; then | |
4865 dnl Try again, and check for the bogus ncurses/ include bug. | |
4866 dnl (i.e. ncurses/curses.h bogusly includes <unctrl.h> instead of | |
4867 dnl <ncurses/unctrl.h>) | |
4868 save_c_switch_site="$c_switch_site" | |
4869 c_switch_site="$c_switch_site -I/usr/include/ncurses" | |
4870 AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h) | |
4871 if test "$ac_cv_header_ncurses_curses_h" = "yes" | |
4872 then AC_MSG_WARN([Your system has the bogus ncurses include bug.]) | |
4873 else c_switch_site="$save_c_switch_site" | |
4874 fi | |
4875 fi | |
4876 else dnl "$with_ncurses" = "no" | |
4877 dnl Autodetect terminfo/-lcurses/-ltermlib/-ltermcap | |
4878 if test "$have_terminfo" = "yes"; then | |
4879 XE_ADD_OBJS(terminfo.o) | |
4880 if test -n "$libs_termcap"; then | |
4881 XE_PREPEND($libs_termcap, LIBS) | |
4882 else | |
4883 for lib in curses termlib termcap; do | |
4884 AC_CHECK_LIB($lib, tgetent, XE_PREPEND(-l${lib}, LIBS); break) | |
4885 done | |
4886 fi | |
4887 else dnl "$have_terminfo" = "no" && "with_ncurses" = "no" | |
4888 XE_ADD_OBJS(tparam.o) | |
4889 dnl The HP-UX curses library seems to have a badly broken version of select(2) | |
4890 dnl that makes "poll: interrupted system call" messages to appear and | |
4891 dnl Emacs subprocesses to hang (e.g. TeX compilation w/ AUCTeX) */ | |
4892 case "$opsys" in *-hp-hpux* ) libs_termcap="-ltermcap" ;; esac | |
4893 if test -n "$libs_termcap"; then | |
4894 XE_PREPEND($libs_termcap, LIBS) | |
4895 else | |
4896 AC_CHECK_LIB(curses, tgetent, XE_PREPEND(-lcurses, LIBS), | |
4897 AC_CHECK_LIB(termcap, tgetent, XE_PREPEND(-ltermcap, LIBS), | |
4898 XE_ADD_OBJS(termcap.o))) | |
4899 fi | |
4900 fi | |
4901 fi | |
4902 AC_DEFINE_UNQUOTED(CURSES_H_FILE, "${curses_h_file-curses.h}") | |
4903 AC_DEFINE_UNQUOTED(TERM_H_FILE, "${term_h_file-term.h}") | |
4904 | |
4905 dnl General Purpose Mouse (libgpm) support | |
4906 if test "$with_gpm" != "no"; then | |
4907 AC_CHECK_HEADER(gpm.h, [ | |
4908 AC_CHECK_LIB(gpm, Gpm_Open, have_gpm=yes)]) | |
4909 if test "$have_gpm" = "yes"; then | |
4910 with_gpm=yes | |
4911 AC_DEFINE(HAVE_GPM) | |
4912 XE_PREPEND(-lgpm, LIBS) | |
4913 elif test "$with_gpm" = "yes"; then | |
4914 XE_DIE(["GPM requested, but gpm.h or libgpm seems to be missing."]) | |
4915 else | |
4916 with_gpm=no | |
4917 fi | |
4918 fi | |
4919 | |
4920 else dnl "$with_tty" = "no" | |
4921 for feature in ncurses gpm; do | |
4922 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then | |
4923 AC_MSG_WARN([--with-${feature} ignored: Not valid without TTY support]) | |
4924 fi | |
4925 eval "with_${feature}=no" | |
4926 done | |
4927 fi dnl with_tty | |
4928 | |
4929 dnl Database support | |
4930 dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support. | |
4931 dnl On FreeBSD, both DB and DBM are part of libc. | |
4932 dnl By default, we check for DBM support in libgdbm, then libc, then libdbm. | |
4933 | |
4934 test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \ | |
4935 != "no no no" && AC_CHECKING(for database support) | |
4936 | |
4937 dnl Check for ndbm.h, required for either kind of DBM support. | |
4938 if test "$with_database_gdbm $with_database_dbm" != "no no"; then | |
4939 AC_CHECK_HEADER(ndbm.h, [:], [ | |
4940 test "$with_database_gdbm" = "yes" -o \ | |
4941 "$with_database_dbm" = "yes" && \ | |
4942 XE_DIE("Required DBM support cannot be provided.") | |
4943 with_database_gdbm=no with_database_dbm=no]) | |
4944 fi | |
4945 | |
4946 dnl Check for DBM support in libgdbm. | |
4947 if test "$with_database_gdbm" != "no"; then | |
4948 AC_CHECK_LIB(gdbm, dbm_open, [ | |
4949 with_database_gdbm=yes with_database_dbm=no libdbm=-lgdbm], [ | |
4950 if test "$with_database_gdbm" = "yes"; then | |
4951 XE_DIE("Required GNU DBM support cannot be provided.") | |
4952 fi | |
4953 with_database_gdbm=no]) | |
4954 fi | |
4955 | |
4956 dnl Check for DBM support in libc and libdbm. | |
4957 if test "$with_database_dbm" != "no"; then | |
4958 AC_CHECK_FUNC(dbm_open, [with_database_dbm=yes libdbm=], [ | |
4959 AC_CHECK_LIB(dbm, dbm_open, [with_database_dbm=yes libdbm=-ldbm], [ | |
4960 test "$with_database_dbm" = "yes" && \ | |
4961 XE_DIE("Required DBM support cannot be provided.") | |
4962 with_database_dbm=no])]) | |
4963 fi | |
4964 | |
4965 dnl Tell make about the DBM support we detected. | |
4966 test -n "$libdbm" && XE_PREPEND("$libdbm", LIBS) | |
4967 test "$with_database_gdbm" = "yes" -o \ | |
4968 "$with_database_dbm" = "yes" && \ | |
4969 AC_DEFINE(HAVE_DBM) | |
4970 | |
4971 dnl Check for Berkeley DB. | |
4972 if test "$with_database_berkdb" != "no"; then | |
4973 AC_MSG_CHECKING(for Berkeley db.h) | |
4974 for header in "db/db.h" "db.h"; do | |
4975 AC_TRY_COMPILE([ | |
4976 #include <stdlib.h> | |
4977 #if !(defined __GLIBC__ && __GLIBC_MINOR__ >= 1) | |
4978 #ifdef HAVE_INTTYPES_H | |
4979 #define __BIT_TYPES_DEFINED__ | |
4980 #include <inttypes.h> | |
4981 typedef uint8_t u_int8_t; | |
4982 typedef uint16_t u_int16_t; | |
4983 typedef uint32_t u_int32_t; | |
4984 #ifdef WE_DONT_NEED_QUADS | |
4985 typedef uint64_t u_int64_t; | |
4986 #endif | |
4987 #endif | |
4988 #endif | |
4989 #include <$header> | |
4990 ],[], db_h_file="$header"; break) | |
4991 done | |
4992 if test -z "$db_h_file" | |
4993 then AC_MSG_RESULT(no); with_database_berkdb=no | |
4994 else AC_MSG_RESULT($db_h_file) | |
4995 fi | |
4996 | |
4997 if test "$with_database_berkdb" != "no"; then | |
4998 AC_MSG_CHECKING(for Berkeley DB version) | |
4999 AC_EGREP_CPP(yes, | |
5000 [#include <$db_h_file> | |
5001 #if DB_VERSION_MAJOR > 1 | |
5002 yes | |
5003 #endif | |
5004 ], [AC_EGREP_CPP(yes, | |
5005 [#include <$db_h_file> | |
5006 #if DB_VERSION_MAJOR > 2 | |
5007 yes | |
5008 #endif | |
5009 ], [AC_EGREP_CPP(yes, | |
5010 [#include <$db_h_file> | |
5011 #if DB_VERSION_MAJOR > 3 | |
5012 yes | |
5013 #endif | |
5014 ], [AC_MSG_RESULT(4); dbfunc=db_create; dbver=4],[ | |
5015 AC_MSG_RESULT(3); dbfunc=db_create; dbver=3])],[ | |
5016 AC_MSG_RESULT(2); dbfunc=db_open; dbver=2])],[ | |
5017 AC_MSG_RESULT(1); dbfunc=dbopen; dbver=1]) | |
5018 AC_CHECK_FUNC($dbfunc, with_database_berkdb=yes need_libdb=no, [ | |
5019 AC_CHECK_LIB(db, $dbfunc, with_database_berkdb=yes need_libdb=yes)]) | |
5020 fi | |
5021 | |
5022 dnl Berk db 4.1 decorates public functions with version information | |
5023 if test "$with_database_berkdb" != "yes" -a "$dbver" = "4"; then | |
5024 rm -f $tempcname | |
5025 echo "#include <$db_h_file>" > $tempcname | |
5026 echo "configure___ dbfunc=db_create" >> $tempcname | |
5027 define(TAB, [ ])dnl | |
5028 changequote(, )dnl | |
5029 eval `$CPP -Isrc $tempcname \ | |
5030 | sed -n -e "s/[ TAB]*=[ TAB\"]*/='/" -e "s/[ TAB\"]*\$/'/" -e "s/^configure___//p"` | |
5031 changequote([, ])dnl | |
5032 rm -f $tempcname | |
5033 AC_MSG_WARN("db_create is really $dbfunc") | |
5034 AC_CHECK_LIB(db, $dbfunc, with_database_berkdb=yes need_libdb=yes) | |
5035 fi | |
5036 | |
5037 if test "$with_database_berkdb" = "yes"; then | |
5038 AC_DEFINE_UNQUOTED(DB_H_FILE, "$db_h_file") | |
5039 AC_DEFINE(HAVE_BERKELEY_DB) | |
5040 test "$need_libdb" = "yes" && XE_PREPEND(-ldb, LIBS) | |
5041 else with_database_berkdb=no | |
5042 fi | |
5043 fi | |
5044 | |
5045 if test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \ | |
5046 != "no no no"; then | |
5047 AC_DEFINE(HAVE_DATABASE) | |
5048 fi | |
5049 | |
5050 dnl Socks support | |
5051 if test "$with_socks" = "yes"; then | |
5052 AC_CHECK_LIB(socks, SOCKSinit) | |
5053 test -n "$ac_cv_lib_socks_SOCKSinit" && AC_DEFINE(HAVE_SOCKS) | |
5054 fi | |
5055 | |
5056 dnl Usage tracking (undocumented and likely unused option) | |
5057 if test "$usage_tracking" = "yes"; then | |
5058 AC_DEFINE(USAGE_TRACKING) | |
5059 XE_PREPEND(-Bstatic -lut -Bdynamic, LIBS) | |
5060 fi | |
5061 | |
5062 dnl Enhanced number support | |
5063 if test "$use_number_lib" = "gmp"; then | |
5064 AC_CHECK_HEADER(gmp.h, [ | |
5065 AC_CHECK_LIB(gmp, __gmpz_init, have_mpz_init=yes)]) | |
5066 if test "$have_mpz_init" = "yes"; then | |
5067 AC_DEFINE(WITH_NUMBER_TYPES) | |
5068 AC_DEFINE(WITH_GMP) | |
5069 XE_PREPEND(-lgmp, LIBS) | |
5070 else | |
5071 XE_DIE("Required GMP numeric support cannot be provided.") | |
5072 fi | |
5073 elif test "$use_number_lib" = "mp"; then | |
5074 for library in "" "-lcrypto"; do | |
5075 AC_CHECK_HEADER(mp.h, [ | |
5076 AC_CHECK_LIB(mp, mp_mfree, have_mp_mfree=yes; break, [ | |
5077 AC_CHECK_LIB(mp, mfree, have_mfree=yes; break, , $library)], | |
5078 $library)]) | |
5079 done | |
5080 if test "$have_mp_mfree" = "yes"; then | |
5081 AC_DEFINE(MP_PREFIX) | |
5082 XE_APPEND(-lmp, LIBS) | |
5083 if test "$library" != ""; then | |
5084 XE_APPEND($library, LIBS) | |
5085 fi | |
5086 AC_CHECK_FUNC(mp_move, [AC_DEFINE(HAVE_MP_MOVE)]) | |
5087 elif test "$have_mfree" = "yes"; then | |
5088 XE_APPEND(-lmp, LIBS) | |
5089 if test "$library" != ""; then | |
5090 XE_APPEND($library, LIBS) | |
5091 fi | |
5092 AC_CHECK_FUNC(move, [AC_DEFINE(HAVE_MP_MOVE)]) | |
5093 else | |
5094 XE_DIE("Required MP numeric support cannot be provided.") | |
5095 fi | |
5096 AC_DEFINE(WITH_NUMBER_TYPES) | |
5097 AC_DEFINE(WITH_MP) | |
5098 fi | |
5099 | |
5100 dnl Unfortunately, just because we can link doesn't mean we can run. | |
5101 dnl One of the above link tests may have succeeded but caused resulting | |
5102 dnl executables to fail to run. Also any tests using AC_TRY_RUN will | |
5103 dnl have reported incorrect results. | |
5104 AC_TRY_RUN([int main(int c,char *v[]){return 0;}],[:],[ | |
5105 echo "" | |
5106 echo "*** PANIC *** The C compiler can no longer build working executables." | |
5107 echo "*** PANIC *** Please examine the tail of config.log for runtime errors." | |
5108 echo "*** PANIC *** The most likely reason for this problem is that configure" | |
5109 echo "*** PANIC *** links with shared libraries, but those libraries cannot be" | |
5110 echo "*** PANIC *** found at run time." | |
5111 echo "*** PANIC ***" | |
5112 echo "*** PANIC *** On a Linux system, edit /etc/ld.so.conf and re-run ldconfig." | |
5113 echo "*** PANIC *** On other systems, try telling configure where to find the" | |
5114 echo "*** PANIC *** shared libraries using the --site-runtime-libraries option" | |
5115 echo "*** PANIC ***" | |
5116 echo "*** PANIC *** Another way to shoot yourself in the foot is to specify" | |
5117 echo "*** PANIC *** --with-FEATURE when FEATURE is not actually installed" | |
5118 echo "*** PANIC *** on your system. Don't do that." | |
5119 exit 1]) | |
5120 | |
5121 dnl Process support | |
5122 if test "$win32_processes" != "yes"; then | |
5123 AC_DEFINE(HAVE_UNIX_PROCESSES) | |
5124 fi | |
5125 | |
5126 dnl -------------------------------- | |
5127 dnl Compute SUBST-itutable variables | |
5128 dnl -------------------------------- | |
5129 | |
5130 dnl We ignore (C|LD)_SWITCH_X_(MACHINE|SYSTEM) | |
5131 dnl Use XE_SPACE instead of plain assignment statements to remove extraneous blanks | |
5132 if test "$with_modules" = "yes"; then | |
5133 ld_libs_module= | |
5134 else | |
5135 XE_SPACE(ld_libs_module, $ldap_libs $postgresql_libs) | |
5136 fi | |
5137 | |
5138 XE_SPACE(CFLAGS, $CFLAGS) | |
5139 XE_SPACE(extra_objs, $extra_objs) | |
5140 XE_SPACE(c_switch_general, -DHAVE_CONFIG_H $c_switch_site $c_switch_machine $c_switch_system) | |
5141 XE_SPACE(c_switch_window_system, $c_switch_x_site $c_switch_gtk $X_CFLAGS) | |
5142 XE_SPACE(c_switch_all, $c_switch_general $c_switch_window_system) | |
5143 XE_SPACE(ld_switch_general, $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_run) | |
5144 XE_SPACE(ld_switch_window_system, $ld_switch_x_site) | |
5145 XE_SPACE(ld_switch_all, $ld_switch_general $ld_switch_window_system) | |
5146 XE_SPACE(ld_libs_general, $LIBS $libs_machine $libs_system $libs_standard) | |
5147 XE_SPACE(ld_libs_window_system, $X_EXTRA_LIBS $libs_x $libs_gtk $X_PRE_LIBS) | |
5148 XE_SPACE(ld_libs_all, $ld_libs_window_system $ld_libs_general $ld_libs_module) | |
5149 | |
5150 dnl For no-module builds, make the src dir last | |
5151 if test "$with_modules" = "no"; then | |
5152 XE_APPEND(src, MAKE_SUBDIR) | |
5153 fi | |
5154 | |
5155 dnl Compute lists of Makefiles and subdirs | |
5156 AC_SUBST(SRC_SUBDIR_DEPS) | |
5157 internal_makefile_list="Makefile.in" | |
5158 SUBDIR_MAKEFILES='' | |
5159 test -d lock || mkdir lock | |
5160 for dir in $MAKE_SUBDIR; do | |
5161 case "$dir" in */* ) dnl Implement mkdir -p | |
5162 ( for d in `echo $dir | sed 's:/: :g'` ; do | |
5163 test -d "$d" || mkdir "$d"; cd "$d" | |
5164 done ) ;; | |
5165 * ) test -d "$dir" || mkdir "$dir" ;; | |
5166 esac | |
5167 XE_SPACE(SUBDIR_MAKEFILES, $SUBDIR_MAKEFILES $dir/Makefile $dir/GNUmakefile) | |
5168 XE_SPACE(internal_makefile_list, $internal_makefile_list $dir/Makefile.in) | |
5169 done | |
5170 AC_SUBST(INSTALL_ARCH_DEP_SUBDIR) | |
5171 AC_SUBST(MAKE_SUBDIR) | |
5172 AC_SUBST(SUBDIR_MAKEFILES) | |
5173 | |
5174 dnl Make s&m symlinks in the src directory, for config.h. | |
5175 for dir in src/s src/m; do | |
5176 if test ! -d "$dir" ; then | |
5177 echo Making symbolic link to "$srcdir/$dir" | |
5178 ${LN_S} "$srcdir/$dir" "$dir" | |
5179 fi | |
5180 done | |
5181 | |
5182 dnl Also make modules/common link if needed for the module Makefiles. | |
5183 if test "$need_modules_common" = "yes"; then | |
5184 for dir in modules/common; do | |
5185 if test ! -d "$dir" ; then | |
5186 echo Making symbolic link to "$srcdir/$dir" | |
5187 ${LN_S} "$srcdir/$dir" "$dir" | |
5188 fi | |
5189 done | |
5190 fi | |
5191 | |
5192 if test "$extra_verbose" = "yes"; then | |
5193 echo "" | |
5194 PRINT_VAR(extra_objs | |
5195 c_switch_general c_switch_window_system c_switch_all | |
5196 ld_switch_general ld_switch_window_system ld_switch_all | |
5197 ld_libs_general ld_libs_window_system ld_libs_all) | |
5198 echo "" | |
5199 fi | |
5200 | |
5201 dnl ---------------------------------------------- | |
5202 dnl Create some auxiliary files for developers. | |
5203 dnl ---------------------------------------------- | |
5204 | |
5205 dnl Create a .gdbinit useful for debugging XEmacs | |
5206 if test -f "$srcdir/src/.gdbinit" -a ! -f "src/.gdbinit"; then | |
5207 test "$extra_verbose" = "yes" && echo "creating src/.gdbinit" | |
5208 echo "source $srcdir/src/.gdbinit" > "src/.gdbinit" | |
5209 fi | |
5210 | |
5211 dnl Create a .dbxrc useful for debugging XEmacs | |
5212 if test -f "$srcdir/src/.dbxrc" -a ! -f "src/.dbxrc"; then | |
5213 test "$extra_verbose" = "yes" && echo "creating src/.dbxrc" | |
5214 echo ". $srcdir/src/.dbxrc" > "src/.dbxrc" | |
5215 fi | |
5216 | |
5217 dnl Create a useful TAGS file | |
5218 if test -f "$srcdir/TAGS" -a ! -f "TAGS"; then | |
5219 test "$extra_verbose" = "yes" && echo "creating TAGS" | |
5220 echo " | |
5221 $srcdir/TAGS,include" > "TAGS" | |
5222 fi | |
5223 | |
5224 dnl Create top level .sbinit for Sun compilers | |
5225 if test "$__SUNPRO_C" = "yes"; then | |
5226 test "$extra_verbose" = "yes" && echo "creating .sbinit" | |
5227 ( echo "# For use with Sun WorkShop's Source browser." | |
5228 echo "# See sbquery(1) and sbinit(4) for more information" | |
5229 for dir in $MAKE_SUBDIR; do echo "import $dir"; done | |
5230 ) > .sbinit | |
5231 fi | |
5232 | |
5233 dnl There are no more compile tests; remove the core they created. | |
5234 rm -f core | |
5235 | |
5236 dnl ---------------------------------------------- | |
5237 dnl Substitute into Makefile, config.h and paths.h | |
5238 dnl ---------------------------------------------- | |
5239 | |
5240 dnl what sort of things to edit into Makefile, config.h and paths.h | |
5241 dnl configuration here uncanonicalized to avoid exceeding size limits. | |
5242 | |
5243 AC_SUBST(PROGNAME) | |
5244 AC_SUBST(version) | |
5245 AC_SUBST(configuration) | |
5246 AC_SUBST(canonical) | |
5247 AC_SUBST(inststaticdir) | |
5248 AC_SUBST(instvardir) | |
5249 AC_SUBST(srcdir) | |
5250 AC_SUBST(bindir) | |
5251 AC_SUBST(datadir) | |
5252 AC_SUBST(statedir) | |
5253 AC_SUBST(libdir) | |
5254 AC_SUBST(mandir) | |
5255 AC_SUBST(extra_includes) | |
5256 | |
5257 AC_SUBST(prefix) | |
5258 AC_SUBST(PREFIX_USER_DEFINED) | |
5259 dnl Yo, Stephen Bourne! I want to marry you! | |
5260 PREFIX=$prefix | |
5261 while true; do | |
5262 case "$PREFIX" in | |
5263 *\$* ) eval "PREFIX=$PREFIX" ;; | |
5264 *) break ;; | |
5265 esac | |
5266 done | |
5267 AC_SUBST(PREFIX) | |
5268 | |
5269 AC_SUBST(exec_prefix) | |
5270 AC_SUBST(EXEC_PREFIX_USER_DEFINED) | |
5271 EXEC_PREFIX=$exec_prefix | |
5272 while true; do | |
5273 case "$EXEC_PREFIX" in | |
5274 *\$* ) eval "EXEC_PREFIX=$EXEC_PREFIX" ;; | |
5275 *) break ;; | |
5276 esac | |
5277 done | |
5278 AC_SUBST(EXEC_PREFIX) | |
5279 | |
5280 AC_SUBST(infodir) | |
5281 AC_SUBST(INFODIR_USER_DEFINED) | |
5282 INFODIR=$infodir | |
5283 while true; do | |
5284 case "$INFODIR" in | |
5285 *\$* ) eval "INFODIR=$INFODIR" ;; | |
5286 *) break ;; | |
5287 esac | |
5288 done | |
5289 AC_SUBST(INFODIR) | |
5290 | |
5291 AC_SUBST(infopath) | |
5292 AC_SUBST(INFOPATH_USER_DEFINED) | |
5293 INFOPATH=$infopath | |
5294 while true; do | |
5295 case "$INFOPATH" in | |
5296 *\$* ) eval "INFOPATH=$INFOPATH" ;; | |
5297 *) break ;; | |
5298 esac | |
5299 done | |
5300 AC_SUBST(INFOPATH) | |
5301 | |
5302 if test -z "$package_path" && test -n "$package_prefix" ; then | |
5303 if test "$with_mule" = "yes" ; then | |
5304 package_path="~/.xemacs::${package_prefix}/site-packages:${package_prefix}/xemacs-packages:${package_prefix}/mule-packages" | |
5305 else | |
5306 package_path="~/.xemacs::${package_prefix}/site-packages:${package_prefix}/xemacs-packages" | |
5307 fi | |
5308 fi | |
5309 | |
5310 AC_SUBST(package_path) | |
5311 AC_SUBST(PACKAGE_PATH_USER_DEFINED) | |
5312 PACKAGE_PATH=$package_path | |
5313 while true; do | |
5314 case "$PACKAGE_PATH" in | |
5315 *\$* ) eval "PACKAGE_PATH=$PACKAGE_PATH" ;; | |
5316 *) break ;; | |
5317 esac | |
5318 done | |
5319 AC_SUBST(PACKAGE_PATH) | |
5320 | |
5321 AC_SUBST(lispdir) | |
5322 AC_SUBST(LISPDIR_USER_DEFINED) | |
5323 LISPDIR=$lispdir | |
5324 while true; do | |
5325 case "$LISPDIR" in | |
5326 *\$* ) eval "LISPDIR=$LISPDIR" ;; | |
5327 *) break ;; | |
5328 esac | |
5329 done | |
5330 AC_SUBST(LISPDIR) | |
5331 | |
5332 AC_SUBST(moduledir) | |
5333 AC_SUBST(MODULEDIR_USER_DEFINED) | |
5334 MODULEDIR=$moduledir | |
5335 while true; do | |
5336 case "$MODULEDIR" in | |
5337 *\$* ) eval "MODULEDIR=$MODULEDIR" ;; | |
5338 *) break ;; | |
5339 esac | |
5340 done | |
5341 AC_SUBST(MODULEDIR) | |
5342 | |
5343 AC_SUBST(sitelispdir) | |
5344 AC_SUBST(SITELISPDIR_USER_DEFINED) | |
5345 SITELISPDIR=$sitelispdir | |
5346 while true; do | |
5347 case "$SITELISPDIR" in | |
5348 *\$* ) eval "SITELISPDIR=$SITELISPDIR" ;; | |
5349 *) break ;; | |
5350 esac | |
5351 done | |
5352 AC_SUBST(SITELISPDIR) | |
5353 | |
5354 AC_SUBST(sitemoduledir) | |
5355 AC_SUBST(SITEMODULEDIR_USER_DEFINED) | |
5356 SITEMODULEDIR=$sitemoduledir | |
5357 while true; do | |
5358 case "$SITEMODULEDIR" in | |
5359 *\$* ) eval "SITEMODULEDIR=$SITEMODULEDIR" ;; | |
5360 *) break ;; | |
5361 esac | |
5362 done | |
5363 AC_SUBST(SITEMODULEDIR) | |
5364 | |
5365 AC_SUBST(etcdir) | |
5366 AC_SUBST(ETCDIR_USER_DEFINED) | |
5367 ETCDIR=$etcdir | |
5368 while true; do | |
5369 case "$ETCDIR" in | |
5370 *\$* ) eval "ETCDIR=$ETCDIR" ;; | |
5371 *) break ;; | |
5372 esac | |
5373 done | |
5374 AC_SUBST(ETCDIR) | |
5375 | |
5376 AC_SUBST(docdir) | |
5377 AC_SUBST(DOCDIR_USER_DEFINED) | |
5378 DOCDIR=$docdir | |
5379 while true; do | |
5380 case "$DOCDIR" in | |
5381 *\$* ) eval "DOCDIR=$DOCDIR" ;; | |
5382 *) break ;; | |
5383 esac | |
5384 done | |
5385 AC_SUBST(DOCDIR) | |
5386 | |
5387 AC_SUBST(archlibdir) | |
5388 AC_SUBST(ARCHLIBDIR_USER_DEFINED) | |
5389 ARCHLIBDIR=$archlibdir | |
5390 while true; do | |
5391 case "$ARCHLIBDIR" in | |
5392 *\$* ) eval "ARCHLIBDIR=$ARCHLIBDIR" ;; | |
5393 *) break ;; | |
5394 esac | |
5395 done | |
5396 AC_SUBST(ARCHLIBDIR) | |
5397 | |
5398 AC_SUBST(docdir) | |
5399 AC_SUBST(bitmapdir) | |
5400 AC_SUBST(extra_objs) | |
5401 | |
5402 dnl The following flags combine all the information from: | |
5403 dnl - command line options (user always gets priority) | |
5404 dnl - user environment variables | |
5405 dnl - determined by configure | |
5406 dnl - the s&m header files (required for ellcc) | |
5407 AC_SUBST(machfile) | |
5408 AC_SUBST(opsysfile) | |
5409 AC_SUBST(c_switch_general) | |
5410 AC_SUBST(c_switch_window_system) | |
5411 AC_SUBST(c_switch_all) | |
5412 AC_SUBST(ld_switch_general) | |
5413 AC_SUBST(ld_switch_window_system) | |
5414 AC_SUBST(ld_switch_all) | |
5415 AC_SUBST(ld_libs_general) | |
5416 AC_SUBST(ld_libs_window_system) | |
5417 AC_SUBST(ld_libs_all) | |
5418 AC_SUBST(CFLAGS) | |
5419 AC_SUBST(CPPFLAGS) | |
5420 AC_SUBST(LDFLAGS) | |
5421 RECURSIVE_MAKE_ARGS="\$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'" | |
5422 AC_SUBST(RECURSIVE_MAKE_ARGS) | |
5423 | |
5424 AC_SUBST(native_sound_lib) | |
5425 AC_SUBST(sound_cflags) | |
5426 AC_SUBST(RANLIB) | |
5427 AC_SUBST(dynodump_arch) | |
5428 | |
5429 AC_SUBST(XEMACS_CC) | |
5430 AC_SUBST(XE_CFLAGS) | |
5431 | |
5432 dnl The default is yes | |
5433 if test "$with_prefix" = "yes"; then | |
5434 AC_DEFINE(PREFIX_USER_DEFINED) | |
5435 fi | |
5436 | |
5437 dnl The default is no | |
5438 if test "$with_site_lisp" = "no"; then | |
5439 AC_DEFINE(INHIBIT_SITE_LISP) | |
5440 fi | |
5441 dnl The default is yes | |
5442 if test "$with_site_modules" = "no"; then | |
5443 AC_DEFINE(INHIBIT_SITE_MODULES) | |
5444 fi | |
5445 | |
5446 XE_SPACE(ac_configure_args, $ac_configure_args) | |
5447 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "$configuration") | |
5448 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "$ac_configure_args") | |
5449 | |
5450 dnl Following are deprecated | |
5451 | |
5452 null_string="" | |
5453 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, $null_string) | |
5454 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, $null_string) | |
5455 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, $null_string) | |
5456 AC_DEFINE_UNQUOTED(LD_SWITCH_SITE, $null_string) | |
5457 AC_DEFINE_UNQUOTED(C_SWITCH_SITE, $null_string) | |
5458 | |
5459 dnl Note: as a general rule, *only* define things here that are not | |
5460 dnl autodetected. For things that are autodetected, define them | |
5461 dnl at the point where the autodetection occurs or would occur, | |
5462 dnl so that the user gets immediate feedback on the results of the | |
5463 dnl autodetection. | |
5464 | |
5465 if test "$GNU_MALLOC" = "yes"; then AC_DEFINE(GNU_MALLOC) | |
5466 elif test "$with_system_malloc" = "yes"; then AC_DEFINE(USE_SYSTEM_MALLOC) | |
5467 elif test "$with_debug_malloc" = "yes"; then AC_DEFINE(USE_DEBUG_MALLOC) | |
5468 AC_DEFINE(USE_SYSTEM_MALLOC) | |
5469 fi | |
5470 test "$GCC" = "yes" && AC_DEFINE(USE_GCC) | |
5471 test "$external_widget" = "yes" && AC_DEFINE(EXTERNAL_WIDGET) | |
5472 test "$use_kkcc" = "yes" && AC_DEFINE(USE_KKCC) | |
5473 test "$mc_alloc" = "yes" && AC_DEFINE(MC_ALLOC) | |
5474 test "$quick_build" = "yes" && AC_DEFINE(QUICK_BUILD) | |
5475 test "$with_purify" = "yes" && AC_DEFINE(PURIFY) | |
5476 test "$with_quantify" = "yes" && AC_DEFINE(QUANTIFY) | |
5477 test "$with_pop" = "yes" && AC_DEFINE(MAIL_USE_POP) | |
5478 test "$with_kerberos" = "yes" && AC_DEFINE(KERBEROS) | |
5479 test "$with_hesiod" = "yes" && AC_DEFINE(HESIOD) | |
5480 test "$use_union_type" = "yes" && AC_DEFINE(USE_UNION_TYPE) | |
5481 test "$pdump" = "yes" && AC_DEFINE(PDUMP) | |
5482 test "$dump_in_exec" = "yes" && AC_DEFINE(DUMP_IN_EXEC) | |
5483 test "$with_ipv6_cname" = "yes" && AC_DEFINE(IPV6_CANONICALIZE) | |
5484 | |
5485 dnl ------------------------------- | |
5486 dnl Report on what we decided to do | |
5487 dnl ------------------------------- | |
5488 | |
5489 dnl #### We should tag this as the _build_ environment. | |
5490 dnl Before doing that, though, must check if tools care about line 1. | |
5491 | |
5492 ( | |
5493 dnl /etc/osversion is on SONY NEWS-OS | |
5494 if test -f /etc/osversion; then dnl SONY NEWS-OS | |
5495 echo "osversion: `cat /etc/osversion`" | |
5496 else | |
5497 echo "uname -a: `uname -a`" | |
5498 fi | |
5499 echo "" | |
5500 echo "$0 $quoted_arguments" | |
5501 ) > Installation | |
5502 | |
5503 if test ! -z ${emacs_beta_version} ; then | |
5504 if test -z "${emacs_is_beta}" ; then | |
5505 xemacs_betaname=".${emacs_beta_version}" | |
5506 else | |
5507 xemacs_betaname="-b${emacs_beta_version}" | |
5508 fi | |
5509 else | |
5510 xemacs_betaname="" | |
5511 fi | |
5512 | |
5513 dnl Start stdout redirection to '| tee -a Installation' | |
5514 ( | |
5515 echo " | |
5516 | |
5517 XEmacs ${emacs_major_version}.${emacs_minor_version}${xemacs_betaname} \"$xemacs_codename\" $xemacs_extra_name configured for \`$canonical'. | |
5518 " | |
5519 echo " | |
5520 Compilation Environment and Installation Defaults:" | |
5521 echo " Source code location: $srcdir" | |
5522 echo " Installation prefix: $prefix" | |
5523 if test -n "$site_includes"; then | |
5524 echo " Additional header files: $site_includes" | |
5525 fi | |
5526 if test -n "$site_libraries"; then | |
5527 echo " Additional libraries: $site_libraries" | |
5528 fi | |
5529 if test -n "$site_prefixes"; then | |
5530 echo " Additional prefixes: $site_prefixes" | |
5531 fi | |
5532 if test -n "$runpath"; then | |
5533 echo " Runtime library search path: $runpath" | |
5534 fi | |
5535 | |
5536 if test -n "$opsysfile" | |
5537 then echo " Operating system description file: \`$opsysfile'" | |
5538 else echo " Not using any operating system description file" | |
5539 fi | |
5540 if test -n "$machfile" | |
5541 then echo " Machine description file: \`$machfile'" | |
5542 else echo " Not using any machine description file" | |
5543 fi | |
5544 | |
5545 echo " Compiler version: $compiler_version" | |
5546 if test -n "$gcc_compiler_specs"; then | |
5547 echo " - GCC specs file: $gcc_compiler_specs" | |
5548 fi | |
5549 echo " - Compiler command: $XEMACS_CC $XE_CFLAGS" | |
5550 if test "$CC" != "$XEMACS_CC"; then | |
5551 echo " Compiler version for lib-src: (detection code unimplemented)" | |
5552 echo " - Compiler command for lib-src: $CC $CFLAGS" | |
5553 if test "$xemacs_cc_cc_mismatch" = "yes"; then | |
5554 echo " WARNING: CC and XEMACS_CC mismatched; check CFLAGS carefully." | |
5555 fi | |
5556 fi | |
5557 echo " libc version: $libc_version" | |
5558 echo " Relocating allocator for buffers: $rel_alloc" | |
5559 echo " GNU version of malloc: ${GNU_MALLOC}${GNU_MALLOC_reason}" | |
5560 case "$ld_switch_site" in | |
5561 *nocombreloc*) echo " Linking with \`-z nocombreloc'. | |
5562 - Consider configuring with --pdump." ;; | |
5563 esac | |
5564 | |
5565 echo " | |
5566 Window System:" | |
5567 if test "$with_msw" = "yes"; then | |
5568 echo " Compiling in support for the Microsoft window system." | |
5569 fi | |
5570 if test "$with_x11" = "yes"; then | |
5571 echo " Compiling in support for the X window system:" | |
5572 echo " - X Windows headers location: $x_includes" | |
5573 echo " - X Windows libraries location: $x_libraries" | |
5574 if test "$with_xauth" != yes; then | |
5575 echo " - Xau (X authority) not available." | |
5576 fi | |
5577 if test "$with_xmu" != yes; then | |
5578 echo " - Xmu library not available; substituting equivalent routines." | |
5579 fi | |
5580 if test "$with_wmcommand" != no; then | |
5581 echo " - Handling WM_COMMAND properly." | |
5582 fi | |
5583 fi | |
5584 if test "$need_athena" = "yes"; then | |
5585 echo " Compiling in support for the Athena widget set:" | |
5586 echo " - Athena headers location: $athena_h_path" | |
5587 echo " - Athena library to link: $athena_lib" | |
5588 fi | |
5589 case "$with_menubars" in | |
5590 gtk ) echo " Using GTK menubars." ;; | |
5591 lucid ) echo " Using Lucid menubars." ;; | |
5592 motif ) echo " Using Motif menubars." | |
5593 echo " *WARNING* The Motif menubar implementation is currently buggy." | |
5594 echo " We recommend using the Lucid menubar instead." | |
5595 echo " Re-run configure with --with-menubars='lucid'." ;; | |
5596 msw ) echo " Using MS-Windows menubars." ;; | |
5597 esac | |
5598 case "$with_scrollbars" in | |
5599 gtk ) echo " Using GTK scrollbars." ;; | |
5600 lucid ) echo " Using Lucid scrollbars." ;; | |
5601 motif ) echo " Using Motif scrollbars." ;; | |
5602 athena ) echo " Using Athena scrollbars." ;; | |
5603 msw ) echo " Using MS-Windows scrollbars." ;; | |
5604 esac | |
5605 case "$with_dialogs" in | |
5606 gtk ) echo " Using GTK dialog boxes." ;; | |
5607 motif ) echo " Using Motif dialog boxes." | |
5608 if test "$unexec" = "unexaix.o"; then if test "`uname -v`" = 4 -a "`uname -r`" -ge 3; then | |
5609 echo " *WARNING* The Motif dialog boxes cause problems on AIX 4.3 and higher." | |
5610 echo " We recommend using the Athena dialog boxes instead." | |
5611 echo " Install libXaw and re-run configure with --with-dialogs='athena'." | |
5612 echo " Read the PROBLEMS file for more information." | |
5613 fi; fi ;; | |
5614 athena ) echo " Using Athena dialog boxes." ;; | |
5615 msw ) echo " Using MS-Windows dialog boxes." ;; | |
5616 esac | |
5617 case "$with_widgets" in | |
5618 gtk ) echo " Using GTK native widgets." ;; | |
5619 motif ) echo " Using Motif native widgets." ;; | |
5620 athena ) echo " Using Athena native widgets." ;; | |
5621 msw ) echo " Using MS-Windows native widgets." ;; | |
5622 esac | |
5623 if test "$with_dragndrop" = yes; then | |
5624 echo " Compiling in support for Drag'n'Drop (EXPERIMENTAL)." | |
5625 echo " - Drag'n'Drop prototype: $dragndrop_proto." | |
5626 fi | |
5627 | |
5628 echo " | |
5629 TTY:" | |
5630 test "$with_ncurses" = yes && echo " Compiling in support for ncurses." | |
5631 test "$with_gpm" = yes && echo " Compiling in support for GPM (General Purpose Mouse)." | |
5632 | |
5633 echo " | |
5634 Images:" | |
5635 test "$with_gif" = yes && echo " Compiling in support for GIF images (builtin)." | |
5636 if test "$with_xpm" = yes; then | |
5637 echo " Compiling in support for XPM images." | |
5638 elif test "$with_x11" = yes; then | |
5639 echo " WARNING: -----------------------------------------------------------" | |
5640 echo " WARNING: Compiling without XPM image support." | |
5641 if test "$xpm_problem" != ""; then | |
5642 echo " Reason: $xpm_problem" | |
5643 fi | |
5644 echo " WARNING: You should strongly consider installing XPM." | |
5645 echo " WARNING: Otherwise toolbars and other graphics will look suboptimal." | |
5646 echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)" | |
5647 echo " WARNING: -----------------------------------------------------------" | |
5648 fi | |
5649 if test "$with_png" = yes; then | |
5650 echo " Compiling in support for PNG images." | |
5651 elif test "$window_system" != "none"; then | |
5652 echo " WARNING: -----------------------------------------------------------" | |
5653 echo " WARNING: Compiling without PNG image support." | |
5654 if test "$png_problem" != ""; then | |
5655 echo " Reason: $png_problem" | |
5656 fi | |
5657 echo " WARNING: You should strongly consider installing the PNG libraries." | |
5658 echo " WARNING: Otherwise certain images and glyphs may not display." | |
5659 echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)" | |
5660 echo " WARNING: -----------------------------------------------------------" | |
5661 fi | |
5662 test "$with_jpeg" = yes && echo " Compiling in support for JPEG images." | |
5663 test "$with_tiff" = yes && echo " Compiling in support for TIFF images." | |
5664 test "$with_xface" = yes && echo " Compiling in support for X-Face message headers." | |
5665 | |
5666 echo " | |
5667 Sound:" | |
5668 test "$with_native_sound" = yes && echo " Compiling in support for sound (native)." | |
5669 test "$with_nas_sound" = yes && echo " Compiling in support for NAS (network audio system)." | |
5670 test "$old_nas" = yes && echo " - NAS library lacks error trapping; will play synchronously." | |
5671 test "$with_esd_sound" = yes && echo " Compiling in support for ESD (Enlightened Sound Daemon)." | |
5672 | |
5673 echo " | |
5674 Databases:" | |
5675 test "$with_database_berkdb" = yes && echo " Compiling in support for Berkeley database." | |
5676 test "$with_database_dbm" = yes && echo " Compiling in support for DBM." | |
5677 test "$with_database_gdbm" = yes && echo " Compiling in support for GNU DBM." | |
5678 test "$with_ldap" = yes && echo " Compiling in support for LDAP." | |
5679 if test "$with_postgresql" = yes; then | |
5680 echo " Compiling in support for PostgreSQL." | |
5681 echo " - Using PostgreSQL header file: $libpq_fe_h_file" | |
5682 test "$with_postgresqlv7" = yes && echo " - Using PostgreSQL V7 bindings." | |
5683 fi | |
5684 | |
5685 echo " | |
5686 Internationalization:" | |
5687 test "$with_mule" = yes && echo " Compiling in support for Mule (multi-lingual Emacs)." | |
5688 test "$with_xim" != no && echo " Compiling in support for XIM (X11R5+ I18N input method)." | |
5689 test "$with_xim" = motif && echo " - Using Motif to provide XIM support." | |
5690 test "$with_xim" = xlib && echo " - Using raw Xlib to provide XIM support." | |
5691 test "$with_xfs" = yes && echo " - Using XFontSet to provide bilingual menubar." | |
5692 test "$with_canna" = yes && echo " Compiling in support for Canna on Mule." | |
5693 if test "$with_wnn" = yes; then | |
5694 echo " Compiling in support for the WNN input method on Mule." | |
5695 test "$with_wnn6" = yes && echo " - Using WNN version 6." | |
5696 fi | |
5697 | |
5698 echo " | |
5699 Mail:" | |
5700 test "$with_pop" = yes && echo " Compiling in support for POP mail retrieval." | |
5701 test "$with_kerberos" = yes && echo " Compiling in support for Kerberos POP authentication." | |
5702 test "$with_hesiod" = yes && echo " Compiling in support for Hesiod POP server access." | |
5703 test -n "$mail_locking" && echo " Compiling in support for \"$mail_locking\" mail spool file locking method." | |
5704 | |
5705 echo " | |
5706 Other Features:" | |
5707 test "$with_ipv6_cname" = no && echo " Inhibiting IPv6 canonicalization at startup." | |
5708 test "$with_tooltalk" = yes && echo " Compiling in support for ToolTalk." | |
5709 test "$with_workshop" = yes && echo " Compiling in support for Sun WorkShop." | |
5710 test "$with_socks" = yes && echo " Compiling in support for SOCKS." | |
5711 test "$with_dnet" = yes && echo " Compiling in support for DNET." | |
5712 test "$with_modules" = "yes" && echo " Compiling in support for dynamic shared object modules." | |
5713 test "$use_number_lib" = "gmp" && echo " Compiling in support for more number types using the GNU MP library." | |
5714 test "$use_number_lib" = "mp" && echo " Compiling in support for more number types using the BSD MP library." | |
5715 if test "$use_union_type" = yes ; then | |
5716 echo " Using the union type for Lisp_Objects." | |
5717 echo " WARNING: ---------------------------------------------------------" | |
5718 echo " WARNING: This tends to trigger compiler bugs, especially when" | |
5719 echo " WARNING: combined with MULE and ERROR_CHECKING. Crashes have" | |
5720 echo " WARNING: been seen with various versions of GCC (up to about 2.95)," | |
5721 echo " WARNING: and recently with Visual C++ as well (mid-2003)." | |
5722 echo " WARNING: More recent versions may be safer, or not." | |
5723 echo " WARNING: ---------------------------------------------------------" | |
5724 fi | |
5725 test "$use_kkcc" = yes && echo " Using the new GC algorithms." | |
5726 test "$mc_alloc" = yes && echo " Using the new allocator." | |
5727 test "$pdump" = yes && echo " Using the new portable dumper." | |
5728 test "$dump_in_exec" = yes && echo " Dumping into executable." | |
5729 test "$debug" = yes && echo " Compiling in support for extra debugging code." | |
5730 test "$usage_tracking" = yes && echo " Compiling in support for active usage tracking (Sun internal)." | |
5731 if test "$error_check_extents $error_check_types $error_check_text $error_check_gc $error_check_malloc $error_check_glyphs $error_check_byte_code $error_check_display $error_check_structures" \ | |
5732 != "no no no no no no no no no"; then | |
5733 echo " Compiling in support for runtime error checking." | |
5734 echo " WARNING: ---------------------------------------------------------" | |
5735 echo " WARNING: XEmacs will run noticeably more slowly as a result." | |
5736 echo " WARNING: Error checking is on by default for XEmacs beta releases." | |
5737 echo " WARNING: ---------------------------------------------------------" | |
5738 fi | |
5739 echo "" | |
5740 ) | tee -a Installation | |
5741 dnl echo "The above configure report is appended to \"Installation\" file." | |
5742 echo "" | |
5743 | |
5744 dnl ----------------------------------- | |
5745 dnl Now generate config.h and Makefiles | |
5746 dnl ----------------------------------- | |
5747 dnl This has to be called in order for this variable to get into config.status | |
5748 AC_SUBST(internal_makefile_list) | |
5749 # Remove any trailing slashes in these variables. | |
5750 test -n "$prefix" && | |
5751 prefix=`echo '' "$prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'` | |
5752 test -n "$exec_prefix" && | |
5753 exec_prefix=`echo '' "$exec_prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'` | |
5754 | |
5755 dnl Build Makefile.in's from Makefile.in.in's | |
5756 dnl except ./Makefile from $srcdir/Makefile.in | |
5757 dnl src/Makefile.in will have src/depend appended to it; | |
5758 dnl module Makefiles will have the common text in | |
5759 dnl modules/common/Makefile.common appended. | |
5760 | |
5761 for file in $internal_makefile_list; do | |
5762 case $file in | |
5763 src/Makefile.in ) file="src/Makefile.in:src/Makefile.in.in:src/depend" ;; | |
5764 modules/* ) file="${file}:${file}.in:modules/common/Makefile.common" ;; | |
5765 esac | |
5766 XE_APPEND($file, ac_output_files) | |
5767 done | |
5768 ac_output_files="$ac_output_files src/paths.h src/xemacs.def.in lib-src/config.values" | |
5769 test "$with_modules" = "yes" && XE_APPEND(lib-src/ellcc.h, ac_output_files) | |
5770 | |
5771 AC_OUTPUT($ac_output_files, | |
5772 [for dir in . $MAKE_SUBDIR; do | |
5773 ( | |
5774 cd $dir | |
5775 | |
5776 dnl Normally []'s are used for quoting but this will cause problems | |
5777 dnl since we use brackets in sed. When not inside of a macro definition, | |
5778 dnl two brackets become one, but inside of a macro definition you need | |
5779 dnl more, or something -- I don't understand, but Martin probably does. | |
5780 dnl We put the brackets back later. | |
5781 dnl [ben] | |
5782 changequote(<<,>>)dnl | |
5783 | |
5784 dnl MAKE_JUNK_C(filename): | |
5785 dnl Copy a .in file to junk.c in preparation for passing through the | |
5786 dnl C preprocessor. Delete comment lines, pass lines that will be | |
5787 dnl interpreted by cpp through directly, and put quotes around remaining | |
5788 dnl lines, to avoid problems from overly helpful preprocessors that | |
5789 dnl "helpfully" put extra quotes in various places for later use by the | |
5790 dnl compiler. Later, the quotes will be removed. | |
5791 | |
5792 define(<<MAKE_JUNK_C>>, | |
5793 rm -f junk.c | |
5794 < <<$1>> \ | |
5795 sed -e '/^# Generated/d' \ | |
5796 -e 's%/\*\*/#.*%%' \ | |
5797 -e 's/^ *# */#/' \ | |
5798 dnl Delete Makefile.in.in comment lines | |
5799 -e '/^##/d' \ | |
5800 dnl Pass through CPP directives unchanged | |
5801 -e '/^#/ { | |
5802 p | |
5803 d | |
5804 }' \ | |
5805 dnl Quote other lines to protect from CPP substitution | |
5806 -e '/./ { | |
5807 s/\([\"]\)/\\\1/g | |
5808 s/^/"/ | |
5809 s/$/"/ | |
5810 }' > junk.c; | |
5811 )dnl MAKE_JUNK_C | |
5812 | |
5813 dnl CPP_MAKEFILE(CPPFLAGS,filename): | |
5814 dnl Pass junk.c through the preprocessor and put the result in FILENAME. | |
5815 | |
5816 define(<<CPP_MAKEFILE>>, | |
5817 echo creating $dir/<<$2>> | |
5818 $CPP -I. -I${top_srcdir}/src <<$1>> junk.c \ | |
5819 dnl Delete line directives inserted by $CPP | |
5820 | sed -e 's/^\#.*//' \ | |
5821 dnl Delete spurious blanks inserted by $CPP | |
5822 -e 's/^[ TAB][ TAB]*$//'\ | |
5823 -e 's/^ /TAB/' \ | |
5824 dnl Delete blank lines | |
5825 -e '/^[ ]*$/d' \ | |
5826 dnl Restore lines quoted above to original contents. | |
5827 -e '/^\"/ { | |
5828 s/\\\([\"]\)/\1/g | |
5829 s/^[ TAB]*\"// | |
5830 s/\"[ TAB]*$// | |
5831 }' > Makefile.new | |
5832 chmod 444 Makefile.new | |
5833 mv -f Makefile.new <<$2>> | |
5834 )dnl CPP_MAKEFILE | |
5835 | |
5836 dnl Create a GNUmakefile and Makefile from Makefile.in. | |
5837 dnl Create xemacs.def from xemacs.def.in in the same fashion, | |
5838 dnl if it exists (i.e. in the src/ directory). | |
5839 MAKE_JUNK_C(Makefile.in) | |
5840 CPP_MAKEFILE(,Makefile) | |
5841 CPP_MAKEFILE(-DUSE_GNU_MAKE,GNUmakefile) | |
5842 if test -r "xemacs.def.in"; then | |
5843 dnl #### We should be using MAKE_JUNK_C instead of the next two lines. | |
5844 dnl #### But the comments in xemacs.def.in need to be converted from C-style | |
5845 dnl #### to lines beginning with ##. | |
5846 rm -f junk.c | |
5847 cp xemacs.def.in junk.c | |
5848 CPP_MAKEFILE(,xemacs.def) | |
5849 fi | |
5850 changequote([,])dnl | |
5851 rm -f junk.c | |
5852 ) | |
5853 done | |
5854 | |
5855 dnl Append AC_DEFINE information to lib-src/config.values | |
5856 dnl (AC_SUBST information is already there (see config.values.sh). | |
5857 sed < config.status >> lib-src/config.values \ | |
5858 -e '/{ac_dA}.*{ac_dB}.*{ac_dC}.*{ac_dD}$/!d' \ | |
5859 -e 's/\${ac_dA}\(.*\)\${ac_dB}.*\${ac_dC}\(.*\)\${ac_dD}/\1 \2/' \ | |
5860 -e 's/^\([[^ ]]*\) $/\1 ""/' \ | |
5861 -e 's/ 1$/ t/' | |
5862 | |
5863 ], | |
5864 [CPP="$CPP" | |
5865 top_srcdir="$srcdir" | |
5866 MAKE_SUBDIR="$MAKE_SUBDIR" | |
5867 ])dnl |