Mercurial > hg > xemacs-beta
annotate configure.ac @ 4424:42711a251efd
Look for all x86 machines to determine which write barrier to use on MacOSX.
author | Marcus Crestani <crestani@informatik.uni-tuebingen.de> |
---|---|
date | Fri, 15 Feb 2008 13:11:56 +0100 |
parents | eb82fbb675ea |
children | e4225b6d9389 |
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], | |
4350
50889296c05c
Fix typo of "late packages" for "last packages".
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4328
diff
changeset
|
669 AS_HELP_STRING([--with-legacy-packages=DIR],[Specify location of last/legacy packages (instead of default location; same as --with-last-packages).]), |
50889296c05c
Fix typo of "late packages" for "last packages".
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4328
diff
changeset
|
670 [AC_DEFINE(LAST_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 |
4412
2f000e022a8b
Fix misspelling of option 'gdbm'.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4401
diff
changeset
|
869 of `berkdb' and either `dbm' or `gdbm'.]), |
3073 | 870 [ |
871 if test "$enable_database_dbm" = "yes" -a "$enable_database_gdbm" = "yes"; then | |
4412
2f000e022a8b
Fix misspelling of option 'gdbm'.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4401
diff
changeset
|
872 USAGE_ERROR("Only one of \`dbm' and \`gdbm' may be specified |
3073 | 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) | |
4092 | 1076 AC_DEFINE(ETCDIR_USER_DEFINED) |
1077 fi | |
1078 | |
1079 if test "x$lib_expanded" != "x$prefix_expanded/lib" | |
1080 then | |
2651 | 1081 AC_DEFINE(MODULEDIR_USER_DEFINED) |
4092 | 1082 AC_DEFINE(ARCHLIBDIR_USER_DEFINED) |
2651 | 1083 AC_DEFINE(DOCDIR_USER_DEFINED) |
1084 fi | |
3729 | 1085 |
1086 XE_EXPAND_VARIABLE(exec_prefix,exec_prefix_expanded) | |
1087 XE_EXPAND_VARIABLE(libdir,libdir_expanded) | |
1088 | |
1089 if test "x$libdir_expanded" != "x$exec_prefix_expanded/lib" | |
2651 | 1090 then |
1091 AC_DEFINE(ARCHLIBDIR_USER_DEFINED) | |
1092 fi | |
3729 | 1093 |
1094 XE_EXPAND_VARIABLE(mandir,mandir_expanded) | |
1095 | |
1096 if test "x$mandir_expanded" = "x$prefix_expanded/man" | |
2651 | 1097 then |
4118 | 1098 mandir='${datarootdir}/man/man1' |
2651 | 1099 fi |
3729 | 1100 |
1101 XE_EXPAND_VARIABLE(infodir,infodir_expanded) | |
1102 | |
1103 if test "x$infodir_expanded" != "x${prefix_expanded}/info" | |
2651 | 1104 then |
1105 AC_DEFINE(INFODIR_USER_DEFINED) | |
1106 else | |
4118 | 1107 infodir='${datarootdir}/${instvardir}/info' |
2651 | 1108 fi |
1109 | |
1110 with_sitelispdir='${datadir}/${inststaticdir}/site-lisp' | |
1111 inststaticdir='${PROGNAME}' | |
1112 instvardir='${PROGNAME}-${version}' | |
1113 sitemoduledir='${libdir}/${inststaticdir}/site-modules' | |
1114 | |
1115 AC_SUBST(inststaticdir) | |
1116 AC_SUBST(statedir,$with_statedir) | |
1117 | |
1118 dnl ------------------------------------------------------------------------- | |
1119 | |
1120 AC_PROG_LN_S | |
1121 | |
1122 dnl Make symlinks for etc, lisp, and info directories while the path | |
1123 dnl is still relative. We do not symlink lock because someone may | |
1124 dnl have stuck the source on a read-only partition. Instead we | |
1125 dnl create it as an actual directory later on if it does not already | |
1126 dnl exist. | |
1127 for dir in lisp etc man info tests; do | |
1128 if test ! -d "$dir" ; then | |
1129 echo Making symbolic link to "$srcdir/$dir" | |
1130 ${LN_S} "$srcdir/$dir" "$dir" | |
1131 fi | |
1132 done | |
1133 | |
1134 dnl Calculate canonical name for blddir (i.e. current directory). | |
1135 dnl PWD may already be the preferable absolute name for ".", | |
1136 dnl but we can't trust it - it is sometimes inaccurate. | |
1137 absolute_pwd="`pwd`"; | |
1138 if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd" | |
1139 then blddir="$PWD" | |
1140 else blddir="$absolute_pwd"; CANONICALIZE_PATH(blddir) | |
1141 fi | |
1142 AC_SUBST(blddir) | |
1143 | |
1144 dnl Make srcdir absolute, if not already. It is important to | |
1145 dnl avoid running the path through pwd unnecessary, since pwd can | |
1146 dnl give you automounter prefixes, which can go away. | |
1147 case "$srcdir" in | |
1148 /* ) ;; | |
1149 . ) srcdir="$blddir" ;; | |
1150 * ) srcdir="`cd $srcdir && pwd`"; CANONICALIZE_PATH(srcdir) ;; | |
1151 esac | |
1152 | |
1153 dnl Check if the source directory already has a configured system in it. | |
1154 if test `pwd` != `sh -c cd $srcdir && pwd` \ | |
1155 && test -f "$srcdir/src/config.h"; then | |
1156 (echo "$progname: WARNING: The directory tree \`$srcdir' is being used" | |
1157 echo " as a build directory right now; it has been configured in its own" | |
1158 echo " right. To configure in another directory as well, you MUST" | |
1159 echo " use GNU make. If you do not have GNU make, then you must" | |
1160 echo " now do \`make distclean' in $srcdir," | |
1161 echo " and then run $progname again.") >&2 | |
1162 extrasub='/^VPATH[[ ]]*=/c\ | |
1163 vpath %.c $(srcdir)\ | |
1164 vpath %.h $(srcdir)\ | |
1165 vpath %.y $(srcdir)\ | |
1166 vpath %.l $(srcdir)\ | |
1167 vpath %.s $(srcdir)\ | |
1168 vpath %.in $(srcdir)' | |
1169 fi | |
1170 | |
2741 | 1171 dnl ------------------------------------------------------------------------- |
1172 AC_CONFIG_AUX_DIR_DEFAULT | |
1173 AC_CANONICAL_BUILD | |
1174 dnl ------------------------------------------------------------------------- | |
1175 | |
2651 | 1176 dnl ---------------------------------------- |
1177 dnl Find out which version of XEmacs this is | |
1178 dnl ---------------------------------------- | |
4419
eb82fbb675ea
Use Mercurial changeset hash to identify build version.
Mike Sperber <sperber@deinprogramm.de>
parents:
4412
diff
changeset
|
1179 dnl This should be the same code as in Makefile.in.in |
eb82fbb675ea
Use Mercurial changeset hash to identify build version.
Mike Sperber <sperber@deinprogramm.de>
parents:
4412
diff
changeset
|
1180 cp "$srcdir/version.sh.in" "$srcdir/version.sh" |
eb82fbb675ea
Use Mercurial changeset hash to identify build version.
Mike Sperber <sperber@deinprogramm.de>
parents:
4412
diff
changeset
|
1181 if test -d "$srcdir/.hg"; then |
eb82fbb675ea
Use Mercurial changeset hash to identify build version.
Mike Sperber <sperber@deinprogramm.de>
parents:
4412
diff
changeset
|
1182 (cd "$srcdir"; hg identify | cut -d " " -f 1 >> version.sh) |
eb82fbb675ea
Use Mercurial changeset hash to identify build version.
Mike Sperber <sperber@deinprogramm.de>
parents:
4412
diff
changeset
|
1183 fi |
2651 | 1184 . "$srcdir/version.sh" || exit 1; |
1185 dnl Must do the following first to determine verbosity for AC_DEFINE | |
1186 if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi | |
1187 : "${verbose=$beta}" | |
1188 version="${emacs_major_version}.${emacs_minor_version}" | |
1189 AC_DEFINE_UNQUOTED(EMACS_MAJOR_VERSION, $emacs_major_version) | |
1190 AC_DEFINE_UNQUOTED(EMACS_MINOR_VERSION, $emacs_minor_version) | |
1191 if test -n "$emacs_beta_version" ; then | |
1192 if test "$beta" = "yes"; then | |
1193 version="${version}-b${emacs_beta_version}" | |
1194 AC_DEFINE_UNQUOTED(EMACS_BETA_VERSION, $emacs_beta_version) | |
1195 else | |
1196 version="${version}.${emacs_beta_version}" | |
1197 AC_DEFINE_UNQUOTED(EMACS_PATCH_LEVEL, $emacs_beta_version) | |
1198 fi | |
1199 fi | |
1200 AC_DEFINE_UNQUOTED(XEMACS_CODENAME, "$xemacs_codename") | |
3972 | 1201 dnl for etags |
1202 verbose_version=$version | |
2651 | 1203 if test "$xemacs_extra_name" != ""; then |
1204 AC_DEFINE_UNQUOTED(XEMACS_EXTRA_NAME, "$xemacs_extra_name") | |
3972 | 1205 verbose_version="$verbose_version $xemacs_extra_name" |
2651 | 1206 fi |
1207 if test "$xemacs_release_date" != ""; then | |
1208 AC_DEFINE_UNQUOTED(XEMACS_RELEASE_DATE, "$xemacs_release_date") | |
1209 fi | |
1210 AC_DEFINE_UNQUOTED(EMACS_VERSION, "$version") | |
1211 | |
1212 if test "$with_infodock" = "yes"; then | |
1213 if test ! -f ../../ID-INSTALL; then | |
1214 echo "Cannot build InfoDock without InfoDock sources" | |
1215 with_infodock=no | |
1216 fi | |
1217 fi | |
1218 | |
1219 if test "$with_infodock" = "yes"; then | |
1220 dnl InfoDock version numbers. XEmacs will use the same style of numbering | |
1221 dnl after the release of XEmacs 21.0. | |
1222 AC_DEFINE_UNQUOTED(INFODOCK_MAJOR_VERSION, $infodock_major_version) | |
1223 AC_DEFINE_UNQUOTED(INFODOCK_MINOR_VERSION, $infodock_minor_version) | |
1224 AC_DEFINE_UNQUOTED(INFODOCK_BUILD_VERSION, $infodock_build_version) | |
1225 version=${infodock_major_version}.${infodock_minor_version}.${infodock_build_version} | |
1226 PROGNAME=infodock | |
1227 CPPFLAGS="$CPPFLAGS -DINFODOCK" | |
1228 else | |
1229 PROGNAME=xemacs | |
1230 fi | |
1231 | |
1232 AC_DEFINE_UNQUOTED(EMACS_PROGNAME, "$PROGNAME") | |
1233 | |
1234 dnl ---------------------------------- | |
1235 dnl Error checking and debugging flags | |
1236 dnl ---------------------------------- | |
1237 dnl Error checking default to "yes" in beta versions, to "no" in releases. | |
1238 dnl Same goes for --enable-debug and --extra-verbosity. | |
1239 if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi | |
1240 test "${enable_error_checking_extents:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_EXTENTS) | |
1241 test "${enable_error_checking_types:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_TYPES) | |
1242 test "${enable_error_checking_text:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_TEXT) | |
1243 test "${enable_error_checking_gc:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_GC) | |
1244 test "${enable_error_checking_malloc:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_MALLOC) | |
1245 test "${enable_error_checking_byte_code:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_BYTE_CODE) | |
1246 test "${enable_error_checking_glyphs:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_GLYPHS) | |
1247 test "${enable_error_checking_display:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_DISPLAY) | |
1248 test "${enable_error_checking_structures:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_STRUCTURES) | |
1249 dnl enable_debug=yes must be set when error checking is present. This should be | |
1250 dnl fixed up. | |
1251 dnl enable_debug implies other options | |
1252 if test "${enable_debug:=$beta}" = "yes"; then | |
1253 enable_assertions=yes | |
1254 enable_memory_usage_stats=yes | |
1255 AC_DEFINE(DEBUG_XEMACS) | |
1256 fi | |
1257 test "$enable_assertions" = "yes" && AC_DEFINE(USE_ASSERTIONS) | |
1258 test "$enable_memory_usage_stats" = "yes" && AC_DEFINE(MEMORY_USAGE_STATS) | |
1259 | |
1260 dnl ------------------------------ | |
1261 dnl Determine the s&m files to use | |
1262 dnl ------------------------------ | |
1263 dnl Given the configuration name, set machfile and opsysfile to the | |
1264 dnl names of the m/*.h and s/*.h files we should use. | |
1265 | |
1266 dnl Canonicalize the configuration name. | |
1267 XE_STRIP_4TH_COMPONENT(ac_cv_build_alias) | |
1268 XE_STRIP_4TH_COMPONENT(ac_cv_build) | |
1269 AC_SUBST(configuration, $ac_cv_build) | |
1270 | |
1271 dnl If you add support for a new configuration, add code to this | |
1272 dnl switch statement to recognize your configuration name and select | |
1273 dnl the appropriate operating system and machine description files. | |
1274 | |
1275 dnl You would hope that you could choose an m/*.h file pretty much | |
1276 dnl based on the machine portion of the configuration name, and an s- | |
1277 dnl file based on the operating system portion. However, it turns out | |
1278 dnl that each m/*.h file is pretty manufacturer-specific - for | |
1279 dnl example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are | |
1280 dnl all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS | |
1281 dnl machines. So we basically have to have a special case for each | |
1282 dnl configuration name. | |
1283 | |
1284 dnl As far as handling version numbers on operating systems is | |
1285 dnl concerned, make sure things will fail in a fixable way. If | |
1286 dnl /etc/MACHINES says nothing about version numbers, be | |
1287 dnl prepared to handle anything reasonably. If version numbers | |
1288 dnl matter, be sure /etc/MACHINES says something about it. | |
1289 | |
1290 dnl Eric Raymond says we should accept strings like "sysvr4" to mean | |
1291 dnl "System V Release 4"; he writes, "The old convention encouraged" | |
1292 dnl "confusion between `system' and `release' levels'." | |
1293 | |
1294 machine='' opsys='' | |
1295 | |
1296 dnl Straightforward machine determination | |
1297 case "$ac_cv_build" in | |
1298 sparc-*-* ) machine=sparc ;; | |
1299 alpha*-*-* ) machine=alpha ;; | |
1300 vax-*-* ) machine=vax ;; | |
1301 mips-dec-* ) machine=pmax ;; | |
1302 mips-sgi-irix6* ) machine=iris6d ;; | |
1303 mips-sgi-* ) machine=iris4d ;; | |
1304 mips*-linux ) machine=mips ;; | |
1305 romp-ibm-* ) machine=ibmrt ;; | |
1306 rs6000-ibm-aix* ) machine=ibmrs6000 ;; | |
1307 powerpc-ibm-aix* ) machine=ibmrs6000 ;; | |
1308 powerpc*-* ) machine=powerpc ;; | |
1309 hppa-*-* ) machine=hp800 ;; | |
1310 m88k-dg-* ) machine=aviion ;; | |
1311 m68*-sony-* ) machine=news ;; | |
1312 mips-sony-* ) machine=news-risc ;; | |
1313 clipper-* ) machine=clipper ;; | |
1314 arm* ) machine=arm ;; | |
1315 ns32k-* ) machine=ns32000 ;; | |
1316 esac | |
1317 | |
1318 dnl Straightforward OS determination | |
1319 case "$ac_cv_build" in | |
1320 *-*-linux* ) opsys=linux ;; | |
1321 *-*-netbsd* ) opsys=netbsd ;; | |
1322 *-*-openbsd* ) opsys=openbsd ;; | |
1323 *-*-nextstep* ) opsys=nextstep ;; | |
1324 *-*-vms ) opsys=vms ;; | |
1325 | |
1326 dnl DEC OSF | |
1327 *-dec-osf1.3 | *-dec-osf2* ) opsys=decosf1-3 ;; | |
1328 *-dec-osf1.2 | *-dec-osf1* ) opsys=decosf1-2 ;; | |
1329 *-dec-osf3.[[2-9]] ) opsys=decosf3-2 ;; | |
1330 *-dec-osf3* ) opsys=decosf3-1 ;; | |
1331 *-dec-osf[[4-9]]* ) opsys=decosf4-0 ;; | |
1332 | |
1333 dnl DEC Ultrix | |
1334 *-*-ultrix[[0-3]].* | *-*-ultrix4.0* ) opsys=bsd4-2 ;; | |
1335 *-*-ultrix4.[[12]]* ) opsys=bsd4-3 ;; | |
1336 *-*-ultrix* ) opsys=ultrix4-3 ;; | |
1337 | |
1338 dnl AIX | |
1339 *-*-aix3.1* ) opsys=aix3-1 ;; | |
1340 *-*-aix3.2.5 ) opsys=aix3-2-5 ;; | |
1341 *-*-aix3* ) opsys=aix3-2 ;; | |
1342 *-*-aix4.0* ) opsys=aix4 ;; | |
1343 *-*-aix4.1* ) opsys=aix4-1 ;; | |
1344 *-*-aix[[4-9]]* ) opsys=aix4-2 ;; | |
1345 | |
1346 dnl Other generic OSes | |
1347 *-gnu* ) opsys=gnu ;; | |
1348 *-*-bsd4.[[01]] ) opsys=bsd4-1 ;; | |
1349 *-*-bsd4.2 ) opsys=bsd4-2 ;; | |
1350 *-*-bsd4.3 ) opsys=bsd4-3 ;; | |
1351 *-*-aos4.2 ) opsys=bsd4-2 ;; | |
1352 *-*-aos* ) opsys=bsd4-3 ;; | |
1353 *-*-sysv0 | *-*-sysvr0 ) opsys=usg5-0 ;; | |
1354 *-*-sysv2 | *-*-sysvr2 ) opsys=usg5-2 ;; | |
1355 *-*-sysv2.2 | *-*-sysvr2.2 ) opsys=usg5-2-2 ;; | |
1356 *-*-sysv3* | *-*-sysvr3* ) opsys=usg5-3 ;; | |
1357 *-*-sysv4.1* | *-*-sysvr4.1* )opsys=usg5-4 NON_GNU_CPP=/usr/lib/cpp ;; | |
1358 *-*-sysv4.[[2-9]]* | *-sysvr4.[[2-9]]* ) | |
1359 if test -z "$NON_GNU_CPP" ; then | |
1360 for prog in "/usr/ccs/lib/cpp" "/lib/cpp"; do | |
1361 if test -f "$prog"; then NON_GNU_CPP="$prog"; break; fi | |
1362 done | |
1363 fi | |
1364 opsys=usg5-4-2 ;; | |
1365 *-sysv4* | *-sysvr4* ) opsys=usg5-4 ;; | |
1366 *-*-mach_bsd4.3* ) opsys=mach-bsd4-3 ;; | |
1367 esac | |
1368 | |
1369 case "$ac_cv_build" in | |
1370 | |
1371 dnl NetBSD ports | |
1372 *-*-netbsd* ) | |
2663 | 1373 case "${ac_cv_build}" in |
2651 | 1374 i[[3-9]]86-*-netbsd*) machine=intel386 ;; |
1375 hp300-*-netbsd* | amiga-*-netbsd* | sun3-*-netbsd* | mac68k-*-netbsd* | da30-*-netbsd* | m68k-*-netbsd* ) | |
1376 dnl Yes, this is somewhat bogus. | |
1377 machine=hp9000s300 ;; | |
1378 pc532-*-netbsd* | ns32k-*-netbsd* ) machine=ns32000 ;; | |
1379 pmax-*-netbsd* | mips-*-netbsd* ) machine=pmax ;; | |
1380 esac | |
1381 ;; | |
1382 | |
1383 dnl OpenBSD ports | |
1384 *-*-openbsd* ) | |
1385 case "${ac_cv_build}" in | |
1386 i386-*-openbsd*) machine=intel386 ;; | |
1387 m68k-*-openbsd*) machine=hp9000s300 ;; | |
1388 mipsel-*-openbsd*) machine=pmax ;; | |
1389 esac | |
1390 ;; | |
1391 | |
1392 dnl Acorn RISCiX: | |
1393 arm-acorn-riscix1.1* ) machine=acorn opsys=riscix1-1 ;; | |
1394 arm-acorn-riscix1.2* | arm-acorn-riscix ) machine=acorn opsys=riscix1-2 ;; | |
1395 | |
1396 dnl Alliant machines | |
1397 fx80-alliant-* ) machine=alliant4 opsys=bsd4-2 ;; | |
1398 i860-alliant-* ) machine=alliant-2800 opsys=bsd4-3 ;; | |
1399 | |
1400 dnl Altos 3068 | |
1401 m68*-altos-sysv* ) machine=altos opsys=usg5-2 ;; | |
1402 | |
1403 dnl Amdahl UTS | |
1404 580-amdahl-sysv* ) machine=amdahl opsys=usg5-2-2 ;; | |
1405 | |
1406 dnl Apollo, Domain/OS | |
1407 m68*-apollo-* ) machine=apollo opsys=bsd4-3 ;; | |
1408 | |
1409 dnl AT&T 3b2, 3b5, 3b15, 3b20 | |
1410 we32k-att-sysv* ) machine=att3b opsys=usg5-2-2 ;; | |
1411 | |
1412 dnl AT&T 3b1 - The Mighty Unix PC! | |
1413 m68*-att-sysv* ) machine=7300 opsys=usg5-2-2 ;; | |
1414 | |
1415 dnl Bull machines | |
1416 rs6000-bull-bosx* ) machine=ibmrs6000 opsys=aix3-2 ;; # dpx20 | |
1417 m68*-bull-sysv3* ) machine=dpx2 opsys=usg5-3 ;; # dpx2 | |
1418 m68*-bull-sysv2* ) machine=sps7 opsys=usg5-2 ;; # sps7 | |
1419 | |
1420 dnl CCI 5/32, 6/32 -- see "Tahoe". | |
1421 | |
1422 dnl Celerity | |
1423 celerity-celerity-bsd* ) machine=celerity opsys=bsd4-2 ;; | |
1424 | |
1425 dnl Convex | |
1426 *-convex-bsd* | *-convex-convexos* ) | |
1427 machine=convex opsys=bsd4-3 | |
1428 NON_GNU_CPP="cc -E -P" | |
1429 ;; | |
1430 | |
1431 dnl Cubix QBx/386 | |
1432 i[[3-9]]86-cubix-sysv* ) machine=intel386 opsys=usg5-3 ;; | |
1433 | |
1434 dnl Darwin, a.k.a. MacOS X (based on Mach and Freebsd) | |
1435 *-*-darwin*) | |
1436 opsys=darwin | |
1437 ;; | |
1438 | |
1439 dnl Data General AViiON Machines | |
1440 i586-dg-dgux*R4* | i586-dg-dgux5.4.4* ) machine=aviion opsys=dgux5-4r4 ;; | |
1441 m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* ) opsys=dgux5-4r3 ;; | |
1442 m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* ) opsys=dgux5-4r2 ;; | |
1443 m88k-dg-dgux* ) opsys=dgux ;; | |
1444 | |
1445 dnl Motorola Delta machines | |
1446 m68k-motorola-sysv* | m68000-motorola-sysv* ) machine=delta opsys=usg5-3 ;; | |
1447 m88k-motorola-sysv4* ) | |
1448 dnl jbotte@bnr.ca says that UNIX_System_V <hostName> 4.0 R40V4.3 m88k mc88110 | |
1449 dnl needs POSIX_SIGNALS and therefore needs usg5-4-2. | |
1450 dnl I hope there are not other 4.0 versions for this machine | |
1451 dnl which really need usg5-4 instead. | |
1452 machine=delta88k opsys=usg5-4-2 | |
1453 ;; | |
1454 m88k-motorola-sysv* | m88k-motorola-m88kbcs* ) machine=delta88k opsys=usg5-3 ;; | |
1455 | |
1456 dnl Dual machines | |
1457 m68*-dual-sysv* ) machine=dual opsys=usg5-2 ;; | |
1458 m68*-dual-uniplus* ) machine=dual opsys=unipl5-2 ;; | |
1459 | |
1460 dnl Encore machines | |
1461 ns16k-encore-bsd* ) machine=ns16000 opsys=umax ;; | |
1462 | |
1463 dnl Gould Power Node and NP1 | |
1464 pn-gould-bsd4.2* ) machine=gould opsys=bsd4-2 ;; | |
1465 pn-gould-bsd4.3* ) machine=gould opsys=bsd4-3 ;; | |
1466 np1-gould-bsd* ) machine=gould-np1 opsys=bsd4-3 ;; | |
1467 | |
1468 dnl Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000 | |
1469 dnl as far as XEmacs is concerned). | |
1470 m88k-harris-cxux* ) | |
1471 dnl Build needs to be different on 7.0 and later releases | |
1472 case "`uname -r`" in | |
1473 [[56]].[[0-9]] ) machine=nh4000 opsys=cxux ;; | |
1474 [[7]].[[0-9]] ) machine=nh4000 opsys=cxux7 ;; | |
1475 esac | |
1476 NON_GNU_CPP="/lib/cpp" | |
1477 ;; | |
1478 dnl Harris ecx or gcx running CX/UX (Series 1200, Series 3000) | |
1479 m68k-harris-cxux* ) machine=nh3000 opsys=cxux ;; | |
1480 dnl Harris power pc NightHawk running Power UNIX (Series 6000) | |
1481 powerpc-harris-powerunix ) machine=nh6000 opsys=powerunix NON_GNU_CPP="cc -Xo -E -P" ;; | |
1482 | |
1483 dnl Honeywell XPS100 | |
1484 xps*-honeywell-sysv* ) machine=xps100 opsys=usg5-2 ;; | |
1485 | |
1486 dnl HP 9000 series 200 or 300 | |
1487 m68*-hp-bsd* ) machine=hp9000s300 opsys=bsd4-3 ;; | |
1488 | |
1489 dnl HP-UX | |
1490 *-hp-hpux* ) | |
1491 dnl Figure out machine and opsys orthogonally | |
1492 case "$ac_cv_build" in | |
1493 m68* ) machine=hp9000s300 ;; | |
1494 hppa* ) machine=hp800 ;; | |
1495 esac | |
1496 | |
1497 case "$ac_cv_build" in | |
1498 *-hp-hpux7* ) opsys=hpux ;; | |
1499 *-hp-hpux8* ) opsys=hpux8 ;; | |
1500 *-hp-hpux9* ) opsys=hpux9 ;; | |
1501 *-hp-hpux10* ) opsys=hpux10 ;; | |
1502 *-hp-hpux11* ) opsys=hpux11 ;; | |
1503 * ) opsys=hpux ;; | |
1504 esac | |
1505 | |
1506 dnl HP has a broken "strcat" | |
1507 case "$opsys" in hpux9 | hpux10 ) XE_ADD_OBJS(strcat.o) ;; esac | |
1508 | |
1509 if test "$opsys" = "hpux10" -o "$opsys" = "hpux11"; then \ | |
1510 ansi_flag="-Ae"; else ansi_flag="-Aa"; fi | |
1511 NON_GNU_CC="cc $ansi_flag" NON_GNU_CPP="cc $ansi_flag -E" | |
1512 | |
1513 case "$ac_cv_build" in *-hp-hpux*shr* ) opsys="${opsys}-shr" ;; esac | |
1514 ;; | |
1515 | |
1516 dnl Orion machines | |
1517 orion-orion-bsd* ) machine=orion opsys=bsd4-2 ;; | |
1518 clipper-orion-bsd* ) machine=orion105 opsys=bsd4-2 ;; | |
1519 | |
1520 dnl IBM machines | |
1521 i[[3-9]]86-ibm-aix1.1* ) machine=ibmps2-aix opsys=usg5-2-2 ;; | |
1522 i[[3-9]]86-ibm-aix1.[[23]]* | i[[3-9]]86-ibm-aix* ) machine=ibmps2-aix opsys=usg5-3 ;; | |
1523 i370-ibm-aix*) machine=ibm370aix opsys=usg5-3 ;; | |
1524 romp-ibm-aos* ) opsys=bsd4-3 ;; | |
1525 romp-ibm-bsd* ) opsys=bsd4-3 ;; | |
1526 romp-ibm-mach* ) opsys=mach-bsd4-3 ;; | |
1527 | |
1528 dnl Integrated Solutions "Optimum V" | |
1529 m68*-isi-bsd4.2* ) machine=isi-ov opsys=bsd4-2 ;; | |
1530 m68*-isi-bsd4.3* ) machine=isi-ov opsys=bsd4-3 ;; | |
1531 | |
1532 dnl Intel 386 machines where we do care about the manufacturer | |
1533 i[[3-9]]86-intsys-sysv* ) machine=is386 opsys=usg5-2-2 ;; | |
1534 | |
1535 dnl Prime EXL | |
1536 i[[3-9]]86-prime-sysv* ) machine=i386 opsys=usg5-3 ;; | |
1537 | |
1538 dnl Sequent Symmetry running Dynix | |
1539 i[[3-9]]86-sequent-bsd* ) machine=symmetry opsys=bsd4-3 ;; | |
1540 | |
1541 dnl Sequent Symmetry running DYNIX/ptx | |
1542 i[[3-9]]86-sequent-ptx* ) machine=sequent-ptx opsys=ptx NON_GNU_CPP="/lib/cpp" ;; | |
1543 | |
1544 dnl Unspecified sysv on an ncr machine defaults to svr4.2. | |
1545 dnl (Plain usg5-4 does not turn on POSIX signals, which we need.) | |
1546 i[[3-9]]86-ncr-sysv* ) machine=ncr386 opsys=usg5-4-2 ;; | |
1547 | |
1548 dnl Intel Paragon OSF/1 | |
1549 i860-intel-osf1* ) machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp ;; | |
1550 | |
1551 dnl Intel 860 | |
1552 i860-*-sysv4* ) machine=i860 opsys=usg5-4 NON_GNU_CC="/bin/cc" NON_GNU_CPP="/usr/ccs/lib/cpp" ;; | |
1553 | |
1554 dnl Masscomp machines | |
1555 m68*-masscomp-rtu* ) machine=masscomp opsys=rtu ;; | |
1556 | |
1557 dnl Megatest machines | |
1558 m68*-megatest-bsd* ) machine=mega68 opsys=bsd4-2 ;; | |
1559 | |
1560 dnl Workstations sold by MIPS | |
1561 dnl This is not necessarily all workstations using the MIPS processor - | |
1562 dnl Irises are produced by SGI, and DECstations by DEC. | |
1563 mips-mips-usg* ) machine=mips4 ;; | |
1564 mips-mips-riscos4 ) | |
1565 machine=mips4 | |
1566 NON_GNU_CC="cc -systype bsd43" | |
1567 NON_GNU_CPP="cc -systype bsd43 -E" | |
1568 case "$ac_cv_build" in | |
1569 mips-mips-riscos4* ) opsys=bsd4-3 ;; | |
1570 mips-mips-riscos5* ) opsys=riscos5 ;; | |
1571 esac | |
1572 ;; | |
1573 mips-mips-bsd* ) machine=mips opsys=bsd4-3 ;; | |
1574 mips-mips-* ) machine=mips opsys=usg5-2-2 ;; | |
1575 | |
1576 dnl NeXT | |
1577 m68*-next-* | m68k-*-nextstep* ) machine=m68k opsys=nextstep ;; | |
1578 | |
1579 dnl The complete machine from National Semiconductor | |
1580 ns32k-ns-genix* ) machine=ns32000 opsys=usg5-2 ;; | |
1581 | |
1582 dnl NCR machines | |
1583 m68*-ncr-sysv2* | m68*-ncr-sysvr2* ) machine=tower32 opsys=usg5-2-2 ;; | |
1584 m68*-ncr-sysv3* | m68*-ncr-sysvr3* ) machine=tower32v3 opsys=usg5-3 ;; | |
1585 | |
1586 dnl Nixdorf Targon 31 | |
1587 m68*-nixdorf-sysv* ) machine=targon31 opsys=usg5-2-2 ;; | |
1588 | |
1589 dnl Nu (TI or LMI) | |
1590 m68*-nu-sysv* ) machine=nu opsys=usg5-2 ;; | |
1591 | |
1592 dnl Plexus | |
1593 m68*-plexus-sysv* ) machine=plexus opsys=usg5-2 ;; | |
1594 | |
1595 dnl Pyramid machines | |
1596 pyramid-pyramid-bsd* ) machine=pyramid opsys=bsd4-2 ;; | |
1597 | |
1598 dnl Sequent Balance | |
1599 ns32k-sequent-bsd4.2* ) machine=sequent opsys=bsd4-2 ;; | |
1600 ns32k-sequent-bsd4.3* ) machine=sequent opsys=bsd4-3 ;; | |
1601 | |
1602 dnl Siemens Nixdorf | |
1603 mips-siemens-sysv* | mips-sni-sysv*) | |
1604 machine=mips-siemens opsys=usg5-4 | |
1605 NON_GNU_CC=/usr/ccs/bin/cc | |
1606 NON_GNU_CPP=/usr/ccs/lib/cpp | |
1607 ;; | |
1608 | |
1609 dnl NEC | |
1610 mips-nec-sysv*) | |
1611 machine=mips-nec | |
1612 NON_GNU_CC=/usr/ccs/bin/cc | |
1613 NON_GNU_CPP=/usr/ccs/lib/cpp | |
1614 ;; | |
1615 | |
1616 dnl Silicon Graphics machines | |
1617 dnl Iris 2500 and Iris 2500 Turbo (aka the Iris 3030) | |
1618 m68*-sgi-iris3.5* ) machine=irist opsys=iris3-5 ;; | |
1619 m68*-sgi-iris3.6* | m68*-sgi-iris*) machine=irist opsys=iris3-6 ;; | |
1620 dnl Iris 4D | |
1621 mips-sgi-irix3.* ) opsys=irix3-3 ;; | |
1622 mips-sgi-irix4.* ) opsys=irix4-0 ;; | |
1623 mips-sgi-irix6* ) opsys=irix6-0 ;; | |
1624 mips-sgi-irix5.1* ) opsys=irix5-1 ;; | |
1625 mips-sgi-irix5.2* ) opsys=irix5-2 ;; | |
1626 mips-sgi-irix5.* ) opsys=irix5-3 ;; | |
1627 mips-sgi-irix* ) opsys=irix5-0 ;; | |
1628 | |
1629 dnl SONY machines | |
1630 *-sony-newsos[[34]]* | *-sony-news[[34]]* ) opsys=bsd4-3 ;; | |
1631 *-sony-news* ) opsys=newsos5 ;; | |
1632 | |
1633 dnl Stride | |
1634 m68*-stride-sysv* ) machine=stride opsys=usg5-2 ;; | |
1635 | |
1636 dnl Suns | |
1637 *-*-solaris* | *-*-sunos* | *-sun-mach* | *-sun-bsd* ) | |
1638 dnl Hardware type | |
1639 case "$ac_cv_build" in | |
1640 m68*-sunos1* ) machine=sun1 ;; | |
1641 m68*-sunos2* ) machine=sun2 ;; | |
1642 m68* ) machine=sun3 ;; | |
1643 i*86*-sun-sunos[[34]]* ) machine=sun386 ;; | |
1644 i*86-*-* ) machine=intel386 ;; | |
1645 rs6000* ) machine=rs6000 ;; | |
1646 esac | |
1647 | |
1648 dnl Make $canonical even more so. | |
1649 case "$ac_cv_build" in *-sunos5*) | |
1650 ac_cv_build=`echo $ac_cv_build | sed -e s/sunos5/solaris2/`;; | |
1651 esac | |
1652 | |
1653 dnl On SunOS 4, use /usr/lib/cpp, sans dynodump, /bin/ranlib | |
1654 dnl On SunOS 5, use cc -E, need dynodump, RANLIB not needed | |
1655 dnl But, SunOS 5.6 no longer needs dynodump because it has a similar | |
1656 dnl function integrated. | |
1657 case "$ac_cv_build" in | |
1658 *-sunos4* ) | |
1659 #test -f /usr/lib/cpp && NON_GNU_CPP=/usr/lib/cpp ;; | |
1660 : ;; | |
1661 *-solaris2* ) | |
1662 #test -f /usr/ccs/lib/cpp && NON_GNU_CPP=/usr/ccs/lib/cpp | |
1663 RANLIB=':' ;; | |
1664 esac | |
1665 | |
1666 case "$ac_cv_build" in | |
1667 *-solaris* ) | |
1668 opsys=sol2 | |
1669 os_release_major=`uname -r | sed -e 's/^\([[0-9]]\{1,\}\)\.\([[0-9]]\{1,\}\).*/\1/'` | |
1670 os_release_minor=`uname -r | sed -e 's/^\([[0-9]]\{1,\}\)\.\([[0-9]]\{1,\}\).*/\2/'` | |
1671 case "$os_release_minor" in [[0-9]]) | |
1672 os_release_minor="0${os_release_minor}";; | |
1673 esac | |
1674 os_release="${os_release_major}${os_release_minor}" | |
1675 AC_DEFINE_UNQUOTED(OS_RELEASE, $os_release) ;; | |
1676 | |
1677 dnl The last Sun386 ran 4.0. | |
1678 i*86-*-sunos4* ) opsys=sunos4-0 ;; | |
1679 *-sunos4.0* ) opsys=sunos4-0 ;; | |
1680 *-sunos4.1.2* ) opsys=sunos4-1-2 ;; | |
1681 *-sunos4.1.3* ) opsys=sunos4-1-3 ;; | |
1682 *-sunos4.1.[[4-9]]* ) opsys=sunos4-1-4 ;; | |
1683 *-sunos4* | *-sunos ) opsys=sunos4-1 ;; | |
1684 *-mach* ) opsys=mach-bsd4-3 ;; | |
1685 * ) opsys=bsd4-2 ;; | |
1686 esac | |
1687 | |
1688 case "$ac_cv_build" in *-sunos4*shr* ) opsys="${opsys}-shr" ;; esac | |
1689 | |
1690 dnl Watch out for a compiler guaranteed not to work. | |
1691 test "$opsys $CC" = "sol2 /usr/ucb/cc" && CC="" | |
1692 ;; | |
1693 | |
1694 dnl Tadpole 68k | |
1695 m68*-tadpole-sysv* ) machine=tad68k opsys=usg5-3 ;; | |
1696 | |
1697 dnl Tahoe machines | |
1698 tahoe-tahoe-bsd4.2* ) machine=tahoe opsys=bsd4-2 ;; | |
1699 tahoe-tahoe-bsd4.3* ) machine=tahoe opsys=bsd4-3 ;; | |
1700 | |
1701 dnl Tandem Integrity S2 | |
1702 mips-tandem-sysv* ) machine=tandem-s2 opsys=usg5-3 ;; | |
1703 | |
1704 dnl Tektronix XD88 | |
1705 m88k-tektronix-sysv3* ) machine=tekxd88 opsys=usg5-3 ;; | |
1706 | |
1707 dnl Tektronix 16000 box (6130?) | |
1708 ns16k-tektronix-bsd* ) machine=ns16000 opsys=bsd4-2 ;; | |
1709 dnl Tektronix 4300 | |
1710 dnl src/m/tek4300.h hints that this is a m68k machine. | |
1711 m68*-tektronix-bsd* ) machine=tek4300 opsys=bsd4-3 ;; | |
1712 | |
1713 dnl Titan P2 or P3 | |
1714 titan-titan-sysv* ) machine=titan opsys=usg5-3 ;; | |
1715 | |
1716 dnl Ustation E30 (SS5E) | |
1717 m68*-unisys-uniplus* ) machine=ustation opsystem=unipl5-2 ;; | |
1718 | |
1719 dnl Vaxen. | |
1720 vax-dec-* ) | |
1721 case "$ac_cv_build" in | |
1722 *-sysv[[01]]* | *-sysvr[[01]]* ) opsys=usg5-0 ;; | |
1723 *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;; | |
1724 *-mach* ) opsys=mach-bsd4-3 ;; | |
1725 esac | |
1726 ;; | |
1727 | |
1728 dnl Whitechapel MG1 | |
1729 ns16k-whitechapel-* ) machine=mg1 ;; | |
1730 | |
1731 dnl Wicat | |
1732 m68*-wicat-sysv* ) machine=wicat opsys=usg5-2 ;; | |
1733 | |
1734 dnl Intel 386 machines where we do not care about the manufacturer | |
1735 i[[3-9]]86-*-* ) | |
1736 machine=intel386 | |
1737 case "$ac_cv_build" in | |
1738 *-isc1.* | *-isc2.[[01]]* ) opsys=386-ix ;; | |
1739 *-isc2.2* ) opsys=isc2-2 ;; | |
1740 *-isc4.0* ) opsys=isc4-0 ;; | |
1741 *-isc4.* ) opsys=isc4-1 | |
1742 GCC_TEST_OPTIONS=-posix | |
1743 NON_GCC_TEST_OPTIONS=-Xp | |
1744 ;; | |
1745 *-isc* ) opsys=isc3-0 ;; | |
1746 *-esix5* ) opsys=esix5r4 NON_GNU_CPP=/usr/lib/cpp ;; | |
1747 *-esix* ) opsys=esix ;; | |
1748 *-mach* ) opsys=mach-bsd4-3 ;; | |
1749 *-xenix* ) opsys=xenix ;; | |
1750 *-sco3.2v4* ) opsys=sco4 NON_GNU_CPP=/lib/cpp ;; | |
1751 *-bsd386* | *-bsdi1* ) opsys=bsd386 ;; | |
1752 *-bsdi4* ) opsys=bsdos4 ;; | |
1753 *-bsdi3* ) opsys=bsdos3 ;; | |
1754 *-bsdi2.1* ) opsys=bsdos2-1 ;; | |
1755 *-bsdi2* ) opsys=bsdos2 ;; | |
1756 *-sco3.2v5* ) opsys=sco5 ;; | |
1757 *-sysv5* ) opsys=sco7 ;; | |
1758 *-386bsd* ) opsys=386bsd ;; | |
1759 *-freebsd* ) opsys=freebsd ;; | |
1760 *-nextstep* ) opsys=nextstep ;; | |
1761 *-pc-cygwin* ) opsys=cygwin32 ;; | |
1762 *-pc-mingw* ) opsys=mingw32 ; | |
1763 test -z "$with_tty" && with_tty="no";; | |
1764 dnl Otherwise, we fall through to the generic opsys code at the bottom. | |
1765 esac | |
1766 ;; | |
1767 | |
1768 dnl Linux/68k | |
1769 m68k-*-linux* ) machine=m68k opsys=linux ;; | |
1770 | |
1771 esac | |
1772 | |
1773 dnl Initialize machine from $canonical if not in our database above. | |
1774 test -z "$machine" && machine=`echo $ac_cv_build | sed 's/-.*$//'` | |
1775 | |
1776 dnl Initialize opsys from `uname -s` if not in our database above. | |
1777 test -z "$opsys" && opsys=`uname -s | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` | |
1778 | |
1779 dnl Use configure-time autodetection if s&m not available | |
1780 if test -r "${srcdir}/src/m/${machine}.h"; then | |
1781 machfile="m/${machine}.h" | |
1782 AC_DEFINE_UNQUOTED(config_machfile, "$machfile") | |
1783 else | |
1784 echo "XEmacs has no builtin knowledge of \`$machine' machines." | |
1785 echo "Using configure-time autodetection only." | |
1786 fi | |
1787 | |
1788 if test -r "${srcdir}/src/s/${opsys}.h"; then | |
1789 opsysfile="s/${opsys}.h" | |
1790 AC_DEFINE_UNQUOTED(config_opsysfile, "$opsysfile") | |
1791 else | |
1792 echo "XEmacs has no builtin knowledge of \`$opsys' operating systems." | |
1793 echo "Using configure-time autodetection only." | |
1794 fi | |
1795 | |
1796 | |
1797 dnl -------------------------------------------------------------- | |
1798 dnl $opsys detection complete; defaults depending on $opsys follow | |
1799 dnl -------------------------------------------------------------- | |
1800 | |
1801 if test -z "$enable_pdump"; then | |
1802 case "$opsys" in | |
1803 linux* ) enable_pdump=yes ;; dnl glibc 2.3.1 seems to hose unexec | |
1804 darwin ) enable_pdump=yes ;; dnl No "native" working dumper available | |
1805 cygwin* ) enable_pdump=yes ;; dnl unexec is broken | |
1806 * ) enable_pdump=no ;; | |
1807 esac | |
1808 fi | |
1809 | |
3092 | 1810 if test "$enable_newgc" = "yes"; then |
1811 if test "$enable_vdb" = "auto"; then | |
1812 case "$opsys" in | |
3520 | 1813 darwin ) case "$machine" in |
4424
42711a251efd
Look for all x86 machines to determine which write barrier to use on MacOSX.
Marcus Crestani <crestani@informatik.uni-tuebingen.de>
parents:
4419
diff
changeset
|
1814 i[[3-9]]86 ) check_vdb_posix=yes ;; |
3520 | 1815 * ) AC_DEFINE(VDB_MACH) have_vdb_mach=yes ;; |
1816 esac ;; | |
3092 | 1817 cygwin* ) AC_DEFINE(VDB_WIN32) have_vdb_win32=yes ;; |
1818 linux* ) check_vdb_posix=yes ;; | |
1819 freebsd ) check_vdb_posix=yes ;; | |
1820 dnl if not sure, try posix first, maybe we are lucky | |
1821 * ) check_vdb_posix=yes ;; | |
1822 esac | |
1823 else | |
1824 case "$enable_vdb" in | |
1825 mach ) AC_DEFINE(VDB_MACH) have_vdb_mach=yes ;; | |
1826 win32 ) AC_DEFINE(VDB_WIN32) have_vdb_win32=yes ;; | |
1827 posix ) check_vdb_posix=yes ;; | |
1828 fake ) have_vdb_fake=yes ;; | |
1829 no ) have_vdb_fake=yes ;; | |
1830 esac | |
1831 fi | |
1832 fi | |
1833 | |
2651 | 1834 if test -z "$with_dynamic"; then |
1835 case "$opsys" in | |
1836 hpux* | sunos4* ) with_dynamic=no ;; | |
1837 *) with_dynamic=yes ;; | |
1838 esac | |
1839 fi | |
1840 if test "$with_dynamic" = "yes"; then | |
1841 case "$opsys" in | |
1842 hpux* | sunos4* | sco5 ) opsys="${opsys}-shr" ;; | |
1843 decosf* ) ld_call_shared="-call_shared" ;; | |
1844 darwin ) AC_DEFINE(DLSYM_NEEDS_UNDERSCORE) ;; | |
1845 esac | |
1846 else dnl "$with_dynamic" = "no" | |
1847 case "$opsys" in | |
1848 sol2 ) | |
1849 echo "Static linking is not supported on Solaris 2." | |
1850 echo "Rerun configure without specifying --without-dynamic." | |
1851 exit 1 ;; | |
1852 linux ) ld_call_shared="-Bstatic" ;; | |
1853 decosf* ) ld_call_shared="-non_shared" ;; | |
1854 esac | |
1855 fi | |
1856 | |
1857 dnl Tools configuration | |
1858 case "$opsys" in | |
1859 aix* ) NON_GNU_CC=xlc ;; dnl Use xlc by default on AIX | |
1860 darwin ) RANLIB="ranlib -c" ;; dnl Avoid link error in lwlib-config.c | |
1861 esac | |
1862 | |
1863 stack_trace_eye_catcher=`echo ${PROGNAME}_${version}_${ac_cv_build} | sed 'y/.-/__/'` | |
1864 AC_DEFINE_UNQUOTED(STACK_TRACE_EYE_CATCHER, $stack_trace_eye_catcher) | |
1865 | |
1866 dnl -------------------------------------------------- | |
1867 dnl Determine the compiler, set up for feature testing | |
1868 dnl -------------------------------------------------- | |
1869 | |
1870 dnl Sun Development environment support | |
1871 test "$with_sparcworks" = "yes" && with_workshop=yes # compatibility alias | |
1872 XE_CHECK_FEATURE_DEPENDENCY(workshop, tooltalk) | |
1873 if test "$with_workshop" = "yes"; then | |
1874 AC_DEFINE(SUNPRO) | |
1875 fi | |
1876 | |
1877 if test "$enable_clash_detection" != "no"; then | |
1878 AC_DEFINE(CLASH_DETECTION) | |
1879 fi | |
1880 | |
1881 dnl Choose a compiler from (in order) | |
2680 | 1882 dnl --with-compiler, env var CC, with_gcc=no && ${NON_GNU_CC:-cc}, AC_PROG_CC |
2651 | 1883 test -n "$with_compiler" && CC="$with_compiler" |
1884 if test "$with_gcc" = "no"; then dnl Try to find a non-gcc compiler | |
1885 case "$CC" in "" | *gcc* ) CC="${NON_GNU_CC-cc}" ;; esac | |
1886 fi | |
1887 | |
1888 dnl If we don't set CFLAGS here, AC_PROG_CC will set it. | |
1889 dnl But we know better what's good for us, so we do our own | |
1890 dnl computation of real CFLAGS later. | |
1891 dnl --with_cflags overrides environment variable CFLAGS | |
1892 test "${with_cflags-unset}" != unset && CFLAGS="$with_cflags" | |
1893 if test "${CFLAGS-unset}" != unset | |
1894 then cflags_specified=yes; | |
1895 else cflags_specified=no; | |
1896 fi | |
1897 | |
1898 if test "${with_cflags_warning-unset}" != unset | |
1899 then cflags_warning_specified=yes; | |
1900 else cflags_warning_specified=no; | |
1901 fi | |
1902 | |
2667 | 1903 if test "${with_cflags_optimization-unset}" != unset |
2651 | 1904 then cflags_optimization_specified=yes; |
1905 else cflags_optimization_specified=no; | |
1906 fi | |
1907 | |
2667 | 1908 if test "${with_cflags_debugging-unset}" != unset |
2651 | 1909 then cflags_debugging_specified=yes; |
1910 else cflags_debugging_specified=no; | |
1911 fi | |
1912 | |
1913 xe_save_CFLAGS="$CFLAGS" | |
1914 | |
1915 AC_AIX dnl Defines _ALL_SOURCE on AIX. | |
1916 | |
1917 AC_PROG_CC dnl Autoconf has its own magic for compiler autodetection | |
1918 | |
1919 dnl Retry using random guesswork if AC_PROG_CC got it wrong... | |
1920 if test "$with_gcc" = "no" -a "$GCC" = "yes"; then | |
1921 CC=${NON_GNU_CC-cc} | |
1922 AC_PROG_CC | |
1923 elif test "$with_gcc" = "yes" -a "$GCC" != "yes" ; then | |
1924 CC=gcc | |
1925 AC_PROG_CC | |
1926 fi | |
1927 CFLAGS="$xe_save_CFLAGS" | |
1928 | |
1929 dnl Determine GCC version. | |
1930 if test "$GCC" = "yes"; then | |
1931 AC_RUN_IFELSE([AC_LANG_SOURCE([int main () { | |
3494 | 1932 return __GNUC__; |
1933 }])], [:], [__GCC="$?"]) | |
1934 AC_RUN_IFELSE([AC_LANG_SOURCE([int main () { | |
1935 return __GNUC_MINOR__; | |
1936 }])], [:], [__GCC_MINOR="$?"]) | |
1937 __GCC_VERSION=$__GCC"."$__GCC_MINOR | |
1938 echo "You appear to be using GCC version" $__GCC_VERSION | |
2651 | 1939 fi |
1940 | |
1941 dnl Support for using a different compiler for xemacs itself. | |
1942 dnl Useful for building XEmacs with a C++ compiler. | |
1943 dnl For example, `configure --compiler=gcc --xemacs-compiler=g++ | |
1944 | |
1945 dnl The compiler used to build xemacs, as opposed to the compiler | |
1946 dnl used by configure and lib-src, is determined from the following | |
1947 dnl sources, in order of priority: | |
2680 | 1948 dnl o --with-xemacs-compiler configure flag |
2651 | 1949 dnl o XEMACS_CC environment variable |
1950 dnl o same as the regular compiler, (determined previously) | |
1951 | |
1952 dnl We don't do AC_PROG_CC for XEMACS_CC; if we can't trust these people.... | |
1953 test -n "$with_xemacs_compiler" && XEMACS_CC="$with_xemacs_compiler" | |
1954 : ${XEMACS_CC:="$CC"} | |
1955 | |
1956 dnl Figure out what C preprocessor to use. | |
1957 | |
1958 dnl On Sun systems, people sometimes set up the variable CPP | |
1959 dnl with a value that is a directory, not an executable at all. | |
1960 dnl Detect that case, and ignore that value. | |
1961 test -n "$CPP" -a -d "$CPP" && CPP= | |
1962 | |
1963 test -n "$NON_GNU_CPP" -a "$GCC" != "yes" -a -z "$CPP" && CPP="$NON_GNU_CPP" | |
1964 | |
1965 AC_PROG_CPP | |
1966 | |
1967 dnl -------------------------------------------------------------------- | |
1968 dnl Compiler feature macros | |
1969 dnl -------------------------------------------------------------------- | |
1970 | |
1971 dnl We want feature macros defined here *and* in config.h.in, so that | |
1972 dnl the compilation environment at configure time and compile time agree. | |
1973 | |
1974 AC_MSG_CHECKING(for GNU libc) | |
3312 | 1975 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <features.h>],[ |
2651 | 1976 #if ! (defined __GLIBC__ || defined __GNU_LIBRARY__) |
1977 #error Not a GNU libc system :-( | |
1978 ******* ======= ******** &&&&&&&& | |
1979 #endif | |
3312 | 1980 ])], have_glibc=yes, have_glibc=no) |
2651 | 1981 AC_MSG_RESULT($have_glibc) |
1982 dnl I'm tired of pop being broken with GLIBC -slb | |
1983 dnl Well. then why not fix fucking pop? | |
1984 test "$have_glibc" = "yes" && AC_DEFINE(_GNU_SOURCE) | |
1985 | |
1986 dnl We'd like to use vendor extensions, where available. | |
1987 dnl We'd like to use functions from the latest Unix98 standards. | |
1988 dnl See http://www.opengroup.org/onlinepubs/007908799/xsh/compilation.html | |
1989 case "$opsys" in | |
1990 sol2) | |
1991 AC_DEFINE(__EXTENSIONS__) | |
1992 dnl Solaris 2 before 2.5 had some bugs with feature test macro interaction. | |
1993 if test "$os_release" -ge 505; then | |
1994 AC_DEFINE(_XOPEN_SOURCE,500) | |
1995 AC_DEFINE(_XOPEN_SOURCE_EXTENDED) | |
1996 fi ;; | |
1997 linux) | |
1998 AC_DEFINE(_POSIX_C_SOURCE,199506L) | |
1999 dnl #### should this be 600? | |
2000 AC_DEFINE(_XOPEN_SOURCE,500) | |
2001 AC_DEFINE(_XOPEN_SOURCE_EXTENDED) | |
2002 ;; | |
2003 freebsd4*) | |
2004 AC_DEFINE(_POSIX_C_SOURCE,199506L) | |
2005 dnl #### Do we want these too? Apparently yes for _XOPEN_SOURCE=500. | |
2006 AC_DEFINE(_XOPEN_SOURCE,500) | |
2007 dnl AC_DEFINE(_XOPEN_SOURCE_EXTENDED) | |
2008 ;; | |
2009 esac | |
2010 | |
2011 dnl Identify compilers to enable compiler-specific hacks. | |
2012 dnl Add support for other compilers HERE! | |
2013 dnl GCC is already identified elsewhere. | |
2014 AC_RUN_IFELSE([AC_LANG_SOURCE([int main () { | |
2015 #if defined __SUNPRO_C | |
2016 return 11; | |
2017 #elif defined __DECC | |
2018 return 12; | |
2019 #elif defined __USLC__ && defined __SCO_VERSION__ | |
2020 return 13; | |
2021 #elif defined __INTEL_COMPILER | |
2022 return 14; | |
2023 #else | |
2024 return 0; | |
2025 #endif | |
2026 }])], [], | |
2027 [case "$?" in | |
2028 11) echo "You appear to be using the SunPro C compiler." ; __SUNPRO_C=yes ;; | |
2029 12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;; | |
2030 13) echo "You appear to be using the SCO C compiler." ; __USLC__=yes ;; | |
2031 14) echo "You appear to be using the Intel C++ compiler."; __ICC=yes | |
2032 dnl Newer versions of icc claim to be GCC | |
2033 GCC=no ;; | |
2034 esac]) | |
2035 | |
2036 dnl -------------------------------------------------------------------- | |
2037 dnl Extract some information from the operating system and machine files | |
2038 dnl -------------------------------------------------------------------- | |
2039 | |
2040 echo "Extracting information from the machine- and system-dependent headers..." | |
2041 | |
2042 dnl It is not important that this name contain the PID; you cannot run | |
2043 dnl two configures in the same directory and have anything work | |
2044 dnl anyway. | |
2045 tempcname="conftest.c" | |
2046 | |
2047 dnl CPP_to_sh(CPP_SYMBOL, SH_VAR, DEFAULT_VALUE) | |
2048 define([CPP_to_sh], | |
2049 [[#]ifndef [$1] | |
2050 [#]define [$1]ifelse([$3],,, [ "$3"]) | |
2051 [#]endif | |
2052 configure___ [$2]=[$1] | |
2053 ])dnl CPP_to_sh | |
2054 | |
2055 dnl CPP_boolean_to_sh(CPP_SYMBOL, SH_VAR) | |
2056 define([CPP_boolean_to_sh], | |
2057 [[#]ifdef [$1] | |
2058 configure___ [$2]=yes | |
2059 [#]else | |
2060 configure___ [$2]=no | |
2061 [#]endif | |
2062 ])dnl CPP_boolean_to_sh | |
2063 | |
2064 cat > $tempcname < confdefs.h | |
2065 cat >> $tempcname <<EOF | |
2066 #define NOT_C_CODE | |
2067 #define C_SWITCH_SITE | |
2068 #define C_SWITCH_X_SITE | |
2069 #define LD_SWITCH_SITE | |
2070 #define LD_SWITCH_X_SITE | |
2071 #define LD_SWITCH_X_SITE_AUX | |
2072 #define OS_RELEASE $os_release | |
2073 | |
2074 #ifdef config_opsysfile | |
2075 #include "$srcdir/src/$opsysfile" | |
2076 #endif | |
2077 | |
2078 #ifdef config_machfile | |
2079 #include "$srcdir/src/$machfile" | |
2080 #endif | |
2081 | |
2082 CPP_to_sh(LIBS_MACHINE, libs_machine) | |
2083 CPP_to_sh(LIBS_SYSTEM, libs_system) | |
2084 CPP_to_sh(LIBS_TERMCAP, libs_termcap) | |
2085 CPP_to_sh(LIB_STANDARD, libs_standard) | |
2086 | |
2087 CPP_to_sh(OBJECTS_MACHINE, objects_machine) | |
2088 CPP_to_sh(OBJECTS_SYSTEM, objects_system) | |
2089 | |
2090 CPP_to_sh(C_SWITCH_MACHINE, c_switch_machine) | |
2091 CPP_to_sh(C_SWITCH_SYSTEM, c_switch_system) | |
2092 | |
2093 CPP_to_sh(LD_SWITCH_MACHINE, ld_switch_machine) | |
2094 CPP_to_sh(LD_SWITCH_SYSTEM, ld_switch_system) | |
2095 | |
2096 CPP_to_sh(UNEXEC, unexec) | |
2097 | |
2098 CPP_to_sh(SYSTEM_TYPE, system_type) | |
2099 | |
2100 CPP_to_sh(LD_SWITCH_SHARED, ld_switch_shared, -c) | |
2101 | |
2102 #define ORDINARY_LD "\$(CC) \$(CFLAGS)" | |
2103 configure___ ordinary_ld=ORDINARY_LD | |
2104 | |
2105 #ifdef ORDINARY_LINK | |
2106 #define LD ORDINARY_LD | |
2107 #else /* no ORDINARY LINK */ | |
2108 #ifdef COFF_ENCAPSULATE | |
2109 #define LD "\$(CC) -nostdlib" | |
2110 #else /* not COFF_ENCAPSULATE */ | |
2111 #ifdef LINKER | |
2112 #define LD LINKER | |
2113 #else /* ! defined (LINKER) */ | |
2114 #define LD "ld" | |
2115 #endif /* ! defined (LINKER) */ | |
2116 #endif /* ! defined (COFF_ENCAPSULATE) */ | |
2117 #endif /* not ORDINARY_LINK */ | |
2118 configure___ ld=LD | |
2119 | |
2120 CPP_to_sh(LIB_GCC, lib_gcc) | |
2121 CPP_to_sh(LD_TEXT_START_ADDR, ld_text_start_addr) | |
2122 | |
2123 #if ! defined (ORDINARY_LINK) && !defined (START_FILES) | |
2124 #ifdef NO_REMAP | |
2125 #ifdef COFF_ENCAPSULATE | |
2126 #define START_FILES "pre-crt0.o /usr/local/lib/gcc-crt0.o" | |
2127 #else /* ! defined (COFF_ENCAPSULATE) */ | |
2128 #define START_FILES "pre-crt0.o /lib/crt0.o" | |
2129 #endif /* ! defined (COFF_ENCAPSULATE) */ | |
2130 #else /* ! defined (NO_REMAP) */ | |
2131 #define START_FILES "ecrt0.o" | |
2132 #endif /* ! defined (NO_REMAP) */ | |
2133 #endif /* no ORDINARY_LINK */ | |
2134 #ifndef START_FILES | |
2135 #define START_FILES | |
2136 #endif | |
2137 configure___ start_files=START_FILES | |
2138 | |
2139 CPP_boolean_to_sh(ORDINARY_LINK, ordinary_link) | |
2140 CPP_boolean_to_sh(SYSTEM_MALLOC, system_malloc) | |
2141 CPP_boolean_to_sh(TERMINFO, have_terminfo) | |
2142 dnl The MAIL_USE_xxx variables come from the s&m headers | |
2143 CPP_boolean_to_sh(MAIL_USE_FLOCK, mail_use_flock) | |
2144 CPP_boolean_to_sh(MAIL_USE_LOCKF, mail_use_lockf) | |
2145 CPP_boolean_to_sh(MAIL_USE_LOCKING, mail_use_locking) | |
2146 CPP_boolean_to_sh(HAVE_WIN32_PROCESSES, win32_processes) | |
2147 EOF | |
2148 | |
2149 dnl The value of CPP is a quoted variable reference, so we need to do this | |
2150 dnl to get its actual value... | |
2151 CPP=`eval "echo $CPP $CPPFLAGS"` | |
2152 define(TAB, [ ])dnl | |
2153 eval `$CPP -Isrc $tempcname \ | |
2154 | sed -n -e "s/[[ TAB]]*=[[ TAB\"]]*/='/" -e "s/[[ TAB\"]]*\$/'/" -e "s/^configure___//p"` | |
2155 | |
2156 rm $tempcname | |
2157 | |
2158 dnl s&m files shouldn't be required to define anything, or even to exist. | |
2159 dnl So we default SYSTEM_TYPE to the obvious documented standard, `uname -s`, | |
2160 dnl appropriately emacsulated. | |
2161 test -z "$system_type" && \ | |
2162 AC_DEFINE_UNQUOTED(SYSTEM_TYPE,"`uname -s | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`") | |
2163 | |
2164 dnl If the s&m files don't define a system-specific dumper, simply use pdump. | |
2165 dnl Sometime in the future, we'll remove all definitions of UNEXEC | |
2166 dnl from all the s&m files. | |
2167 test -z "$unexec" && enable_pdump=yes | |
2168 | |
2169 if test "$enable_pdump" = "yes"; then | |
2170 ordinary_link="yes" | |
2171 ld="${ordinary_ld}" | |
2172 start_files= | |
2173 libs_standard= | |
2174 unexec= | |
2175 lib_gcc= | |
2176 fi | |
2177 | |
3263 | 2178 dnl Enable KKCC by default |
2790 | 2179 test -z "$enable_kkcc" && enable_kkcc=yes |
2180 | |
2720 | 2181 dnl Dump into executable |
2182 if test -z "$enable_dump_in_exec"; then | |
2183 if test "$enable_pdump" = "yes"; then | |
3263 | 2184 if test "$enable_newgc" = "yes"; then |
2720 | 2185 enable_dump_in_exec=no |
2186 else | |
2187 enable_dump_in_exec=yes | |
2188 fi | |
2189 fi | |
2190 fi | |
2191 | |
3092 | 2192 dnl New incremental garbage collector |
2193 if test "$enable_newgc" = "yes"; then | |
2194 enable_kkcc=yes | |
2195 fi | |
2196 | |
2651 | 2197 dnl For debugging... |
2198 test "$verbose" = "yes" && \ | |
2199 PRINT_VAR(libs_machine libs_system libs_termcap libs_standard | |
2200 objects_machine objects_system c_switch_machine c_switch_system | |
2201 ld_switch_machine ld_switch_system unexec ld_switch_shared | |
2202 ld lib_gcc ld_text_start_addr start_files ordinary_link | |
2203 have_terminfo mail_use_flock mail_use_lockf) && echo "" | |
2204 | |
2205 dnl Pick up mingw include path | |
2206 dnl We only cope with headers in mingw, not mingw32: no previous version of | |
2207 dnl XEmacs supported mingw and cygnus have made this incompatible change | |
2208 dnl so we just go with the flow. | |
2209 case "$opsys" in mingw* | cygwin*) | |
3228 | 2210 cygwin_include=`eval gcc -print-search-dirs | sed -ne s'/install: //p'` |
2211 cygwin_include=`eval "cd $cygwin_include/../../../..; pwd"` | |
2212 cygwin_include="-I$cygwin_include/include" ; | |
2651 | 2213 extra_includes="$cygwin_include/mingw $cygwin_include" ; |
2214 case "$opsys" in mingw*) | |
2215 XE_APPEND($extra_includes, c_switch_system) ;; | |
2216 esac | |
2217 ;; | |
2218 esac | |
2219 | |
2220 dnl Non-ordinary link usually requires -lc | |
2221 test "$ordinary_link" = "no" -a -z "$libs_standard" && libs_standard="-lc" | |
2222 | |
2223 dnl ----------------------- | |
2224 dnl Compiler-specific hacks | |
2225 dnl ----------------------- | |
2226 | |
2227 dnl DEC C `-std1' means ANSI C mode | |
2228 test "$__DECC" = "yes" && XE_APPEND(-std1, c_switch_site) | |
2229 | |
2230 dnl Some versions of SCO native compiler need -Kalloca | |
2231 if test "$__USLC__" = yes; then | |
2232 AC_MSG_CHECKING(for whether the -Kalloca compiler flag is needed) | |
2233 need_kalloca=no | |
3317 | 2234 AC_LINK_IFELSE([AC_LANG_PROGRAM([], [void *x = alloca(4);])], [:], [ |
2651 | 2235 xe_save_c_switch_system="$c_switch_system" |
2236 c_switch_system="$c_switch_system -Kalloca" | |
3317 | 2237 AC_LINK_IFELSE([AC_LANG_PROGRAM([], [void *x = alloca(4);])], |
3312 | 2238 [ need_kalloca=yes ]) |
2651 | 2239 c_switch_system="$xe_save_c_switch_system"]) |
2240 AC_MSG_RESULT($need_kalloca) | |
2241 test "$need_kalloca" = "yes" && XE_APPEND(-Kalloca,c_switch_system) | |
2242 fi | |
2243 | |
2244 dnl If we're specifying XEMACS_CC, it'd better be in the same family | |
2245 dnl as CC or the following flag calculations are bogus. | |
2246 dnl #### We may want to actually error and abort here, but I am not sure. | |
2247 if test "$CC" != "$XEMACS_CC"; then | |
2248 if test "$XEMACS_CC" = "g++" -a "$GCC" != "yes"; then | |
2249 AC_MSG_WARN([CC and g++ are mismatched; XE_CFLAGS may be wrong]) | |
2250 xemacs_cc_cc_mismatch=yes | |
2251 elif test -n "$GCC" -a "$XEMACS_CC" != "g++"; then | |
2252 AC_MSG_WARN([gcc and XEMACS_CC are mismatched; XE_CFLAGS may be wrong]) | |
2253 xemacs_cc_cc_mismatch=yes | |
2254 dnl #### Add other detectable mismatches here. | |
2255 else | |
2256 xemacs_cc_cc_mismatch=no | |
2257 fi | |
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 |
4152 | 3498 dnl try pkg-config |
3499 xft_config_prog="pkg-config xft" | |
3500 xft_config_ok=`$xft_config_prog --cflags 2>/dev/null` | |
3501 if test "$?" = 0 ; then | |
3502 xft_cflags=`$xft_config_prog --cflags` | |
3503 xft_libs=`$xft_config_prog --libs` | |
3504 c_switch_site="$c_switch_site $xft_cflags" | |
3505 ld_switch_site="$ld_switch_site $xft_libs" | |
3506 xft_includes_found=yes | |
3507 else | |
3508 AC_CHECK_HEADERS([freetype/config/ftheader.h], | |
3509 [xft_includes_found=yes], | |
3510 [ | |
3511 dnl #### How about /sw/include, and /opt/local/include? | |
3512 dnl these directories need to be the parent of the freetype directory | |
3513 for freetype_include_top in "/usr/local/include/freetype2" \ | |
3514 "/usr/X11R6/include/freetype2" \ | |
3515 "/usr/include/freetype2" | |
3516 do | |
3517 if test -d $freetype_include_top; then | |
3518 AC_MSG_CHECKING([in ${freetype_include_top}]) | |
3519 dnl disable autoconf's fucking cache; why these fuckheads think it | |
3520 dnl is better to be broken than to be slow, I don't know! | |
3521 dnl #### there's gotta be a better-looking way to do this!! | |
3522 unset "$as_ac_Header" | |
3523 save_c_switch_site="$c_switch_site" | |
3524 c_switch_site="$c_switch_site -I${freetype_include_top}" | |
3525 AC_CHECK_HEADERS([freetype/config/ftheader.h], | |
3526 [xft_includes_found=yes], | |
3527 [c_switch_site=$save_c_switch_site]) | |
3528 fi | |
3529 done]) | |
3530 fi | |
3158 | 3531 if test "$xft_includes_found" != "yes"; then |
3532 XE_DIE(["Unable to find headers for --with-xft"]) | |
3533 else | |
3534 AC_CHECK_LIB(Xrender, XRenderQueryExtension, XE_PREPEND(-lXrender, libs_x), | |
3535 [XE_DIE(["Unable to find libXrender for --with-xft"])]) | |
3536 AC_CHECK_LIB(fontconfig, FcPatternCreate, XE_PREPEND(-lfontconfig, libs_x), | |
3537 [XE_DIE(["Unable to find libfontconfig for --with-xft"])]) | |
3538 AC_CHECK_LIB(Xft, XftFontOpen, XE_PREPEND(-lXft, libs_x), | |
3539 [XE_DIE(["Unable to find libXft for --with-xft"])]) | |
4328
dfd878799ef0
Autoconfiscate the recent fontconfig spelling change.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4152
diff
changeset
|
3540 |
dfd878799ef0
Autoconfiscate the recent fontconfig spelling change.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4152
diff
changeset
|
3541 AC_CHECK_FUNCS(FcConfigGetRescanInterval) |
dfd878799ef0
Autoconfiscate the recent fontconfig spelling change.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4152
diff
changeset
|
3542 AC_CHECK_FUNCS(FcConfigSetRescanInterval) |
3354 | 3543 dnl #### detect fontconfig properly!!!! |
3544 with_fontconfig=yes | |
3545 AC_DEFINE(HAVE_FONTCONFIG) | |
3158 | 3546 AC_DEFINE(USE_XFT) |
3547 dnl Due to interactions with other libraries, must postpone AC_DEFINE | |
3548 dnl of USE_XFT_MENUBARS, USE_XFT_TABS, and USE_XFT_GAUGE. | |
3549 unset xft_includes_found | |
3550 fi | |
3094 | 3551 fi |
3552 | |
2651 | 3553 fi dnl $with_x11 = yes |
3554 | |
3555 if test "$with_msw" != "no"; then | |
3312 | 3556 AC_MSG_CHECKING([for MS-Windows]) |
3557 AC_MSG_RESULT() | |
2651 | 3558 AC_CHECK_LIB(gdi32,main,with_msw=yes) |
3559 if test "$with_msw" = "yes"; then | |
3560 AC_DEFINE(HAVE_MS_WINDOWS) | |
3561 | |
3562 dnl The net installer only works with MS-Windows currently | |
3563 if test "$with_netinstall" = "yes"; then | |
3564 XE_APPEND(netinstall, MAKE_SUBDIR) | |
3565 XE_APPEND(netinstall, SRC_SUBDIR_DEPS) | |
3566 XE_APPEND(netinstall, INSTALL_ARCH_DEP_SUBDIR) | |
3567 fi | |
3568 | |
3569 install_pp="$srcdir/lib-src/installexe.sh" | |
3570 XE_APPEND(-limm32 -lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lole32 -luuid -lwinspool -lmpr, libs_system) | |
3571 if test "$with_dragndrop" != no; then | |
3572 XE_APPEND(msw, dragndrop_proto) | |
3573 with_dragndrop=yes | |
3574 fi | |
3575 if test "$window_system" != x11; then | |
3576 window_system=msw | |
3577 test "$enable_scrollbars" != "no" && enable_scrollbars=msw | |
3578 test "$enable_menubars" != "no" && enable_menubars=msw | |
3579 test "$enable_toolbars" != "no" && enable_toolbars=msw | |
3580 test "$enable_dialogs" != "no" && enable_dialogs=msw | |
3581 test "$enable_widgets" != "no" && enable_widgets=msw | |
3582 fi | |
3583 dnl check for our special version of select | |
3584 AC_RUN_IFELSE([AC_LANG_SOURCE([#include <fcntl.h> | |
3585 int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }])], | |
3586 [AC_DEFINE(HAVE_MSG_SELECT)]) | |
3587 fi | |
3588 fi | |
3589 | |
3590 AC_SUBST(install_pp) | |
3591 | |
3592 test -z "$with_dragndrop" && with_dragndrop="$with_dragndrop_default" | |
3593 test -z "$window_system" && window_system="none" | |
3594 | |
3595 dnl Test for features that require a window system - ANY window system | |
3596 if test "$window_system" = "none"; then | |
3597 for feature in menubars scrollbars toolbars dialogs dragndrop xface | |
3598 do | |
3599 if eval "test -n \"\$enable_${feature}\" -a \"\$enable_${feature}\" != no" ; then | |
3600 AC_MSG_WARN([--enable-$feature ignored: Not valid without window system support]) | |
3601 fi | |
3602 eval "enable_${feature}=no" | |
3603 done | |
3604 else | |
3605 test -z "$enable_toolbars" && enable_toolbars=yes | |
3606 fi | |
3607 | |
3608 dnl ### Test for features that require mswindows support - currently none | |
3609 dnl ### MS-Windows folks: add code here..... (martin) | |
3610 if test "$with_msw" != "yes"; then | |
3611 for feature in MARTIN_IS_CLUELESS_ABOUT_MSW_FEATURES | |
3612 do | |
3613 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then | |
3614 AC_MSG_WARN([--with-$feature ignored: Not valid without MS-Windows support]) | |
3615 fi | |
3616 eval "with_${feature}=no" | |
3617 done | |
3618 else | |
3619 : | |
3620 fi | |
3621 | |
3622 dnl Test for features that require X11 support | |
3623 if test "$with_x11" != "yes"; then | |
3624 dnl It ought to be reasonable to have no output device at all, and only use | |
3625 dnl XEmacs in --batch mode. | |
3626 dnl if test "$with_tty" = "no" ; then | |
3627 dnl AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.]) | |
3628 dnl fi | |
3629 for feature in with_tooltalk with_cde with_offix with_wmcommand with_xim with_xmu enable_sound_nas | |
3630 do | |
3631 if eval "test -n \"\$${feature}\" -a \"\$${feature}\" != \"no\"" ; then | |
3632 AC_MSG_WARN([--$feature ignored: Not valid without X support]) | |
3633 fi | |
3634 eval "${feature}=no" | |
3635 done | |
3636 fi | |
3637 | |
3638 dnl Balloon Help requires the Shape extension, not available everywhere, | |
3639 dnl for example not on AIX 4.3. | |
3640 if test "$with_x11" = "yes"; then | |
3641 AC_CHECK_HEADER(X11/extensions/shape.h, [ | |
3642 AC_DEFINE(HAVE_BALLOON_HELP) | |
2741 | 3643 ],[], |
3644 [ | |
3645 #include <X11/Xlib.h> | |
3646 #include <X11/Xutil.h> | |
3647 ]) | |
2651 | 3648 fi |
3649 | |
3650 dnl FSF 19.29 has some bitmapdir stuff here. | |
3651 bitmapdir= | |
3652 | |
3653 case "$window_system" in | |
3654 x11 ) HAVE_X_WINDOWS=yes; echo " Using X11." ;; | |
3655 msw ) HAVE_X_WINDOWS=no ; echo " Using MS-Windows." ;; | |
3656 gtk ) | |
3657 HAVE_X_WINDOWS=no | |
3658 test "$with_gnome" = "yes" && echo " Using GNOME." | |
3659 test "$with_gnome" = "no" && echo " Using GTK." | |
3660 ;; | |
3661 none ) HAVE_X_WINDOWS=no ; echo " Using no window system." ;; | |
3662 esac | |
3663 | |
3664 case "$x_libraries" in *X11R4* ) | |
3665 test "$opsys" = "hpux9" && opsysfile="s/hpux9-x11r4.h" | |
3666 test "$opsys" = "hpux9-shr" && opsysfile="s/hpux9shxr4.h" | |
3667 esac | |
3668 | |
3669 dnl Enable or disable proper handling of WM_COMMAND | |
3312 | 3670 AC_MSG_CHECKING([for WM_COMMAND option]) |
2651 | 3671 dnl if test "$with_wmcommand" = "yes"; then |
3672 if test "$with_wmcommand" != "no"; then | |
3673 AC_DEFINE(HAVE_WMCOMMAND) | |
3312 | 3674 AC_MSG_RESULT(yes) |
3675 else | |
3676 AC_MSG_RESULT(no) | |
2651 | 3677 fi |
3678 | |
3679 dnl Autodetect Xauth | |
3680 dnl -lXau is only used by gnuclient, so use a special variable for Xauth X libs | |
3681 test -z "$with_xauth" && test "$window_system" = "none" && with_xauth=no | |
3682 test -z "$with_xauth" && { AC_CHECK_HEADER(X11/Xauth.h, ,with_xauth=no) } | |
3683 test -z "$with_xauth" && { AC_CHECK_LIB(Xau, XauGetAuthByAddr,[:],with_xauth=no) } | |
3684 test -z "$with_xauth" && with_xauth=yes | |
3685 if test "$with_xauth" = "yes"; then | |
3686 AC_DEFINE(HAVE_XAUTH) | |
3687 XE_SPACE(libs_xauth, $GTK_LIBS $X_EXTRA_LIBS -lXau $libs_x $X_PRE_LIBS) | |
3688 fi | |
3689 AC_SUBST(libs_xauth) | |
3690 | |
3691 dnl This one is for the static initializeds variables in | |
3692 dnl offix.c, so that the thing is dumped after lastfile.o | |
3693 AC_SUBST(dnd_objs) | |
3694 | |
3695 dnl Autodetect dll support | |
3696 | |
3697 dnl If g++ is used, we have to explicitly link modules with -lstdc++ on Cygwin | |
3698 dnl to avoid undefined symbol errors. This will never hurt, so just do it on | |
3699 dnl all platforms in case others have the same brain damage. | |
3700 if test "$with_xemacs_compiler" = "g++"; then | |
3701 LIBSTDCPP=-lstdc++ | |
3702 else | |
3703 LIBSTDCPP= | |
3704 fi | |
3705 AC_SUBST(LIBSTDCPP) | |
3706 | |
3707 dnl This must come before the detection code for anything that is in a module | |
3708 if test "$enable_modules" != "no"; then | |
3312 | 3709 AC_MSG_CHECKING([for module support]) |
3710 AC_MSG_RESULT() | |
2651 | 3711 |
3712 case "$opsys" in | |
3713 mingw* | cygwin* ) have_dl=yes ;; | |
3714 darwin ) have_dl=yes | |
3715 AC_DEFINE(HAVE_DYLD) | |
3716 ;; | |
3717 * ) | |
3718 dnl Check for the ELFish dlopen() | |
3719 AC_CHECK_HEADER(dlfcn.h, [ | |
3720 AC_MSG_CHECKING([for dlopen in -lc]) | |
3312 | 3721 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <dlfcn.h>], |
3722 [dlopen ("", 0);])], [ have_dl=yes ; AC_MSG_RESULT($have_dl)], [ | |
2741 | 3723 AC_MSG_RESULT([no]) |
2651 | 3724 AC_MSG_CHECKING([for dlopen in -ldl]) |
3725 ac_save_LIBS="$LIBS" | |
3726 LIBS="$LIBS -ldl" | |
3312 | 3727 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <dlfcn.h>], |
3728 [dlopen ("", 0);])], [ have_dl=yes; AC_MSG_RESULT($have_dl)], [ | |
2741 | 3729 AC_MSG_RESULT([no]) |
2651 | 3730 AC_MSG_CHECKING([for dlopen in -lsvld]) |
3731 LIBS="$ac_save_LIBS -lsvld" | |
3312 | 3732 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <dlfcn.h>], |
3733 [dlopen ("", 0);])], [ have_dl=yes; AC_MSG_RESULT($have_dl) ], | |
2741 | 3734 [LIBS="$ac_save_LIBS" ; AC_MSG_RESULT([no])])])])]) |
2651 | 3735 if test "$have_dl" = "yes"; then |
3736 AC_DEFINE(HAVE_DLOPEN) | |
3737 else | |
3738 dnl Check for HP/UX shl_load | |
3739 AC_CHECK_HEADER(dl.h, [ | |
3740 AC_MSG_CHECKING([for shl_load in -lc]) | |
3312 | 3741 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <dl.h>], |
3742 [shl_load ("", 0, 0);])], [have_dl=yes; AC_MSG_RESULT($have_dl)], [ | |
2741 | 3743 AC_MSG_RESULT([no]) |
2651 | 3744 AC_MSG_CHECKING([for shl_load in -ldl]) |
3745 ac_save_LIBS="$LIBS" | |
3746 LIBS="$LIBS -ldld" | |
3312 | 3747 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <dl.h>], |
3748 [shl_load ("", 0, 0);])], [have_dl=yes], | |
2741 | 3749 [LIBS="$ac_save_LIBS"; AC_MSG_RESULT([no])])])]) |
2651 | 3750 if test "$have_dl" = "yes"; then |
3751 AC_DEFINE(HAVE_SHL_LOAD) | |
3752 else | |
3753 dnl Check for libtool's libltdl | |
3754 AC_CHECK_HEADER(ltdl.h, [ | |
3755 AC_MSG_CHECKING([for lt_dlinit in -lltdl]) | |
3756 ac_save_LIBS="$LIBS" | |
3757 LIBS="$LIBS -lltdl" | |
3312 | 3758 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <ltdl.h>], |
3759 [lt_dlinit ();])], [have_dl=yes], [LIBS="$ac_save_LIBS"])]) | |
2741 | 3760 AC_MSG_RESULT($have_dl) |
2651 | 3761 if test "$have_dl" = "yes"; then |
3762 AC_DEFINE(HAVE_LTDL) | |
3763 fi | |
3764 dnl end !HP/UX | |
3765 fi | |
3766 dnl end !dlopen | |
3767 fi | |
3768 ac_save_LIBS= | |
3769 dnl end !darwin | |
3770 esac | |
3771 | |
3772 if test -n "$have_dl"; then | |
3773 dnl XE_SHLIB_STUFF (in aclocal.m4) defines $can_build_shared | |
3774 XE_SHLIB_STUFF | |
3775 fi | |
3776 | |
3777 if test "$can_build_shared" = "yes"; then | |
3778 AC_DEFINE(HAVE_SHLIB) | |
3779 dnl src must be built before modules on MacOSX and Windows platforms, since | |
3780 dnl the binary must be available to properly link the modules | |
3781 dnl For no-module builds, this is added *after* the module directories | |
3782 XE_APPEND(src, MAKE_SUBDIR) | |
3783 XE_APPEND(src, INSTALL_ARCH_DEP_SUBDIR) | |
3784 test -n "$libdl" && XE_PREPEND(-l${libdl}, LIBS) | |
3785 AC_CHECK_FUNCS(dlerror _dlerror) | |
3786 enable_modules=yes | |
3787 MOD_CC="../../lib-src/ellcc" | |
3788 MODCFLAGS="\$(CFLAGS) --mode=compile --mod-output=\$@ -I../../src -I\$(srcdir)/../../src" | |
3789 INSTALLPATH="\$(moduledir)" | |
3790 MOD_INSTALL_PROGRAM=${INSTALL_PROGRAM} | |
3791 OBJECT_TO_BUILD="\$(MODNAME).ell" | |
3792 else | |
3793 if test "$enable_modules" = "yes"; then | |
3794 XE_DIE("Required module support cannot be provided.") | |
3795 else | |
3796 echo " No module support." | |
3797 fi | |
3798 enable_modules=no | |
3799 fi | |
3800 fi | |
3801 if test "$enable_modules" != "yes"; then | |
3802 MOD_CC="$XEMACS_CC" | |
3803 MODCFLAGS="\$(XE_CFLAGS) -I../../src -I\$(srcdir)/../../src" | |
3804 INSTALLPATH="" | |
3805 MOD_INSTALL_PROGRAM="true" | |
3806 OBJECT_TO_BUILD="\$(MODNAME).o" | |
3807 fi | |
3808 MODARCHDIR= | |
3809 MAKE_DOCFILE="../../lib-src/make-docfile" | |
3810 AC_SUBST(with_modules, $enable_modules) | |
3811 AC_SUBST(MOD_CC) | |
3812 AC_SUBST(MODARCHDIR) | |
3813 AC_SUBST(MAKE_DOCFILE) | |
3814 AC_SUBST(MODCFLAGS) | |
3815 AC_SUBST(INSTALLPATH) | |
3816 AC_SUBST(MOD_INSTALL_PROGRAM) | |
3817 AC_SUBST(OBJECT_TO_BUILD) | |
3818 | |
3819 dnl Autodetect tooltalk | |
3820 if test "$with_tooltalk" != "no" ; then | |
3821 dnl autodetect the location of tt_c.h | |
3822 dnl tt_c.h might be in Tt or desktop include directories | |
3823 for dir in "" "Tt/" "desktop/" ; do | |
3824 AC_CHECK_HEADER(${dir}tt_c.h, tt_c_h_file="${dir}tt_c.h"; break) | |
3825 done | |
3826 if test -z "$tt_c_h_file"; then | |
3827 if test "$with_tooltalk" = "yes"; then | |
3828 USAGE_ERROR("Unable to find required tooltalk header files.") | |
3829 fi | |
3830 with_tooltalk=no | |
3831 fi | |
3832 fi | |
3833 if test "$with_tooltalk" != "no" ; then | |
3834 for extra_libs in "" "-lI18N -lce" "-lcxx"; do | |
3835 AC_CHECK_LIB(tt, tt_message_create, | |
3836 tt_libs="-ltt $extra_libs"; break, [:],$extra_libs) | |
3837 done | |
3838 if test -z "$tt_libs"; then | |
3839 if test "$with_tooltalk" = "yes"; then | |
3840 USAGE_ERROR("Unable to find required tooltalk libraries.") | |
3841 fi | |
3842 with_tooltalk=no | |
3843 fi | |
3844 fi | |
3845 test -z "$with_tooltalk" && with_tooltalk=yes | |
3846 if test "$with_tooltalk" = "yes"; then | |
3847 AC_DEFINE(TOOLTALK) | |
3848 AC_DEFINE_UNQUOTED(TT_C_H_FILE, "$tt_c_h_file") | |
3849 XE_PREPEND($tt_libs, libs_x) | |
3850 fi | |
3851 | |
3852 dnl Autodetect CDE | |
3853 test -z "$with_cde" && { AC_CHECK_HEADER(Dt/Dt.h, , with_cde=no) } | |
3854 test -z "$with_cde" && { AC_CHECK_LIB(DtSvc, DtDndDragStart, [:], with_cde=no) } | |
3855 if test "$with_dragndrop" = "no" ; then | |
3856 if test "$with_cde" = "yes" ; then | |
3312 | 3857 AC_MSG_WARN([--with-cde forced to `no'; no generic Drag'n'Drop support]) |
2651 | 3858 fi |
3859 with_cde=no | |
3860 fi | |
3861 test -z "$with_cde" && with_cde=yes | |
3862 if test "$with_cde" = "yes" ; then | |
3863 AC_DEFINE(HAVE_CDE) | |
3864 XE_PREPEND(-lDtSvc, libs_x) | |
3865 XE_APPEND(CDE, dragndrop_proto) | |
3866 with_tooltalk=yes # CDE requires Tooltalk | |
3867 need_motif=yes # CDE requires Motif | |
3868 fi | |
3869 | |
3870 dnl Always compile OffiX unless --without-offix is given, no | |
3871 dnl X11 support is compiled in, no standard Xmu is available, | |
3872 dnl or dragndrop support is disabled | |
3873 dnl Because OffiX support currently loses when more than one display | |
3874 dnl is in use, we now disable it by default -slb 07/10/1998. | |
3875 test "$window_system" != "x11" && with_offix=no | |
3876 if test "$with_xmu" != yes -a "$with_x11" = yes; then | |
3877 if test "$with_offix" = "yes" ; then | |
3312 | 3878 AC_MSG_WARN([--with-offix forced to `no'; no real Xmu support]) |
2651 | 3879 fi |
3880 with_offix=no | |
3881 fi | |
3882 if test "$with_dragndrop" = no; then | |
3883 if test "$with_offix" = "yes" ; then | |
3312 | 3884 AC_MSG_WARN([--with-offix forced to `no'; no generic Drag'n'Drop support]) |
2651 | 3885 fi |
3886 with_offix=no | |
3887 fi | |
3888 if test "$with_cde" = yes; then | |
3889 if test "$with_offix" = "yes" ; then | |
3312 | 3890 AC_MSG_WARN([--with-offix forced to `no'; CDE already found]) |
2651 | 3891 fi |
3892 with_offix=no | |
3893 fi | |
3894 test -z "$with_offix" && with_offix=no | |
3895 if test "$with_offix" = "yes"; then | |
3896 AC_DEFINE(HAVE_OFFIX_DND) | |
3897 XE_APPEND(offix.o, dnd_objs) | |
3898 XE_APPEND(OffiX, dragndrop_proto) | |
3899 fi | |
3900 if test "$with_gtk" = "yes"; then | |
3901 XE_APPEND(GTK, dragndrop_proto) | |
3902 fi | |
3903 | |
3904 dnl Autodetect Drag'n'Drop support | |
3905 dnl always included if CDE, Offix, or MSWindows are defined | |
3906 if test "$with_dragndrop" != "no" ; then | |
3907 AC_MSG_CHECKING(if drag and drop API is needed) | |
3908 if test -n "$dragndrop_proto" ; then | |
3909 with_dragndrop=yes | |
3910 AC_MSG_RESULT([yes (${dragndrop_proto} )]) | |
3911 AC_DEFINE(HAVE_DRAGNDROP) | |
3912 XE_APPEND(dragdrop.o, extra_objs) | |
3913 else | |
3914 with_dragndrop=no | |
3915 AC_MSG_RESULT(no) | |
3916 fi | |
3917 fi | |
3918 | |
3919 dnl Autodetect LDAP | |
3312 | 3920 AC_MSG_CHECKING([for LDAP]) |
3921 AC_MSG_RESULT() | |
2651 | 3922 ldap_libs= |
3923 test -z "$with_ldap" && { AC_CHECK_HEADER(ldap.h, ,with_ldap=no) } | |
3924 test -z "$with_ldap" && { AC_CHECK_HEADER(lber.h, ,with_ldap=no) } | |
3925 if test "$with_ldap" != "no"; then | |
3926 AC_CHECK_LIB(ldap, ldap_search, with_ldap=yes) | |
3927 dnl Check for other libraries we need to link with to get the main routines. | |
3928 test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes], , -llber) } | |
3929 test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes with_ldap_krb=yes], , -llber -lkrb) } | |
3930 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) } | |
3931 dnl Recently, we need -lber even though the main routines are elsewhere, | |
3932 dnl because otherwise be get link errors w.r.t. ber_pvt_opt_on. So just | |
3933 dnl check for that (it's a variable not a fun but that doesn't seem to | |
3934 dnl matter in these checks) and stick in -lber if so. Can't hurt (even to | |
3935 dnl stick it in always shouldn't hurt, I don't think) ... #### Someone who | |
3936 dnl #### understands LDAP needs to fix this properly. | |
3937 test "$with_ldap_lber" != "yes" && { AC_CHECK_LIB(lber, ber_pvt_opt_on, with_ldap_lber=yes) } | |
3938 fi | |
3939 if test "$with_ldap" = "yes"; then | |
3940 AC_DEFINE(HAVE_LDAP) | |
3941 if test "$with_ldap_des" = "yes" ; then | |
3942 XE_PREPEND(-ldes, ldap_libs) | |
3943 fi | |
3944 if test "$with_ldap_krb" = "yes" ; then | |
3945 XE_PREPEND(-lkrb, ldap_libs) | |
3946 fi | |
3947 if test "$with_ldap_lber" = "yes" ; then | |
3948 XE_PREPEND(-llber, ldap_libs) | |
3949 fi | |
3950 XE_PREPEND(-lldap, ldap_libs) | |
3951 save_LIBS="$LIBS" LIBS="$LIBS $ldap_libs" | |
3952 AC_CHECK_FUNCS(ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result) | |
3953 LIBS="$save_LIBS" | |
3954 XE_APPEND(modules/ldap, MAKE_SUBDIR) | |
3955 need_modules_common=yes | |
3956 if test "$enable_modules" = "yes"; then | |
3957 XE_APPEND(modules/ldap, INSTALL_ARCH_DEP_SUBDIR) | |
3958 fi | |
3959 fi | |
3960 AC_SUBST(ldap_libs) | |
3961 | |
3962 dnl Autodetect PostgreSQL | |
3963 dnl On many Linux systems, PostgreSQL is packaged to be installed in /usr; | |
3964 dnl in this case, configure will easily detect it there. | |
3965 dnl | |
3966 dnl If PostgreSQL is installed into a different prefix, | |
3967 dnl (such as the default /usr/local/pgsql when building from source), | |
3968 dnl that prefix must be specified using the --with-site-prefixes flag. | |
3969 postgresql_libs= | |
3970 if test "$with_postgresql" != "no"; then | |
3312 | 3971 AC_MSG_CHECKING([for PostgreSQL]) |
3972 AC_MSG_RESULT() | |
2651 | 3973 |
3974 dnl Look for these standard header file locations, known to be used on Linux | |
3975 for header_dir in "" "pgsql/" "postgresql/"; do | |
3976 AC_CHECK_HEADER(${header_dir}libpq-fe.h, | |
3977 libpq_fe_h_file=${header_dir}libpq-fe.h; break) | |
3978 done | |
3979 | |
3050 | 3980 pq_libs= |
3981 extra_libs= | |
3982 if test -n "$libpq_fe_h_file"; then | |
3983 dnl #### Would it be nicer to do this with a loop? | |
3984 dnl It seems unlikely that checking for SSL/crypto support can hurt, | |
3985 dnl even if it's found. | |
3986 AC_CHECK_LIB(pq, PQconnectdb,[pq_libs="-lpq"],[ | |
3987 unset ac_cv_lib_pq_PQconnectdb; | |
3988 AC_CHECK_LIB(pq, PQconnectdb,[pq_libs="-lpq -lcrypto -lssl"],, | |
3989 [-lcrypto -lssl])]) | |
3990 if test -z "$pq_libs"; then | |
3991 have_libpq="no" | |
3992 else | |
3993 have_libpq="yes" | |
3994 fi | |
3995 fi | |
2651 | 3996 |
3997 if test -n "$libpq_fe_h_file" -a "$have_libpq" = "yes"; then | |
3998 with_postgresql=yes | |
3999 AC_DEFINE(HAVE_POSTGRESQL) | |
4000 AC_CHECK_LIB(pq,PQconnectStart, [ | |
4001 with_postgresqlv7=yes; | |
3050 | 4002 AC_DEFINE(HAVE_POSTGRESQLV7)], [:], $extra_libs) |
2651 | 4003 AC_DEFINE_UNQUOTED(LIBPQ_FE_H_FILE, "$libpq_fe_h_file") |
3050 | 4004 XE_PREPEND([$pq_libs], postgresql_libs) |
2651 | 4005 XE_APPEND(modules/postgresql, MAKE_SUBDIR) |
4006 need_modules_common=yes | |
4007 if test "$enable_modules" = "yes"; then | |
4008 XE_APPEND(modules/postgresql, INSTALL_ARCH_DEP_SUBDIR) | |
4009 fi | |
4010 elif test "$with_postgresql" = "yes"; then | |
4011 XE_DIE("Required PostgreSQL support cannot be provided. Check --with-site-prefixes.") | |
4012 fi | |
4013 fi | |
4014 AC_SUBST(postgresql_libs) | |
4015 | |
4016 dnl ---------------------- | |
4017 dnl Graphics libraries | |
4018 dnl ---------------------- | |
4019 | |
4020 if test "$window_system" != "none"; then | |
3312 | 4021 AC_MSG_CHECKING([for graphics libraries]) |
4022 AC_MSG_RESULT() | |
2651 | 4023 |
4024 dnl add special code to handle xpm-nox on Cygwin (csw) | |
4025 dnl -- should only happen if CYGWIN && WITH_XPM && WITH_MSW && !WITH_X | |
4026 libpath_xpm= | |
4027 incpath_xpm= | |
3727 | 4028 libname_xpm="-lXpm" |
2651 | 4029 case "$opsys" in |
4030 cygwin*) | |
3228 | 4031 cygwin_top=`eval gcc -print-search-dirs | sed -ne s'/install: //p'` |
4032 cygwin_top=`eval "cd $cygwin_top/../../../..; pwd"` | |
2651 | 4033 case "$window_system" in |
4034 dnl use "standard" search pattern | |
4035 x11) ;; | |
4036 dnl hardcode "standard" non-X11 xpm lib/inc dirs | |
4037 msw) libpath_xpm="-L${cygwin_top}/lib/noX" | |
4038 incpath_xpm="-I${cygwin_top}/include/noX" | |
3727 | 4039 libname_xpm="-lXpm-noX" |
2651 | 4040 ;; |
4041 dnl not supported on cygwin (yet?) | |
4042 gtk) ;; | |
4043 dnl probably not reached... | |
4044 none) ;; | |
4045 dnl ditto | |
4046 *) ;; | |
4047 esac | |
4048 ;; | |
4049 dnl use "standard" search pattern for all other OS's | |
4050 *) ;; | |
4051 esac | |
4052 dnl Autodetect Xpm | |
4053 xpm_problem="" | |
4054 if test -z "$with_xpm"; then | |
4055 XE_PREPEND("$incpath_xpm", CFLAGS) | |
2940 | 4056 XE_PREPEND("$incpath_xpm", XE_CFLAGS) |
2651 | 4057 XE_PREPEND("$libpath_xpm", LDFLAGS) |
4058 AC_MSG_CHECKING(for Xpm - no older than 3.4f) | |
3727 | 4059 xe_check_libs="$libname_xpm" |
2651 | 4060 AC_RUN_IFELSE([AC_LANG_SOURCE([#define XPM_NUMBERS |
4061 #include <X11/xpm.h> | |
4062 int main(int c, char **v) { | |
4063 return c == 1 ? 0 : | |
4064 XpmIncludeVersion != XpmLibraryVersion() ? 1 : | |
4065 XpmIncludeVersion < 30406 ? 2 : 0 ;}])], | |
4066 [./conftest dummy_arg; xpm_status=$?; | |
4067 if test "$xpm_status" = "0"; then | |
4068 with_xpm=yes; | |
4069 else | |
4070 with_xpm=no; | |
4071 if test "$xpm_status" = "1"; then | |
4072 xpm_problem="Xpm library version and header file version don't match!" | |
4073 elif test "$xpm_status" = "2"; then | |
4074 xpm_problem="Xpm library version is too old!" | |
4075 else | |
4076 xpm_problem="Internal xpm detection logic error!" | |
4077 fi | |
4078 echo " | |
4079 *** WARNING *** $xpm_problem | |
4080 I'm not touching that with a 10-foot pole! | |
4081 If you really want to use the installed version of Xpm, rerun | |
4082 configure and add '--with-xpm=yes', but don't blame me if XEmacs crashes!" | |
4083 fi], | |
4084 [with_xpm=no]) | |
4085 xe_check_libs= | |
4086 AC_MSG_RESULT($with_xpm) | |
4087 fi | |
4088 if test "$with_xpm" = "yes"; then | |
4089 dnl #### This code assumes that if AC_CHECK_LIB fails, | |
4090 dnl #### then it will succeed if FOR_MSW is defined, | |
4091 dnl #### but doesn't actually verify this assumption. | |
4092 AC_DEFINE(HAVE_XPM) | |
4093 XE_PREPEND("$libpath_xpm", LDFLAGS) | |
3727 | 4094 XE_PREPEND("$libname_xpm", libs_x) |
2651 | 4095 XE_PREPEND("$incpath_xpm", CFLAGS) |
2940 | 4096 XE_PREPEND("$incpath_xpm", XE_CFLAGS) |
3312 | 4097 AC_MSG_CHECKING([for "FOR_MSW" xpm]) |
3727 | 4098 xe_check_libs="$libname_xpm" |
3316 | 4099 AC_LINK_IFELSE([AC_LANG_PROGRAM([],[XpmCreatePixmapFromData();])], |
2651 | 4100 [xpm_for_msw=no], |
4101 [xpm_for_msw=yes]) | |
4102 xe_check_libs= | |
4103 AC_MSG_RESULT($xpm_for_msw) | |
4104 if test "$xpm_for_msw" = "yes"; then | |
4105 AC_DEFINE(FOR_MSW) | |
4106 fi | |
4107 fi | |
4108 | |
4109 dnl Autodetect XFACE | |
4110 test -z "$with_xface" && { AC_CHECK_HEADER(compface.h, ,with_xface=no) } | |
4111 test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) } | |
4112 test -z "$with_xface" && with_xface=yes | |
4113 if test "$with_xface" = "yes"; then | |
4114 AC_DEFINE(HAVE_XFACE) | |
4115 XE_PREPEND(-lcompface, libs_x) | |
4116 fi | |
4117 | |
4118 dnl For a brief period we had the GIF code split out into a separate library, | |
4119 dnl but patent problems, etc. sort of squashed that idea. | |
4120 dnl We default to building with builtin GIF decoding | |
4121 if test "$with_gif" != "no"; then | |
4122 with_gif="yes" | |
4123 AC_DEFINE(HAVE_GIF) | |
4124 fi | |
4125 | |
4126 dnl Too many stupid linkers can't detect cascaded lib dependencies until runtime | |
4127 dnl So we always search for libz compression support. | |
4128 if test "$with_png $with_tiff" != "no no"; then | |
4129 AC_CHECK_LIB(c, inflate, [:], [ | |
4130 AC_CHECK_LIB(z, inflate, [XE_PREPEND(-lz, libs_x)],[ | |
4131 AC_CHECK_LIB(gz, inflate, [XE_PREPEND(-lgz, libs_x)])])]) | |
4132 fi | |
4133 | |
4134 dnl autodetect JPEG | |
4135 test -z "$with_jpeg" && { AC_CHECK_HEADER(jpeglib.h, ,with_jpeg=no) } | |
4136 test -z "$with_jpeg" && { AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,[:],with_jpeg=no) } | |
4137 test -z "$with_jpeg" && with_jpeg=yes | |
4138 if test "$with_jpeg" = "yes"; then | |
4139 AC_DEFINE(HAVE_JPEG) | |
4140 XE_PREPEND(-ljpeg, libs_x) | |
4141 fi | |
4142 | |
4143 dnl autodetect PNG | |
4144 png_problem="" | |
4145 test -z "$with_png" && { AC_CHECK_FUNC(pow, ,with_png=no) } | |
4146 test -z "$with_png" && { AC_CHECK_HEADER(png.h, ,with_png=no) } | |
2667 | 4147 test -z "$with_png" && { AC_CHECK_LIB(png, png_read_image,[:],with_png=no,[-lz]) } |
2651 | 4148 if test -z "$with_png"; then |
4149 AC_MSG_CHECKING(for workable png version information) | |
4150 xe_check_libs="-lpng -lz" | |
4151 AC_RUN_IFELSE([AC_LANG_SOURCE([#include <png.h> | |
4152 int main(int c, char **v) { | |
4153 if (c == 1) return 0; | |
4154 if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1; | |
4155 return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}])], | |
4156 [./conftest dummy_arg; png_status=$?; | |
4157 if test "$png_status" = "0"; then | |
4158 with_png=yes; | |
4159 else | |
4160 with_png=no; | |
4161 if test "$png_status" = "1"; then | |
4162 png_problem="PNG library version and header file don't match!" | |
4163 elif test "$png_status" = "2"; then | |
4164 png_problem="PNG library version too old (pre 1.0.2)!" | |
4165 fi | |
4166 echo " | |
4167 *** WARNING *** $png_problem | |
4168 I'm not touching that with a 10-foot pole! | |
4169 If you really want to use the installed version of libPNG, rerun | |
4170 configure and add '--with-png=yes', but don't blame me if XEmacs crashes!" | |
4171 fi], | |
4172 [with_png=no]) | |
4173 xe_check_libs= | |
4174 AC_MSG_RESULT($with_png) | |
4175 fi | |
4176 if test "$with_png" = "yes"; then | |
4177 AC_DEFINE(HAVE_PNG) | |
4178 XE_PREPEND(-lpng, libs_x) | |
4179 fi | |
4180 | |
4181 dnl autodetect TIFF | |
4182 test -z "$with_tiff" && { AC_CHECK_HEADER(tiffio.h, ,with_tiff=no) } | |
2667 | 4183 test -z "$with_tiff" && { AC_CHECK_LIB(tiff, TIFFClientOpen,[:],with_tiff=no,[-lz]) } |
2651 | 4184 test -z "$with_tiff" && with_tiff=yes |
4185 if test "$with_tiff" = "yes"; then | |
4186 AC_DEFINE(HAVE_TIFF) | |
4187 XE_PREPEND(-ltiff, libs_x) | |
4188 fi | |
4189 fi | |
4190 | |
4191 dnl ---------------------- | |
4192 dnl GTK-Specific Graphics libraries | |
4193 dnl ---------------------- | |
4194 | |
4195 if test "$with_gtk" = "yes"; then | |
4196 dnl Autodetect XFACE | |
4197 test -z "$with_xface" && { AC_CHECK_HEADER(compface.h, ,with_xface=no) } | |
4198 test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) } | |
4199 test -z "$with_xface" && with_xface=yes | |
4200 if test "$with_xface" = "yes"; then | |
4201 AC_DEFINE(HAVE_XFACE) | |
4202 XE_PREPEND(-lcompface, libs_gtk) | |
4203 fi | |
4204 fi | |
4205 | |
4206 dnl ---------------------- | |
4207 dnl X-Specific Graphics libraries | |
4208 dnl ---------------------- | |
4209 | |
4210 if test "$with_x11" = "yes"; then | |
3312 | 4211 AC_MSG_CHECKING([for X11 graphics libraries]) |
4212 AC_MSG_RESULT() | |
2651 | 4213 fi |
4214 | |
4215 case "$enable_widgets" in | |
3019 | 4216 "" | "yes" | "athena") detect_athena=yes ;; |
2651 | 4217 *) detect_athena=no ;; |
4218 esac | |
4219 | |
3019 | 4220 case "$enable_dialogs" in |
4221 "" | "yes" | "athena") detect_athena=yes ;; | |
4222 esac | |
4223 | |
2651 | 4224 if test "$with_x11" = "yes" -a "$detect_athena" = "yes" ; then |
3312 | 4225 AC_MSG_CHECKING([for the Athena widgets]) |
4226 AC_MSG_RESULT() | |
2651 | 4227 |
4228 dnl What in heck did the user actually want? | |
4229 case "$with_athena" in | |
4230 dnl This is the default, old fashioned flat Athena. | |
4231 "xaw" | "") athena_variant=Xaw athena_3d=no ;; | |
4232 "3d") athena_variant=Xaw3d athena_3d=yes ;; | |
4233 "next") athena_variant=neXtaw athena_3d=yes ;; | |
4234 "95") athena_variant=Xaw95 athena_3d=yes ;; | |
4235 "xpm") athena_variant=XawXpm athena_3d=yes ;; | |
4236 *) XE_DIE("Unknown Athena widget set \`$with_athena'. This should not happen.") ;; | |
4237 esac | |
4238 | |
4239 dnl Search for the Athena library... | |
4240 if test "$athena_3d" = "no"; then | |
4241 AC_CHECK_LIB($athena_variant, XawScrollbarSetThumb, | |
4242 [ | |
4243 dnl Must not be a 3d library... | |
4244 AC_CHECK_LIB($athena_variant, threeDClassRec, | |
4245 [AC_MSG_WARN([Could not find a non-3d Athena widget library.])], | |
4246 athena_lib=$athena_variant) | |
4247 ], | |
4248 AC_MSG_WARN([Could not find an Athena widget library.])) | |
4249 else | |
4250 dnl The real configuration, need 3d library | |
4251 AC_CHECK_LIB($athena_variant, threeDClassRec, athena_lib=$athena_variant, | |
4252 dnl OK, couldn't find it with a proper name, try the standard Athena lib | |
4253 dnl If that is 3d, presume the user asked for what they have installed. | |
4254 AC_CHECK_LIB(Xaw, threeDClassRec, | |
4255 [ | |
4256 athena_lib=Xaw; | |
4257 AC_MSG_WARN([Assuming that libXaw is actually $athena_variant.]); | |
4258 ], | |
4259 [AC_MSG_WARN([Could not find a 3d Athena widget library that looked like $athena_variant.])])) | |
4260 fi | |
4261 | |
4262 dnl Now we locate the Athena headers that we need. | |
4263 if test "$athena_3d" = "no"; then | |
4264 AC_CHECK_HEADER(X11/Xaw/ThreeD.h, | |
4265 [AC_MSG_WARN([Could not find a non-3d Athena header set.])], | |
4266 [AC_CHECK_HEADER(X11/Xaw/XawInit.h, | |
4267 [athena_h_path=X11/Xaw], | |
2694 | 4268 [AC_MSG_WARN([Could not find a non-3d Athena header set.])], |
4269 [ | |
4270 #include <X11/Intrinsic.h> | |
4271 ])]) | |
2651 | 4272 else |
4273 dnl The three-d Athena headers are so much more slippery. | |
4274 dnl Curse this `Lets replace standard libraries' thing that they did. :/ | |
4275 AC_CHECK_HEADER(X11/$athena_variant/XawInit.h, | |
4276 [AC_CHECK_HEADER(X11/$athena_variant/ThreeD.h, | |
4277 [athena_h_path=X11/$athena_variant])],[], | |
4278 [ | |
4279 #if HAVE_X11_XFUNCPROTO_H | |
4280 #include <X11/Xfuncproto.h> | |
4281 #endif | |
2705 | 4282 #include <X11/Intrinsic.h> |
2651 | 4283 ]) |
4284 | |
4285 dnl Is the variant specific header directory directly under include? | |
4286 if test -z "$athena_h_path"; then | |
4287 AC_CHECK_HEADER($athena_variant/XawInit.h, | |
4288 [AC_CHECK_HEADER($athena_variant/ThreeD.h, | |
4289 athena_h_path=$athena_variant)],[], | |
4290 [ | |
4291 #if HAVE_X11_XFUNCPROTO_H | |
4292 #include <X11/Xfuncproto.h> | |
4293 #endif | |
2694 | 4294 #include <X11/Intrinsic.h> |
2651 | 4295 ]) |
4296 fi | |
4297 | |
4298 dnl If we couldn't find the specific variant, try the generic Athena 3d headers | |
4299 if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then | |
4300 AC_CHECK_HEADER(X11/Xaw3d/XawInit.h, | |
4301 [AC_CHECK_HEADER(X11/Xaw3d/ThreeD.h, | |
4302 [ | |
4303 AC_MSG_WARN([Assuming that X11/Xaw3d headers are suitable for $athena_variant.]) | |
4304 athena_h_path=X11/Xaw3d | |
4305 ])],[], | |
4306 [ | |
4307 #if HAVE_X11_XFUNCPROTO_H | |
4308 #include <X11/Xfuncproto.h> | |
4309 #endif | |
2694 | 4310 #include <X11/Intrinsic.h> |
2651 | 4311 ]) |
4312 fi | |
4313 | |
4314 dnl Also generic 3d headers directly under include dir | |
4315 if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then | |
4316 AC_CHECK_HEADER(Xaw3d/XawInit.h, | |
4317 [AC_CHECK_HEADER(Xaw3d/ThreeD.h, | |
4318 [ | |
4319 AC_MSG_WARN([Assuming that Xaw3d headers are suitable for $athena_variant.]) | |
4320 athena_h_path=Xaw3d | |
4321 ])],[], | |
4322 [ | |
4323 #if HAVE_X11_XFUNCPROTO_H | |
4324 #include <X11/Xfuncproto.h> | |
4325 #endif | |
2694 | 4326 #include <X11/Intrinsic.h> |
2651 | 4327 ]) |
4328 fi | |
4329 | |
4330 dnl If nothing yet found, see if Xaw is a 3d header set... | |
4331 dnl We AC_MSG_WARN if we fail because I am all out of ideas... | |
4332 if test -z "$athena_h_path"; then | |
4333 AC_CHECK_HEADER(X11/Xaw/ThreeD.h, | |
4334 [ | |
4335 AC_MSG_WARN([Assuming that X11/Xaw headers are suitable for $athena_variant.]) | |
4336 athena_h_path=X11/Xaw | |
4337 ], | |
4338 [AC_MSG_WARN([Could not find a suitable 3d Athena header set.])]) | |
4339 fi | |
4340 fi | |
4341 | |
4342 dnl Do we actually have a usable Athena widget set? Please? | |
4343 if test -n "$athena_lib" -a -n "$athena_h_path"; then | |
4344 have_xaw=yes | |
4345 else | |
4346 have_xaw=no | |
4347 fi | |
4348 | |
4349 else | |
4350 have_xaw=no | |
4351 fi dnl "$with_x11" = "yes" -a "detect_athena" = "yes" | |
4352 | |
4353 if test "$with_x11" = "yes"; then | |
4354 dnl autodetect Motif - but only add to libs_x later (if necessary) | |
4355 dnl Use a different function to the earlier test to avoid problems with the | |
4356 dnl internal cache. | |
4357 AC_CHECK_HEADER(Xm/Xm.h, | |
4358 [AC_CHECK_LIB(Xm, XmStringCreate, have_motif=yes, have_motif=no)], | |
4359 have_motif=no) | |
4360 | |
4361 if test "$have_motif" = "yes"; then | |
4362 dnl autodetect lesstif | |
4363 AC_MSG_CHECKING(for Lesstif) | |
4364 AC_EGREP_CPP(yes, | |
4365 [#include <Xm/Xm.h> | |
4366 #ifdef LESSTIF_VERSION | |
4367 yes | |
4368 #endif | |
4369 ], have_lesstif=yes, have_lesstif=no) | |
4370 AC_MSG_RESULT($have_lesstif) | |
4371 fi | |
4372 | |
4373 fi dnl "$with_x11" = "yes" | |
4374 | |
4375 dnl Finish ensuring that we have values for the various toolkit items. | |
4376 dnl Not all toolkits support all widgets | |
3019 | 4377 |
4378 dnl Avoid using Motif :-( | |
4379 case "$opsys" in | |
3738 | 4380 *linux* | *darwin* | *bsd* | *cygwin* ) lucid_prefers_motif="no" ;; |
3019 | 4381 * ) lucid_prefers_motif="yes" ;; |
4382 esac | |
2651 | 4383 |
4384 case "$enable_menubars" in "" | "yes" | "athena" ) | |
4385 enable_menubars="lucid" ;; | |
4386 esac | |
3094 | 4387 dnl this is not in xft reloaded #3 |
4388 if test "$with_xft_menubars" != "no" ; then | |
4389 if test "$with_xft_emacs" = "yes" -a "$with_menubars" != "no" ; then | |
4390 with_xft_menubars="yes" | |
4391 else | |
4392 with_xft_menubars="no" | |
4393 fi | |
4394 fi | |
2651 | 4395 case "$enable_dialogs" in "" | "yes" | "lucid" ) |
3019 | 4396 if test "$lucid_prefers_motif" = "yes"; then |
4397 if test "$have_motif" = "yes"; then enable_dialogs="motif" | |
4398 elif test "$have_xaw" = "yes"; then enable_dialogs="athena" | |
4399 elif test "$with_msw" = "yes"; then enable_dialogs="msw" | |
4400 else enable_dialogs=no | |
4401 fi | |
4402 else | |
4403 if test "$have_xaw" = "yes"; then enable_dialogs="athena" | |
4404 elif test "$have_motif" = "yes"; then enable_dialogs="motif" | |
4405 elif test "$with_msw" = "yes"; then enable_dialogs="msw" | |
4406 else enable_dialogs=no | |
4407 fi | |
2651 | 4408 fi ;; |
4409 esac | |
4410 case "$enable_scrollbars" in "" | "yes" ) | |
4411 enable_scrollbars="lucid" ;; | |
4412 esac | |
4413 case "$enable_widgets" in "" | "yes" | "lucid") | |
3019 | 4414 if test "$lucid_prefers_motif" = "yes"; then |
4415 if test "$have_motif" = "yes"; then enable_widgets="motif" | |
4416 elif test "$have_xaw" = "yes"; then enable_widgets="athena" | |
4417 elif test "$with_msw" = "yes"; then enable_widgets="msw" | |
4418 else enable_widgets=no | |
4419 fi | |
4420 else | |
4421 if test "$have_xaw" = "yes"; then enable_widgets="athena" | |
4422 elif test "$have_motif" = "yes"; then enable_widgets="motif" | |
4423 elif test "$with_msw" = "yes"; then enable_widgets="msw" | |
4424 else enable_widgets=no | |
4425 fi | |
2651 | 4426 fi ;; |
4427 esac | |
3094 | 4428 dnl this is not in xft reloaded #3 |
4429 if test "$with_xft_tabs" != "no" ; then | |
4430 if test "$with_xft_emacs" = "yes" -a "$enable_widgets" != "no" ; then | |
4431 with_xft_tabs="yes" | |
4432 else | |
4433 with_xft_tabs="no" | |
4434 fi | |
4435 fi | |
4436 dnl this is not in xft reloaded #3 | |
4437 if test "$with_xft_gauge" != "no" ; then | |
4438 if test "$with_xft_emacs" = "yes" -a "$enable_widgets" != "no" ; then | |
4439 with_xft_gauge="yes" | |
4440 else | |
4441 with_xft_gauge="no" | |
4442 fi | |
4443 fi | |
2651 | 4444 |
4445 all_widgets="$enable_menubars $enable_scrollbars $enable_dialogs $enable_toolbars $enable_widgets" | |
4446 | |
4447 case "$all_widgets" in | |
4448 *athena* ) | |
4449 if test "$have_xaw" != "yes"; then | |
4450 XE_DIE("Could not find a suitable Athena library to build with.") | |
4451 fi | |
4452 | |
4453 dnl Add the Lucid widget Athena code | |
4454 XE_APPEND(lwlib-Xaw.o, lwlib_objs) | |
4455 | |
4456 dnl Add the Athena widget library we located earlier | |
4457 XE_PREPEND(-l$athena_lib, libs_x) | |
4458 | |
4459 dnl Tell lwlib where to find the Athena header files. | |
4460 dnl Many people have tried to create a `smart' way of doing this, | |
4461 dnl but all have failed. Before changing the following ugly definitions, | |
4462 dnl consult the veterans of many a battle. | |
4463 AC_DEFINE_UNQUOTED(ATHENA_Scrollbar_h_,"$athena_h_path/Scrollbar.h") | |
4464 AC_DEFINE_UNQUOTED(ATHENA_Dialog_h_,"$athena_h_path/Dialog.h") | |
4465 AC_DEFINE_UNQUOTED(ATHENA_Form_h_,"$athena_h_path/Form.h") | |
4466 AC_DEFINE_UNQUOTED(ATHENA_Command_h_,"$athena_h_path/Command.h") | |
4467 AC_DEFINE_UNQUOTED(ATHENA_Label_h_,"$athena_h_path/Label.h") | |
4468 AC_DEFINE_UNQUOTED(ATHENA_LabelP_h_,"$athena_h_path/LabelP.h") | |
4469 AC_DEFINE_UNQUOTED(ATHENA_Toggle_h_,"$athena_h_path/Toggle.h") | |
4470 AC_DEFINE_UNQUOTED(ATHENA_ToggleP_h_,"$athena_h_path/ToggleP.h") | |
4471 AC_DEFINE_UNQUOTED(ATHENA_AsciiText_h_,"$athena_h_path/AsciiText.h") | |
4472 AC_DEFINE_UNQUOTED(ATHENA_XawInit_h_,"$athena_h_path/XawInit.h") | |
4473 | |
4474 AC_DEFINE(LWLIB_USES_ATHENA) | |
4475 AC_DEFINE(NEED_ATHENA) | |
4476 need_athena="yes" | |
4477 | |
4478 if test "$athena_3d" = "yes"; then | |
4479 AC_DEFINE(HAVE_ATHENA_3D) | |
4480 fi | |
4481 ;; | |
4482 esac | |
4483 | |
4484 case "$all_widgets" in *motif* ) | |
4485 AC_DEFINE(LWLIB_USES_MOTIF) | |
4486 AC_DEFINE(NEED_MOTIF) | |
4487 XE_APPEND(lwlib-Xm.o, lwlib_objs) | |
4488 need_motif=yes ;; | |
4489 esac | |
4490 | |
4491 test "$enable_menubars" = "lucid" && XE_APPEND(xlwmenu.o, lwlib_objs) | |
4492 test "$enable_menubars" = "motif" && XE_APPEND(xlwmenu.o, lwlib_objs) | |
4493 test "$enable_scrollbars" = "lucid" && XE_APPEND(xlwscrollbar.o, lwlib_objs) | |
4494 test "$enable_widgets" != "no" && test "$enable_widgets" != "msw" && \ | |
4495 XE_APPEND(xlwtabs.o xlwgcs.o, lwlib_objs) | |
4496 case "$enable_widgets" in athena* ) | |
4497 XE_APPEND(xlwradio.o xlwcheckbox.o xlwgauge.o, lwlib_objs);; | |
4498 esac | |
4499 case "$all_widgets" in *lucid* ) | |
4500 AC_DEFINE(NEED_LUCID) | |
4501 XE_APPEND(lwlib-Xlw.o, lwlib_objs) ;; | |
4502 esac | |
4503 | |
4504 AC_SUBST(lwlib_objs) | |
4505 | |
4506 test "$enable_scrollbars" = "athena" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA) | |
4507 test "$enable_dialogs" = "athena" && AC_DEFINE(LWLIB_DIALOGS_ATHENA) | |
4508 | |
4509 if test "$athena_3d" = "yes"; then | |
4510 test "$enable_scrollbars" = "athena" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA3D) | |
4511 test "$enable_dialogs" = "athena" && AC_DEFINE(LWLIB_DIALOGS_ATHENA3D) | |
4512 fi | |
4513 | |
4514 case "$enable_widgets" in athena* ) AC_DEFINE(LWLIB_WIDGETS_ATHENA);; esac | |
4515 test "$enable_widgets" != "no" && test "$enable_widgets" != "msw" && \ | |
4516 AC_DEFINE(LWLIB_TABS_LUCID) | |
4517 | |
4518 test "$enable_menubars" != "no" && AC_DEFINE(HAVE_MENUBARS) | |
4519 test "$enable_scrollbars" != "no" && AC_DEFINE(HAVE_SCROLLBARS) | |
4520 test "$enable_dialogs" != "no" && AC_DEFINE(HAVE_DIALOGS) | |
4521 test "$enable_toolbars" != "no" && AC_DEFINE(HAVE_TOOLBARS) | |
4522 test "$enable_widgets" != "no" && AC_DEFINE(HAVE_WIDGETS) | |
4523 | |
4524 test "$enable_menubars" = "lucid" && AC_DEFINE(LWLIB_MENUBARS_LUCID) | |
4525 test "$enable_scrollbars" = "lucid" && AC_DEFINE(LWLIB_SCROLLBARS_LUCID) | |
4526 | |
4527 test "$enable_menubars" = "motif" && AC_DEFINE(LWLIB_MENUBARS_MOTIF) | |
4528 test "$enable_scrollbars" = "motif" && AC_DEFINE(LWLIB_SCROLLBARS_MOTIF) | |
4529 test "$enable_dialogs" = "motif" && AC_DEFINE(LWLIB_DIALOGS_MOTIF) | |
4530 test "$enable_widgets" = "motif" && AC_DEFINE(LWLIB_WIDGETS_MOTIF) | |
4531 | |
3094 | 4532 test "$with_xft_menubars" = "yes" && AC_DEFINE(USE_XFT_MENUBARS) |
4533 test "$with_xft_tabs" = "yes" && AC_DEFINE(USE_XFT_TABS) | |
4534 test "$with_xft_gauge" = "yes" && AC_DEFINE(USE_XFT_GAUGE) | |
4535 | |
2651 | 4536 dnl ---------------------- |
4537 dnl Mule-dependent options | |
4538 dnl ---------------------- | |
4539 | |
4540 test -z "$enable_mule" && enable_mule=no | |
4541 | |
4542 dnl if test "$enable_mule" = "yes" && test ! -d "$srcdir/lisp/mule"; then | |
4543 dnl echo "Attempt to Build with Mule without Mule/Lisp" | |
4544 dnl echo "Please install the XEmacs/Mule tarball or" | |
4545 dnl echo "rerun configure with --with-mule=no" | |
4546 dnl exit 1 | |
4547 dnl fi | |
4548 | |
4549 if test "$enable_default_eol_detection" = "yes"; then | |
4550 AC_DEFINE(HAVE_DEFAULT_EOL_DETECTION) | |
4551 fi | |
4552 | |
2973 | 4553 dnl initialize _libs variables for possible modules at top level |
4554 canna_libs= | |
4555 wnn_libs= | |
4556 | |
2651 | 4557 if test "$enable_mule" = "yes" ; then |
3312 | 4558 AC_MSG_CHECKING([for Mule-related features]) |
2651 | 4559 AC_DEFINE(MULE) |
4560 | |
4561 dnl Use -lintl to get internationalized strerror for Mule | |
4562 AC_CHECK_HEADERS(libintl.h) | |
4563 AC_CHECK_LIB(intl, strerror) | |
4564 | |
3312 | 4565 AC_MSG_CHECKING([for Mule input methods]) |
2651 | 4566 dnl Do we have the XmIm* routines? And if so, do we want to use them? |
4567 case "$with_xim" in "" | "yes" ) | |
3312 | 4568 AC_MSG_CHECKING([for XIM]) |
2651 | 4569 AC_CHECK_LIB(X11, XOpenIM, with_xim=xlib, with_xim=no) |
4570 dnl XIM + Lesstif is not (yet?) usable | |
3019 | 4571 dnl Only use Motif if linking Motif anyway, or don't have xlib XIM |
4572 if test "$need_motif $have_lesstif" = "yes no"; then | |
4573 AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif) | |
3248 | 4574 dnl #### This is always false. |
4575 dnl Not clear what we want, although "yes no yes" is insufficient. | |
3019 | 4576 elif test "$have_motif $have_lesstif $with_xim" = "yes no no"; then |
2651 | 4577 AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif) |
4578 fi ;; | |
4579 esac | |
4580 if test "$with_xim" != "no"; then | |
4581 AC_DEFINE(HAVE_XIM) | |
4582 if test "$with_xim" = "xlib"; then | |
4583 AC_DEFINE(XIM_XLIB) | |
4584 XE_ADD_OBJS(input-method-xlib.o) | |
4585 fi | |
4586 if test "$with_xim" = "motif"; then | |
4587 AC_DEFINE(XIM_MOTIF) | |
4588 need_motif=yes | |
4589 XE_ADD_OBJS(input-method-motif.o) | |
4590 fi | |
4591 if test "$with_xim" = "motif"; then | |
4592 with_xfs=no | |
4593 fi | |
4594 fi | |
4595 | |
4596 dnl "with_xfs" = "yes" | |
4597 if test "$with_xfs" = "yes" ; then | |
3312 | 4598 AC_MSG_CHECKING([for XFontSet]) |
2651 | 4599 AC_CHECK_LIB(X11, XmbDrawString, [:], with_xfs=no) |
4600 if test "$with_xfs" = "yes" && test "$enable_menubars" = "lucid"; then | |
4601 AC_DEFINE(USE_XFONTSET) | |
4602 if test "$with_xim" = "no" ; then | |
4603 XE_ADD_OBJS(input-method-xlib.o) | |
4604 fi | |
4605 fi | |
4606 fi dnl with_xfs | |
4607 | |
4608 dnl Autodetect WNN | |
4609 test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support | |
4610 test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/jllib.h, ,with_wnn=no) } | |
4611 dnl gcc 2.97 fixincludes breaks inclusion of wnn/commonhd.h | |
4612 test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/commonhd.h, ,with_wnn=no) } | |
4613 dnl Detour to find crypt | |
4614 if test "$with_wnn" != "no"; then | |
4615 AC_CHECK_FUNCS(crypt) | |
4616 test "$ac_cv_func_crypt" != "yes" && { AC_CHECK_LIB(crypt, crypt) } | |
4617 fi | |
4618 dnl Back to our regularly scheduled wnn hunting | |
4619 if test -z "$with_wnn" -o "$with_wnn" = "yes"; then | |
4620 AC_CHECK_LIB(wnn,jl_dic_list_e,libwnn=wnn, | |
4621 AC_CHECK_LIB(wnn4,jl_dic_list_e,libwnn=wnn4, | |
4622 AC_CHECK_LIB(wnn6,jl_dic_list_e,libwnn=wnn6, | |
4623 AC_CHECK_LIB(wnn6_fromsrc,dic_list_e,libwnn=wnn6_fromsrc,with_wnn=no)))) | |
4624 fi | |
4625 test -z "$with_wnn" && with_wnn=yes | |
4626 if test "$with_wnn" = "yes"; then | |
4627 AC_DEFINE(HAVE_WNN) | |
4628 XE_PREPEND(-l$libwnn, libs_x) | |
4629 if test "$with_wnn6" != "no"; then | |
4630 AC_CHECK_LIB($libwnn, jl_fi_dic_list, with_wnn6=yes) | |
4631 test "$with_wnn6" = "yes" && AC_DEFINE(WNN6) | |
4632 fi | |
4633 fi | |
4634 | |
3830 | 4635 dnl Configure canna |
2973 | 4636 dnl canna_libs variable is initialized at toplevel |
3830 | 4637 dnl #### the hard-coding of /usr/local/canna/include is bogus and |
4638 dnl my Mac OS X 10.4 system needs /usr/local/canna/lib, too | |
4639 dnl #### this whole mess should be in modules/canna, no? maybe not | |
4640 have_canna=no | |
2651 | 4641 if test "$with_canna" != "no"; then |
4642 save_c_switch_site="$c_switch_site" | |
3830 | 4643 for canna_include_path in "" " -I/usr/local/canna/include"; do |
4644 for canna_wchar_aware in "" " -DCANNA_NEW_WCHAR_AWARE=1"; do | |
4645 c_switch_site="$save_c_switch_site$canna_include_path$canna_wchar_aware" | |
4646 # defeat autoconf's cache mechanism | |
4647 $as_unset ac_cv_header_canna_jrkanji_h | |
4648 $as_unset ac_cv_header_canna_RK_h | |
4649 # using $ac_header_compiler is a hack, but autoconf doesn't let us | |
4650 # get at this information otherwise :-( | |
4651 AC_CHECK_HEADER(canna/jrkanji.h,[AC_CHECK_HEADER(canna/RK.h,have_canna=$ac_header_compiler)]) | |
4652 test "$have_canna" = "yes" && break | |
4653 AC_MSG_WARN([You may ignore any *Present but not compiled* message | |
4654 from autoconf. We detect that condition and recheck, but there | |
4655 is no way to suppress autoconf's message.]) | |
4656 done | |
4657 test "$have_canna" = "yes" && break | |
4658 done | |
4659 if test "$have_canna" = "yes"; then | |
4660 c_switch_site="$save_c_switch_site$canna_include_path" | |
4661 else | |
2651 | 4662 c_switch_site="$save_c_switch_site" |
4663 fi | |
4664 fi | |
4665 | |
3830 | 4666 test "$have_canna" = "yes" && { AC_CHECK_LIB(RKC, RkBgnBun, [:],have_canna=no) } |
4667 test "$have_canna" = "yes" && { AC_CHECK_LIB(canna,jrKanjiControl,[:],have_canna=no) } | |
4668 if test "$have_canna" = "yes"; then | |
2651 | 4669 AC_DEFINE(HAVE_CANNA) |
3830 | 4670 test -n "$canna_wchar_aware" && AC_DEFINE(CANNA_NEW_WCHAR_AWARE) |
2973 | 4671 XE_APPEND(modules/canna, MAKE_SUBDIR) |
4672 need_modules_common=yes | |
4673 if test "$with_modules" = "yes"; then | |
4674 XE_APPEND(modules/canna, INSTALL_ARCH_DEP_SUBDIR) | |
4675 fi | |
4676 XE_PREPEND(-lcanna -lRKC, canna_libs) | |
3830 | 4677 elif test "$with_canna" != "no"; then |
4678 AC_MSG_WARN([Canna configuration failed. If you expected success, | |
4679 maybe you need --with-site-prefixes=/usr/local/canna?]) | |
2651 | 4680 fi |
2973 | 4681 AC_SUBST(canna_libs) |
2651 | 4682 |
4683 else dnl "$enable_mule" = "no" | |
4684 for feature in xim canna wnn; do | |
4685 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then | |
4686 AC_MSG_WARN([--with-${feature} ignored: Not valid without Mule support]) | |
4687 fi | |
4688 eval "with_${feature}=no" | |
4689 done | |
4690 fi dnl with_mule | |
4691 | |
4692 | |
4693 dnl At this point, we know whether we need the motif lib or not. | |
4694 if test "$need_motif" = "yes" ; then | |
4695 XE_PREPEND(-lXm, libs_x) | |
4696 dnl AIX needs the following library for use with Motif | |
4697 AC_CHECK_LIB(i18n, layout_object_getvalue, [XE_PREPEND(-li18n, libs_x)]) | |
4698 XE_COMPUTE_RUNPATH() | |
4699 fi | |
4700 | |
4701 dnl ---------------------------------------------------------------- | |
4702 dnl Check for POSIX functions. | |
4703 dnl ---------------------------------------------------------------- | |
4704 | |
4705 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) | |
4706 | |
4707 dnl getaddrinfo() is borked under hpux11 | |
4708 if test "$ac_cv_func_getaddrinfo" != "no" ; then | |
4709 case "$opsys" in | |
4710 hpux11 ) | |
4711 AC_MSG_WARN([Use of getaddrinfo is disabled for HP-UX 11.XX.]) | |
4712 ac_cv_func_getaddrinfo=no | |
4713 ;; | |
4714 esac | |
4715 fi | |
4716 | |
3092 | 4717 dnl check for vdb-related stuff |
4718 if test "$check_vdb_posix" = "yes" ; then | |
4719 dnl no mprotect, no vdb | |
4720 AC_CHECK_FUNC(mprotect,AC_DEFINE(HAVE_MPROTECT) have_vdb_mprotect=yes,) | |
4721 | |
4722 dnl sigaction needs either struct siginfo or siginfo_t | |
4723 AC_CHECK_FUNC(sigaction, AC_DEFINE(HAVE_SIGACTION) have_vdb_sigaction=yes, | |
4724 have_vdb_sigaction=no) | |
4725 AC_CHECK_MEMBER(struct siginfo.si_addr, | |
4726 AC_DEFINE(HAVE_STRUCT_SIGINFO_SI_ADDR) have_si_addr=yes,, | |
4727 [#include <signal.h>]) | |
4728 AC_CHECK_MEMBER(siginfo_t.si_addr, | |
4729 AC_DEFINE(HAVE_SIGINFO_T_SI_ADDR) have_si_addr=yes,, | |
4730 [#include <signal.h>]) | |
4731 if test "$have_si_addr" != "yes" ; then | |
4732 have_vdb_sigaction=no | |
4733 fi | |
4734 | |
4735 dnl signal needs struct sigcontext | |
4736 AC_CHECK_FUNC(signal, AC_DEFINE(HAVE_SIGNAL) have_vdb_signal=yes,) | |
4737 AC_CHECK_MEMBER(struct sigcontext.cr2, | |
4738 AC_DEFINE(HAVE_STRUCT_SIGCONTEXT_CR2) have_cr2=yes,, | |
4739 [#include <signal.h>]) | |
4740 | |
4741 if test "$have_cr2" != "yes" ; then | |
4742 have_vdb_signal=no | |
4743 fi | |
4744 | |
4745 if test "$have_vdb_mprotect" != "yes" ; then | |
4746 have_vdb_sigaction=no | |
4747 have_vdb_signal=no | |
4748 fi | |
4749 | |
4750 if test "$have_vdb_sigaction" != "yes" -a "$have_vdb_signal" != "yes" ; then | |
4751 have_vdb_posix=no | |
4752 have_vdb_fake=yes | |
3102 | 4753 XE_DIE("No working write-barrier implementation found for this system. |
4754 Please report this and provide information about your system.") | |
3092 | 4755 else |
4756 have_vdb_posix=yes | |
4757 have_vdb_fake=no | |
4758 fi | |
4759 fi | |
4760 | |
2651 | 4761 dnl ---------------------------------------------------------------- |
4762 dnl Check for Unixoid pty/process support. | |
4763 dnl ---------------------------------------------------------------- | |
4764 | |
4765 dnl There is no "standard" pty allocation method. Every system is different. | |
4766 dnl getpt() is the preferred pty allocation method on glibc systems. | |
4767 dnl _getpty() is the preferred pty allocation method on SGI systems. | |
4768 dnl grantpt(), unlockpt(), ptsname() are defined by Unix98. | |
4769 AC_CHECK_FUNCS(getpt _getpty grantpt unlockpt ptsname killpg tcgetpgrp) | |
4770 | |
4771 dnl openpty() is the preferred pty allocation method on BSD and Tru64 systems. | |
4772 dnl openpty() might be declared in: | |
4773 dnl - pty.h (Tru64 or Linux) | |
4774 dnl - libutil.h (FreeBSD) | |
4775 dnl - util.h (NetBSD) | |
4776 AC_CHECK_FUNC(openpty, have_openpty=yes, [ | |
4777 AC_CHECK_LIB(util, openpty, have_openpty=yes need_libutil=yes)]) | |
4778 if test "$have_openpty" = "yes"; then | |
4779 AC_DEFINE(HAVE_OPENPTY) | |
4780 AC_CHECK_HEADERS(libutil.h util.h, break) | |
4781 test "$need_libutil" = "yes" && XE_APPEND(-lutil, libs_system) | |
4782 fi | |
4783 | |
4784 dnl Check for system-specific pty header files | |
4785 dnl Often the TIOCSIG* symbols are hiding there. | |
4786 case "$opsys" in | |
4787 dnl HPUX pty.h #defines TRUE and FALSE, so just use ptyio.h there. | |
4788 hpux*) AC_CHECK_HEADERS(sys/ptyio.h) ;; | |
4789 *) AC_CHECK_HEADERS(pty.h) | |
4790 test "$ac_cv_header_pty_h" = "no" && AC_CHECK_HEADERS(sys/pty.h) | |
4791 ;; | |
4792 esac | |
4793 | |
4794 dnl Check for STREAM support functions. | |
4795 dnl Confusingly, "str" means both "string" and "SysV Streams". | |
4796 AC_CHECK_HEADERS(stropts.h) | |
4797 if test "$ac_cv_header_stropts_h" = "yes"; then | |
4798 AC_CHECK_FUNCS(isastream) | |
4799 AC_CHECK_HEADERS(strtio.h) dnl TIOCSIGNAL | |
4800 fi | |
4801 | |
4802 dnl Check whether the system provides getloadavg(). | |
4803 AC_CHECK_FUNCS(getloadavg) | |
4804 | |
4805 if test "$ac_cv_func_getloadavg" = "yes"; then | |
4806 dnl Solaris 8 declares getloadavg() in <sys/loadavg.h>. | |
4807 dnl glibc 2.2 declares getloadavg() in <stdlib.h>... | |
4808 dnl ...if we #define _GNU_SOURCE, which we do. | |
4809 AC_CHECK_HEADERS(sys/loadavg.h) | |
4810 else | |
4811 dnl We define our own getloadavg() using lower level functions. | |
4812 XE_ADD_OBJS(getloadavg.o) | |
4813 | |
4814 dnl Used by getloadavg() - does not require root priveleges | |
4815 AC_CHECK_LIB(kstat, kstat_open) | |
4816 AC_CHECK_HEADERS(kstat.h) | |
4817 | |
4818 dnl Another way to get the load average | |
4819 AC_CHECK_LIB(kvm, kvm_read) | |
4820 fi | |
4821 | |
4822 dnl If netdb.h does not declare h_errno, we must declare it by hand. | |
4823 AC_MSG_CHECKING(whether netdb declares h_errno) | |
3312 | 4824 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <netdb.h>], |
4825 [return h_errno;])], | |
2651 | 4826 [AC_MSG_RESULT(yes) |
4827 AC_DEFINE(HAVE_H_ERRNO)], | |
4828 [AC_MSG_RESULT(no)]) | |
4829 | |
4830 AC_MSG_CHECKING(for sigsetjmp) | |
3312 | 4831 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <setjmp.h>], |
4832 [sigjmp_buf bar; sigsetjmp (bar, 0);])], | |
2651 | 4833 [AC_MSG_RESULT(yes) |
4834 AC_DEFINE(HAVE_SIGSETJMP)], | |
4835 [AC_MSG_RESULT(no)]) | |
4836 | |
4837 AC_MSG_CHECKING(whether localtime caches TZ) | |
4838 AC_CACHE_VAL(emacs_cv_localtime_cache, | |
4839 [if test "$ac_cv_func_tzset" = "yes"; then | |
4840 AC_RUN_IFELSE([AC_LANG_SOURCE([#include <time.h> | |
4841 #if STDC_HEADERS | |
4842 # include <stdlib.h> | |
4843 #endif | |
4844 extern char **environ; | |
4845 unset_TZ () | |
4846 { | |
4847 char **from, **to; | |
4848 for (to = from = environ; (*to = *from); from++) | |
4849 if (! (to[[0]][[0]] == 'T' && to[[0]][[1]] == 'Z' && to[[0]][[2]] == '=')) | |
4850 to++; | |
4851 } | |
4852 char TZ_GMT0[[]] = "TZ=GMT0"; | |
4853 char TZ_PST8[[]] = "TZ=PST8"; | |
4854 main() | |
4855 { | |
4856 time_t now = time ((time_t *) 0); | |
4857 int hour_GMT0, hour_unset; | |
4858 if (putenv (TZ_GMT0) != 0) | |
4859 exit (1); | |
4860 hour_GMT0 = localtime (&now)->tm_hour; | |
4861 unset_TZ (); | |
4862 hour_unset = localtime (&now)->tm_hour; | |
4863 if (putenv (TZ_PST8) != 0) | |
4864 exit (1); | |
4865 if (localtime (&now)->tm_hour == hour_GMT0) | |
4866 exit (1); | |
4867 unset_TZ (); | |
4868 if (localtime (&now)->tm_hour != hour_unset) | |
4869 exit (1); | |
4870 exit (0); | |
4871 }])], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes, | |
4872 [# If we have tzset, assume the worst when cross-compiling. | |
4873 emacs_cv_localtime_cache=yes]) | |
4874 else | |
4875 # If we lack tzset, report that localtime does not cache TZ, | |
4876 # since we can't invalidate the cache if we don't have tzset. | |
4877 emacs_cv_localtime_cache=no | |
4878 fi],[:])dnl | |
4879 AC_MSG_RESULT($emacs_cv_localtime_cache) | |
4880 if test $emacs_cv_localtime_cache = yes; then | |
4881 AC_DEFINE(LOCALTIME_CACHE) | |
4882 fi | |
4883 | |
4884 if test "$HAVE_TIMEVAL" = "yes"; then | |
4885 AC_MSG_CHECKING(whether gettimeofday accepts one or two arguments) | |
3312 | 4886 AC_LINK_IFELSE([AC_LANG_PROGRAM([ |
2651 | 4887 #ifdef TIME_WITH_SYS_TIME |
4888 #include <sys/time.h> | |
4889 #include <time.h> | |
4890 #else | |
4891 #ifdef HAVE_SYS_TIME_H | |
4892 #include <sys/time.h> | |
4893 #else | |
4894 #include <time.h> | |
4895 #endif | |
4896 #endif | |
4897 ], | |
4898 [ | |
4899 struct timeval time; | |
4900 gettimeofday (&time, 0); | |
3312 | 4901 ])], |
2651 | 4902 [AC_MSG_RESULT(two)], |
4903 [AC_MSG_RESULT(one) | |
4904 AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)]) | |
4905 fi | |
4906 | |
4907 | |
4908 AC_C_INLINE | |
4909 test "$ac_cv_c_inline" != "no" -a "$GCC" = "yes" && XE_ADD_OBJS(inline.o) | |
4910 | |
4911 dnl check for the typeof extension | |
4912 AC_MSG_CHECKING(for typeof) | |
3312 | 4913 AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i; __typeof__(i) j;])], |
4914 typeofname="__typeof__", | |
4915 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i; typeof(i) j;])], | |
4916 typeofname="typeof", | |
2651 | 4917 typeofname=no)]) |
4918 AC_MSG_RESULT($typeofname) | |
4919 if test "$typeofname" != "no"; then | |
4920 AC_DEFINE_UNQUOTED(TYPEOF, $typeofname) | |
4921 fi | |
4922 | |
4923 dnl HP-UX has a working alloca in libPW. | |
4924 dnl case "${GCC}${opsys}" in hpux* ) | |
4925 dnl AC_CHECK_FUNC(alloca, [:], [AC_CHECK_LIB(PW, alloca)]) | |
4926 dnl esac | |
4927 | |
4928 dnl AC_FUNC_ALLOCA doesn't know about DEC C's #pragma intrinsic(alloca) | |
4929 if test "$__DECC" != "yes"; then | |
4930 AC_FUNC_ALLOCA | |
4931 test -n "$ALLOCA" && XE_ADD_OBJS($ALLOCA) | |
4932 fi | |
4933 | |
4934 AC_MSG_CHECKING(for working alloca in function calls) | |
4935 AC_RUN_IFELSE([AC_LANG_SOURCE([ | |
4936 #if defined (__CYGWIN__) | |
4937 #include <alloca.h> | |
4938 #elif defined (__GNUC__) | |
4939 #define alloca __builtin_alloca | |
4940 #elif defined (__DECC) | |
4941 #include <alloca.h> | |
4942 #pragma intrinsic(alloca) | |
4943 #elif defined (HAVE_ALLOCA_H) | |
4944 #include <alloca.h> | |
4945 #elif defined (_AIX) | |
4946 #pragma alloca | |
4947 #elif ! defined (alloca) | |
4948 #ifdef C_ALLOCA | |
4949 #define alloca xemacs_c_alloca | |
4950 #else | |
4951 void *alloca (); | |
4952 #endif /* C_ALLOCA */ | |
4953 #endif /* !defined (alloca) */ | |
4954 | |
4955 void | |
4956 f1 (double a, void *ptr, int b) | |
4957 { | |
4958 unsigned char *ptr2 = (unsigned char *) ptr; | |
4959 if (ptr2[[0]] != 0xBF || ptr2[[1]] != 0xBF || ptr2[[3000]] != 0xBF) | |
4960 exit (1); | |
4961 if (a != 3.1415 || b != -5490) | |
4962 exit (1); | |
4963 } | |
4964 | |
4965 int | |
4966 f2 (short c, void *ptr, long e) | |
4967 { | |
4968 unsigned char *ptr2 = (unsigned char *) ptr; | |
4969 if (ptr2[[0]] != 0xFB || ptr2[[1]] != 0xFB || ptr2[[1000]] != 0xFB) | |
4970 exit (1); | |
4971 if (c != 665 || e != 776776776) | |
4972 exit (1); | |
4973 f1 (3.1415, memset (alloca (3001), 0xBF, 3001), -5490); | |
4974 return 42; | |
4975 } | |
4976 | |
4977 int | |
4978 main (int argc, char *argv[]) | |
4979 { | |
4980 if (f2 (665, memset (alloca (1001), 0xFB, 1001), 776776776) != 42) | |
4981 return 1; | |
4982 return 0; | |
4983 } | |
4984 ])], working_alloca_in_function_calls=yes, working_alloca_in_function_calls=no) | |
4985 AC_MSG_RESULT($working_alloca_in_function_calls) | |
4986 test "$working_alloca_in_function_calls" != "yes" && \ | |
4987 AC_DEFINE(BROKEN_ALLOCA_IN_FUNCTION_CALLS) | |
4988 | |
4989 AC_MSG_CHECKING([for working scanf]) | |
4990 AC_RUN_IFELSE([AC_LANG_SOURCE([ | |
4991 int | |
4992 main (int argc, char **argv) | |
4993 { | |
4994 int ret, cp1, cp2, endcount; | |
4995 char *p = "0x7d 0x000E "; | |
4996 ret = sscanf (p, "%i %i%n", &cp1, &cp2, &endcount); | |
4997 /* endcount should be 13 but it's 11 in Cygwin newlib after 6/04; | |
4998 this breaks unicode.c */ | |
4999 return endcount != 13; | |
5000 } | |
5001 ])], working_scanf=yes, working_scanf=no) | |
5002 AC_MSG_RESULT($working_scanf) | |
5003 test "$working_scanf" != "yes" && \ | |
5004 AC_DEFINE(CYGWIN_SCANF_BUG) | |
5005 | |
5006 dnl Check whether strcoll exists and works correctly. (This does more | |
5007 dnl than just check for its existence.) If so, it defines HAVE_STRCOLL. | |
5008 AC_FUNC_STRCOLL | |
5009 | |
5010 dnl If `getpgrp' takes no argument (the POSIX.1 version), define | |
5011 dnl `GETPGRP_VOID'. Otherwise, it is the BSD version, which takes a | |
5012 dnl process ID as an argument. | |
5013 AC_CHECK_FUNCS(getpgrp) | |
5014 AC_FUNC_GETPGRP | |
5015 | |
5016 dnl We used to call AC_FUNC_MMAP here | |
5017 dnl Instead we now use following, suggested by Neal Becker | |
5018 AC_MSG_CHECKING(for working mmap) | |
5019 case "$opsys" in ultrix* ) have_mmap=no ;; *) | |
5020 AC_RUN_IFELSE([AC_LANG_SOURCE([#include <stdio.h> | |
5021 #include <unistd.h> | |
5022 #include <fcntl.h> | |
5023 #include <sys/mman.h> | |
5024 | |
5025 #ifndef MAP_VARIABLE | |
5026 #define MAP_VARIABLE 0 | |
5027 #endif | |
5028 | |
5029 #ifndef MAP_FAILED | |
5030 #define MAP_FAILED -1 | |
5031 #endif | |
5032 | |
5033 int main (int argc, char *argv[]) | |
5034 { | |
5035 int fd = -1; | |
5036 caddr_t p; | |
5037 #ifndef MAP_ANONYMOUS | |
5038 fd = open ("/dev/zero", O_RDWR); | |
5039 if (fd < 0) | |
5040 return 1; | |
5041 #define MAP_ANONYMOUS 0 | |
5042 #endif | |
5043 if (mmap(0, 1024, PROT_READ | PROT_WRITE, | |
5044 MAP_PRIVATE | MAP_VARIABLE | MAP_ANONYMOUS, | |
5045 fd, 0) != (void *) MAP_FAILED) | |
5046 return 0; | |
5047 perror ("conftest: mmap failed"); | |
5048 return 1; | |
5049 }])], have_mmap=yes, have_mmap=no) ;; | |
5050 esac | |
5051 AC_MSG_RESULT($have_mmap) | |
5052 test "$have_mmap" = "yes" && AC_DEFINE(HAVE_MMAP) | |
5053 | |
5054 dnl By default we switch off rel-alloc on cygwin as it generally causes us grief | |
5055 case "$opsys" in cygwin*) | |
5056 test "$with_rel_alloc" = "default" && with_rel_alloc=no ;; | |
5057 esac | |
5058 dnl rel_alloc requires either GNU malloc or system malloc with mmap | |
5059 dnl We only turn rel_alloc on by default if mmap is available. | |
5060 test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && with_rel_alloc=no | |
5061 if test "$with_rel_alloc $have_mmap" = "default yes"; then | |
5062 if test "$doug_lea_malloc" = "yes"; then | |
5063 dnl Check if malloc() calls mmap(), making rel_alloc pointless. | |
5064 AC_MSG_CHECKING(for M_MMAP_THRESHOLD) | |
3312 | 5065 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <malloc.h>],[ |
2651 | 5066 #ifndef M_MMAP_THRESHOLD |
5067 #error No M_MMAP_THRESHOLD :-( | |
5068 !@+$%^&*_)(_ - unlikely to compile... | |
5069 #endif | |
3312 | 5070 ])], [with_rel_alloc=no; AC_MSG_RESULT(yes);], |
5071 [with_rel_alloc=yes; AC_MSG_RESULT(no);]) | |
2651 | 5072 else |
5073 with_rel_alloc=yes | |
5074 fi | |
5075 fi | |
5076 test "$with_rel_alloc" = "yes" && AC_DEFINE(REL_ALLOC) | |
5077 | |
5078 dnl Check for terminal I/O variants | |
5079 dnl TERMIOS systems may have termio.h, but not vice-versa, I think. | |
5080 AC_CHECK_HEADER(termios.h, | |
5081 AC_DEFINE(HAVE_TERMIOS) | |
5082 AC_DEFINE(SIGNALS_VIA_CHARACTERS) | |
5083 AC_DEFINE(NO_TERMIO), | |
5084 [AC_CHECK_HEADER(termio.h, [AC_DEFINE(HAVE_TERMIO)])]) | |
5085 | |
5086 | |
5087 dnl Check for Internet sockets. | |
5088 AC_CHECK_FUNC(socket, | |
5089 [AC_CHECK_HEADER(netinet/in.h, | |
5090 [AC_CHECK_HEADER(arpa/inet.h, [ | |
5091 AC_DEFINE(HAVE_SOCKETS) | |
3312 | 5092 AC_MSG_CHECKING([for sun_len member in struct sockaddr_un]) |
5093 AC_LINK_IFELSE([AC_LANG_PROGRAM([ | |
2651 | 5094 #include <sys/types.h> |
5095 #include <sys/socket.h> | |
5096 #include <sys/un.h> | |
5097 ], | |
3312 | 5098 [static struct sockaddr_un x; x.sun_len = 1;])], |
2651 | 5099 [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOCKADDR_SUN_LEN)], |
5100 [AC_MSG_RESULT(no)]) | |
3312 | 5101 AC_MSG_CHECKING([for ip_mreq struct in netinet/in.h]) |
5102 AC_LINK_IFELSE([AC_LANG_PROGRAM([ | |
2651 | 5103 #include <sys/types.h> |
5104 #include <netinet/in.h> | |
5105 ], | |
3312 | 5106 [static struct ip_mreq x;])], |
2651 | 5107 [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_MULTICAST)], |
5108 [AC_MSG_RESULT(no)])])])]) | |
5109 | |
5110 dnl Check for SYS V IPC. (Inferior to sockets.) | |
5111 AC_CHECK_FUNC(msgget, | |
5112 [AC_CHECK_HEADER(sys/ipc.h, | |
5113 [AC_CHECK_HEADER(sys/msg.h, | |
5114 [AC_DEFINE(HAVE_SYSVIPC)])])]) | |
5115 | |
5116 dnl Check for directory variants | |
5117 AC_CHECK_HEADER(dirent.h, [AC_DEFINE(SYSV_SYSTEM_DIR)], | |
5118 [AC_CHECK_HEADER(sys/dir.h, , [AC_DEFINE(NONSYSTEM_DIR_LIBRARY)])]) | |
5119 | |
5120 dnl Check for nlist.h | |
5121 AC_CHECK_HEADER(nlist.h, AC_DEFINE(NLIST_STRUCT), ) | |
5122 | |
5123 dnl Check for sound of various sorts. | |
3312 | 5124 AC_MSG_CHECKING([for sound support]) |
5125 AC_MSG_RESULT() | |
2651 | 5126 |
5127 dnl Autodetect native sound | |
5128 test -n "$with_native_sound_lib" && enable_sound_native=yes | |
5129 | |
5130 if test "$enable_sound_native" != "no"; then | |
5131 dnl Maybe sound is already on include path... | |
5132 if test -n "$with_native_sound_lib"; then | |
5133 AC_CHECK_HEADER(multimedia/audio_device.h, | |
5134 [sound_found=yes sound_cflags="" | |
5135 XE_ADD_OBJS(sunplay.o)]) | |
5136 fi | |
5137 | |
5138 dnl Autodetect Sun native sound from SUNWaudmo package | |
5139 if test -z "$sound_found" -a -d "/usr/demo/SOUND"; then | |
5140 if test -d "/usr/demo/SOUND/include/multimedia"; then | |
5141 sun_sound_cflags="-I/usr/demo/SOUND/include" | |
5142 elif test -d "/usr/demo/SOUND/multimedia"; then | |
5143 sun_sound_cflags="-I/usr/demo/SOUND" | |
5144 fi | |
5145 | |
5146 if test -n "$with_native_sound_lib"; then | |
5147 sun_sound_lib="$with_native_sound_lib" | |
5148 elif test -r "/usr/demo/SOUND/lib/libaudio.a"; then | |
5149 sun_sound_lib="/usr/demo/SOUND/lib/libaudio.a" | |
5150 elif test -r "/usr/demo/SOUND/libaudio.a"; then | |
5151 sun_sound_lib="/usr/demo/SOUND/libaudio.a" | |
5152 fi | |
5153 | |
5154 if test -n "$sun_sound_cflags" -a -n "$sun_sound_lib"; then | |
5155 with_native_sound_lib="$sun_sound_lib" | |
5156 sound_cflags="$sun_sound_cflags" | |
5157 sound_found=yes | |
5158 XE_ADD_OBJS(sunplay.o) | |
5159 fi | |
5160 fi | |
5161 | |
5162 dnl Check for SGI and HP native sound libs | |
5163 if test -z "$sound_found"; then | |
5164 case "$ac_cv_build" in | |
5165 *-sgi-* ) | |
5166 if test -z "$with_native_sound_lib"; then | |
5167 AC_CHECK_LIB(audio, ALopenport, with_native_sound_lib="-laudio") | |
5168 fi | |
5169 if test -n "$with_native_sound_lib"; then | |
5170 sound_found=yes sound_cflags="" | |
5171 XE_ADD_OBJS(sgiplay.o) | |
5172 fi ;; | |
5173 hppa*-hp-hpux* ) | |
5174 if test -z "$with_native_sound_lib"; then | |
5175 AC_CHECK_LIB(Alib, AOpenAudio, with_native_sound_lib="-lAlib") | |
5176 fi | |
5177 if test -n "$with_native_sound_lib"; then | |
5178 sound_found=yes | |
5179 XE_ADD_OBJS(hpplay.o) | |
5180 if test "$GCC" = "yes" # Kludge city | |
5181 then sound_cflags="-Dconst= -Dvolatile= -I/usr/audio/examples" | |
5182 else sound_cflags="+e -I/usr/audio/examples" | |
5183 fi | |
5184 fi ;; | |
5185 esac | |
5186 fi | |
5187 | |
3060 | 5188 dnl Win32 uses native sound |
2651 | 5189 if test -z "$sound_found"; then |
3060 | 5190 case "$opsys" in cygwin* | mingw* ) |
2651 | 5191 sound_found=yes |
5192 with_native_sound_lib= | |
5193 XE_ADD_OBJS(ntplay.o) | |
3060 | 5194 ;; |
5195 esac | |
2651 | 5196 fi |
5197 | |
5198 dnl Check for Linux/BSD native sound (also on recent Cygwins) | |
5199 if test -z "$sound_found"; then | |
5200 for dir in "machine" "sys" "linux"; do | |
5201 AC_CHECK_HEADER([${dir}/soundcard.h], [ | |
5202 sound_found=yes | |
2663 | 5203 case "${ac_cv_build}" in |
2651 | 5204 *netbsd* ) |
5205 # #### this is probably not the right way to do this | |
5206 # we should port to native NetBSD stuff | |
2663 | 5207 |
5208 dnl Aidan says: We have other things to be doing. If some | |
5209 dnl energetic NetBSD partisan volunteers, then yeah, cool, | |
5210 dnl but as it is, this works, and is unlikely to stop | |
5211 dnl working any time soon. | |
5212 | |
2651 | 5213 AC_CHECK_LIB(ossaudio, _oss_ioctl, |
2663 | 5214 [with_native_sound_lib=-lossaudio |
2651 | 5215 AC_MSG_WARN([Using NetBSD-deprecated -lossaudio])], |
5216 [sound_found=no]) | |
5217 ;; | |
5218 dnl Aidan sez: OpenBSD as well can use Linux's sound API, and needs | |
5219 dnl the same library. Add here! | |
5220 esac | |
5221 break]) | |
5222 done | |
5223 | |
5224 if test "$sound_found" = "yes"; then | |
5225 need_miscplay=yes | |
5226 XE_ADD_OBJS(linuxplay.o) | |
5227 AC_DEFINE_UNQUOTED(SOUNDCARD_H_FILE, ["${dir}/soundcard.h"]) | |
5228 fi | |
5229 fi | |
5230 | |
5231 if test "$sound_found" = "yes"; then | |
5232 enable_sound_native=yes | |
5233 else | |
5234 if test "$enable_sound_native" = "yes" ; then | |
5235 AC_MSG_WARN([No native libraries found. Disabling native sound support.]) | |
5236 fi | |
5237 enable_sound_native=no | |
5238 fi | |
5239 fi | |
5240 | |
5241 if test "$enable_sound_native" = "yes"; then | |
5242 AC_DEFINE(HAVE_NATIVE_SOUND) | |
5243 test -n "$with_native_sound_lib" && XE_PREPEND($with_native_sound_lib, LIBS) | |
5244 fi | |
5245 | |
3308 | 5246 dnl ALSA sound support |
5247 if test "$enable_sound_alsa" != "no"; then | |
3309 | 5248 AC_CHECK_HEADER([alsa/input.h], [ |
3308 | 5249 AC_CHECK_LIB(asound, snd_pcm_open, have_alsa_sound=yes)]) |
5250 if test "$have_alsa_sound" = "yes"; then | |
5251 enable_sound_alsa=yes | |
5252 AC_DEFINE(HAVE_ALSA_SOUND) | |
5253 XE_ADD_OBJS(alsaplay.o) | |
5254 XE_PREPEND(-lasound, LIBS) | |
5255 else | |
5256 test "$enable_sound_alsa" = "yes" && \ | |
5257 XE_DIE("Required ALSA sound support cannot be provided.") | |
5258 enable_sound_alsa=no | |
5259 fi | |
5260 fi | |
5261 | |
2651 | 5262 dnl NAS Sound support |
5263 if test "$enable_sound_nas" != "no"; then | |
5264 AC_CHECK_HEADER(audio/audiolib.h, [ | |
5265 AC_CHECK_LIB(audio, AuOpenServer, have_nas_sound=yes)]) | |
5266 if test "$have_nas_sound" = "yes"; then | |
5267 enable_sound_nas=yes | |
5268 AC_DEFINE(HAVE_NAS_SOUND) | |
5269 XE_ADD_OBJS(nas.o) | |
5270 XE_PREPEND(-laudio, libs_x) | |
5271 dnl If the nas library does not contain the error jump point, | |
5272 dnl then we force safer behavior. | |
5273 AC_EGREP_HEADER(AuXtErrorJump,audio/Xtutil.h,,[old_nas=yes; AC_DEFINE(NAS_NO_ERROR_JUMP)]) | |
5274 else | |
5275 test "$enable_sound_nas" = "yes" && \ | |
5276 XE_DIE("Required NAS sound support cannot be provided.") | |
5277 enable_sound_nas=no | |
5278 fi | |
5279 fi | |
5280 | |
5281 dnl ESD Sound support | |
5282 if test "$enable_sound_esd" != "no"; then | |
5283 AC_CHECK_PROG(have_esd_config, esd-config, yes, no) | |
5284 if test "$have_esd_config" = "yes"; then | |
5285 save_c_switch_site="$c_switch_site" save_LIBS="$LIBS" | |
5286 XE_APPEND(`esd-config --cflags`, c_switch_site) | |
5287 XE_PREPEND(`esd-config --libs`, LIBS) | |
5288 AC_CHECK_FUNC(esd_play_stream, | |
5289 have_esd_sound=yes, | |
5290 c_switch_site="$save_c_switch_site" LIBS="$save_LIBS") | |
5291 fi | |
5292 | |
5293 if test "$have_esd_sound" = "yes"; then | |
5294 enable_sound_esd=yes | |
5295 need_miscplay=yes | |
5296 XE_ADD_OBJS(esd.o) | |
5297 AC_DEFINE(HAVE_ESD_SOUND) | |
5298 else | |
5299 test "$enable_sound_esd" = "yes" && \ | |
5300 XE_DIE("Required ESD sound support cannot be provided.") | |
5301 enable_sound_esd=no | |
5302 fi | |
5303 fi | |
5304 | |
5305 test "$need_miscplay" = "yes" && XE_ADD_OBJS(miscplay.o) | |
5306 | |
5307 dnl --------------------- | |
5308 dnl TTY-dependent options | |
5309 dnl --------------------- | |
5310 | |
5311 test -z "$with_tty" && with_tty=yes | |
5312 | |
5313 if test "$with_tty" = "yes" ; then | |
3312 | 5314 AC_MSG_CHECKING([for TTY-related features]) |
5315 AC_MSG_RESULT() | |
2651 | 5316 AC_DEFINE(HAVE_TTY) |
5317 | |
5318 dnl Autodetect ncurses. | |
5319 if test -z "$with_ncurses"; then | |
5320 AC_CHECK_LIB(ncurses, tgetent, with_ncurses=yes, with_ncurses=no) | |
5321 fi | |
5322 if test "$with_ncurses" = "yes"; then | |
5323 AC_DEFINE(HAVE_NCURSES) | |
5324 AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h) | |
5325 AC_CHECK_HEADER(ncurses/term.h, term_h_file=ncurses/term.h) | |
5326 XE_ADD_OBJS(terminfo.o) | |
5327 XE_PREPEND(-lncurses, LIBS) | |
5328 | |
5329 if test "$ac_cv_header_ncurses_curses_h" != "yes" ; then | |
5330 dnl Try again, and check for the bogus ncurses/ include bug. | |
5331 dnl (i.e. ncurses/curses.h bogusly includes <unctrl.h> instead of | |
5332 dnl <ncurses/unctrl.h>) | |
5333 save_c_switch_site="$c_switch_site" | |
5334 c_switch_site="$c_switch_site -I/usr/include/ncurses" | |
5335 AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h) | |
5336 if test "$ac_cv_header_ncurses_curses_h" = "yes" | |
5337 then AC_MSG_WARN([Your system has the bogus ncurses include bug.]) | |
5338 else c_switch_site="$save_c_switch_site" | |
5339 fi | |
5340 fi | |
5341 else dnl "$with_ncurses" = "no" | |
5342 dnl Autodetect terminfo/-lcurses/-ltermlib/-ltermcap | |
5343 if test "$have_terminfo" = "yes"; then | |
5344 XE_ADD_OBJS(terminfo.o) | |
5345 if test -n "$libs_termcap"; then | |
5346 XE_PREPEND($libs_termcap, LIBS) | |
5347 else | |
5348 for lib in curses termlib termcap; do | |
5349 AC_CHECK_LIB($lib, tgetent, XE_PREPEND(-l${lib}, LIBS); break) | |
5350 done | |
5351 fi | |
5352 else dnl "$have_terminfo" = "no" && "with_ncurses" = "no" | |
5353 XE_ADD_OBJS(tparam.o) | |
5354 dnl The HP-UX curses library seems to have a badly broken version of select(2) | |
5355 dnl that makes "poll: interrupted system call" messages to appear and | |
5356 dnl Emacs subprocesses to hang (e.g. TeX compilation w/ AUCTeX) */ | |
5357 case "$opsys" in *-hp-hpux* ) libs_termcap="-ltermcap" ;; esac | |
5358 if test -n "$libs_termcap"; then | |
5359 XE_PREPEND($libs_termcap, LIBS) | |
5360 else | |
5361 AC_CHECK_LIB(curses, tgetent, XE_PREPEND(-lcurses, LIBS), | |
5362 AC_CHECK_LIB(termcap, tgetent, XE_PREPEND(-ltermcap, LIBS), | |
5363 XE_ADD_OBJS(termcap.o))) | |
5364 fi | |
5365 fi | |
5366 fi | |
5367 AC_DEFINE_UNQUOTED(CURSES_H_FILE, "${curses_h_file-curses.h}") | |
5368 AC_DEFINE_UNQUOTED(TERM_H_FILE, "${term_h_file-term.h}") | |
5369 | |
5370 dnl General Purpose Mouse (libgpm) support | |
5371 if test "$with_gpm" != "no"; then | |
5372 AC_CHECK_HEADER(gpm.h, [ | |
5373 AC_CHECK_LIB(gpm, Gpm_Open, have_gpm=yes)]) | |
5374 if test "$have_gpm" = "yes"; then | |
5375 with_gpm=yes | |
5376 AC_DEFINE(HAVE_GPM) | |
5377 XE_PREPEND(-lgpm, LIBS) | |
5378 elif test "$with_gpm" = "yes"; then | |
5379 XE_DIE(["GPM requested, but gpm.h or libgpm seems to be missing."]) | |
5380 else | |
5381 with_gpm=no | |
5382 fi | |
5383 fi | |
5384 | |
5385 else dnl "$with_tty" = "no" | |
5386 for feature in ncurses gpm; do | |
5387 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then | |
5388 AC_MSG_WARN([--with-${feature} ignored: Not valid without TTY support]) | |
5389 fi | |
5390 eval "with_${feature}=no" | |
5391 done | |
5392 fi dnl with_tty | |
5393 | |
5394 dnl Database support | |
5395 dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support. | |
5396 dnl On FreeBSD, both DB and DBM are part of libc. | |
5397 dnl By default, we check for DBM support in libgdbm, then libc, then libdbm. | |
5398 | |
5399 test "$enable_database_gdbm $enable_database_dbm $enable_database_berkdb" \ | |
3312 | 5400 != "no no no" && AC_MSG_CHECKING([for database support]) && \ |
5401 AC_MSG_RESULT() | |
2651 | 5402 |
5403 dnl Check for ndbm.h, required for either kind of DBM support. | |
5404 if test "$enable_database_gdbm $enable_database_dbm" != "no no"; then | |
5405 AC_CHECK_HEADER(ndbm.h, [:], [ | |
5406 test "$enable_database_gdbm" = "yes" -o \ | |
5407 "$enable_database_dbm" = "yes" && \ | |
5408 XE_DIE("Required DBM support cannot be provided.") | |
5409 enable_database_gdbm=no enable_database_dbm=no]) | |
5410 fi | |
5411 | |
5412 dnl Check for DBM support in libgdbm. | |
5413 if test "$enable_database_gdbm" != "no"; then | |
5414 AC_CHECK_LIB(gdbm, dbm_open, [ | |
5415 enable_database_gdbm=yes enable_database_dbm=no libdbm=-lgdbm], [ | |
4401
01970033faa6
Configure fixes from Hans de Graaff, as used in Gentoo.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4350
diff
changeset
|
5416 AC_CHECK_LIB(gdbm_compat, dbm_open, [ |
01970033faa6
Configure fixes from Hans de Graaff, as used in Gentoo.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4350
diff
changeset
|
5417 enable_database_gdbm=yes enable_database_dbm=no libdbm="-lgdbm_compat -lgdbm"], [ |
2651 | 5418 if test "$enable_database_gdbm" = "yes"; then |
5419 XE_DIE("Required GNU DBM support cannot be provided.") | |
5420 fi | |
4401
01970033faa6
Configure fixes from Hans de Graaff, as used in Gentoo.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4350
diff
changeset
|
5421 enable_database_gdbm=no], -lgdbm) |
01970033faa6
Configure fixes from Hans de Graaff, as used in Gentoo.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4350
diff
changeset
|
5422 ]) |
2651 | 5423 fi |
5424 | |
5425 dnl Check for DBM support in libc and libdbm. | |
5426 if test "$enable_database_dbm" != "no"; then | |
5427 AC_CHECK_FUNC(dbm_open, [enable_database_dbm=yes libdbm=], [ | |
5428 AC_CHECK_LIB(dbm, dbm_open, [enable_database_dbm=yes libdbm=-ldbm], [ | |
5429 test "$enable_database_dbm" = "yes" && \ | |
5430 XE_DIE("Required DBM support cannot be provided.") | |
5431 enable_database_dbm=no])]) | |
5432 fi | |
5433 | |
5434 dnl Tell make about the DBM support we detected. | |
5435 test -n "$libdbm" && XE_PREPEND("$libdbm", LIBS) | |
5436 test "$enable_database_gdbm" = "yes" -o \ | |
5437 "$enable_database_dbm" = "yes" && \ | |
5438 AC_DEFINE(HAVE_DBM) | |
5439 | |
3739 | 5440 dnl Check for u_int*_t typedefs. |
5441 AC_CHECK_TYPES([u_int8_t, u_int16_t, u_int32_t]) | |
5442 | |
2651 | 5443 dnl Check for Berkeley DB. |
5444 if test "$enable_database_berkdb" != "no"; then | |
5445 AC_MSG_CHECKING(for Berkeley db.h) | |
5446 for header in "db/db.h" "db.h"; do | |
3312 | 5447 AC_COMPILE_IFELSE([AC_LANG_SOURCE([ |
2651 | 5448 #include <stdlib.h> |
5449 #if !(defined __GLIBC__ && __GLIBC_MINOR__ >= 1) | |
5450 #ifdef HAVE_INTTYPES_H | |
5451 #define __BIT_TYPES_DEFINED__ | |
5452 #include <inttypes.h> | |
3739 | 5453 #if !HAVE_U_INT8_T |
2651 | 5454 typedef uint8_t u_int8_t; |
3739 | 5455 #endif |
5456 #if !HAVE_U_INT16_T | |
2651 | 5457 typedef uint16_t u_int16_t; |
3739 | 5458 #endif |
5459 #if !HAVE_U_INT32_T | |
2651 | 5460 typedef uint32_t u_int32_t; |
3739 | 5461 #endif |
2651 | 5462 #ifdef WE_DONT_NEED_QUADS |
3739 | 5463 #if !HAVE_U_INT64_T |
2651 | 5464 typedef uint64_t u_int64_t; |
5465 #endif | |
5466 #endif | |
5467 #endif | |
3739 | 5468 #endif |
2651 | 5469 #include <$header> |
3312 | 5470 ])], db_h_file="$header"; break) |
2651 | 5471 done |
5472 if test -z "$db_h_file" | |
5473 then AC_MSG_RESULT(no); enable_database_berkdb=no | |
5474 else AC_MSG_RESULT($db_h_file) | |
5475 fi | |
5476 | |
5477 if test "$enable_database_berkdb" != "no"; then | |
5478 AC_MSG_CHECKING(for Berkeley DB version) | |
5479 AC_EGREP_CPP(yes, | |
5480 [#include <$db_h_file> | |
5481 #if DB_VERSION_MAJOR > 1 | |
5482 yes | |
5483 #endif | |
5484 ], [AC_EGREP_CPP(yes, | |
5485 [#include <$db_h_file> | |
5486 #if DB_VERSION_MAJOR > 2 | |
5487 yes | |
5488 #endif | |
5489 ], [AC_EGREP_CPP(yes, | |
5490 [#include <$db_h_file> | |
5491 #if DB_VERSION_MAJOR > 3 | |
5492 yes | |
5493 #endif | |
5494 ], [AC_MSG_RESULT(4); dbfunc=db_create; dbver=4],[ | |
5495 AC_MSG_RESULT(3); dbfunc=db_create; dbver=3])],[ | |
5496 AC_MSG_RESULT(2); dbfunc=db_open; dbver=2])],[ | |
5497 AC_MSG_RESULT(1); dbfunc=dbopen; dbver=1]) | |
5498 AC_CHECK_FUNC($dbfunc, enable_database_berkdb=yes need_libdb=no, [ | |
5499 AC_CHECK_LIB(db, $dbfunc, enable_database_berkdb=yes need_libdb=yes)]) | |
5500 fi | |
5501 | |
5502 dnl Berk db 4.1 decorates public functions with version information | |
4401
01970033faa6
Configure fixes from Hans de Graaff, as used in Gentoo.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4350
diff
changeset
|
5503 if test "$enable_database_berkdb" = "yes" -a "$dbver" = "4"; then |
2651 | 5504 rm -f $tempcname |
5505 echo "#include <$db_h_file>" > $tempcname | |
5506 echo "configure___ dbfunc=db_create" >> $tempcname | |
5507 define(TAB, [ ])dnl | |
5508 eval `$CPP -Isrc $tempcname \ | |
5509 | sed -n -e "s/[[ TAB]]*=[[ TAB\"]]*/='/" -e "s/[[ TAB\"]]*\$/'/" -e "s/^configure___//p"` | |
5510 rm -f $tempcname | |
5511 AC_MSG_WARN("db_create is really $dbfunc") | |
5512 AC_CHECK_LIB(db, $dbfunc, enable_database_berkdb=yes need_libdb=yes) | |
5513 fi | |
5514 | |
5515 if test "$enable_database_berkdb" = "yes"; then | |
5516 AC_DEFINE_UNQUOTED(DB_H_FILE, "$db_h_file") | |
5517 AC_DEFINE(HAVE_BERKELEY_DB) | |
5518 test "$need_libdb" = "yes" && XE_PREPEND(-ldb, LIBS) | |
5519 else enable_database_berkdb=no | |
5520 fi | |
5521 fi | |
5522 | |
5523 if test "$enable_database_gdbm $enable_database_dbm $enable_database_berkdb" \ | |
5524 != "no no no"; then | |
5525 AC_DEFINE(HAVE_DATABASE) | |
5526 fi | |
5527 | |
5528 dnl Socks support | |
5529 if test "$with_socks" = "yes"; then | |
5530 AC_CHECK_LIB(socks, SOCKSinit) | |
5531 test -n "$ac_cv_lib_socks_SOCKSinit" && AC_DEFINE(HAVE_SOCKS) | |
5532 fi | |
5533 | |
5534 dnl Usage tracking (undocumented and likely unused option) | |
5535 if test "$usage_tracking" = "yes"; then | |
5536 AC_DEFINE(USAGE_TRACKING) | |
5537 XE_PREPEND(-Bstatic -lut -Bdynamic, LIBS) | |
5538 fi | |
5539 | |
5540 dnl Enhanced number support | |
5541 if test "$enable_bignum" = "gmp"; then | |
5542 AC_CHECK_HEADER(gmp.h, [ | |
5543 AC_CHECK_LIB(gmp, __gmpz_init, have_mpz_init=yes)]) | |
5544 if test "$have_mpz_init" = "yes"; then | |
5545 AC_DEFINE(WITH_NUMBER_TYPES) | |
5546 AC_DEFINE(WITH_GMP) | |
5547 XE_PREPEND(-lgmp, LIBS) | |
5548 else | |
5549 XE_DIE("Required GMP numeric support cannot be provided.") | |
5550 fi | |
5551 elif test "$enable_bignum" = "mp"; then | |
5552 for library in "" "-lcrypto"; do | |
5553 AC_CHECK_HEADER(mp.h, [ | |
5554 AC_CHECK_LIB(mp, mp_mfree, have_mp_mfree=yes; break, [ | |
5555 AC_CHECK_LIB(mp, mfree, have_mfree=yes; break, , $library)], | |
5556 $library)]) | |
5557 done | |
5558 if test "$have_mp_mfree" = "yes"; then | |
5559 AC_DEFINE(MP_PREFIX) | |
5560 XE_APPEND(-lmp, LIBS) | |
5561 if test "$library" != ""; then | |
5562 XE_APPEND($library, LIBS) | |
5563 fi | |
5564 AC_CHECK_FUNC(mp_move, [AC_DEFINE(HAVE_MP_MOVE)]) | |
5565 elif test "$have_mfree" = "yes"; then | |
5566 XE_APPEND(-lmp, LIBS) | |
5567 if test "$library" != ""; then | |
5568 XE_APPEND($library, LIBS) | |
5569 fi | |
5570 AC_CHECK_FUNC(move, [AC_DEFINE(HAVE_MP_MOVE)]) | |
5571 else | |
5572 XE_DIE("Required MP numeric support cannot be provided.") | |
5573 fi | |
5574 AC_DEFINE(WITH_NUMBER_TYPES) | |
5575 AC_DEFINE(WITH_MP) | |
5576 fi | |
5577 | |
5578 dnl Unfortunately, just because we can link doesn't mean we can run. | |
5579 dnl One of the above link tests may have succeeded but caused resulting | |
5580 dnl executables to fail to run. Also any tests using AC_RUN_IFELSE will | |
5581 dnl have reported incorrect results. | |
5582 AC_RUN_IFELSE([AC_LANG_SOURCE([int main(int c,char *v[]){return 0;}])],[:],[ | |
5583 echo "" | |
5584 echo "*** PANIC *** The C compiler can no longer build working executables." | |
5585 echo "*** PANIC *** Please examine the tail of config.log for runtime errors." | |
5586 echo "*** PANIC *** The most likely reason for this problem is that configure" | |
5587 echo "*** PANIC *** links with shared libraries, but those libraries cannot be" | |
5588 echo "*** PANIC *** found at run time." | |
5589 echo "*** PANIC ***" | |
5590 echo "*** PANIC *** On a Linux system, edit /etc/ld.so.conf and re-run ldconfig." | |
5591 echo "*** PANIC *** On other systems, try telling configure where to find the" | |
5592 echo "*** PANIC *** shared libraries using the --with-site-runtime-libraries option" | |
5593 echo "*** PANIC ***" | |
5594 echo "*** PANIC *** Another way to shoot yourself in the foot is to specify" | |
5595 echo "*** PANIC *** --with-FEATURE when FEATURE is not actually installed" | |
5596 echo "*** PANIC *** on your system. Don't do that." | |
5597 exit 1]) | |
5598 | |
5599 dnl Process support | |
5600 if test "$win32_processes" != "yes"; then | |
5601 AC_DEFINE(HAVE_UNIX_PROCESSES) | |
5602 fi | |
5603 | |
5604 dnl -------------------------------- | |
5605 dnl Compute SUBST-itutable variables | |
5606 dnl -------------------------------- | |
5607 | |
5608 dnl We ignore (C|LD)_SWITCH_X_(MACHINE|SYSTEM) | |
5609 dnl Use XE_SPACE instead of plain assignment statements to remove extraneous blanks | |
5610 if test "$enable_modules" = "yes"; then | |
5611 ld_libs_module= | |
5612 else | |
2973 | 5613 XE_SPACE(ld_libs_module, $ldap_libs $postgresql_libs $canna_libs) |
2651 | 5614 fi |
5615 | |
5616 XE_SPACE(CFLAGS, $CFLAGS) | |
5617 XE_SPACE(extra_objs, $extra_objs) | |
5618 XE_SPACE(c_switch_general, -DHAVE_CONFIG_H $c_switch_site $c_switch_machine $c_switch_system) | |
5619 XE_SPACE(c_switch_window_system, $c_switch_x_site $c_switch_gtk $X_CFLAGS) | |
5620 XE_SPACE(c_switch_all, $c_switch_general $c_switch_window_system) | |
5621 XE_SPACE(ld_switch_general, $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_run) | |
5622 XE_SPACE(ld_switch_window_system, $ld_switch_x_site) | |
5623 XE_SPACE(ld_switch_all, $ld_switch_general $ld_switch_window_system) | |
5624 XE_SPACE(ld_libs_general, $LIBS $libs_machine $libs_system $libs_standard) | |
5625 XE_SPACE(ld_libs_window_system, $X_EXTRA_LIBS $libs_x $libs_gtk $X_PRE_LIBS) | |
5626 XE_SPACE(ld_libs_all, $ld_libs_window_system $ld_libs_general $ld_libs_module) | |
5627 | |
5628 dnl For no-module builds, make the src dir last | |
5629 if test "$enable_modules" = "no"; then | |
5630 XE_APPEND(src, MAKE_SUBDIR) | |
5631 fi | |
5632 | |
5633 dnl Compute lists of Makefiles and subdirs | |
5634 AC_SUBST(SRC_SUBDIR_DEPS) | |
5635 internal_makefile_list="Makefile.in" | |
5636 SUBDIR_MAKEFILES='' | |
5637 test -d lock || mkdir lock | |
5638 for dir in $MAKE_SUBDIR; do | |
5639 case "$dir" in */* ) dnl Implement mkdir -p | |
5640 ( for d in `echo $dir | sed 's:/: :g'` ; do | |
5641 test -d "$d" || mkdir "$d"; cd "$d" | |
5642 done ) ;; | |
5643 * ) test -d "$dir" || mkdir "$dir" ;; | |
5644 esac | |
5645 XE_SPACE(SUBDIR_MAKEFILES, $SUBDIR_MAKEFILES $dir/Makefile $dir/GNUmakefile) | |
5646 XE_SPACE(internal_makefile_list, $internal_makefile_list $dir/Makefile.in) | |
5647 done | |
5648 AC_SUBST(INSTALL_ARCH_DEP_SUBDIR) | |
5649 AC_SUBST(MAKE_SUBDIR) | |
5650 AC_SUBST(SUBDIR_MAKEFILES) | |
5651 | |
5652 dnl Make s&m symlinks in the src directory, for config.h. | |
5653 for dir in src/s src/m; do | |
5654 if test ! -d "$dir" ; then | |
5655 echo Making symbolic link to "$srcdir/$dir" | |
5656 ${LN_S} "$srcdir/$dir" "$dir" | |
5657 fi | |
5658 done | |
5659 | |
5660 dnl Also make modules/common link if needed for the module Makefiles. | |
5661 if test "$need_modules_common" = "yes"; then | |
5662 for dir in modules/common; do | |
5663 if test ! -d "$dir" ; then | |
5664 echo Making symbolic link to "$srcdir/$dir" | |
5665 ${LN_S} "$srcdir/$dir" "$dir" | |
5666 fi | |
5667 done | |
5668 fi | |
5669 | |
5670 if test "$verbose" = "yes"; then | |
5671 echo "" | |
5672 PRINT_VAR(extra_objs | |
5673 c_switch_general c_switch_window_system c_switch_all | |
5674 ld_switch_general ld_switch_window_system ld_switch_all | |
5675 ld_libs_general ld_libs_window_system ld_libs_all) | |
5676 echo "" | |
5677 fi | |
5678 | |
5679 dnl ---------------------------------------------- | |
5680 dnl Create some auxiliary files for developers. | |
5681 dnl ---------------------------------------------- | |
5682 | |
3418 | 5683 dnl Unlike TAGS, debugger init files depend on config.h. |
5684 dnl Regenerate them locally on every configure. | |
2651 | 5685 dnl Create a .gdbinit useful for debugging XEmacs |
3418 | 5686 if test -f "$srcdir/etc/gdbinit.in"; then |
3092 | 5687 test "$verbose" = "yes" && echo "creating src/.gdbinit.in" |
3418 | 5688 cp $srcdir/etc/gdbinit.in src/.gdbinit.in |
2651 | 5689 fi |
5690 | |
5691 dnl Create a .dbxrc useful for debugging XEmacs | |
3418 | 5692 if test -f "$srcdir/etc/dbxrc.in"; then |
3092 | 5693 test "$verbose" = "yes" && echo "creating src/.dbxrc.in" |
3418 | 5694 echo ". $srcdir/etc/dbxrc.in" > "src/.dbxrc.in" |
2651 | 5695 fi |
5696 | |
5697 dnl Create a useful TAGS file | |
5698 if test -f "$srcdir/TAGS" -a ! -f "TAGS"; then | |
5699 test "$verbose" = "yes" && echo "creating TAGS" | |
5700 echo " | |
5701 $srcdir/TAGS,include" > "TAGS" | |
5702 fi | |
5703 | |
5704 dnl Create top level .sbinit for Sun compilers | |
5705 if test "$__SUNPRO_C" = "yes"; then | |
5706 test "$verbose" = "yes" && echo "creating .sbinit" | |
5707 ( echo "# For use with Sun WorkShop's Source browser." | |
5708 echo "# See sbquery(1) and sbinit(4) for more information" | |
5709 for dir in $MAKE_SUBDIR; do echo "import $dir"; done | |
5710 ) > .sbinit | |
5711 fi | |
5712 | |
5713 dnl There are no more compile tests; remove the core they created. | |
5714 rm -f core | |
5715 | |
5716 dnl ---------------------------------------------- | |
5717 dnl Substitute into Makefile, config.h and paths.h | |
5718 dnl ---------------------------------------------- | |
5719 | |
5720 dnl what sort of things to edit into Makefile, config.h and paths.h | |
5721 dnl configuration here uncanonicalized to avoid exceeding size limits. | |
5722 | |
5723 AC_SUBST(PROGNAME) | |
5724 AC_SUBST(version) | |
3972 | 5725 AC_SUBST(verbose_version) |
2651 | 5726 AC_SUBST(inststaticdir) |
5727 AC_SUBST(instvardir) | |
5728 AC_SUBST(srcdir) | |
5729 AC_SUBST(bindir) | |
4118 | 5730 AC_SUBST(datarootdir) |
2651 | 5731 AC_SUBST(datadir) |
5732 AC_SUBST(statedir) | |
5733 AC_SUBST(libdir) | |
5734 AC_SUBST(mandir) | |
5735 AC_SUBST(extra_includes) | |
5736 | |
5737 AC_SUBST(prefix) | |
5738 AC_SUBST(PREFIX_USER_DEFINED) | |
5739 dnl Yo, Stephen Bourne! I want to marry you! | |
5740 PREFIX=$prefix | |
5741 while true; do | |
5742 case "$PREFIX" in | |
5743 *\$* ) eval "PREFIX=$PREFIX" ;; | |
5744 *) break ;; | |
5745 esac | |
5746 done | |
5747 AC_SUBST(PREFIX) | |
5748 | |
5749 AC_SUBST(exec_prefix) | |
5750 AC_SUBST(EXEC_PREFIX_USER_DEFINED) | |
5751 EXEC_PREFIX=$exec_prefix | |
5752 while true; do | |
5753 case "$EXEC_PREFIX" in | |
5754 *\$* ) eval "EXEC_PREFIX=$EXEC_PREFIX" ;; | |
5755 *) break ;; | |
5756 esac | |
5757 done | |
5758 AC_SUBST(EXEC_PREFIX) | |
5759 | |
5760 AC_SUBST(infodir) | |
5761 AC_SUBST(INFODIR_USER_DEFINED) | |
3729 | 5762 XE_EXPAND_VARIABLE(infodir,INFODIR) |
2651 | 5763 AC_SUBST(INFODIR) |
5764 | |
5765 AC_SUBST(infopath,$with_infopath) | |
5766 AC_SUBST(INFOPATH_USER_DEFINED) | |
3729 | 5767 XE_EXPAND_VARIABLE(with_info_path,INFOPATH) |
2651 | 5768 |
3179 | 5769 test -n "$with_user_packages" && with_early_packages=$with_user_packages |
5770 AC_SUBST(early_packages,$with_early_packages) | |
5771 AC_SUBST(EARLY_PACKAGE_DIRECTORIES_USER_DEFINED) | |
3729 | 5772 XE_EXPAND_VARIABLE(with_early_packages,EARLY_PACKAGE_DIRECTORIES) |
3179 | 5773 AC_SUBST(EARLY_PACKAGE_DIRECTORIES) |
5774 | |
5775 test -n "$with_system_packages" && with_late_packages=$with_system_packages | |
5776 AC_SUBST(late_packages,$with_late_packages) | |
5777 AC_SUBST(LATE_PACKAGE_DIRECTORIES_USER_DEFINED) | |
3729 | 5778 XE_EXPAND_VARIABLE(with_late_packages,LATE_PACKAGE_DIRECTORIES) |
3179 | 5779 AC_SUBST(LATE_PACKAGE_DIRECTORIES) |
5780 | |
5781 test -n "$with_legacy_packages" && with_last_packages=$with_legacy_packages | |
5782 AC_SUBST(last_packages,$with_last_packages) | |
5783 AC_SUBST(LAST_PACKAGE_DIRECTORIES_USER_DEFINED) | |
3729 | 5784 XE_EXPAND_VARIABLE(with_last_packages,LAST_PACKAGE_DIRECTORIES) |
3179 | 5785 AC_SUBST(LAST_PACKAGE_DIRECTORIES) |
2651 | 5786 |
5787 AC_SUBST(package_path,$with_package_path) | |
5788 AC_SUBST(PACKAGE_PATH_USER_DEFINED) | |
3729 | 5789 XE_EXPAND_VARIABLE(with_package_path,PACKAGE_PATH) |
2651 | 5790 AC_SUBST(PACKAGE_PATH) |
5791 | |
5792 AC_SUBST(lispdir, $with_lispdir) | |
5793 AC_SUBST(LISPDIR_USER_DEFINED) | |
3729 | 5794 XE_EXPAND_VARIABLE(with_lispdir,LISPDIR) |
2651 | 5795 AC_SUBST(LISPDIR) |
5796 | |
5797 AC_SUBST(moduledir,$with_moduledir) | |
5798 AC_SUBST(MODULEDIR_USER_DEFINED) | |
3729 | 5799 XE_EXPAND_VARIABLE(with_moduledir,MODULEDIR) |
2651 | 5800 AC_SUBST(MODULEDIR) |
5801 | |
5802 AC_SUBST(sitelispdir,$with_sitelispdir) | |
5803 AC_SUBST(SITELISPDIR_USER_DEFINED) | |
3729 | 5804 XE_EXPAND_VARIABLE(sitelispdir,SITELISPDIR) |
2651 | 5805 AC_SUBST(SITELISPDIR) |
5806 | |
5807 AC_SUBST(sitemoduledir) | |
5808 AC_SUBST(SITEMODULEDIR_USER_DEFINED) | |
3729 | 5809 XE_EXPAND_VARIABLE(sitemoduledir,SITEMODULEDIR) |
2651 | 5810 AC_SUBST(SITEMODULEDIR) |
5811 | |
5812 AC_SUBST(etcdir,$with_etcdir) | |
5813 AC_SUBST(ETCDIR_USER_DEFINED) | |
3729 | 5814 XE_EXPAND_VARIABLE(with_etcdir,ETCDIR) |
2651 | 5815 AC_SUBST(ETCDIR) |
5816 | |
5817 AC_SUBST(archlibdir,$with_archlibdir) | |
5818 AC_SUBST(ARCHLIBDIR_USER_DEFINED) | |
5819 ARCHLIBDIR=$with_archlibdir | |
3729 | 5820 XE_EXPAND_VARIABLE(with_archlibdir,ARCHLIBDIR) |
2651 | 5821 AC_SUBST(ARCHLIBDIR) |
5822 | |
5823 AC_SUBST(docdir,$with_docdir) | |
5824 AC_SUBST(DOCDIR_USER_DEFINED) | |
3729 | 5825 XE_EXPAND_VARIABLE(with_docdir,DOCDIR) |
2651 | 5826 AC_SUBST(DOCDIR) |
5827 | |
5828 AC_SUBST(docdir) | |
5829 AC_SUBST(bitmapdir) | |
5830 AC_SUBST(extra_objs) | |
5831 | |
5832 dnl The following flags combine all the information from: | |
5833 dnl - command line options (user always gets priority) | |
5834 dnl - user environment variables | |
5835 dnl - determined by configure | |
5836 dnl - the s&m header files (required for ellcc) | |
5837 AC_SUBST(machfile) | |
5838 AC_SUBST(opsysfile) | |
5839 AC_SUBST(c_switch_general) | |
5840 AC_SUBST(c_switch_window_system) | |
5841 AC_SUBST(c_switch_all) | |
5842 AC_SUBST(ld_switch_general) | |
5843 AC_SUBST(ld_switch_window_system) | |
5844 AC_SUBST(ld_switch_all) | |
5845 AC_SUBST(ld_libs_general) | |
5846 AC_SUBST(ld_libs_window_system) | |
5847 AC_SUBST(ld_libs_all) | |
5848 AC_SUBST(CFLAGS) | |
5849 AC_SUBST(CPPFLAGS) | |
5850 AC_SUBST(LDFLAGS) | |
5851 RECURSIVE_MAKE_ARGS="\$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'" | |
5852 AC_SUBST(RECURSIVE_MAKE_ARGS) | |
5853 | |
5854 AC_SUBST(native_sound_lib,$with_native_sound_lib) | |
5855 AC_SUBST(sound_cflags) | |
5856 AC_SUBST(RANLIB) | |
5857 AC_SUBST(dynodump_arch) | |
5858 | |
5859 AC_SUBST(XEMACS_CC) | |
5860 AC_SUBST(XE_CFLAGS) | |
5861 | |
5862 dnl The default is yes | |
5863 if test "$with_prefix" = "yes"; then | |
5864 AC_DEFINE(PREFIX_USER_DEFINED) | |
5865 fi | |
5866 | |
5867 dnl The default is no | |
5868 if test "$with_site_lisp" = "no"; then | |
5869 AC_DEFINE(INHIBIT_SITE_LISP) | |
5870 fi | |
5871 dnl The default is yes | |
5872 if test "$with_site_modules" = "no"; then | |
5873 AC_DEFINE(INHIBIT_SITE_MODULES) | |
5874 fi | |
5875 | |
5876 XE_SPACE(ac_configure_args, $ac_configure_args) | |
3765 | 5877 dnl Put back the leading space to work around problems with |
5878 dnl 'config.status --recheck' under autoconf 2.60 and 2.61. | |
5879 ac_configure_args=" $ac_configure_args" | |
2651 | 5880 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "$ac_cv_build") |
5881 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "$ac_configure_args") | |
5882 | |
5883 dnl Following are deprecated | |
5884 | |
5885 null_string="" | |
5886 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, $null_string) | |
5887 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, $null_string) | |
5888 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, $null_string) | |
5889 AC_DEFINE_UNQUOTED(LD_SWITCH_SITE, $null_string) | |
5890 AC_DEFINE_UNQUOTED(C_SWITCH_SITE, $null_string) | |
5891 | |
5892 dnl Note: as a general rule, *only* define things here that are not | |
5893 dnl autodetected. For things that are autodetected, define them | |
5894 dnl at the point where the autodetection occurs or would occur, | |
5895 dnl so that the user gets immediate feedback on the results of the | |
5896 dnl autodetection. | |
5897 | |
5898 if test "$GNU_MALLOC" = "yes"; then AC_DEFINE(GNU_MALLOC) | |
5899 elif test "$with_system_malloc" = "yes"; then AC_DEFINE(USE_SYSTEM_MALLOC) | |
5900 elif test "$with_debug_malloc" = "yes"; then AC_DEFINE(USE_DEBUG_MALLOC) | |
5901 AC_DEFINE(USE_SYSTEM_MALLOC) | |
5902 fi | |
5903 test "$GCC" = "yes" && AC_DEFINE(USE_GCC) | |
5904 test "$enable_external_widget" = "yes" && AC_DEFINE(EXTERNAL_WIDGET) | |
5905 test "$enable_kkcc" = "yes" && AC_DEFINE(USE_KKCC) | |
3092 | 5906 test "$enable_newgc" = "yes" && AC_DEFINE(NEW_GC) |
5907 test "$have_vdb_posix" = "yes" && AC_DEFINE(VDB_POSIX) | |
5908 test "$have_vdb_fake" = "yes" && AC_DEFINE(VDB_FAKE) | |
2651 | 5909 test "$enable_quick_build" = "yes" && AC_DEFINE(QUICK_BUILD) |
5910 test "$with_purify" = "yes" && AC_DEFINE(PURIFY) | |
5911 test "$with_quantify" = "yes" && AC_DEFINE(QUANTIFY) | |
5912 test "$with_pop" = "yes" && AC_DEFINE(MAIL_USE_POP) | |
5913 test "$with_kerberos" = "yes" && AC_DEFINE(KERBEROS) | |
5914 test "$with_hesiod" = "yes" && AC_DEFINE(HESIOD) | |
5915 test "$enable_union_type" = "yes" && AC_DEFINE(USE_UNION_TYPE) | |
5916 test "$enable_pdump" = "yes" && AC_DEFINE(PDUMP) | |
2720 | 5917 test "$enable_dump_in_exec" = "yes" && AC_DEFINE(DUMP_IN_EXEC) |
2651 | 5918 test "$with_ipv6_cname" = "yes" && AC_DEFINE(IPV6_CANONICALIZE) |
5919 | |
5920 | |
5921 | |
5922 dnl ------------------------------------------------------------------------- | |
5923 dnl ------------------------------- | |
5924 dnl Report on what we decided to do | |
5925 dnl ------------------------------- | |
5926 | |
5927 dnl #### We should tag this as the _build_ environment. | |
5928 dnl Before doing that, though, must check if tools care about line 1. | |
5929 | |
5930 ( | |
5931 dnl /etc/osversion is on SONY NEWS-OS | |
5932 if test -f /etc/osversion; then dnl SONY NEWS-OS | |
5933 echo "osversion: `cat /etc/osversion`" | |
5934 else | |
5935 echo "uname -a: `uname -a`" | |
5936 fi | |
5937 echo "" | |
5938 echo "$progname $ac_configure_args" | |
5939 ) > Installation | |
5940 | |
5941 if test ! -z ${emacs_beta_version} ; then | |
5942 if test -z "${emacs_is_beta}" ; then | |
5943 xemacs_betaname=".${emacs_beta_version}" | |
5944 else | |
5945 xemacs_betaname="-b${emacs_beta_version}" | |
5946 fi | |
5947 else | |
5948 xemacs_betaname="" | |
5949 fi | |
5950 | |
5951 dnl Start stdout redirection to '| tee -a Installation' | |
5952 ( | |
5953 echo " | |
5954 | |
2938 | 5955 XEmacs ${emacs_major_version}.${emacs_minor_version}${xemacs_betaname} \"$xemacs_codename\" $xemacs_extra_name configured for \`$ac_cv_build'." |
2651 | 5956 |
5957 echo " | |
5958 Compilation Environment and Installation Defaults:" | |
5959 echo " Source code location: $srcdir" | |
5960 echo " Installation prefix: $prefix" | |
5961 if test -n "$with_site_includes"; then | |
5962 echo " Additional header files: $with_site_includes" | |
5963 fi | |
5964 if test -n "$with_site_libraries"; then | |
5965 echo " Additional libraries: $with_site_libraries" | |
5966 fi | |
5967 if test -n "$with_site_prefixes"; then | |
5968 echo " Additional prefixes: $with_site_prefixes" | |
5969 fi | |
5970 if test -n "$runpath"; then | |
5971 echo " Runtime library search path: $runpath" | |
5972 fi | |
5973 | |
5974 if test -n "$opsysfile" | |
5975 then echo " Operating system description file: \`$opsysfile'" | |
5976 else echo " Not using any operating system description file" | |
5977 fi | |
5978 if test -n "$machfile" | |
5979 then echo " Machine description file: \`$machfile'" | |
5980 else echo " Not using any machine description file" | |
5981 fi | |
5982 | |
5983 echo " Compiler version: $compiler_version" | |
5984 if test -n "$gcc_compiler_specs"; then | |
5985 echo " - GCC specs file: $gcc_compiler_specs" | |
5986 fi | |
5987 echo " - Compiler command: $XEMACS_CC $XE_CFLAGS" | |
5988 if test "$CC" != "$XEMACS_CC"; then | |
5989 echo " Compiler version for lib-src: (detection code unimplemented)" | |
5990 echo " - Compiler command for lib-src: $CC $CFLAGS" | |
5991 if test "$xemacs_cc_cc_mismatch" = "yes"; then | |
5992 echo " WARNING: CC and XEMACS_CC mismatched; check CFLAGS carefully." | |
5993 fi | |
5994 fi | |
5995 echo " libc version: $libc_version" | |
5996 echo " Relocating allocator for buffers: $with_rel_alloc" | |
5997 echo " GNU version of malloc: ${GNU_MALLOC}${GNU_MALLOC_reason}" | |
5998 case "$ld_switch_site" in | |
5999 *nocombreloc*) echo " Linking with \`-z nocombreloc'. | |
6000 - Consider configuring with --enable-pdump." ;; | |
6001 esac | |
6002 | |
6003 echo " | |
6004 Window System:" | |
6005 if test "$with_msw" = "yes"; then | |
6006 echo " Compiling in support for the Microsoft window system." | |
6007 fi | |
6008 if test "$with_x11" = "yes"; then | |
6009 echo " Compiling in support for the X window system:" | |
6010 echo " - X Windows headers location: $x_includes" | |
6011 echo " - X Windows libraries location: $x_libraries" | |
6012 if test "$with_xauth" != yes; then | |
6013 echo " - Xau (X authority) not available." | |
6014 fi | |
6015 if test "$with_xmu" != yes; then | |
6016 echo " - Xmu library not available; substituting equivalent routines." | |
6017 fi | |
6018 if test "$with_wmcommand" != no; then | |
6019 echo " - Handling WM_COMMAND properly." | |
6020 fi | |
3354 | 6021 if test "$with_fontconfig" = "yes"; then |
6022 echo " - Using fontconfig to manage fonts." | |
6023 fi | |
3166 | 6024 if test "$with_xft_emacs" = "yes"; then |
3094 | 6025 echo " - Compiling in support for Xft antialiased fonts (EXPERIMENTAL)." |
6026 fi | |
2651 | 6027 fi |
3019 | 6028 if test "$need_motif" = "yes" ; then |
6029 echo " Compiling in support for Motif." | |
6030 if test "$have_lesstif" = "yes"; then | |
6031 echo " - Using LessTif implementation." | |
6032 fi | |
6033 echo " *WARNING* Many versions of Motif are buggy, requiring workarounds." | |
6034 echo " You are likely to experience slow redisplay." | |
6035 echo " You may need to install vendor patches to Motif." | |
6036 echo " See PROBLEMS for more information." | |
6037 fi | |
2651 | 6038 if test "$need_athena" = "yes"; then |
6039 echo " Compiling in support for the Athena widget set:" | |
6040 echo " - Athena headers location: $athena_h_path" | |
6041 echo " - Athena library to link: $athena_lib" | |
6042 fi | |
6043 case "$enable_menubars" in | |
6044 gtk ) echo " Using GTK menubars." ;; | |
6045 lucid ) echo " Using Lucid menubars." ;; | |
6046 motif ) echo " Using Motif menubars." | |
6047 echo " *WARNING* The Motif menubar implementation is currently buggy." | |
6048 echo " We recommend using the Lucid menubar instead." | |
6049 echo " Re-run configure with --enable-menubars='lucid'." ;; | |
6050 msw ) echo " Using MS-Windows menubars." ;; | |
6051 esac | |
3094 | 6052 if test "$with_xft_menubars" = "yes"; then |
6053 echo " - Using Xft to render antialiased fonts in menubars." | |
6054 echo " WARNING: This feature will be replaced with a face." | |
6055 fi | |
2651 | 6056 case "$enable_scrollbars" in |
6057 gtk ) echo " Using GTK scrollbars." ;; | |
6058 lucid ) echo " Using Lucid scrollbars." ;; | |
6059 motif ) echo " Using Motif scrollbars." ;; | |
6060 athena ) echo " Using Athena scrollbars." ;; | |
6061 msw ) echo " Using MS-Windows scrollbars." ;; | |
6062 esac | |
6063 case "$enable_dialogs" in | |
6064 gtk ) echo " Using GTK dialog boxes." ;; | |
6065 motif ) echo " Using Motif dialog boxes." | |
6066 if test "$unexec" = "unexaix.o"; then if test "`uname -v`" = 4 -a "`uname -r`" -ge 3; then | |
6067 echo " *WARNING* The Motif dialog boxes cause problems on AIX 4.3 and higher." | |
6068 echo " We recommend using the Athena dialog boxes instead." | |
6069 echo " Install libXaw and re-run configure with --enable-dialogs='athena'." | |
6070 echo " Read the PROBLEMS file for more information." | |
6071 fi; fi ;; | |
6072 athena ) echo " Using Athena dialog boxes." ;; | |
6073 msw ) echo " Using MS-Windows dialog boxes." ;; | |
6074 esac | |
6075 case "$enable_widgets" in | |
6076 gtk ) echo " Using GTK native widgets." ;; | |
6077 motif ) echo " Using Motif native widgets." ;; | |
6078 athena ) echo " Using Athena native widgets." ;; | |
6079 msw ) echo " Using MS-Windows native widgets." ;; | |
6080 esac | |
3094 | 6081 if test "$with_xft_tabs" = "yes"; then |
6082 echo " - Using Xft to render antialiased fonts in tab controls." | |
6083 echo " WARNING: This feature will be replaced with a face." | |
6084 fi | |
6085 if test "$with_xft_gauge" = "yes"; then | |
6086 echo " - Using Xft to render antialiased fonts in progress bars." | |
6087 echo " WARNING: This feature will be replaced with a face." | |
6088 echo " WARNING: This feature not yet implemented; setting ignored." | |
6089 fi | |
2651 | 6090 if test "$with_dragndrop" = yes; then |
6091 echo " Compiling in support for Drag'n'Drop (EXPERIMENTAL)." | |
6092 echo " - Drag'n'Drop prototype: $dragndrop_proto." | |
6093 fi | |
6094 | |
6095 echo " | |
6096 TTY:" | |
6097 test "$with_ncurses" = yes && echo " Compiling in support for ncurses." | |
6098 test "$with_gpm" = yes && echo " Compiling in support for GPM (General Purpose Mouse)." | |
6099 | |
6100 echo " | |
6101 Images:" | |
6102 test "$with_gif" = yes && echo " Compiling in support for GIF images (builtin)." | |
6103 if test "$with_xpm" = yes; then | |
6104 echo " Compiling in support for XPM images." | |
6105 elif test "$with_x11" = yes; then | |
6106 echo " WARNING: -----------------------------------------------------------" | |
6107 echo " WARNING: Compiling without XPM image support." | |
6108 if test "$xpm_problem" != ""; then | |
6109 echo " Reason: $xpm_problem" | |
6110 fi | |
6111 echo " WARNING: You should strongly consider installing XPM." | |
6112 echo " WARNING: Otherwise toolbars and other graphics will look suboptimal." | |
6113 echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)" | |
6114 echo " WARNING: -----------------------------------------------------------" | |
6115 fi | |
6116 if test "$with_png" = yes; then | |
6117 echo " Compiling in support for PNG images." | |
6118 elif test "$window_system" != "none"; then | |
6119 echo " WARNING: -----------------------------------------------------------" | |
6120 echo " WARNING: Compiling without PNG image support." | |
6121 if test "$png_problem" != ""; then | |
6122 echo " Reason: $png_problem" | |
6123 fi | |
6124 echo " WARNING: You should strongly consider installing the PNG libraries." | |
6125 echo " WARNING: Otherwise certain images and glyphs may not display." | |
6126 echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)" | |
6127 echo " WARNING: -----------------------------------------------------------" | |
6128 fi | |
6129 test "$with_jpeg" = yes && echo " Compiling in support for JPEG images." | |
6130 test "$with_tiff" = yes && echo " Compiling in support for TIFF images." | |
6131 test "$with_xface" = yes && echo " Compiling in support for X-Face message headers." | |
6132 | |
6133 echo " | |
6134 Sound:" | |
6135 test "$enable_sound_native" = yes && echo " Compiling in support for sound (native)." | |
3308 | 6136 test "$enable_sound_alsa" = yes && echo " Compiling in support for ALSA (Advanced Linux Sound Architecture)." |
2651 | 6137 test "$enable_sound_nas" = yes && echo " Compiling in support for NAS (network audio system)." |
6138 test "$old_nas" = yes && echo " - NAS library lacks error trapping; will play synchronously." | |
6139 test "$enable_sound_esd" = yes && echo " Compiling in support for ESD (Enlightened Sound Daemon)." | |
6140 | |
6141 echo " | |
6142 Databases:" | |
6143 test "$enable_database_berkdb" = yes && echo " Compiling in support for Berkeley database." | |
6144 test "$enable_database_dbm" = yes && echo " Compiling in support for DBM." | |
6145 test "$enable_database_gdbm" = yes && echo " Compiling in support for GNU DBM." | |
6146 test "$with_ldap" = yes && echo " Compiling in support for LDAP." | |
6147 if test "$with_postgresql" = yes; then | |
6148 echo " Compiling in support for PostgreSQL." | |
6149 echo " - Using PostgreSQL header file: $libpq_fe_h_file" | |
6150 test "$with_postgresqlv7" = yes && echo " - Using PostgreSQL V7 bindings." | |
6151 fi | |
6152 | |
6153 echo " | |
6154 Internationalization:" | |
6155 test "$enable_mule" = yes && echo " Compiling in support for Mule (multi-lingual Emacs)." | |
6156 test "$with_xim" != no && echo " Compiling in support for XIM (X11R5+ I18N input method)." | |
6157 test "$with_xim" = motif && echo " - Using Motif to provide XIM support." | |
6158 test "$with_xim" = xlib && echo " - Using raw Xlib to provide XIM support." | |
6159 test "$with_xfs" = yes && echo " - Using XFontSet to provide bilingual menubar." | |
3830 | 6160 test "$have_canna" = yes && echo " Compiling in support for Canna on Mule." |
2651 | 6161 if test "$with_wnn" = yes; then |
6162 echo " Compiling in support for the WNN input method on Mule." | |
6163 test "$with_wnn6" = yes && echo " - Using WNN version 6." | |
6164 fi | |
6165 | |
6166 echo " | |
6167 Mail:" | |
6168 test "$with_pop" = yes && echo " Compiling in support for POP mail retrieval." | |
6169 test "$with_kerberos" = yes && echo " Compiling in support for Kerberos POP authentication." | |
6170 test "$with_hesiod" = yes && echo " Compiling in support for Hesiod POP server access." | |
6171 test -n "$with_mail_locking" && echo " Compiling in support for \"$with_mail_locking\" mail spool file locking method." | |
6172 | |
6173 echo " | |
6174 Other Features:" | |
6175 test "$with_ipv6_cname" = no && echo " Inhibiting IPv6 canonicalization at startup." | |
6176 test "$with_tooltalk" = yes && echo " Compiling in support for ToolTalk." | |
6177 test "$with_workshop" = yes && echo " Compiling in support for Sun WorkShop." | |
6178 test "$with_socks" = yes && echo " Compiling in support for SOCKS." | |
6179 test "$with_dnet" = yes && echo " Compiling in support for DNET." | |
6180 test "$enable_modules" = "yes" && echo " Compiling in support for dynamic shared object modules." | |
6181 test "$enable_bignum" = "gmp" && echo " Compiling in support for more number types using the GNU MP library." | |
6182 test "$enable_bignum" = "mp" && echo " Compiling in support for more number types using the BSD MP library." | |
6183 if test "$enable_union_type" = yes ; then | |
6184 echo " Using the union type for Lisp_Objects." | |
6185 echo " WARNING: ---------------------------------------------------------" | |
6186 echo " WARNING: This tends to trigger compiler bugs, especially when" | |
6187 echo " WARNING: combined with MULE and ERROR_CHECKING. Crashes have" | |
6188 echo " WARNING: been seen with various versions of GCC (up to about 2.95)," | |
6189 echo " WARNING: and recently with Visual C++ as well (mid-2003)." | |
6190 echo " WARNING: More recent versions may be safer, or not." | |
6191 echo " WARNING: ---------------------------------------------------------" | |
6192 fi | |
2790 | 6193 if test "$enable_kkcc" = yes ; then |
3263 | 6194 echo " Using the new GC mark algorithms (KKCC)." |
2790 | 6195 echo " WARNING: ---------------------------------------------------------" |
6196 echo " WARNING: The new algorithms are experimental. They are enabled by" | |
6197 echo " WARNING: default for this release. Use \`--disable-kkcc' to" | |
6198 echo " WARNING: turn it off." | |
6199 echo " WARNING: ---------------------------------------------------------" | |
6200 fi | |
3263 | 6201 test "$enable_newgc" = yes && echo " Using the new incremental garbage collector and the new allocator." |
3092 | 6202 if test "$have_vdb_posix" = yes ; then |
6203 if test "$have_vdb_sigaction" = yes ; then | |
6204 echo " Using POSIX sigaction() to install fault handler." | |
6205 else | |
6206 echo " Using POSIX signal() to install vdb fault handler." | |
6207 fi | |
6208 fi | |
6209 if test "$have_vdb_win32" = yes ; then | |
6210 echo " Using special WIN32 vdb fault handler." | |
6211 fi | |
6212 if test "$have_vdb_mach" = yes ; then | |
6213 echo " Using mach exception mechanism as vdb fault handler." | |
6214 fi | |
6215 if test "$have_vdb_fake" = yes && test "$enable_vdb" == fake; then | |
6216 echo " Virtual dirty bit write barrier manually disabled." | |
6217 fi | |
2651 | 6218 test "$enable_pdump" = yes && echo " Using the new portable dumper." |
2720 | 6219 test "$enable_dump_in_exec" = yes && echo " Dumping into executable." |
2651 | 6220 test "$enable_debug" = yes && echo " Compiling in support for extra debugging code." |
6221 test "$usage_tracking" = yes && echo " Compiling in support for active usage tracking (Sun internal)." | |
6222 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" \ | |
6223 != "no no no no no no no no no"; then | |
6224 echo " Compiling in support for runtime error checking." | |
6225 echo " WARNING: ---------------------------------------------------------" | |
6226 echo " WARNING: XEmacs will run noticeably more slowly as a result." | |
6227 echo " WARNING: Error checking is on by default for XEmacs beta releases." | |
6228 echo " WARNING: ---------------------------------------------------------" | |
6229 fi | |
6230 echo "" | |
6231 ) | tee -a Installation | |
6232 dnl echo "The above configure report is appended to \"Installation\" file." | |
6233 echo "" | |
6234 | |
6235 dnl ----------------------------------- | |
6236 dnl Now generate config.h and Makefiles | |
6237 dnl ----------------------------------- | |
6238 AC_CONFIG_HEADER(src/config.h lwlib/config.h) | |
6239 | |
6240 dnl This has to be called in order for this variable to get into config.status | |
6241 AC_SUBST(internal_makefile_list) | |
6242 # Remove any trailing slashes in these variables. | |
6243 test -n "$prefix" && | |
6244 prefix=`echo '' "$prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'` | |
6245 test -n "$exec_prefix" && | |
6246 exec_prefix=`echo '' "$exec_prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'` | |
6247 | |
6248 dnl Build Makefile.in's from Makefile.in.in's | |
6249 dnl except ./Makefile from $srcdir/Makefile.in | |
6250 dnl src/Makefile.in will have src/depend appended to it; | |
6251 dnl module Makefiles will have the common text in | |
6252 dnl modules/common/Makefile.common appended. | |
6253 | |
3481 | 6254 dnl this actually should be conditional on having perl (ie, effectively |
6255 dnl unconditional on sane systems) | |
6256 if test -r $srcdir/src/depend; then :; | |
6257 else | |
6258 echo "creating $srcdir/src/depend" | |
6259 perl $srcdir/src/make-src-depend > $srcdir/src/depend | |
6260 fi | |
6261 | |
2651 | 6262 for file in $internal_makefile_list; do |
6263 case $file in | |
6264 src/Makefile.in ) file="src/Makefile.in:src/Makefile.in.in:src/depend" ;; | |
6265 modules/* ) file="${file}:${file}.in:modules/common/Makefile.common" ;; | |
6266 esac | |
6267 AC_CONFIG_FILES($file) | |
6268 done | |
6269 AC_CONFIG_FILES(src/paths.h src/xemacs.def.in lib-src/config.values) | |
6270 test "$enable_modules" = "yes" && AC_CONFIG_FILES(lib-src/ellcc.h) | |
6271 | |
6272 | |
6273 dnl Normally []'s are used for quoting but this will cause problems | |
6274 dnl since we use brackets in sed. When not inside of a macro definition, | |
6275 dnl two brackets become one, but inside of a macro definition you need | |
6276 dnl more, or something -- I don't understand, but Martin probably does. | |
6277 dnl We put the brackets back later. | |
6278 dnl [ben] | |
3418 | 6279 dnl To insert comments that will remain in the generated file, we use the |
6280 dnl imake XCOMM convention. Lines beginning with "XCOMM " exactly (no | |
6281 dnl leading whitespace, one trailing ASCII space, case sensitive) will be | |
6282 dnl transformed to shell/make/gdb comments in the generated file. | |
6283 dnl [sjt] | |
2651 | 6284 |
6285 dnl MAKE_JUNK_C(filename): | |
6286 dnl Copy a .in file to junk.c in preparation for passing through the | |
6287 dnl C preprocessor. Delete comment lines, pass lines that will be | |
6288 dnl interpreted by cpp through directly, and put quotes around remaining | |
6289 dnl lines, to avoid problems from overly helpful preprocessors that | |
6290 dnl "helpfully" put extra quotes in various places for later use by the | |
6291 dnl compiler. Later, the quotes will be removed. | |
6292 | |
6293 m4_define([MAKE_JUNK_C], | |
6294 [ rm -f junk.c | |
6295 < $1 \ | |
6296 sed -e '/^# Generated/d' \ | |
6297 -e 's%/\*\*/#.*%%' \ | |
6298 -e 's/^ *# */#/' \ | |
6299 dnl Delete Makefile.in.in comment lines | |
6300 -e '/^##/d' \ | |
6301 dnl Pass through CPP directives unchanged | |
6302 -e '/^#/ { | |
6303 p | |
6304 d | |
6305 }' \ | |
6306 dnl Quote other lines to protect from CPP substitution | |
6307 -e '/./ { | |
6308 s/\([[\"]]\)/\\\1/g | |
6309 s/^/"/ | |
6310 s/$/"/ | |
6311 }' > junk.c; | |
6312 ])dnl MAKE_JUNK_C | |
6313 | |
6314 dnl CPP_MAKEFILE(CPPFLAGS,filename): | |
6315 dnl Pass junk.c through the preprocessor and put the result in FILENAME. | |
6316 | |
6317 m4_define([CPP_MAKEFILE], | |
6318 [echo creating $dir/$2 | |
6319 $CPP -I. -I${srcdir}/src $1 junk.c \ | |
6320 dnl Delete line directives inserted by $CPP | |
6321 | sed -e 's/^\#.*//' \ | |
6322 dnl Delete spurious blanks inserted by $CPP | |
6323 -e 's/^[[ TAB]][[ TAB]]*$//'\ | |
6324 -e 's/^ /TAB/' \ | |
6325 dnl Delete blank lines | |
6326 -e '/^[[ ]]*$/d' \ | |
6327 dnl Restore lines quoted above to original contents. | |
6328 -e '/^\"/ { | |
6329 s/\\\([[\"]]\)/\1/g | |
6330 s/^[[ TAB]]*\"// | |
6331 s/\"[[ TAB]]*$// | |
3418 | 6332 }' \ |
6333 dnl Convert comments -- must come after the unquoting operations | |
6334 -e 's/^XCOMM /\# /' > Makefile.new | |
2651 | 6335 chmod 444 Makefile.new |
6336 mv -f Makefile.new $2 | |
6337 ])dnl CPP_MAKEFILE | |
6338 | |
6339 AC_CONFIG_COMMANDS([default], | |
6340 [for dir in . $MAKE_SUBDIR; do | |
6341 ( | |
6342 cd $dir | |
6343 | |
6344 dnl Create a GNUmakefile and Makefile from Makefile.in. | |
6345 dnl Create xemacs.def from xemacs.def.in in the same fashion, | |
3418 | 6346 dnl if it exists (i.e. in the src/ directory). Ditto for the |
6347 dnl debugger init files (in the src/ directory). | |
2651 | 6348 MAKE_JUNK_C(Makefile.in) |
6349 CPP_MAKEFILE(,Makefile) | |
6350 CPP_MAKEFILE(-DUSE_GNU_MAKE,GNUmakefile) | |
3092 | 6351 if test -r ".gdbinit.in"; then |
6352 MAKE_JUNK_C(.gdbinit.in) | |
6353 CPP_MAKEFILE(,.gdbinit) | |
6354 fi | |
6355 if test -r ".dbxrc.in"; then | |
6356 MAKE_JUNK_C(.dbxrc.in) | |
6357 CPP_MAKEFILE(,.dbxrc) | |
6358 fi | |
2651 | 6359 if test -r "xemacs.def.in"; then |
6360 dnl #### We should be using MAKE_JUNK_C instead of the next two lines. | |
6361 dnl #### But the comments in xemacs.def.in need to be converted from C-style | |
6362 dnl #### to lines beginning with ##. | |
6363 rm -f junk.c | |
6364 cp xemacs.def.in junk.c | |
6365 CPP_MAKEFILE(,xemacs.def) | |
6366 fi | |
6367 rm -f junk.c | |
6368 ) | |
6369 done | |
6370 | |
6371 dnl Append AC_DEFINE information to lib-src/config.values | |
6372 dnl (AC_SUBST information is already there (see config.values.sh). | |
6373 sed < config.status >> lib-src/config.values \ | |
6374 -e '/{ac_dA}.*{ac_dB}.*{ac_dC}.*{ac_dD}$/!d' \ | |
6375 -e 's/\${ac_dA}\(.*\)\${ac_dB}.*\${ac_dC}\(.*\)\${ac_dD}/\1 \2/' \ | |
6376 -e 's/^\([[^ ]]*\) $/\1 ""/' \ | |
6377 -e 's/ 1$/ t/' | |
6378 | |
6379 ], | |
6380 [CPP="$CPP" | |
6381 MAKE_SUBDIR="$MAKE_SUBDIR" | |
6382 ])dnl | |
6383 | |
6384 AC_OUTPUT()dnl | |
6385 |