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