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