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