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