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