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