Mercurial > hg > xemacs-beta
annotate configure.ac @ 4708:1cecc3e9f0a0
Use giflib or libungif to provide GIF support, instead of using internal
routines. Delete internal GIF support code with no stated license. Fix up
a number of references in the documentation to GIF support. See discussion
on xemacs-beta: <87iqg4vg9t.fsf@uwakimon.sk.tsukuba.ac.jp>.
author | Jerry James <james@xemacs.org> |
---|---|
date | Mon, 05 Oct 2009 10:11:59 -0600 |
parents | 0e1461b592ce |
children | 80d74fed5399 |
rev | line source |
---|---|
2651 | 1 dnl XEmacs config script for autoconf 2.5. |
2 dnl ------------------------------------------------------------------------- | |
3 dnl Overrides of standard autoconf macros. | |
4 | |
5 # AC_LANG(C) | |
6 # ---------- | |
7 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. | |
8 m4_define([AC_LANG(C)], | |
9 [ac_ext=c | |
10 xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS' | |
11 xe_ldflags='$LDFLAGS $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_x_site $ld_switch_run' | |
12 xe_libs='$ld_call_shared $xe_check_libs $X_EXTRA_LIBS $libs_x $libs_gtk $X_PRE_LIBS $LIBS $libs_machine $libs_system $libs_standard' | |
13 ac_cpp='$CPP '"$xe_cppflags" | |
2667 | 14 ac_compile='$CC -c $CFLAGS '"$xe_cppflags"' conftest.$ac_ext >&AS_MESSAGE_LOG_FD' |
2651 | 15 ac_link='$CC -o conftest$ac_exeext $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' >&AS_MESSAGE_LOG_FD' |
16 ac_compiler_gnu=$ac_cv_c_compiler_gnu | |
17 ]) | |
3003 | 18 dnl |
2651 | 19 dnl ------------------------------------------------------------------------- |
20 dnl Autoconf startup. | |
3003 | 21 dnl |
22 dnl Due to a dependence on the implementation of certain internal autoconf | |
23 dnl macros, die if any version other than 2.59 is used. | |
2651 | 24 AC_PREREQ(2.59)dnl |
3050 | 25 AC_INIT([XEmacs],[21.5],[xemacs-beta@xemacs.org])dnl |
26 AC_CONFIG_SRCDIR(src/lisp.h)dnl | |
3003 | 27 dnl |
2651 | 28 dnl ------------------------------------------------------------------------- |
29 dnl Local copyright notices. | |
30 | |
31 AC_COPYRIGHT( | |
3073 | 32 [Configuration script for XEmacs. Largely divergent from FSF. |
33 Guess values for system-dependent variables and create Makefiles. | |
34 | |
3418 | 35 Copyright (C) 1992-1999, 2001-2006 Free Software Foundation, Inc. |
3073 | 36 Copyright (C) 1993, 1994, 1995 Board of Trustees, University of Illinois. |
37 Copyright (C) 1996, 1997 Sun Microsystems, Inc. | |
38 Copyright (C) 1995, 1996, 2002, 2003, 2004 Ben Wing. | |
39 Copyright (C) 2000, 2001 Martin Buchholz. | |
40 Copyright (C) 1998, 1999 J. Kean Johnston. | |
41 Copyright (C) 2005 Malcolm Purvis | |
42 | |
43 Don't edit this script! | |
44 This script was automatically generated by the `autoconf' program | |
45 from the file `./configure.ac'. To rebuild it, execute the command: | |
46 | |
47 autoconf | |
48 | |
49 in the this directory. You must have autoconf version 2.59. | |
50 | |
51 This file is part of XEmacs. | |
52 | |
53 XEmacs is free software; you can redistribute it and/or modify it | |
54 under the terms of the GNU General Public License as published by | |
55 the Free Software Foundation; either version 2, or (at your | |
56 option) any later version. | |
57 | |
58 XEmacs is distributed in the hope that it will be useful, but | |
59 WITHOUT ANY WARRANTY; without even the implied warranty of | |
60 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
61 General Public License for more details. | |
62 | |
63 You should have received a copy of the GNU General Public License | |
64 along with XEmacs; see the file COPYING. If not, write to the Free | |
65 Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | |
66 Boston, MA 02110-1301, USA. | |
67 | |
68 For usage, run `./configure --help' | |
69 For more detailed information on building and installing XEmacs, | |
70 read the file `INSTALL'. | |
71 | |
72 If configure succeeds, it leaves its status in config.status. | |
73 A log of configuration tests can be found in config.log. | |
74 If configure fails after disturbing the status quo, | |
75 config.status is removed. | |
2651 | 76 ]) |
77 | |
78 dnl ------------------------------------------------------------------------- | |
79 dnl Program name (sanitize $0) | |
80 dnl Remove any more than one leading "." element from the path name. | |
81 dnl config.status prepends another "./" at each use. This confuses | |
82 dnl move-if-change. | |
83 dnl | |
84 dnl Unfortunately, some seds (Ultrix's) don't allow you to apply * to a | |
85 dnl \( \) group. Bleah. Remove the level config.status adds, at least. | |
86 dnl | |
87 dnl If there's reason to prefer $0 over this, make sure you fix all the | |
88 dnl uses in this script!! | |
89 progname="`echo $0 | sed 's:^\./\./:\./:'`" | |
3003 | 90 dnl |
2651 | 91 dnl ------------------------------------------------------------------------- |
92 dnl Local macros | |
3003 | 93 dnl |
2651 | 94 define([USAGE_ERROR], |
95 [(echo "$progname: Usage error:" | |
96 echo " " $1 | |
3003 | 97 echo " Use \`$progname --help' to show usage.") >&2 && exit 1])dnl |
98 dnl | |
2651 | 99 dnl PRINT_VAR(var var ...) prints values of shell variables |
100 define([PRINT_VAR],[for var in patsubst([$1],[[ | |
3003 | 101 ]+],[ ]); do eval "echo \"$var = '\$$var'\""; done])dnl |
102 dnl | |
2651 | 103 dnl XE_ADD_OBJS(foo.o) |
104 define([XE_ADD_OBJS], | |
105 [extra_objs="$extra_objs [$1]" && dnl | |
106 if test "$verbose" = "yes"; then | |
107 echo " xemacs will be linked with \"[$1]\"" | |
108 fi])dnl XE_ADD_OBJS | |
3003 | 109 dnl |
2651 | 110 dnl XE_APPEND(value, varname) |
111 define([XE_APPEND], | |
112 [[$2]="$[$2] [$1]" && dnl | |
3003 | 113 if test "$verbose" = "yes"; then echo " Appending \"[$1]\" to \$[$2]"; fi])dnl |
114 dnl | |
2651 | 115 dnl XE_PREPEND(value, varname) |
116 define([XE_PREPEND], | |
117 [[$2]="[$1] $[$2]" && dnl | |
3003 | 118 if test "$verbose" = "yes"; then echo " Prepending \"[$1]\" to \$[$2]"; fi])dnl |
119 dnl | |
2651 | 120 dnl XE_DIE(message) |
3003 | 121 define([XE_DIE], [{ echo "Error:" $1 >&2; exit 1; }])dnl |
122 dnl | |
2651 | 123 dnl XE_CHECK_FEATURE_DEPENDENCY(feature1, feature2) |
124 define([XE_CHECK_FEATURE_DEPENDENCY], | |
125 [if test "$with_[$1] $with_[$2]" = "yes no"; then | |
126 USAGE_ERROR("--with-[$1] requires --with-[$2]") | |
127 elif test "$with_[$2]" = "no" ; then with_[$1]=no | |
128 elif test "$with_[$1]" = "yes"; then with_[$2]=yes | |
129 fi | |
3003 | 130 ])dnl |
131 dnl | |
2651 | 132 dnl XE_STRIP_4TH_COMPONENT(var) |
133 dnl Changes i986-pc-linux-gnu to i986-pc-linux, as God (not RMS) intended. | |
134 define([XE_STRIP_4TH_COMPONENT], | |
3003 | 135 [$1=`echo "$$1" | sed '[s/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/]'`])dnl |
136 dnl | |
2651 | 137 dnl Do our best to deal with automounter brokenness |
138 dnl CANONICALIZE_PATH(varname) | |
139 define([CANONICALIZE_PATH], | |
140 [if test -d "/net"; then | |
141 if test -d "/tmp_mnt/net"; then tdir="tmp_mnt/net"; else tdir="tmp_mnt"; fi | |
142 $1=`echo "[$]$1" | \ | |
143 sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"` | |
144 fi])dnl | |
3003 | 145 dnl |
2651 | 146 dnl XE_PROTECT_LINKER_FLAGS(shell_var) |
147 define([XE_PROTECT_LINKER_FLAGS], [ | |
148 if test "$GCC" = "yes"; then | |
149 set x $[$1]; shift; [$1]="" | |
150 while test -n "[$]1"; do | |
151 case [$]1 in | |
152 -L | -l | -u ) [$1]="$[$1] [$]1 [$]2"; shift ;; | |
153 -L* | -l* | -u* | -Wl* | -pg ) [$1]="$[$1] [$]1" ;; | |
154 -Xlinker* ) ;; | |
155 * ) [$1]="$[$1] -Xlinker [$]1" ;; | |
156 esac | |
157 shift | |
158 done | |
159 fi])dnl | |
3003 | 160 dnl |
2651 | 161 dnl Allow use of either ":" or spaces for lists of directories |
162 define(COLON_TO_SPACE, | |
163 [case "$[$1]" in *:* [)] [$1]="`echo '' $[$1] | sed -e 's/^ //' -e 's/:/ /g'`";; esac])dnl | |
3003 | 164 dnl |
2651 | 165 dnl XE_ADD_RUNPATH_DIR(directory) |
166 define([XE_ADD_RUNPATH_DIR],[{ | |
167 xe_runpath_dir=$1 | |
168 dnl PRINT_VAR(ld_switch_site ld_switch_x_site runpath xe_runpath_dir LD_RUN_PATH xe_ldflags) | |
169 test "$xe_runpath_dir" != "/lib" -a \ | |
170 "$xe_runpath_dir" != "/usr/lib" -a \ | |
171 -n "`ls ${xe_runpath_dir}/*.s[[ol]] 2>/dev/null`" && \ | |
172 eval "$xe_add_unique_runpath_dir" | |
173 }])dnl | |
3003 | 174 dnl |
2651 | 175 dnl XE_COMPUTE_RUNPATH() |
176 define([XE_COMPUTE_RUNPATH],[ | |
177 if test "$add_runtime_path" = "yes" -a -n "$dash_r"; then | |
178 dnl Remove runtime paths from current ld switches | |
179 ld_switch_site=`echo '' $ld_switch_site | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"` | |
180 ld_switch_x_site=`echo '' $ld_switch_x_site | sed -e 's:^ ::' -e "s/$dash_r[[^ ]]*//g"` | |
181 dnl PRINT_VAR(ld_switch_site ld_switch_x_site) | |
182 | |
183 dnl Fix up Runtime path | |
184 dnl If LD_RUN_PATH is set in environment, use that. | |
185 dnl In this case, assume user has set the right value. | |
186 runpath="" runpath_dirs="" | |
187 if test -n "$LD_RUN_PATH"; then | |
188 runpath="$LD_RUN_PATH" | |
189 elif test "$GCC" = "yes"; then | |
190 dnl Compute runpath from gcc's -v output | |
191 ld_switch_run_save="$ld_switch_run"; ld_switch_run="" | |
4588
6a6689b96f00
Adopt Martin's suggestion of "char **argv" throughout configure.ac.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4543
diff
changeset
|
192 echo "int main(int argc, char **argv) {return 0;}" > conftest.c |
2651 | 193 xe_runpath_link='${CC-cc} -o conftest -v $CFLAGS '"$xe_ldflags"' conftest.$ac_ext 2>&1 1>/dev/null' |
194 for arg in `eval "$xe_runpath_link" | grep ' -L'`; do | |
195 case "$arg" in P,* | -L* | -R* ) | |
196 for dir in `echo '' "$arg" | sed -e 's:^ ::' -e 's/^..//' -e 'y/:/ /'`; do | |
197 XE_ADD_RUNPATH_DIR("$dir") | |
198 done ;; | |
199 esac | |
200 done | |
201 ld_switch_run="$ld_switch_run_save" | |
202 rm -f conftest* | |
203 else | |
204 dnl Add all directories with .so files to runpath | |
205 for arg in $ld_switch_site $ld_switch_x_site; do | |
206 case "$arg" in -L*) XE_ADD_RUNPATH_DIR(`echo '' "$arg" | sed -e 's:^ ::' -e 's/^-L//'`);; esac | |
207 done | |
208 dnl Sometimes /opt/SUNWdt/lib is the only installed Motif available | |
3019 | 209 dnl #### this test always fails here as need_motif is null |
2651 | 210 if test "$opsys $need_motif" = "sol2 yes"; then |
211 xe_runpath_dir="/opt/SUNWdt/lib"; | |
212 eval "$xe_add_unique_runpath_dir"; | |
213 fi | |
214 fi dnl Compute $runpath | |
215 | |
216 if test -n "$runpath"; then | |
217 ld_switch_run="${dash_r}${runpath}" | |
218 XE_PROTECT_LINKER_FLAGS(ld_switch_run) | |
219 test "$verbose" = "yes" && echo "Setting runpath to $runpath" | |
220 fi | |
221 fi | |
222 ])dnl | |
3003 | 223 dnl |
2651 | 224 dnl The construct foo=`echo $w1 $w2 $w3` fails on some systems if $w1 = -e or -n |
225 dnl So we use the following instead. | |
226 dnl XE_SPACE(var, words) | |
227 define([XE_SPACE],[ | |
228 T="" | |
229 for W in $2; do if test -z "$T"; then T="$W"; else T="$T $W"; fi; done | |
230 $1="$T" | |
231 ])dnl XE_SPACE | |
3683 | 232 dnl Autoconf 2.59 and 2.60 have slightly different versions of m4_cdr that |
233 dnl return different values for an empty list. XE_CDR is a copy of the 2.60 | |
234 dnl version which will be used with both versions. | |
235 define([XE_CDR], | |
236 [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], | |
237 [$#], 1, [], | |
238 [m4_dquote(m4_shift($@))])])dnl | |
3003 | 239 dnl |
240 dnl XE_MERGED_ARG(FEATURE, HELP-STRING, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) | |
241 dnl ------------------------------------------------------------------------ | |
242 dnl | |
243 dnl Arguments that can be specified with either --enable or --with. The | |
244 dnl majority of XEmacs arguments do not fit neatly into the division between | |
245 dnl --enable and --with, so allow those to be specified by either argument. | |
246 dnl The value is stored in both enable_FEATURE and with_FEATURE. | |
247 AC_DEFUN([XE_MERGED_ARG], | |
248 [m4_divert_once([HELP_ENABLE], [[ | |
249 Optional Features: | |
250 --with-FEATURE[=ARG] include FEATURE [ARG=yes] | |
251 --enable-FEATURE[=ARG] alias for --with-FEATURE | |
252 --without-FEATURE do not use FEATURE (same as --with-FEATURE=no) | |
253 --disable-FEATURE alias for --without-FEATURE]])dnl | |
254 m4_divert_once([HELP_ENABLE], m4_bpatsubst([[$2]],[--enable\([^ ]+\) ],[--with\1 ]))dnl | |
3764 | 255 dnl Register both forms with the option checking list. |
256 dnl Options are only checked with autoconf > 2.61. | |
4656
79d1a0524b5f
Use correct separator when registering options to _AC_USER_OPTS.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4588
diff
changeset
|
257 m4_append_uniq([_AC_USER_OPTS], [enable_]m4_bpatsubst([$1], -, _), [ |
79d1a0524b5f
Use correct separator when registering options to _AC_USER_OPTS.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4588
diff
changeset
|
258 ])dnl |
79d1a0524b5f
Use correct separator when registering options to _AC_USER_OPTS.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4588
diff
changeset
|
259 m4_append_uniq([_AC_USER_OPTS], [with_]m4_bpatsubst([$1], -, _), [ |
79d1a0524b5f
Use correct separator when registering options to _AC_USER_OPTS.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4588
diff
changeset
|
260 ])dnl |
3003 | 261 # If --with-$1 or --without-$1 were given then copy the value to the |
262 # equivalent enable_$1 variable. | |
263 if test "[${with_]m4_bpatsubst([$1], -, _)+set}" = set; then | |
264 [enable_]m4_bpatsubst([$1], -, _)="[$with_]m4_bpatsubst([$1], -, _)" | |
265 fi; | |
266 # If -enable-$1 or --disable-$1 were given then copy the value to the | |
267 # equivalent with_$1 variable. | |
268 if test "[${enable_]m4_bpatsubst([$1], -, _)+set}" = set; then | |
269 [with_]m4_bpatsubst([$1], -, _)="[$enable_]m4_bpatsubst([$1], -, _)" | |
270 fi; | |
271 # Check whether --with-$1 or --without-$1 was given. | |
272 if test "[${with_]m4_bpatsubst([$1], -, _)+set}" = set; then | |
273 enableval="[$with_]m4_bpatsubst([$1], -, _)" | |
274 withval="[$with_]m4_bpatsubst([$1], -, _)" | |
275 $3 | |
276 m4_ifvaln([$4], [else | |
277 $4])dnl | |
278 fi; dnl | |
279 ])dnl XE_MERGED_ARG | |
280 dnl | |
3073 | 281 dnl XE_HELP_SUBSECTION(HEADING) |
282 dnl -------------------------- | |
283 dnl | |
284 dnl Add subsection headings to the help text for XE_MERGED_ARG options. | |
285 dnl | |
286 AC_DEFUN([XE_HELP_SUBSECTION], | |
287 [m4_divert_once([HELP_ENABLE], [[ | |
288 Optional Features: | |
289 --with-FEATURE[=ARG] include FEATURE [ARG=yes] | |
290 --enable-FEATURE[=ARG] alias for --with-FEATURE | |
291 --without-FEATURE do not use FEATURE (same as --with-FEATURE=no) | |
292 --disable-FEATURE alias for --without-FEATURE]])dnl | |
293 dnl NOTE: The next eol adds a blank line before the heading. | |
294 m4_divert_once([HELP_ENABLE], [[ | |
295 $1]])dnl | |
3161 | 296 dnl Add an underscore |
3073 | 297 dnl NOTE: The next eol adds a blank line after the underscore. |
298 m4_divert_text([HELP_ENABLE], patsubst([$1], [.], [-]) | |
299 )])dnl | |
300 dnl | |
2651 | 301 dnl XEmacs keyword option support |
302 dnl ============================= | |
303 dnl | |
304 dnl A "keyword" option is one that accepts one of a number of pre-defined | |
305 dnl values. For example --with-mail-locking=flock. | |
306 dnl The descriptions below provide prototypes and little more. | |
307 dnl | |
308 dnl For more information, | |
309 dnl (Info-goto-node "(internals)The configure Script") | |
310 dnl To edit the documentation, | |
311 dnl (progn (find-file "man/internals/internals.texi")) | |
312 dnl and search for "@node The configure Script". | |
313 dnl | |
314 dnl XE_PARSE_KEYWORD_OPTION(prefix, cmdline-flag) | |
315 dnl --------------------------------------------- | |
316 dnl | |
317 dnl Internal macro to parse the option values. If an undeclared option is | |
318 dnl found then an error is generated. | |
319 dnl | |
320 define([XE_PARSE_KEYWORD_OPTION], | |
321 [_[$1]_bogus=yes | |
322 for x in XE_KEYWORD_LIST ; do | |
3003 | 323 if test $x = $with_[$1] ; then |
2651 | 324 _[$1]_bogus=no |
325 fi | |
326 done | |
327 if test "$_[$1]_bogus" = "yes" ; then | |
328 USAGE_ERROR(["The [$2] option must have one of these values: m4_translit(XE_KEYWORD_VALUES,[:],[,])."]) | |
329 fi | |
330 unset _[$1]_bogus | |
331 undefine([XE_KEYWORD_LIST])dnl | |
3003 | 332 undefine([XE_KEYWORD_VALUES])])dnl |
2651 | 333 dnl |
334 dnl XE_KEYWORD(keyword) | |
335 dnl -------------------------------- | |
336 dnl | |
337 dnl | |
338 define([XE_KEYWORD], | |
339 [m4_append([XE_KEYWORD_LIST],[$1],[ ])dnl | |
340 dnl Separate with a ':' instead of a ',' (see the parsing code above) to avoid | |
3161 | 341 dnl confusion with macro parameter lists. |
2651 | 342 m4_append([XE_KEYWORD_VALUES],[\`$1'],[:])dnl |
3003 | 343 ])dnl |
2651 | 344 dnl |
3003 | 345 dnl XE_KEYWORD_ARG(PACKAGE, HELP-STRING, ACTION-IF-TRUE, ACTION-IF-FALSE, |
2651 | 346 dnl [XE_KEYWORD(keyword), ....]) |
347 dnl -------------------------------------------------------------------------- | |
348 dnl | |
3003 | 349 dnl Expanded version of XE_MERGED_ARG for keyword options. All the parameters |
2651 | 350 dnl are required. |
351 dnl | |
3003 | 352 define([XE_KEYWORD_ARG], |
2651 | 353 [m4_map([XE_KEYWORD],m4_shiftn(4, $@)) |
3003 | 354 XE_MERGED_ARG([$1],[$2], |
355 [XE_PARSE_KEYWORD_OPTION(patsubst([$1], -, _), [--with-$1]) | |
2651 | 356 $3 |
3003 | 357 ],[$4])])dnl |
2651 | 358 dnl |
359 dnl XEmacs complex option support | |
360 dnl ============================= | |
361 dnl | |
362 dnl A "complex option" is one that takes a number of related values. | |
363 dnl For example, we might use "--with-xft=all,nomenubars" for compatibility | |
364 dnl with XFontSet i18n of menubars. (Silly, Xft looks much better than XFS.) | |
365 dnl | |
366 dnl The descriptions below provide prototypes and little more. | |
367 dnl For more information, | |
368 dnl (Info-goto-node "(internals)The configure Script") | |
369 dnl To edit the documentation, | |
370 dnl (progn (find-file "man/internals/internals.texi")) | |
371 dnl and search for "@node The configure Script". | |
372 dnl | |
373 dnl XE_EXPAND_COMPLEX_OPTION(prefix, component, yesno) | |
374 dnl --------------------------------------------------- | |
375 dnl | |
376 dnl Internal macro create the option's shell variable containing the default | |
377 dnl value and to note the values in an option list. | |
378 dnl | |
379 define([XE_EXPAND_COMPLEX_OPTION], | |
3147 | 380 [_[$1]_[$2]_default=[$3] |
2651 | 381 m4_append([XE_COMPONENT_LIST],[$2],[ ])dnl |
382 dnl Separate with a ':' instead of a ',' (see <prefix>_default below) to avoid | |
3161 | 383 dnl confusion with macro parameter lists. |
2651 | 384 m4_append([XE_COMPONENT_DEFAULT],[m4_if([$3],no,no)[$2]],[:])dnl |
385 ])dnl | |
386 dnl | |
387 dnl XE_EXPAND_COMPLEX_OPTIONS(prefix, option_list) | |
388 dnl ---------------------------------------------- | |
389 dnl | |
390 dnl Internal macro to recursively expand all the options in the option list. | |
391 dnl | |
4475
86283c809984
autoconf 2.62 compatibility, #370
"Ville Skyttä <scop@xemacs.org>"
parents:
4455
diff
changeset
|
392 dnl m4_fst disappeared without a trace in autoconf 2.62 |
86283c809984
autoconf 2.62 compatibility, #370
"Ville Skyttä <scop@xemacs.org>"
parents:
4455
diff
changeset
|
393 m4_define([xe_fst], [$1])dnl |
2651 | 394 define([XE_EXPAND_COMPLEX_OPTIONS], |
3683 | 395 [m4_if([$2], [], [], |
4475
86283c809984
autoconf 2.62 compatibility, #370
"Ville Skyttä <scop@xemacs.org>"
parents:
4455
diff
changeset
|
396 [XE_EXPAND_COMPLEX_OPTION([$1], xe_fst($2))[]dnl |
3683 | 397 XE_EXPAND_COMPLEX_OPTIONS([$1], XE_CDR($2))])])dnl |
2651 | 398 dnl |
399 dnl XE_INIT_COMPLEX_OPTION(prefix, option_list) | |
400 dnl ------------------------------------------- | |
401 dnl | |
402 dnl Internal macro to initialise the complex option shell variables. | |
403 dnl Variables of the form <prefix>_<option> contain the default value for that | |
404 dnl option. <prefix>_types contains a space-separated list of all the options | |
405 dnl and <prefix>_default contains a comma-separated list of all the default | |
406 dnl values. | |
407 dnl | |
408 define([XE_INIT_COMPLEX_OPTION], | |
3003 | 409 [_[$1]_notfirst="" |
2651 | 410 dnl |
3147 | 411 XE_EXPAND_COMPLEX_OPTIONS($@)dnl |
2651 | 412 _[$1]_types="XE_COMPONENT_LIST" |
413 _[$1]_default="m4_translit(XE_COMPONENT_DEFAULT,[:],[,])" | |
414 dnl Undefine these macros so that they can be reused by later complex | |
415 dnl options. | |
3147 | 416 undefine([XE_COMPONENT_LIST])dnl |
417 undefine([XE_COMPONENT_DEFAULT])dnl | |
3003 | 418 ])dnl |
419 dnl | |
2651 | 420 dnl XE_PARSE_COMPLEX_OPTION(prefix, cmdline-flag) |
421 dnl --------------------------------------------- | |
422 dnl | |
423 dnl Internal macro to parse the option values. If an undeclared option is | |
3073 | 424 dnl found then an error is generated. Because something has been supplied on |
425 dnl the command line initialise all the complex options to 'no' rather than | |
3147 | 426 dnl the default. In this way --enable-complex=foo will give the expected |
3073 | 427 dnl value (no) for bar. |
2651 | 428 dnl |
3147 | 429 dnl #### I think we should add a couple more features. |
430 dnl First, at the end of XE_PARSE_COMPLEX_OPTION check for contradictory args, | |
431 dnl specifically if `all' is specified but the options are all individually | |
432 dnl disabled, or if `none' is specified but the options are all individually | |
433 dnl enabled, we should _warn_ about this situation. | |
434 dnl Second, we should provide an XE_VALIDATE_COMPLEX_OPTION macro to be used | |
435 dnl at the end of detection. If any feature is `yes' but we don't have it, | |
436 dnl then we should XE_DIE. | |
437 dnl | |
2651 | 438 define([XE_PARSE_COMPLEX_OPTION], |
3147 | 439 [dnl Initialize variables for COMPLEX_OPTION [$1]. Leading underscore or |
440 dnl single letter variables are internal to the XE_PARSE_COMPLEX_OPTION macro. | |
441 _[$1]_all_default="" | |
442 _require_[$1]="" | |
443 dnl check first arg for default spec | |
444 case "$with_[$1]" in | |
445 n | no | non | none ) _[$1]_all_default=no ;; | |
446 n,* | no,* | non,* | none,* ) _[$1]_all_default=no ;; | |
447 a | al | all | both ) _[$1]_all_default=yes ;; | |
448 a,* | al,* | all,* | both,* ) _[$1]_all_default=yes ;; | |
449 y | yes ) _require_[$1]=yes ;; | |
450 esac | |
451 dnl if first arg was a default spec, trim it | |
452 if test -n "$_[$1]_all_default$_require_[$1]"; then | |
453 _with_[$1]_args=`echo $with_[$1] | sed -e 's/^[[a-z]]*\(,\(.*\)\)\{0,1\}$/\2/'` | |
454 else | |
455 _with_[$1]_args=$with_[$1] | |
456 fi | |
457 dnl set default for each type | |
458 for y in $_[$1]_types; do | |
459 if test -n "$_[$1]_all_default" ; then | |
460 eval "with_[$1]_${y}=$_[$1]_all_default" | |
461 else | |
462 eval "with_[$1]_$y=\$_[$1]_${y}_default" | |
463 fi | |
3073 | 464 done |
3147 | 465 dnl parse the command line arg and set types found appropriately |
466 for x in `echo "$_with_[$1]_args" | sed -e 's/,/ /g'` ; do | |
2651 | 467 _[$1]_found="" |
3147 | 468 for y in $_[$1]_types; do |
469 if test "$x" = "$y"; then | |
470 _[$1]_found=yes | |
471 eval "with_[$1]_$y=yes" | |
472 elif test "$x" = "no$y"; then | |
473 _[$1]_found=yes | |
474 eval "with_[$1]_$y=no" | |
475 fi | |
476 done | |
477 test -z "$_[$1]_found" && \ | |
478 USAGE_ERROR(["\ | |
479 Invalid type list supplied. Valid types for the [$2] option are: | |
480 $_[$1]_types. | |
481 A prefix of \"no\" (eg, \"notype\" for \"type\") turns a type off. | |
482 Types not explicitly specified or negated take their defaults. | |
483 The list of defaults is \"$_[$1]_default\". Prefixing \`all' or | |
484 \`none' to the list sets all defaults to on and off respectively. | |
485 \`yes' as the sole argument is equivalent to omitting the argument."]) | |
2651 | 486 done |
3147 | 487 dnl copy values to enable_FEATURE_TYPE. Cleanup default vars. |
488 for y in $_[$1]_types; do | |
489 eval "enable_[$1]_$y=\$with_[$1]_$y" | |
490 unset _[$1]_${y}_default | |
491 done | |
492 dnl clean up | |
493 unset _[$1]_types _[$1]_default _[$1]_all_default _[$1]_use_defaults | |
494 unset _with_[$1]_args _[$1]_found x y _require_[$1] | |
3003 | 495 ])dnl |
496 dnl | |
2651 | 497 dnl XE_COMPLEX_OPTION(option, yesno) |
498 dnl -------------------------------- | |
499 dnl | |
500 dnl Declare a complex option and its default value. The value MUST be either | |
501 dnl yes or no or "" (which means maybe). | |
502 dnl | |
503 define([XE_COMPLEX_OPTION],[[$1,$2]]) | |
504 dnl | |
505 dnl XE_COMPLEX_OPTION_HELP_STRING(flag, long, short, components, libraries) | |
506 dnl ----------------------------------------------------------------------- | |
507 dnl Boilerplate help string for complex options. | |
508 dnl #### This doesn't read so well for alternative libraries like sound. | |
509 dnl | |
510 define([XE_COMPLEX_OPTION_HELP_STRING], | |
3312 | 511 [AS_HELP_STRING([$1],[Compile with support for $2. Components that can use |
2651 | 512 $3 are $4. Prefix component with `no' to disable its use of $3. Requires |
3003 | 513 $5 support. Default is $6.])])dnl |
2651 | 514 dnl |
3003 | 515 dnl XE_COMPLEX_ARG(PACKAGE, HELP-STRING, ACTION-IF-TRUE, ACTION-IF-FALSE, |
2651 | 516 dnl [XE_COMPLEX_OPTION(a,yes), ....]) |
517 dnl -------------------------------------------------------------------------- | |
518 dnl | |
3003 | 519 dnl Expanded version of XE_MERGED_ARG for complex options. All the parameters |
2651 | 520 dnl are required. |
521 dnl | |
3003 | 522 define([XE_COMPLEX_ARG], |
523 [XE_INIT_COMPLEX_OPTION(patsubst([$1], -, _), m4_shiftn(4, $@)) | |
524 XE_MERGED_ARG([$1],[$2], | |
525 [XE_PARSE_COMPLEX_OPTION(patsubst([$1], -, _), [--with-$1]) | |
2651 | 526 $3 |
3147 | 527 ],[ |
528 # set default for each type | |
3149 | 529 for y in [$_]patsubst([$1], -, _)[_types]; do |
530 eval "[with_]patsubst([$1], -, _)[_$y]=[\$_]patsubst([$1], -, _)[_${y}_default]" | |
531 eval "[enable_]patsubst([$1], -, _)[_$y]=[\$_]patsubst([$1], -, _)[_${y}_default]" | |
532 unset [_]patsubst([$1], -, _)[_${y}_default] | |
3147 | 533 done |
534 $4])])dnl | |
2651 | 535 dnl |
536 dnl ------------------------------------------------------------------------- | |
537 XE_APPEND(lib-src, MAKE_SUBDIR) | |
538 XE_APPEND(lib-src, INSTALL_ARCH_DEP_SUBDIR) | |
539 with_dragndrop_default="no" | |
540 dnl ------------------------------------------------------------------------- | |
541 dnl Command line argument processing. | |
3312 | 542 dnl Note that AS_HELP_STRING compresses whitespace, wraps, and indents the |
2651 | 543 dnl string to fit the --help display; there's no need to preformat. |
544 dnl | |
545 dnl I think these will be caught by autoconf internal checks, | |
546 dnl only --with-* are unchecked | |
547 dnl --external-widget --enable-external-widget | |
548 dnl --native-sound-lib=LIB --with-native-sound-lib | |
549 dnl --mail-locking=TYPE --with-mail-locking | |
550 dnl --rel-alloc --with-rel-alloc | |
551 dnl --use-number-lib --enable-bignum | |
552 dnl --debug --enable-debug | |
553 dnl --error-checking --enable-error-checking | |
554 dnl --memory-usage-stats --enable-memory-usage-stats | |
555 dnl --quick-build --enable-quick-build | |
556 dnl --use-union-type --enable-union-type | |
557 dnl --pdump --enable-pdump | |
558 dnl --use-kkcc --enable-kkcc | |
3003 | 559 dnl |
2651 | 560 dnl parse flags |
3073 | 561 XE_HELP_SUBSECTION([Compilation options]) |
562 XE_MERGED_ARG([compiler], | |
3312 | 563 AS_HELP_STRING([--with-compiler],[C compiler to use]), |
3073 | 564 [], []) |
565 XE_MERGED_ARG([xemacs-compiler], | |
3312 | 566 AS_HELP_STRING([--with-xemacs-compiler], |
3073 | 567 [compiler to use to compile just the xemacs executable and C modules. |
568 If you want to compile XEmacs as C++, use e.g. | |
569 `--with-xemacs-compiler=g++'. This turns on a lot of | |
570 additional error-checking.]), | |
571 [], []) | |
572 XE_MERGED_ARG([gcc], | |
3312 | 573 AS_HELP_STRING([--with-gcc],[Use GCC to compile XEmacs.]), |
3073 | 574 [], []) |
575 XE_MERGED_ARG([cflags], | |
3312 | 576 AS_HELP_STRING([--with-cflags=FLAGS], |
3073 | 577 [Compiler flags. These flags will be placed after any flags inserted for warnings, debugging or optimization; setting this does not disable the insertion of those flags. Use configure settings such as `--with-optimization=no' or `enable-debug=no' to turn them off, or override them with `--with-cflags-optimization', `--with-cflags-debugging', or `with-cflags-warning'.]), |
578 [], []) | |
579 XE_MERGED_ARG([cflags-warning], | |
3312 | 580 AS_HELP_STRING([--with-cflags-warning=FLAGS],[Override compiler flags used to control warnings. |
3073 | 581 Normally, don't set this, as XEmacs already turns on |
582 the maximum safe warning level.]), | |
583 [], []) | |
584 XE_MERGED_ARG([optimization], | |
3312 | 585 AS_HELP_STRING([--with-optimization],[Control whether compilation is optimized. By default, optimization is on in release versions and off in beta versions, since it can interfere with proper stack backtraces.]), |
3073 | 586 [], []) |
587 XE_MERGED_ARG([cflags-optimization], | |
3312 | 588 AS_HELP_STRING([--with-cflags-optimization=FLAGS], |
3073 | 589 [Override compiler flags used to control optimization. If blank, forces no optimization; if non-blank, forces optimization. Normally, don't set this; XEmacs automatically sets the maximum safe optimization flags appropriate for the compiler being invoked. If you just want to turn optimization on or off, use `with-optimization' instead.]), |
590 [], []) | |
591 XE_MERGED_ARG([cflags-debugging], | |
3312 | 592 AS_HELP_STRING([--with-cflags-debugging=FLAGS], |
3073 | 593 [Override compiler flags used to add debugging information to the executable. Normally, debugging information is added whenever possible (i.e. unless optimization is turned on and the compiler does not permit debugging and optimization simultaneously).]), |
594 [], []) | |
595 XE_MERGED_ARG([cpp], | |
3312 | 596 AS_HELP_STRING([--with-cpp],[C preprocessor to use (e.g. /usr/ccs/lib/cpp or cc -E)]), |
3073 | 597 [CPP="$with_cpp"], []) |
598 XE_MERGED_ARG([cppflags], | |
3312 | 599 AS_HELP_STRING([--with-cppflags],[C preprocessor flags (e.g. -I/foo or -Dfoo=bar)]), |
3073 | 600 [CPPFLAGS="$with_cppflags"], []) |
601 XE_MERGED_ARG([libs=LIBS], | |
3312 | 602 AS_HELP_STRING([--with-libs],[Additional libraries (e.g. -lfoo)]), |
3073 | 603 [LIBS="$with_libs"], []) |
604 XE_MERGED_ARG([ldflags=FLAGS], | |
3312 | 605 AS_HELP_STRING([--with-ldflags],[Additional linker flags (e.g. -L/foo)]), |
3073 | 606 [LDFLAGS="$with_ldflags"], []) |
607 XE_MERGED_ARG([site-includes], | |
3312 | 608 AS_HELP_STRING([--with-site-includes=PATHS],[Prepend to include search path.]), |
3073 | 609 [], []) |
610 XE_MERGED_ARG([site-libraries], | |
3312 | 611 AS_HELP_STRING([--with-site-libraries=PATHS],[Prepend to library search path.]), |
3073 | 612 [], []) |
613 XE_MERGED_ARG([site-prefixes], | |
3312 | 614 AS_HELP_STRING([--with-site-prefixes=PATHS],[Prepend to include and library search paths, with /include and /lib added. Comes after site-includes and site-libraries, if any.]), |
3073 | 615 [], []) |
616 XE_MERGED_ARG([site-runtime-libraries], | |
3312 | 617 AS_HELP_STRING([--with-site-runtime-libraries=PATHS],[Prepend to the runtime library search path]), |
3073 | 618 [], []) |
619 XE_MERGED_ARG([dynamic], | |
3312 | 620 AS_HELP_STRING([--with-dynamic],[Link dynamically if supported by system. 'No' forces static linking.]), |
3073 | 621 [], []) |
622 dnl | |
623 XE_HELP_SUBSECTION([Installation options]) | |
3003 | 624 XE_MERGED_ARG([prefix], |
3312 | 625 AS_HELP_STRING([--with-prefix=no],[Don't compile the value for `prefix' into the executable.]), |
2651 | 626 [true], [with_prefix=yes]) |
3073 | 627 XE_MERGED_ARG([netinstall], |
3312 | 628 AS_HELP_STRING([--with-netinstall],[Support for installation over the internet. |
3073 | 629 Only functional on the MS Windows platforms.]), |
630 [], [with_netinstall="no"]) | |
631 XE_MERGED_ARG([statedir], | |
3312 | 632 AS_HELP_STRING([--with-statedir=DIR],[]), |
3073 | 633 [], [with_statedir='${prefix}/lib']) |
634 XE_MERGED_ARG([lispdir], | |
3312 | 635 AS_HELP_STRING([--with-lispdir=DIR],[]), |
3073 | 636 [AC_DEFINE(LISPDIR_USER_DEFINED)], [with_lispdir='${datadir}/${instvardir}/lisp']) |
637 XE_MERGED_ARG([archlibdir], | |
3312 | 638 AS_HELP_STRING([--with-archlibdir=DIR],[]), |
3073 | 639 [AC_DEFINE(ARCHLIBDIR_USER_DEFINED)], [with_archlibdir='${libdir}/${instvardir}/${configuration}']) |
640 XE_MERGED_ARG([moduledir], | |
3312 | 641 AS_HELP_STRING([--with-moduledir=DIR],[]), |
3073 | 642 [AC_DEFINE(MODULEDIR_USER_DEFINED)], [with_moduledir='${libdir}/${instvardir}/${configuration}/modules']) |
643 XE_MERGED_ARG([etcdir], | |
3312 | 644 AS_HELP_STRING([--with-etcdir=DIR],[]), |
3073 | 645 [AC_DEFINE(ETCDIR_USER_DEFINED)], [with_etcdir='${datadir}/${instvardir}/etc']) |
646 XE_MERGED_ARG([docdir], | |
3312 | 647 AS_HELP_STRING([--with-docdir=DIR],[]), |
3073 | 648 [AC_DEFINE(DOCDIR_USER_DEFINED)], [with_docdir='${archlibdir}']) |
649 dnl | |
650 XE_HELP_SUBSECTION([Run-time path-searching options]) | |
3003 | 651 XE_MERGED_ARG([site-lisp], |
3312 | 652 AS_HELP_STRING([--with-site-lisp=no],[Allow for a site-lisp directory in the XEmacs hierarchy searched before the installation packages.]), |
2651 | 653 [true], [with_site_lisp=no]) |
3003 | 654 XE_MERGED_ARG([site-modules], |
3312 | 655 AS_HELP_STRING([--with-site-modules=no],[Disable site-modules directory in the XEmacs hierarchy, which is searched before the installation modules.]), |
2651 | 656 [], []) |
3179 | 657 XE_MERGED_ARG([early-packages], |
3312 | 658 AS_HELP_STRING([--with-early-packages=DIR],[Specify location of early/user packages (instead of ~/.xemacs; same as --with-user-packages).]), |
3179 | 659 [AC_DEFINE(EARLY_PACKAGE_DIRECTORIES_USER_DEFINED)], []) |
660 XE_MERGED_ARG([user-packages], | |
3312 | 661 AS_HELP_STRING([--with-user-packages=DIR],[Specify location of early/user packages (instead of ~/.xemacs; same as --with-early-packages).]), |
3179 | 662 [AC_DEFINE(EARLY_PACKAGE_DIRECTORIES_USER_DEFINED)], []) |
663 XE_MERGED_ARG([late-packages], | |
3312 | 664 AS_HELP_STRING([--with-late-packages=DIR],[Specify location of late/system packages (instead of default location; same as --with-system-packages).]), |
3179 | 665 [AC_DEFINE(LATE_PACKAGE_DIRECTORIES_USER_DEFINED)], []) |
666 XE_MERGED_ARG([system-packages], | |
3518 | 667 AS_HELP_STRING([--with-system-packages=DIR],[Specify location of late/system packages (instead of default location; same as --with-late-packages).]), |
3179 | 668 [AC_DEFINE(LATE_PACKAGE_DIRECTORIES_USER_DEFINED)], []) |
669 XE_MERGED_ARG([last-packages], | |
3312 | 670 AS_HELP_STRING([--with-last-packages=DIR],[Specify location of last/legacy packages (instead of default location; same as --with-legacy-packages).]), |
3179 | 671 [AC_DEFINE(LAST_PACKAGE_DIRECTORIES_USER_DEFINED)], []) |
672 XE_MERGED_ARG([legacy-packages], | |
4350
50889296c05c
Fix typo of "late packages" for "last packages".
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4328
diff
changeset
|
673 AS_HELP_STRING([--with-legacy-packages=DIR],[Specify location of last/legacy packages (instead of default location; same as --with-last-packages).]), |
50889296c05c
Fix typo of "late packages" for "last packages".
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4328
diff
changeset
|
674 [AC_DEFINE(LAST_PACKAGE_DIRECTORIES_USER_DEFINED)], []) |
3073 | 675 XE_MERGED_ARG([package-path], |
3312 | 676 AS_HELP_STRING([--with-package-path=PATH],[Search path for package directories.]), |
3073 | 677 [AC_DEFINE(PACKAGE_PATH_USER_DEFINED)], []) |
678 XE_MERGED_ARG([infopath], | |
3312 | 679 AS_HELP_STRING([--with-infopath=PATH],[Location of info directories]), |
3073 | 680 [AC_DEFINE(INFOPATH_USER_DEFINED)], []) |
681 dnl | |
682 XE_HELP_SUBSECTION([Window-system options]) | |
3354 | 683 dnl Enable when fontconfig support is factored out of Xft. |
684 dnl XE_MERGED_ARG([fontconfig], | |
685 dnl AS_HELP_STRING([--with-fontconfig], | |
686 dnl [Use fontconfig library to configure fonts.], | |
687 dnl [],[]) | |
3094 | 688 dnl if you change defaults, make sure to fix arg 6 of the OPTION_HELP macro. |
689 XE_COMPLEX_ARG([xft], | |
690 [XE_COMPLEX_OPTION_HELP_STRING([--with-xft], | |
691 [Xft client-side font rendering and anti-aliasing], | |
692 [Xft], | |
693 [`emacs' (buffers), `menubars', `tabs', and `gauges'], | |
694 [X11, Xft, Xrender, freetype, and fontconfig], | |
4496
772c80e0e180
with-xft defaults to xft being used with a default setting.
Mats Lidell <matsl@xemacs.org>
parents:
4475
diff
changeset
|
695 [`noemacs, nomenubars, notabs, nogauges'. |
772c80e0e180
with-xft defaults to xft being used with a default setting.
Mats Lidell <matsl@xemacs.org>
parents:
4475
diff
changeset
|
696 The default when selected is `emacs, nomenubars, notabs, nogauges'])], |
772c80e0e180
with-xft defaults to xft being used with a default setting.
Mats Lidell <matsl@xemacs.org>
parents:
4475
diff
changeset
|
697 [],[with_xft_emacs=no], |
772c80e0e180
with-xft defaults to xft being used with a default setting.
Mats Lidell <matsl@xemacs.org>
parents:
4475
diff
changeset
|
698 [XE_COMPLEX_OPTION([emacs],[yes]), |
3098 | 699 XE_COMPLEX_OPTION([menubars],[no]), |
700 XE_COMPLEX_OPTION([tabs],[no]), | |
701 XE_COMPLEX_OPTION([gauges],[no])]) | |
3003 | 702 XE_MERGED_ARG([gtk], |
3312 | 703 AS_HELP_STRING([--with-gtk],[Support GTK on the X Window System. (EXPERIMENTAL)]), |
2651 | 704 [true], [with_gtk=no]) |
3003 | 705 XE_MERGED_ARG([gnome], |
3312 | 706 AS_HELP_STRING([--with-gnome],[Support GNOME on the X Window System. (EXPERIMENTAL)]), |
2651 | 707 [true], [with_gnome=no]) |
3003 | 708 XE_MERGED_ARG([msw], |
3312 | 709 AS_HELP_STRING([--with-msw],[Support MS Windows as a window system (only under Cygwin and MinGW). `--with-msw=no' may be needed on *nix systems with Wine installed.]), |
2651 | 710 [], []) |
3073 | 711 XE_MERGED_ARG([toolbars], |
3312 | 712 AS_HELP_STRING([--enable-toolbars],[Enable toolbar support. Default: yes.]), |
2651 | 713 [], []) |
3073 | 714 XE_MERGED_ARG([wmcommand], |
3312 | 715 AS_HELP_STRING([--with-wmcommand],[Compile without realized leader window which will |
3073 | 716 keep the WM_COMMAND property.]), |
2651 | 717 [], []) |
3073 | 718 XE_KEYWORD_ARG([athena], |
3312 | 719 AS_HELP_STRING([--with-athena=TYPE],[Use TYPE Athena widgets (`xaw', `3d', `next', `95', or `xpm').]), |
3073 | 720 [],[],[xaw,3d,next,95,xpm])dnl |
721 XE_KEYWORD_ARG([menubars], | |
3312 | 722 AS_HELP_STRING([--enable-menubars=TYPE],[Use TYPE menubars ('yes', '`no', `lucid', `motif', `athena', `gtk', or `msw'). The Lucid |
3073 | 723 widgets emulate Motif (mostly) but are faster. |
724 *WARNING* The Motif menubar is currently broken. | |
725 Lucid menubars are the default.]), | |
726 [], [],[yes,no,lucid,motif,athena,gtk,msw]) | |
727 XE_KEYWORD_ARG([scrollbars], | |
3312 | 728 AS_HELP_STRING([--enable-scrollbars=TYPE],[Use TYPE scrollbars 'yes', '`no', `lucid', `motif', `athena', `gtk', or `msw'). |
3073 | 729 Lucid scrollbars are the default.]), |
730 [], [],[yes,no,lucid,motif,athena,gtk,msw]) | |
731 XE_KEYWORD_ARG([dialogs], | |
3312 | 732 AS_HELP_STRING([--enable-dialogs=TYPE],[Use TYPE dialog boxes 'yes', '`no', `lucid', `motif', `athena', `gtk', or `msw'). |
3073 | 733 There are no true Lucid dialogs; Motif dialogs will be |
734 used if Motif can be found, else Athena is used.]), | |
735 [], [],[yes,no,lucid,motif,athena,gtk,msw]) | |
736 XE_KEYWORD_ARG([widgets], | |
3312 | 737 AS_HELP_STRING([--enable-widgets=TYPE],[Use TYPE native widgets ('yes', '`no', `lucid', `motif', `athena', `gtk', or `msw'). |
3073 | 738 Other widget types are currently unsupported. |
739 There are no true Lucid widgets; Motif widgets will be | |
740 used if Motif can be found, else Athena is used.]), | |
741 [], [],[yes,no,lucid,motif,athena,gtk,msw]) | |
3003 | 742 XE_MERGED_ARG([dragndrop], |
3312 | 743 AS_HELP_STRING([--with-dragndrop],[Compile in the generic drag and drop API. This is automatically added if one of the drag and drop |
2651 | 744 protocols is found (currently CDE, OffiX, MSWindows, |
745 and GTK). | |
746 *WARNING* The Drag'n'drop support is under development | |
747 and is considered experimental.]), | |
748 [], []) | |
3003 | 749 XE_MERGED_ARG([cde], |
3312 | 750 AS_HELP_STRING([--with-cde],[Compile in support for CDE drag and drop.]), |
2651 | 751 [], []) |
3003 | 752 XE_MERGED_ARG([offix], |
3312 | 753 AS_HELP_STRING([--with-offix],[Compile in support for OffiX drag and drop. |
2651 | 754 *WARNING* If you compile in OffiX, you may not be |
755 able to use multiple X displays success- | |
756 fully. If the two servers are from | |
757 different vendors, the results may be | |
758 unpredictable.]), | |
759 [], []) | |
3073 | 760 XE_MERGED_ARG([xmu], |
3312 | 761 AS_HELP_STRING([--with-xmu],[Use Xmu utilities. Default: yes.]), |
3073 | 762 [], []) |
763 XE_MERGED_ARG([external-widget], | |
3312 | 764 AS_HELP_STRING([--enable-external-widget],[Support XEmacs server for text widgets in other applications.]), |
3073 | 765 [], []) |
766 dnl | |
767 XE_HELP_SUBSECTION([TTY (character terminal) options]) | |
768 XE_MERGED_ARG([tty], | |
3312 | 769 AS_HELP_STRING([--with-tty],[Enable TTY support. Default: yes.]), |
3073 | 770 [], []) |
771 XE_MERGED_ARG([ncurses], | |
3312 | 772 AS_HELP_STRING([--with-ncurses],[Use the ncurses library for tty support.]), |
3073 | 773 [], []) |
3003 | 774 XE_MERGED_ARG([gpm], |
3312 | 775 AS_HELP_STRING([--with-gpm],[Compile in GPM mouse support for ttys.]), |
2651 | 776 [], []) |
3073 | 777 dnl |
778 XE_HELP_SUBSECTION([Image options]) | |
3003 | 779 XE_MERGED_ARG([xpm], |
3312 | 780 AS_HELP_STRING([--with-xpm],[Compile with support for XPM images. PRACTICALLY |
2651 | 781 REQUIRED. Although this library is nonstandard and |
782 a real hassle to build, many basic things (e.g. | |
783 toolbars) depend on it, and you will run into | |
784 many problems without it.]), | |
785 [], []) | |
3073 | 786 XE_MERGED_ARG([png], |
3312 | 787 AS_HELP_STRING([--with-png],[Compile with support for PNG images. Recommended |
3073 | 788 because the images on the About page are not viewable |
789 without it.]), | |
790 [], []) | |
791 XE_MERGED_ARG([jpeg], | |
3312 | 792 AS_HELP_STRING([--with-jpeg],[Compile with support for JPEG images. Useful if |
3073 | 793 you are using a mail, news reader, or web browser |
794 in XEmacs, so that JPEG images can be displayed.]), | |
795 [], []) | |
796 XE_MERGED_ARG([tiff], | |
3312 | 797 AS_HELP_STRING([--with-tiff],[Compile with support for TIFF images. Possibly |
3073 | 798 useful, for the same reason as JPEG images.]), |
799 [], []) | |
3003 | 800 XE_MERGED_ARG([xface], |
3312 | 801 AS_HELP_STRING([--with-xface],[Compile with support for X-Face mail headers. |
2651 | 802 Requires the compface package.]), |
803 [], []) | |
3003 | 804 XE_MERGED_ARG([gif], |
4708
1cecc3e9f0a0
Use giflib or libungif to provide GIF support, instead of using internal
Jerry James <james@xemacs.org>
parents:
4699
diff
changeset
|
805 AS_HELP_STRING([--with-gif],[Compile with support for GIF images.]), |
2651 | 806 [], []) |
3073 | 807 dnl |
808 XE_HELP_SUBSECTION([Sound options]) | |
809 XE_COMPLEX_ARG([sound], | |
3312 | 810 AS_HELP_STRING([--enable-sound=TYPE],[Compile with sound support. |
3308 | 811 Valid types are `native', `alsa', `nas' and `esd'. |
3073 | 812 Prefix a type with 'no' to disable. |
813 The first type can be `none' or `all'. `none' means | |
3308 | 814 `nonative,noalsa,nonas,noesd'. `all' means |
815 `native,alsa,nas,esd'. Later options override earlier | |
816 ones for the same TYPE. The default is to autodetect | |
817 all sound support except for ESD which defaults to | |
818 off.]), | |
3073 | 819 [], |
820 [enable_sound_nas=""], | |
821 [XE_COMPLEX_OPTION([native],[""]), | |
3308 | 822 XE_COMPLEX_OPTION([alsa],[""]), |
3073 | 823 XE_COMPLEX_OPTION([nas],[""]), |
824 XE_COMPLEX_OPTION([esd],[no])]) | |
825 XE_MERGED_ARG([native-sound-lib], | |
3312 | 826 AS_HELP_STRING([--with-native-sound-lib],[Path to sound library (for systems with name conflicts).]), |
2651 | 827 [], []) |
3073 | 828 dnl |
829 XE_HELP_SUBSECTION([Internationalization options]) | |
3003 | 830 XE_MERGED_ARG([mule], |
3312 | 831 AS_HELP_STRING([--enable-mule],[Compile with Mule (Multi-Lingual Emacs) support, |
2651 | 832 needed to support non-Latin-1 (including Asian) |
833 languages.]), | |
834 [], []) | |
3073 | 835 XE_KEYWORD_ARG([xim], |
3312 | 836 AS_HELP_STRING([--with-xim==TYPE],[Enable XIM support. TYPE is `yes', `no', `xlib', or `motif']), |
3073 | 837 [],[],[yes,no,xlib,motif])dnl |
3003 | 838 XE_MERGED_ARG([canna], |
3312 | 839 AS_HELP_STRING([--with-canna],[Support the Canna Japanese input method. Requires Mule.]), |
2651 | 840 [], []) |
3003 | 841 XE_MERGED_ARG([wnn], |
3312 | 842 AS_HELP_STRING([--with-wnn],[Support the Wnn Asian language input |
2651 | 843 method. Requires Mule.]), |
844 [], []) | |
3003 | 845 XE_MERGED_ARG([wnn6], |
3312 | 846 AS_HELP_STRING([--with-wnn6],[Support the Wnn6 Asian language input |
2651 | 847 method (proprietary). Requires Mule.]), |
848 [], []) | |
3073 | 849 XE_MERGED_ARG([xfs], |
3312 | 850 AS_HELP_STRING([--with-xfs],[Enable XFontSet support for internationalized |
3094 | 851 menubar. Incompatible with `--with-xim=motif' and `--with-xft'. |
3073 | 852 `--enable-menubars=lucid' (the default) is desirable.]), |
853 [], []) | |
854 dnl | |
855 XE_HELP_SUBSECTION([File-related options]) | |
856 XE_MERGED_ARG([default-eol-detection], | |
3312 | 857 AS_HELP_STRING([--enable-default-eol-detection],[Turns on by default auto-detection of end-of-line type |
3073 | 858 when reading a file. Applies to those platforms where |
859 auto-detection is off by default (non-Mule Unix). Has | |
860 no effect otherwise.]), | |
861 [], []) | |
862 XE_MERGED_ARG([clash-detection], | |
3312 | 863 AS_HELP_STRING([--enable-clash-detection],[Disable use of lock files to detect multiple edits |
3073 | 864 of the same file.]), |
2651 | 865 [], []) |
3073 | 866 XE_MERGED_ARG([zlib], |
3312 | 867 AS_HELP_STRING([--with-zlib],[Support inflate (de)compression internally.]), |
2651 | 868 [], []) |
3073 | 869 dnl |
870 XE_HELP_SUBSECTION([Database options]) | |
871 XE_COMPLEX_ARG([database], | |
3312 | 872 AS_HELP_STRING([--enable-database=TYPE],[Compile with database support. Valid types are |
3073 | 873 `no' or a comma-separated list of one or more |
4412
2f000e022a8b
Fix misspelling of option 'gdbm'.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4401
diff
changeset
|
874 of `berkdb' and either `dbm' or `gdbm'.]), |
3073 | 875 [ |
876 if test "$enable_database_dbm" = "yes" -a "$enable_database_gdbm" = "yes"; then | |
4412
2f000e022a8b
Fix misspelling of option 'gdbm'.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4401
diff
changeset
|
877 USAGE_ERROR("Only one of \`dbm' and \`gdbm' may be specified |
3073 | 878 with the \`--with-database' option.") |
879 fi | |
880 ], | |
881 [], | |
882 [XE_COMPLEX_OPTION([berkdb],[""]), | |
883 XE_COMPLEX_OPTION([dbm],[""]), | |
884 XE_COMPLEX_OPTION([gdbm],[""])]) | |
3003 | 885 XE_MERGED_ARG([ldap], |
3312 | 886 AS_HELP_STRING([--with-ldap],[Support the LDAP protocol.]), |
2651 | 887 [], []) |
3003 | 888 XE_MERGED_ARG([postgresql], |
3312 | 889 AS_HELP_STRING([--with-postgresql],[Support the PostgreSQL RDBMS.]), |
2651 | 890 [], []) |
3073 | 891 dnl |
892 XE_HELP_SUBSECTION([Mail options]) | |
893 XE_KEYWORD_ARG([mail-locking], | |
3312 | 894 AS_HELP_STRING([--with-mail-locking=TYPE],[Specify the locking to be used by movemail to prevent |
3073 | 895 concurrent updates of mail spool files. Valid types |
896 are `lockf', `flock', `file', `locking', `mmdf' or `pop'.]), | |
897 [],[],[lockf,flock,file,locking,mmdf,pop])dnl | |
3003 | 898 XE_MERGED_ARG([pop], |
3312 | 899 AS_HELP_STRING([--with-pop],[Support POP for mail retrieval.]), |
2651 | 900 [], []) |
3003 | 901 XE_MERGED_ARG([kerberos], |
3312 | 902 AS_HELP_STRING([--with-kerberos],[Support Kerberos-authenticated POP.]), |
2651 | 903 [], []) |
3003 | 904 XE_MERGED_ARG([hesiod], |
3312 | 905 AS_HELP_STRING([--with-hesiod],[Support Hesiod to get the POP server host.]), |
2651 | 906 [], []) |
3073 | 907 dnl |
908 XE_HELP_SUBSECTION([Networking options]) | |
909 XE_MERGED_ARG([tooltalk], | |
3312 | 910 AS_HELP_STRING([--with-tooltalk],[Support the ToolTalk IPC protocol.]), |
2651 | 911 [], []) |
3073 | 912 XE_MERGED_ARG([socks], |
3312 | 913 AS_HELP_STRING([--with-socks],[Compile with support for SOCKS (an Internet proxy).]), |
3073 | 914 [], []) |
915 XE_MERGED_ARG([dnet], | |
3312 | 916 AS_HELP_STRING([--with-dnet],[Compile with support for DECnet.]), |
2651 | 917 [], []) |
3003 | 918 XE_MERGED_ARG([ipv6-cname], |
3312 | 919 AS_HELP_STRING([--with-ipv6-cname],[Try IPv6 information first when canonicalizing host names. This option has no effect unless system supports getaddrinfo(3) and getnameinfo(3).]), |
2651 | 920 [], [with_ipv6_cname="no"]) |
3073 | 921 dnl |
922 XE_HELP_SUBSECTION([Memory allocation options]) | |
923 XE_MERGED_ARG([rel-alloc], | |
3312 | 924 AS_HELP_STRING([--with-rel-alloc],[Enable the relocating allocator.]), |
3073 | 925 [], [with_rel_alloc='default']) |
926 XE_MERGED_ARG([dlmalloc], | |
3312 | 927 AS_HELP_STRING([--with-dlmalloc],[Use Doug Lea's malloc implementation.]), |
3073 | 928 [], [with_dlmalloc='default']) |
929 XE_MERGED_ARG([system-malloc], | |
3312 | 930 AS_HELP_STRING([--with-system-malloc],[Use the system malloc, not the one distributed with XEmacs.]), |
3073 | 931 [], [with_system_malloc='default']) |
932 XE_MERGED_ARG([debug-malloc], | |
3312 | 933 AS_HELP_STRING([--with-debug-malloc],[Use a debugging malloc.]), |
2651 | 934 [], []) |
3003 | 935 XE_MERGED_ARG([pdump], |
3312 | 936 AS_HELP_STRING([--enable-pdump],[Enable portable LISP preloader.]), |
2651 | 937 [], []) |
3003 | 938 XE_MERGED_ARG([dump-in-exec], |
3312 | 939 AS_HELP_STRING([--enable-dump-in-exec],[Enable dumping into executable (enabled by default |
2720 | 940 for `pdump', not enabled by default in combination |
3263 | 941 with `newgc').]), |
2720 | 942 [], []) |
3073 | 943 XE_MERGED_ARG([kkcc], |
3312 | 944 AS_HELP_STRING([--enable-kkcc],[Enable experimental new GC mark algorithms.]), |
3073 | 945 [], [enable_kkcc=yes]) |
3263 | 946 |
3092 | 947 XE_MERGED_ARG([newgc], |
3312 | 948 AS_HELP_STRING([--enable-newgc],[Enable new incremental garbage collector and new allocator.]), |
3092 | 949 [], []) |
950 XE_COMPLEX_ARG([vdb], | |
3312 | 951 AS_HELP_STRING([--enable-vdb=TYPE],[Override auto-detection of |
3092 | 952 virtual-dirty-bit write-barrier implementation for the |
953 new garbage collector. TYPE must be one of "auto" (for | |
954 auto-detection), "posix", "win32", "mach", or "fake" | |
955 (uses the new garbage collector but disables | |
956 incremental collections). The default is to | |
957 use auto-detection.]), | |
958 [], [enable_vdb="auto"],[auto,posix,win32,mach,fake,no]) | |
3073 | 959 dnl |
960 XE_HELP_SUBSECTION([Emacs Lisp options]) | |
961 XE_MERGED_ARG([modules], | |
3312 | 962 AS_HELP_STRING([--enable-modules],[Compile in experimental support for dynamically |
3073 | 963 loaded libraries (Dynamic Shared Objects).]), |
964 [], []) | |
965 XE_KEYWORD_ARG([bignum], | |
3312 | 966 AS_HELP_STRING([--enable-bignum=TYPE],[Compile in support for bignums, ratios, or bigfloats |
3073 | 967 using library support. TYPE must be one of "gmp" |
968 (for GNU MP), "mp" (for BSD MP), or "no" (disabled).]), | |
969 [], [enable_bignum="no"],[no,gmp,mp]) | |
970 dnl | |
971 XE_HELP_SUBSECTION([Platform Specific options]) | |
972 XE_MERGED_ARG([workshop], | |
3312 | 973 AS_HELP_STRING([--with-workshop],[Support the Sun WorkShop (formerly Sparcworks) |
3073 | 974 development environment.]), |
975 [], []) | |
976 XE_MERGED_ARG([sparcworks], | |
3312 | 977 AS_HELP_STRING([--with-sparcworks],[Alias for --with-workshop]), |
3073 | 978 [], []) |
979 XE_MERGED_ARG([infodock], | |
3312 | 980 AS_HELP_STRING([--with-infodock],[Support the Infodock version of XEmacs. Infodock is a SourceForge project).]), |
3073 | 981 [], []) |
982 dnl | |
983 XE_HELP_SUBSECTION([Debugging options]) | |
3003 | 984 XE_MERGED_ARG([debug], |
3312 | 985 AS_HELP_STRING([--enable-debug],[Enable additional debugging information. No time cost.]), |
2651 | 986 [], []) |
3959 | 987 dnl Keep TESTS sorted to help with syncing doc to reality. |
3073 | 988 XE_COMPLEX_ARG([error-checking], |
3312 | 989 AS_HELP_STRING([--enable-error-checking=TESTS],[Compile with internal error-checking added. |
3073 | 990 Causes noticeable loss of speed. Valid TESTS |
3959 | 991 are `byte_code', `display', `extents', `gc', `glyphs', `malloc', `structures' `text', `types'.]), |
3073 | 992 [], [], |
3959 | 993 [XE_COMPLEX_OPTION([byte_code],[""]), |
994 XE_COMPLEX_OPTION([display],[""]), | |
995 XE_COMPLEX_OPTION([extents],[""]), | |
3073 | 996 XE_COMPLEX_OPTION([gc],[""]), |
3959 | 997 XE_COMPLEX_OPTION([glyphs],[""]), |
3073 | 998 XE_COMPLEX_OPTION([malloc],[""]), |
3961 | 999 XE_COMPLEX_OPTION([structures],[""]), |
3959 | 1000 XE_COMPLEX_OPTION([text],[""]), |
3961 | 1001 XE_COMPLEX_OPTION([types],[""])]) |
3003 | 1002 XE_MERGED_ARG([assertions], |
3312 | 1003 AS_HELP_STRING([--enable-assertions],[Compile in runtime assertions.]), |
2651 | 1004 [], []) |
3003 | 1005 XE_MERGED_ARG([memory-usage-stats], |
3312 | 1006 AS_HELP_STRING([--enable-memory-usage-stats],[Enable LISP memory usage API.]), |
2651 | 1007 [], []) |
3003 | 1008 XE_MERGED_ARG([quick-build], |
3312 | 1009 AS_HELP_STRING([--enable-quick-build],[Speed up the build cycle by leaving out steps where |
2651 | 1010 XEmacs will still work (more or less) without them. |
1011 Potentially dangerous if you don't know what you're | |
1012 doing. This (1) doesn't garbage-collect after loading | |
1013 each file during dumping, (2) doesn't | |
1014 automatically rebuild the DOC file (remove it by hand | |
1015 to get it rebuilt), (3) Removes config.h, lisp.h and | |
1016 associated files from the dependency lists, so changes | |
1017 to these files don't automatically cause all .c files | |
1018 to be rebuilt.]), | |
1019 [], []) | |
3073 | 1020 XE_MERGED_ARG([union-type], |
3312 | 1021 AS_HELP_STRING([--enable-union-type],[Use union definition of Lisp_Object type. Known to trigger bugs in some compilers.]), |
2651 | 1022 [], []) |
3073 | 1023 XE_MERGED_ARG([quantify], |
3312 | 1024 AS_HELP_STRING([--with-quantify],[Support performance debugging using Quantify.]), |
3073 | 1025 [], []) |
1026 XE_MERGED_ARG([purify], | |
3312 | 1027 AS_HELP_STRING([--with-purify],[Support memory debugging using Purify.]), |
3073 | 1028 [], []) |
2651 | 1029 dnl ------------------------------------------------------------------------- |
1030 dnl Final command line argument checks. | |
1031 | |
1032 dnl --with-quantify or --with-purify imply --with-system-malloc | |
1033 if test "$with_purify" = "yes" -o "$with_quantify" = "yes"; then | |
1034 test "$with_system_malloc" = "default" && with_system_malloc=yes | |
1035 fi | |
1036 | |
1037 dnl CDE requires tooltalk | |
1038 XE_CHECK_FEATURE_DEPENDENCY(cde, tooltalk) | |
1039 | |
3094 | 1040 dnl Xft sanity checking |
1041 dnl #### Maybe we should XE_DIE here instead? Or fix the UI so that | |
1042 dnl emacs is always implicit? (I worry that --without-xft would be weird.) | |
1043 if test \( "$with_xft_menubars" = "yes" -o "$with_xft_tabs" = "yes" \ | |
1044 -o "$with_xft_gauges" = "yes" \) -a "$with_xft_emacs" = "no"; then | |
1045 AC_MSG_WARN([Forcing --with-xft=emacs because Xft is enabled]) | |
1046 with_xft_emacs=yes | |
1047 fi | |
1048 | |
1049 dnl XFS and Xft in menubars conflict | |
1050 if test "$with_xfs" = "yes" -a "$with_xft_menubars" = "yes"; then | |
1051 USAGE_ERROR("XFS and Xft in the menubars are incompatible!") | |
1052 fi | |
1053 | |
2651 | 1054 dnl ------------------------------------------------------------------------- |
1055 dnl Local paths | |
1056 test "x$prefix" = xNONE && prefix=$ac_default_prefix | |
1057 # Let make expand exec_prefix. | |
1058 if test "x$exec_prefix" = xNONE | |
1059 then | |
1060 exec_prefix='${prefix}' | |
1061 else | |
1062 AC_DEFINE(EXEC_PREFIX_USER_DEFINED) | |
1063 fi | |
3729 | 1064 |
1065 define([XE_EXPAND_VARIABLE], | |
1066 [$2=[$]$1 | |
1067 while true; do | |
1068 case "[$]$2" in | |
1069 *\[$]* ) eval "$2=[$]$2" ;; | |
1070 *) break ;; | |
1071 esac | |
1072 done])dnl XE_EXPAND_VARIABLE | |
1073 | |
1074 XE_EXPAND_VARIABLE(prefix,prefix_expanded) | |
1075 XE_EXPAND_VARIABLE(datadir,datadir_expanded) | |
4455
49f8ed034500
Fix path-configuration glitches:
Mike Sperber <sperber@deinprogramm.de>
parents:
4450
diff
changeset
|
1076 XE_EXPAND_VARIABLE(exec_prefix,exec_prefix_expanded) |
49f8ed034500
Fix path-configuration glitches:
Mike Sperber <sperber@deinprogramm.de>
parents:
4450
diff
changeset
|
1077 XE_EXPAND_VARIABLE(libdir,libdir_expanded) |
49f8ed034500
Fix path-configuration glitches:
Mike Sperber <sperber@deinprogramm.de>
parents:
4450
diff
changeset
|
1078 XE_EXPAND_VARIABLE(infodir,infodir_expanded) |
3729 | 1079 |
4660
32be564c53dd
More accurate tests for explicitly-set paths.
Mike Sperber <sperber@deinprogramm.de>
parents:
4656
diff
changeset
|
1080 if test "x$datadir" != "x\${datarootdir}" |
2651 | 1081 then |
1082 AC_DEFINE(INFODIR_USER_DEFINED) | |
1083 AC_DEFINE(LISPDIR_USER_DEFINED) | |
1084 AC_DEFINE(ETCDIR_USER_DEFINED) | |
4092 | 1085 fi |
1086 | |
4660
32be564c53dd
More accurate tests for explicitly-set paths.
Mike Sperber <sperber@deinprogramm.de>
parents:
4656
diff
changeset
|
1087 if test "x$libdir" != "x\${exec_prefix}/lib" |
2651 | 1088 then |
1089 AC_DEFINE(MODULEDIR_USER_DEFINED) | |
1090 AC_DEFINE(ARCHLIBDIR_USER_DEFINED) | |
1091 AC_DEFINE(DOCDIR_USER_DEFINED) | |
1092 fi | |
3729 | 1093 |
4660
32be564c53dd
More accurate tests for explicitly-set paths.
Mike Sperber <sperber@deinprogramm.de>
parents:
4656
diff
changeset
|
1094 if test "x$infodir" != "x\${datarootdir}/info" |
2651 | 1095 then |
1096 AC_DEFINE(INFODIR_USER_DEFINED) | |
1097 else | |
4118 | 1098 infodir='${datarootdir}/${instvardir}/info' |
2651 | 1099 fi |
1100 | |
1101 with_sitelispdir='${datadir}/${inststaticdir}/site-lisp' | |
1102 inststaticdir='${PROGNAME}' | |
1103 instvardir='${PROGNAME}-${version}' | |
1104 sitemoduledir='${libdir}/${inststaticdir}/site-modules' | |
1105 | |
1106 AC_SUBST(inststaticdir) | |
1107 AC_SUBST(statedir,$with_statedir) | |
1108 | |
1109 dnl ------------------------------------------------------------------------- | |
1110 | |
1111 AC_PROG_LN_S | |
1112 | |
1113 dnl Make symlinks for etc, lisp, and info directories while the path | |
1114 dnl is still relative. We do not symlink lock because someone may | |
1115 dnl have stuck the source on a read-only partition. Instead we | |
1116 dnl create it as an actual directory later on if it does not already | |
1117 dnl exist. | |
1118 for dir in lisp etc man info tests; do | |
1119 if test ! -d "$dir" ; then | |
1120 echo Making symbolic link to "$srcdir/$dir" | |
1121 ${LN_S} "$srcdir/$dir" "$dir" | |
1122 fi | |
1123 done | |
1124 | |
1125 dnl Calculate canonical name for blddir (i.e. current directory). | |
1126 dnl PWD may already be the preferable absolute name for ".", | |
1127 dnl but we can't trust it - it is sometimes inaccurate. | |
1128 absolute_pwd="`pwd`"; | |
1129 if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd" | |
1130 then blddir="$PWD" | |
1131 else blddir="$absolute_pwd"; CANONICALIZE_PATH(blddir) | |
1132 fi | |
1133 AC_SUBST(blddir) | |
1134 | |
1135 dnl Make srcdir absolute, if not already. It is important to | |
1136 dnl avoid running the path through pwd unnecessary, since pwd can | |
1137 dnl give you automounter prefixes, which can go away. | |
1138 case "$srcdir" in | |
1139 /* ) ;; | |
1140 . ) srcdir="$blddir" ;; | |
1141 * ) srcdir="`cd $srcdir && pwd`"; CANONICALIZE_PATH(srcdir) ;; | |
1142 esac | |
1143 | |
1144 dnl Check if the source directory already has a configured system in it. | |
1145 if test `pwd` != `sh -c cd $srcdir && pwd` \ | |
1146 && test -f "$srcdir/src/config.h"; then | |
1147 (echo "$progname: WARNING: The directory tree \`$srcdir' is being used" | |
1148 echo " as a build directory right now; it has been configured in its own" | |
1149 echo " right. To configure in another directory as well, you MUST" | |
1150 echo " use GNU make. If you do not have GNU make, then you must" | |
1151 echo " now do \`make distclean' in $srcdir," | |
1152 echo " and then run $progname again.") >&2 | |
1153 extrasub='/^VPATH[[ ]]*=/c\ | |
1154 vpath %.c $(srcdir)\ | |
1155 vpath %.h $(srcdir)\ | |
1156 vpath %.y $(srcdir)\ | |
1157 vpath %.l $(srcdir)\ | |
1158 vpath %.s $(srcdir)\ | |
1159 vpath %.in $(srcdir)' | |
1160 fi | |
1161 | |
2741 | 1162 dnl ------------------------------------------------------------------------- |
1163 AC_CONFIG_AUX_DIR_DEFAULT | |
1164 AC_CANONICAL_BUILD | |
1165 dnl ------------------------------------------------------------------------- | |
1166 | |
2651 | 1167 dnl ---------------------------------------- |
1168 dnl Find out which version of XEmacs this is | |
1169 dnl ---------------------------------------- | |
4419
eb82fbb675ea
Use Mercurial changeset hash to identify build version.
Mike Sperber <sperber@deinprogramm.de>
parents:
4412
diff
changeset
|
1170 dnl This should be the same code as in Makefile.in.in |
eb82fbb675ea
Use Mercurial changeset hash to identify build version.
Mike Sperber <sperber@deinprogramm.de>
parents:
4412
diff
changeset
|
1171 cp "$srcdir/version.sh.in" "$srcdir/version.sh" |
eb82fbb675ea
Use Mercurial changeset hash to identify build version.
Mike Sperber <sperber@deinprogramm.de>
parents:
4412
diff
changeset
|
1172 if test -d "$srcdir/.hg"; then |
eb82fbb675ea
Use Mercurial changeset hash to identify build version.
Mike Sperber <sperber@deinprogramm.de>
parents:
4412
diff
changeset
|
1173 (cd "$srcdir"; hg identify | cut -d " " -f 1 >> version.sh) |
eb82fbb675ea
Use Mercurial changeset hash to identify build version.
Mike Sperber <sperber@deinprogramm.de>
parents:
4412
diff
changeset
|
1174 fi |
2651 | 1175 . "$srcdir/version.sh" || exit 1; |
1176 dnl Must do the following first to determine verbosity for AC_DEFINE | |
1177 if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi | |
1178 : "${verbose=$beta}" | |
1179 version="${emacs_major_version}.${emacs_minor_version}" | |
1180 AC_DEFINE_UNQUOTED(EMACS_MAJOR_VERSION, $emacs_major_version) | |
1181 AC_DEFINE_UNQUOTED(EMACS_MINOR_VERSION, $emacs_minor_version) | |
1182 if test -n "$emacs_beta_version" ; then | |
1183 if test "$beta" = "yes"; then | |
1184 version="${version}-b${emacs_beta_version}" | |
1185 AC_DEFINE_UNQUOTED(EMACS_BETA_VERSION, $emacs_beta_version) | |
1186 else | |
1187 version="${version}.${emacs_beta_version}" | |
1188 AC_DEFINE_UNQUOTED(EMACS_PATCH_LEVEL, $emacs_beta_version) | |
1189 fi | |
1190 fi | |
1191 AC_DEFINE_UNQUOTED(XEMACS_CODENAME, "$xemacs_codename") | |
3972 | 1192 dnl for etags |
1193 verbose_version=$version | |
2651 | 1194 if test "$xemacs_extra_name" != ""; then |
1195 AC_DEFINE_UNQUOTED(XEMACS_EXTRA_NAME, "$xemacs_extra_name") | |
3972 | 1196 verbose_version="$verbose_version $xemacs_extra_name" |
2651 | 1197 fi |
1198 if test "$xemacs_release_date" != ""; then | |
1199 AC_DEFINE_UNQUOTED(XEMACS_RELEASE_DATE, "$xemacs_release_date") | |
1200 fi | |
1201 AC_DEFINE_UNQUOTED(EMACS_VERSION, "$version") | |
1202 | |
1203 if test "$with_infodock" = "yes"; then | |
1204 if test ! -f ../../ID-INSTALL; then | |
1205 echo "Cannot build InfoDock without InfoDock sources" | |
1206 with_infodock=no | |
1207 fi | |
1208 fi | |
1209 | |
1210 if test "$with_infodock" = "yes"; then | |
1211 dnl InfoDock version numbers. XEmacs will use the same style of numbering | |
1212 dnl after the release of XEmacs 21.0. | |
1213 AC_DEFINE_UNQUOTED(INFODOCK_MAJOR_VERSION, $infodock_major_version) | |
1214 AC_DEFINE_UNQUOTED(INFODOCK_MINOR_VERSION, $infodock_minor_version) | |
1215 AC_DEFINE_UNQUOTED(INFODOCK_BUILD_VERSION, $infodock_build_version) | |
1216 version=${infodock_major_version}.${infodock_minor_version}.${infodock_build_version} | |
1217 PROGNAME=infodock | |
4448
fd8a9a4d81d9
Support #!, to allow XEmacs to be called as a script interpreter.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4401
diff
changeset
|
1218 SHEBANG_PROGNAME=infodock-script |
2651 | 1219 CPPFLAGS="$CPPFLAGS -DINFODOCK" |
1220 else | |
1221 PROGNAME=xemacs | |
4448
fd8a9a4d81d9
Support #!, to allow XEmacs to be called as a script interpreter.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4401
diff
changeset
|
1222 SHEBANG_PROGNAME=xemacs-script |
2651 | 1223 fi |
1224 | |
4449
13ce402e1736
Call AC_SUBST on SHEBANG_PATHNAME, for #! support.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4448
diff
changeset
|
1225 AC_SUBST(SHEBANG_PROGNAME) |
2651 | 1226 |
1227 AC_DEFINE_UNQUOTED(EMACS_PROGNAME, "$PROGNAME") | |
1228 | |
4448
fd8a9a4d81d9
Support #!, to allow XEmacs to be called as a script interpreter.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4401
diff
changeset
|
1229 AC_DEFINE_UNQUOTED(SHEBANG_PROGNAME, "${PROGNAME}-script") |
fd8a9a4d81d9
Support #!, to allow XEmacs to be called as a script interpreter.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4401
diff
changeset
|
1230 |
2651 | 1231 dnl ---------------------------------- |
1232 dnl Error checking and debugging flags | |
1233 dnl ---------------------------------- | |
1234 dnl Error checking default to "yes" in beta versions, to "no" in releases. | |
1235 dnl Same goes for --enable-debug and --extra-verbosity. | |
1236 if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi | |
1237 test "${enable_error_checking_extents:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_EXTENTS) | |
1238 test "${enable_error_checking_types:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_TYPES) | |
1239 test "${enable_error_checking_text:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_TEXT) | |
1240 test "${enable_error_checking_gc:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_GC) | |
1241 test "${enable_error_checking_malloc:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_MALLOC) | |
1242 test "${enable_error_checking_byte_code:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_BYTE_CODE) | |
1243 test "${enable_error_checking_glyphs:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_GLYPHS) | |
1244 test "${enable_error_checking_display:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_DISPLAY) | |
1245 test "${enable_error_checking_structures:=$beta}" = yes && AC_DEFINE(ERROR_CHECK_STRUCTURES) | |
1246 dnl enable_debug=yes must be set when error checking is present. This should be | |
1247 dnl fixed up. | |
1248 dnl enable_debug implies other options | |
1249 if test "${enable_debug:=$beta}" = "yes"; then | |
1250 enable_assertions=yes | |
1251 enable_memory_usage_stats=yes | |
1252 AC_DEFINE(DEBUG_XEMACS) | |
1253 fi | |
1254 test "$enable_assertions" = "yes" && AC_DEFINE(USE_ASSERTIONS) | |
1255 test "$enable_memory_usage_stats" = "yes" && AC_DEFINE(MEMORY_USAGE_STATS) | |
1256 | |
1257 dnl ------------------------------ | |
1258 dnl Determine the s&m files to use | |
1259 dnl ------------------------------ | |
1260 dnl Given the configuration name, set machfile and opsysfile to the | |
1261 dnl names of the m/*.h and s/*.h files we should use. | |
1262 | |
1263 dnl Canonicalize the configuration name. | |
1264 XE_STRIP_4TH_COMPONENT(ac_cv_build_alias) | |
1265 XE_STRIP_4TH_COMPONENT(ac_cv_build) | |
1266 AC_SUBST(configuration, $ac_cv_build) | |
1267 | |
1268 dnl If you add support for a new configuration, add code to this | |
1269 dnl switch statement to recognize your configuration name and select | |
1270 dnl the appropriate operating system and machine description files. | |
1271 | |
1272 dnl You would hope that you could choose an m/*.h file pretty much | |
1273 dnl based on the machine portion of the configuration name, and an s- | |
1274 dnl file based on the operating system portion. However, it turns out | |
1275 dnl that each m/*.h file is pretty manufacturer-specific - for | |
1276 dnl example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are | |
1277 dnl all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS | |
1278 dnl machines. So we basically have to have a special case for each | |
1279 dnl configuration name. | |
1280 | |
1281 dnl As far as handling version numbers on operating systems is | |
1282 dnl concerned, make sure things will fail in a fixable way. If | |
1283 dnl /etc/MACHINES says nothing about version numbers, be | |
1284 dnl prepared to handle anything reasonably. If version numbers | |
1285 dnl matter, be sure /etc/MACHINES says something about it. | |
1286 | |
1287 dnl Eric Raymond says we should accept strings like "sysvr4" to mean | |
1288 dnl "System V Release 4"; he writes, "The old convention encouraged" | |
1289 dnl "confusion between `system' and `release' levels'." | |
1290 | |
1291 machine='' opsys='' | |
1292 | |
1293 dnl Straightforward machine determination | |
1294 case "$ac_cv_build" in | |
1295 sparc-*-* ) machine=sparc ;; | |
1296 alpha*-*-* ) machine=alpha ;; | |
1297 vax-*-* ) machine=vax ;; | |
1298 mips-dec-* ) machine=pmax ;; | |
1299 mips-sgi-irix6* ) machine=iris6d ;; | |
1300 mips-sgi-* ) machine=iris4d ;; | |
1301 mips*-linux ) machine=mips ;; | |
1302 romp-ibm-* ) machine=ibmrt ;; | |
1303 rs6000-ibm-aix* ) machine=ibmrs6000 ;; | |
1304 powerpc-ibm-aix* ) machine=ibmrs6000 ;; | |
1305 powerpc*-* ) machine=powerpc ;; | |
1306 hppa-*-* ) machine=hp800 ;; | |
1307 m88k-dg-* ) machine=aviion ;; | |
1308 m68*-sony-* ) machine=news ;; | |
1309 mips-sony-* ) machine=news-risc ;; | |
1310 clipper-* ) machine=clipper ;; | |
1311 arm* ) machine=arm ;; | |
1312 ns32k-* ) machine=ns32000 ;; | |
1313 esac | |
1314 | |
1315 dnl Straightforward OS determination | |
1316 case "$ac_cv_build" in | |
1317 *-*-linux* ) opsys=linux ;; | |
1318 *-*-netbsd* ) opsys=netbsd ;; | |
1319 *-*-openbsd* ) opsys=openbsd ;; | |
1320 *-*-nextstep* ) opsys=nextstep ;; | |
1321 *-*-vms ) opsys=vms ;; | |
1322 | |
1323 dnl DEC OSF | |
1324 *-dec-osf1.3 | *-dec-osf2* ) opsys=decosf1-3 ;; | |
1325 *-dec-osf1.2 | *-dec-osf1* ) opsys=decosf1-2 ;; | |
1326 *-dec-osf3.[[2-9]] ) opsys=decosf3-2 ;; | |
1327 *-dec-osf3* ) opsys=decosf3-1 ;; | |
1328 *-dec-osf[[4-9]]* ) opsys=decosf4-0 ;; | |
1329 | |
1330 dnl DEC Ultrix | |
1331 *-*-ultrix[[0-3]].* | *-*-ultrix4.0* ) opsys=bsd4-2 ;; | |
1332 *-*-ultrix4.[[12]]* ) opsys=bsd4-3 ;; | |
1333 *-*-ultrix* ) opsys=ultrix4-3 ;; | |
1334 | |
1335 dnl AIX | |
1336 *-*-aix3.1* ) opsys=aix3-1 ;; | |
1337 *-*-aix3.2.5 ) opsys=aix3-2-5 ;; | |
1338 *-*-aix3* ) opsys=aix3-2 ;; | |
1339 *-*-aix4.0* ) opsys=aix4 ;; | |
1340 *-*-aix4.1* ) opsys=aix4-1 ;; | |
1341 *-*-aix[[4-9]]* ) opsys=aix4-2 ;; | |
1342 | |
1343 dnl Other generic OSes | |
1344 *-gnu* ) opsys=gnu ;; | |
1345 *-*-bsd4.[[01]] ) opsys=bsd4-1 ;; | |
1346 *-*-bsd4.2 ) opsys=bsd4-2 ;; | |
1347 *-*-bsd4.3 ) opsys=bsd4-3 ;; | |
1348 *-*-aos4.2 ) opsys=bsd4-2 ;; | |
1349 *-*-aos* ) opsys=bsd4-3 ;; | |
1350 *-*-sysv0 | *-*-sysvr0 ) opsys=usg5-0 ;; | |
1351 *-*-sysv2 | *-*-sysvr2 ) opsys=usg5-2 ;; | |
1352 *-*-sysv2.2 | *-*-sysvr2.2 ) opsys=usg5-2-2 ;; | |
1353 *-*-sysv3* | *-*-sysvr3* ) opsys=usg5-3 ;; | |
1354 *-*-sysv4.1* | *-*-sysvr4.1* )opsys=usg5-4 NON_GNU_CPP=/usr/lib/cpp ;; | |
1355 *-*-sysv4.[[2-9]]* | *-sysvr4.[[2-9]]* ) | |
1356 if test -z "$NON_GNU_CPP" ; then | |
1357 for prog in "/usr/ccs/lib/cpp" "/lib/cpp"; do | |
1358 if test -f "$prog"; then NON_GNU_CPP="$prog"; break; fi | |
1359 done | |
1360 fi | |
1361 opsys=usg5-4-2 ;; | |
1362 *-sysv4* | *-sysvr4* ) opsys=usg5-4 ;; | |
1363 *-*-mach_bsd4.3* ) opsys=mach-bsd4-3 ;; | |
1364 esac | |
1365 | |
1366 case "$ac_cv_build" in | |
1367 | |
1368 dnl NetBSD ports | |
1369 *-*-netbsd* ) | |
2663 | 1370 case "${ac_cv_build}" in |
2651 | 1371 i[[3-9]]86-*-netbsd*) machine=intel386 ;; |
1372 hp300-*-netbsd* | amiga-*-netbsd* | sun3-*-netbsd* | mac68k-*-netbsd* | da30-*-netbsd* | m68k-*-netbsd* ) | |
1373 dnl Yes, this is somewhat bogus. | |
1374 machine=hp9000s300 ;; | |
1375 pc532-*-netbsd* | ns32k-*-netbsd* ) machine=ns32000 ;; | |
1376 pmax-*-netbsd* | mips-*-netbsd* ) machine=pmax ;; | |
1377 esac | |
1378 ;; | |
1379 | |
1380 dnl OpenBSD ports | |
1381 *-*-openbsd* ) | |
1382 case "${ac_cv_build}" in | |
1383 i386-*-openbsd*) machine=intel386 ;; | |
1384 m68k-*-openbsd*) machine=hp9000s300 ;; | |
1385 mipsel-*-openbsd*) machine=pmax ;; | |
1386 esac | |
1387 ;; | |
1388 | |
1389 dnl Acorn RISCiX: | |
1390 arm-acorn-riscix1.1* ) machine=acorn opsys=riscix1-1 ;; | |
1391 arm-acorn-riscix1.2* | arm-acorn-riscix ) machine=acorn opsys=riscix1-2 ;; | |
1392 | |
1393 dnl Alliant machines | |
1394 fx80-alliant-* ) machine=alliant4 opsys=bsd4-2 ;; | |
1395 i860-alliant-* ) machine=alliant-2800 opsys=bsd4-3 ;; | |
1396 | |
1397 dnl Altos 3068 | |
1398 m68*-altos-sysv* ) machine=altos opsys=usg5-2 ;; | |
1399 | |
1400 dnl Amdahl UTS | |
1401 580-amdahl-sysv* ) machine=amdahl opsys=usg5-2-2 ;; | |
1402 | |
1403 dnl Apollo, Domain/OS | |
1404 m68*-apollo-* ) machine=apollo opsys=bsd4-3 ;; | |
1405 | |
1406 dnl AT&T 3b2, 3b5, 3b15, 3b20 | |
1407 we32k-att-sysv* ) machine=att3b opsys=usg5-2-2 ;; | |
1408 | |
1409 dnl AT&T 3b1 - The Mighty Unix PC! | |
1410 m68*-att-sysv* ) machine=7300 opsys=usg5-2-2 ;; | |
1411 | |
1412 dnl Bull machines | |
1413 rs6000-bull-bosx* ) machine=ibmrs6000 opsys=aix3-2 ;; # dpx20 | |
1414 m68*-bull-sysv3* ) machine=dpx2 opsys=usg5-3 ;; # dpx2 | |
1415 m68*-bull-sysv2* ) machine=sps7 opsys=usg5-2 ;; # sps7 | |
1416 | |
1417 dnl CCI 5/32, 6/32 -- see "Tahoe". | |
1418 | |
1419 dnl Celerity | |
1420 celerity-celerity-bsd* ) machine=celerity opsys=bsd4-2 ;; | |
1421 | |
1422 dnl Convex | |
1423 *-convex-bsd* | *-convex-convexos* ) | |
1424 machine=convex opsys=bsd4-3 | |
1425 NON_GNU_CPP="cc -E -P" | |
1426 ;; | |
1427 | |
1428 dnl Cubix QBx/386 | |
1429 i[[3-9]]86-cubix-sysv* ) machine=intel386 opsys=usg5-3 ;; | |
1430 | |
1431 dnl Darwin, a.k.a. MacOS X (based on Mach and Freebsd) | |
1432 *-*-darwin*) | |
1433 opsys=darwin | |
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 | |
4708
1cecc3e9f0a0
Use giflib or libungif to provide GIF support, instead of using internal
Jerry James <james@xemacs.org>
parents:
4699
diff
changeset
|
4127 dnl autodetect GIF |
1cecc3e9f0a0
Use giflib or libungif to provide GIF support, instead of using internal
Jerry James <james@xemacs.org>
parents:
4699
diff
changeset
|
4128 test -z "$with_gif" && { AC_CHECK_HEADER(gif_lib.h, , with_gif=no) } |
2651 | 4129 if test "$with_gif" != "no"; then |
4130 with_gif="yes" | |
4708
1cecc3e9f0a0
Use giflib or libungif to provide GIF support, instead of using internal
Jerry James <james@xemacs.org>
parents:
4699
diff
changeset
|
4131 dnl Versions of libgif and libungif prior to the introduction of |
1cecc3e9f0a0
Use giflib or libungif to provide GIF support, instead of using internal
Jerry James <james@xemacs.org>
parents:
4699
diff
changeset
|
4132 dnl EGifPutExtensionLast caused Emacs crashes. We'll require that |
1cecc3e9f0a0
Use giflib or libungif to provide GIF support, instead of using internal
Jerry James <james@xemacs.org>
parents:
4699
diff
changeset
|
4133 dnl function, too, in hopes that we can avoid similar crashes. |
1cecc3e9f0a0
Use giflib or libungif to provide GIF support, instead of using internal
Jerry James <james@xemacs.org>
parents:
4699
diff
changeset
|
4134 AC_CHECK_LIB(gif, EGifPutExtensionLast, |
1cecc3e9f0a0
Use giflib or libungif to provide GIF support, instead of using internal
Jerry James <james@xemacs.org>
parents:
4699
diff
changeset
|
4135 [XE_PREPEND(-lgif, libs_x)], |
1cecc3e9f0a0
Use giflib or libungif to provide GIF support, instead of using internal
Jerry James <james@xemacs.org>
parents:
4699
diff
changeset
|
4136 [AC_CHECK_LIB(ungif, EGifPutExtensionLast, |
1cecc3e9f0a0
Use giflib or libungif to provide GIF support, instead of using internal
Jerry James <james@xemacs.org>
parents:
4699
diff
changeset
|
4137 [XE_PREPEND(-lungif, libs_x)], with_gif=no)]) |
1cecc3e9f0a0
Use giflib or libungif to provide GIF support, instead of using internal
Jerry James <james@xemacs.org>
parents:
4699
diff
changeset
|
4138 fi |
1cecc3e9f0a0
Use giflib or libungif to provide GIF support, instead of using internal
Jerry James <james@xemacs.org>
parents:
4699
diff
changeset
|
4139 if test "$with_gif" != "no"; then |
2651 | 4140 AC_DEFINE(HAVE_GIF) |
4141 fi | |
4142 | |
4143 dnl Too many stupid linkers can't detect cascaded lib dependencies until runtime | |
4144 dnl So we always search for libz compression support. | |
4145 if test "$with_png $with_tiff" != "no no"; then | |
4146 AC_CHECK_LIB(c, inflate, [:], [ | |
4147 AC_CHECK_LIB(z, inflate, [XE_PREPEND(-lz, libs_x)],[ | |
4148 AC_CHECK_LIB(gz, inflate, [XE_PREPEND(-lgz, libs_x)])])]) | |
4149 fi | |
4150 | |
4151 dnl autodetect JPEG | |
4152 test -z "$with_jpeg" && { AC_CHECK_HEADER(jpeglib.h, ,with_jpeg=no) } | |
4153 test -z "$with_jpeg" && { AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,[:],with_jpeg=no) } | |
4154 test -z "$with_jpeg" && with_jpeg=yes | |
4155 if test "$with_jpeg" = "yes"; then | |
4156 AC_DEFINE(HAVE_JPEG) | |
4157 XE_PREPEND(-ljpeg, libs_x) | |
4158 fi | |
4159 | |
4160 dnl autodetect PNG | |
4161 png_problem="" | |
4162 test -z "$with_png" && { AC_CHECK_FUNC(pow, ,with_png=no) } | |
4163 test -z "$with_png" && { AC_CHECK_HEADER(png.h, ,with_png=no) } | |
2667 | 4164 test -z "$with_png" && { AC_CHECK_LIB(png, png_read_image,[:],with_png=no,[-lz]) } |
2651 | 4165 if test -z "$with_png"; then |
4166 AC_MSG_CHECKING(for workable png version information) | |
4167 xe_check_libs="-lpng -lz" | |
4168 AC_RUN_IFELSE([AC_LANG_SOURCE([#include <png.h> | |
4169 int main(int c, char **v) { | |
4170 if (c == 1) return 0; | |
4171 if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1; | |
4172 return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}])], | |
4173 [./conftest dummy_arg; png_status=$?; | |
4174 if test "$png_status" = "0"; then | |
4175 with_png=yes; | |
4176 else | |
4177 with_png=no; | |
4178 if test "$png_status" = "1"; then | |
4179 png_problem="PNG library version and header file don't match!" | |
4180 elif test "$png_status" = "2"; then | |
4181 png_problem="PNG library version too old (pre 1.0.2)!" | |
4182 fi | |
4183 echo " | |
4184 *** WARNING *** $png_problem | |
4185 I'm not touching that with a 10-foot pole! | |
4186 If you really want to use the installed version of libPNG, rerun | |
4187 configure and add '--with-png=yes', but don't blame me if XEmacs crashes!" | |
4188 fi], | |
4189 [with_png=no]) | |
4190 xe_check_libs= | |
4191 AC_MSG_RESULT($with_png) | |
4192 fi | |
4193 if test "$with_png" = "yes"; then | |
4194 AC_DEFINE(HAVE_PNG) | |
4195 XE_PREPEND(-lpng, libs_x) | |
4196 fi | |
4197 | |
4198 dnl autodetect TIFF | |
4199 test -z "$with_tiff" && { AC_CHECK_HEADER(tiffio.h, ,with_tiff=no) } | |
2667 | 4200 test -z "$with_tiff" && { AC_CHECK_LIB(tiff, TIFFClientOpen,[:],with_tiff=no,[-lz]) } |
2651 | 4201 test -z "$with_tiff" && with_tiff=yes |
4202 if test "$with_tiff" = "yes"; then | |
4203 AC_DEFINE(HAVE_TIFF) | |
4204 XE_PREPEND(-ltiff, libs_x) | |
4205 fi | |
4206 fi | |
4207 | |
4208 dnl ---------------------- | |
4209 dnl GTK-Specific Graphics libraries | |
4210 dnl ---------------------- | |
4211 | |
4212 if test "$with_gtk" = "yes"; then | |
4213 dnl Autodetect XFACE | |
4214 test -z "$with_xface" && { AC_CHECK_HEADER(compface.h, ,with_xface=no) } | |
4215 test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) } | |
4216 test -z "$with_xface" && with_xface=yes | |
4217 if test "$with_xface" = "yes"; then | |
4218 AC_DEFINE(HAVE_XFACE) | |
4219 XE_PREPEND(-lcompface, libs_gtk) | |
4220 fi | |
4221 fi | |
4222 | |
4223 dnl ---------------------- | |
4224 dnl X-Specific Graphics libraries | |
4225 dnl ---------------------- | |
4226 | |
4227 if test "$with_x11" = "yes"; then | |
3312 | 4228 AC_MSG_CHECKING([for X11 graphics libraries]) |
4229 AC_MSG_RESULT() | |
2651 | 4230 fi |
4231 | |
4232 case "$enable_widgets" in | |
3019 | 4233 "" | "yes" | "athena") detect_athena=yes ;; |
2651 | 4234 *) detect_athena=no ;; |
4235 esac | |
4236 | |
3019 | 4237 case "$enable_dialogs" in |
4238 "" | "yes" | "athena") detect_athena=yes ;; | |
4239 esac | |
4240 | |
2651 | 4241 if test "$with_x11" = "yes" -a "$detect_athena" = "yes" ; then |
3312 | 4242 AC_MSG_CHECKING([for the Athena widgets]) |
4243 AC_MSG_RESULT() | |
2651 | 4244 |
4245 dnl What in heck did the user actually want? | |
4246 case "$with_athena" in | |
4247 dnl This is the default, old fashioned flat Athena. | |
4248 "xaw" | "") athena_variant=Xaw athena_3d=no ;; | |
4249 "3d") athena_variant=Xaw3d athena_3d=yes ;; | |
4250 "next") athena_variant=neXtaw athena_3d=yes ;; | |
4251 "95") athena_variant=Xaw95 athena_3d=yes ;; | |
4252 "xpm") athena_variant=XawXpm athena_3d=yes ;; | |
4253 *) XE_DIE("Unknown Athena widget set \`$with_athena'. This should not happen.") ;; | |
4254 esac | |
4255 | |
4256 dnl Search for the Athena library... | |
4257 if test "$athena_3d" = "no"; then | |
4258 AC_CHECK_LIB($athena_variant, XawScrollbarSetThumb, | |
4259 [ | |
4260 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
|
4261 AC_CHECK_LIB($athena_variant, XawSme3dComputeTopShadowRGB, |
2651 | 4262 [AC_MSG_WARN([Could not find a non-3d Athena widget library.])], |
4263 athena_lib=$athena_variant) | |
4264 ], | |
4265 AC_MSG_WARN([Could not find an Athena widget library.])) | |
4266 else | |
4267 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
|
4268 AC_CHECK_LIB($athena_variant, XawSme3dComputeTopShadowRGB, athena_lib=$athena_variant, |
2651 | 4269 dnl OK, couldn't find it with a proper name, try the standard Athena lib |
4270 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
|
4271 AC_CHECK_LIB(Xaw, XawSme3dComputeTopShadowRGB, |
2651 | 4272 [ |
4273 athena_lib=Xaw; | |
4274 AC_MSG_WARN([Assuming that libXaw is actually $athena_variant.]); | |
4275 ], | |
4276 [AC_MSG_WARN([Could not find a 3d Athena widget library that looked like $athena_variant.])])) | |
4277 fi | |
4278 | |
4279 dnl Now we locate the Athena headers that we need. | |
4280 if test "$athena_3d" = "no"; then | |
4281 AC_CHECK_HEADER(X11/Xaw/ThreeD.h, | |
4282 [AC_MSG_WARN([Could not find a non-3d Athena header set.])], | |
4283 [AC_CHECK_HEADER(X11/Xaw/XawInit.h, | |
4284 [athena_h_path=X11/Xaw], | |
2694 | 4285 [AC_MSG_WARN([Could not find a non-3d Athena header set.])], |
4286 [ | |
4287 #include <X11/Intrinsic.h> | |
4288 ])]) | |
2651 | 4289 else |
4290 dnl The three-d Athena headers are so much more slippery. | |
4291 dnl Curse this `Lets replace standard libraries' thing that they did. :/ | |
4292 AC_CHECK_HEADER(X11/$athena_variant/XawInit.h, | |
4293 [AC_CHECK_HEADER(X11/$athena_variant/ThreeD.h, | |
4294 [athena_h_path=X11/$athena_variant])],[], | |
4295 [ | |
4296 #if HAVE_X11_XFUNCPROTO_H | |
4297 #include <X11/Xfuncproto.h> | |
4298 #endif | |
2705 | 4299 #include <X11/Intrinsic.h> |
2651 | 4300 ]) |
4301 | |
4302 dnl Is the variant specific header directory directly under include? | |
4303 if test -z "$athena_h_path"; then | |
4304 AC_CHECK_HEADER($athena_variant/XawInit.h, | |
4305 [AC_CHECK_HEADER($athena_variant/ThreeD.h, | |
4306 athena_h_path=$athena_variant)],[], | |
4307 [ | |
4308 #if HAVE_X11_XFUNCPROTO_H | |
4309 #include <X11/Xfuncproto.h> | |
4310 #endif | |
2694 | 4311 #include <X11/Intrinsic.h> |
2651 | 4312 ]) |
4313 fi | |
4314 | |
4315 dnl If we couldn't find the specific variant, try the generic Athena 3d headers | |
4316 if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then | |
4317 AC_CHECK_HEADER(X11/Xaw3d/XawInit.h, | |
4318 [AC_CHECK_HEADER(X11/Xaw3d/ThreeD.h, | |
4319 [ | |
4320 AC_MSG_WARN([Assuming that X11/Xaw3d headers are suitable for $athena_variant.]) | |
4321 athena_h_path=X11/Xaw3d | |
4322 ])],[], | |
4323 [ | |
4324 #if HAVE_X11_XFUNCPROTO_H | |
4325 #include <X11/Xfuncproto.h> | |
4326 #endif | |
2694 | 4327 #include <X11/Intrinsic.h> |
2651 | 4328 ]) |
4329 fi | |
4330 | |
4331 dnl Also generic 3d headers directly under include dir | |
4332 if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then | |
4333 AC_CHECK_HEADER(Xaw3d/XawInit.h, | |
4334 [AC_CHECK_HEADER(Xaw3d/ThreeD.h, | |
4335 [ | |
4336 AC_MSG_WARN([Assuming that Xaw3d headers are suitable for $athena_variant.]) | |
4337 athena_h_path=Xaw3d | |
4338 ])],[], | |
4339 [ | |
4340 #if HAVE_X11_XFUNCPROTO_H | |
4341 #include <X11/Xfuncproto.h> | |
4342 #endif | |
2694 | 4343 #include <X11/Intrinsic.h> |
2651 | 4344 ]) |
4345 fi | |
4346 | |
4347 dnl If nothing yet found, see if Xaw is a 3d header set... | |
4348 dnl We AC_MSG_WARN if we fail because I am all out of ideas... | |
4349 if test -z "$athena_h_path"; then | |
4350 AC_CHECK_HEADER(X11/Xaw/ThreeD.h, | |
4351 [ | |
4352 AC_MSG_WARN([Assuming that X11/Xaw headers are suitable for $athena_variant.]) | |
4353 athena_h_path=X11/Xaw | |
4354 ], | |
4355 [AC_MSG_WARN([Could not find a suitable 3d Athena header set.])]) | |
4356 fi | |
4357 fi | |
4358 | |
4359 dnl Do we actually have a usable Athena widget set? Please? | |
4360 if test -n "$athena_lib" -a -n "$athena_h_path"; then | |
4361 have_xaw=yes | |
4362 else | |
4363 have_xaw=no | |
4364 fi | |
4365 | |
4366 else | |
4367 have_xaw=no | |
4368 fi dnl "$with_x11" = "yes" -a "detect_athena" = "yes" | |
4369 | |
4370 if test "$with_x11" = "yes"; then | |
4371 dnl autodetect Motif - but only add to libs_x later (if necessary) | |
4372 dnl Use a different function to the earlier test to avoid problems with the | |
4373 dnl internal cache. | |
4374 AC_CHECK_HEADER(Xm/Xm.h, | |
4375 [AC_CHECK_LIB(Xm, XmStringCreate, have_motif=yes, have_motif=no)], | |
4376 have_motif=no) | |
4377 | |
4378 if test "$have_motif" = "yes"; then | |
4379 dnl autodetect lesstif | |
4380 AC_MSG_CHECKING(for Lesstif) | |
4381 AC_EGREP_CPP(yes, | |
4382 [#include <Xm/Xm.h> | |
4383 #ifdef LESSTIF_VERSION | |
4384 yes | |
4385 #endif | |
4386 ], have_lesstif=yes, have_lesstif=no) | |
4387 AC_MSG_RESULT($have_lesstif) | |
4388 fi | |
4389 | |
4390 fi dnl "$with_x11" = "yes" | |
4391 | |
4392 dnl Finish ensuring that we have values for the various toolkit items. | |
4393 dnl Not all toolkits support all widgets | |
3019 | 4394 |
4395 dnl Avoid using Motif :-( | |
4396 case "$opsys" in | |
3738 | 4397 *linux* | *darwin* | *bsd* | *cygwin* ) lucid_prefers_motif="no" ;; |
3019 | 4398 * ) lucid_prefers_motif="yes" ;; |
4399 esac | |
2651 | 4400 |
4401 case "$enable_menubars" in "" | "yes" | "athena" ) | |
4402 enable_menubars="lucid" ;; | |
4403 esac | |
3094 | 4404 dnl this is not in xft reloaded #3 |
4405 if test "$with_xft_menubars" != "no" ; then | |
4406 if test "$with_xft_emacs" = "yes" -a "$with_menubars" != "no" ; then | |
4407 with_xft_menubars="yes" | |
4408 else | |
4409 with_xft_menubars="no" | |
4410 fi | |
4411 fi | |
2651 | 4412 case "$enable_dialogs" in "" | "yes" | "lucid" ) |
3019 | 4413 if test "$lucid_prefers_motif" = "yes"; then |
4414 if test "$have_motif" = "yes"; then enable_dialogs="motif" | |
4415 elif test "$have_xaw" = "yes"; then enable_dialogs="athena" | |
4416 elif test "$with_msw" = "yes"; then enable_dialogs="msw" | |
4417 else enable_dialogs=no | |
4418 fi | |
4419 else | |
4420 if test "$have_xaw" = "yes"; then enable_dialogs="athena" | |
4421 elif test "$have_motif" = "yes"; then enable_dialogs="motif" | |
4422 elif test "$with_msw" = "yes"; then enable_dialogs="msw" | |
4423 else enable_dialogs=no | |
4424 fi | |
2651 | 4425 fi ;; |
4426 esac | |
4427 case "$enable_scrollbars" in "" | "yes" ) | |
4428 enable_scrollbars="lucid" ;; | |
4429 esac | |
4430 case "$enable_widgets" in "" | "yes" | "lucid") | |
3019 | 4431 if test "$lucid_prefers_motif" = "yes"; then |
4432 if test "$have_motif" = "yes"; then enable_widgets="motif" | |
4433 elif test "$have_xaw" = "yes"; then enable_widgets="athena" | |
4434 elif test "$with_msw" = "yes"; then enable_widgets="msw" | |
4435 else enable_widgets=no | |
4436 fi | |
4437 else | |
4438 if test "$have_xaw" = "yes"; then enable_widgets="athena" | |
4439 elif test "$have_motif" = "yes"; then enable_widgets="motif" | |
4440 elif test "$with_msw" = "yes"; then enable_widgets="msw" | |
4441 else enable_widgets=no | |
4442 fi | |
2651 | 4443 fi ;; |
4444 esac | |
3094 | 4445 dnl this is not in xft reloaded #3 |
4446 if test "$with_xft_tabs" != "no" ; then | |
4447 if test "$with_xft_emacs" = "yes" -a "$enable_widgets" != "no" ; then | |
4448 with_xft_tabs="yes" | |
4449 else | |
4450 with_xft_tabs="no" | |
4451 fi | |
4452 fi | |
4453 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
|
4454 if test "$with_xft_gauges" != "no" ; then |
3094 | 4455 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
|
4456 with_xft_gauges="yes" |
3094 | 4457 else |
4497
f863b2ee146f
Rename xft_gauge to xft_gauges.
Mats Lidell <matsl@xemacs.org>
parents:
4496
diff
changeset
|
4458 with_xft_gauges="no" |
3094 | 4459 fi |
4460 fi | |
2651 | 4461 |
4462 all_widgets="$enable_menubars $enable_scrollbars $enable_dialogs $enable_toolbars $enable_widgets" | |
4463 | |
4464 case "$all_widgets" in | |
4465 *athena* ) | |
4466 if test "$have_xaw" != "yes"; then | |
4467 XE_DIE("Could not find a suitable Athena library to build with.") | |
4468 fi | |
4469 | |
4470 dnl Add the Lucid widget Athena code | |
4471 XE_APPEND(lwlib-Xaw.o, lwlib_objs) | |
4472 | |
4473 dnl Add the Athena widget library we located earlier | |
4474 XE_PREPEND(-l$athena_lib, libs_x) | |
4475 | |
4476 dnl Tell lwlib where to find the Athena header files. | |
4477 dnl Many people have tried to create a `smart' way of doing this, | |
4478 dnl but all have failed. Before changing the following ugly definitions, | |
4479 dnl consult the veterans of many a battle. | |
4480 AC_DEFINE_UNQUOTED(ATHENA_Scrollbar_h_,"$athena_h_path/Scrollbar.h") | |
4481 AC_DEFINE_UNQUOTED(ATHENA_Dialog_h_,"$athena_h_path/Dialog.h") | |
4482 AC_DEFINE_UNQUOTED(ATHENA_Form_h_,"$athena_h_path/Form.h") | |
4483 AC_DEFINE_UNQUOTED(ATHENA_Command_h_,"$athena_h_path/Command.h") | |
4484 AC_DEFINE_UNQUOTED(ATHENA_Label_h_,"$athena_h_path/Label.h") | |
4485 AC_DEFINE_UNQUOTED(ATHENA_LabelP_h_,"$athena_h_path/LabelP.h") | |
4486 AC_DEFINE_UNQUOTED(ATHENA_Toggle_h_,"$athena_h_path/Toggle.h") | |
4487 AC_DEFINE_UNQUOTED(ATHENA_ToggleP_h_,"$athena_h_path/ToggleP.h") | |
4488 AC_DEFINE_UNQUOTED(ATHENA_AsciiText_h_,"$athena_h_path/AsciiText.h") | |
4489 AC_DEFINE_UNQUOTED(ATHENA_XawInit_h_,"$athena_h_path/XawInit.h") | |
4490 | |
4491 AC_DEFINE(LWLIB_USES_ATHENA) | |
4492 AC_DEFINE(NEED_ATHENA) | |
4493 need_athena="yes" | |
4494 | |
4495 if test "$athena_3d" = "yes"; then | |
4496 AC_DEFINE(HAVE_ATHENA_3D) | |
4497 fi | |
4498 ;; | |
4499 esac | |
4500 | |
4501 case "$all_widgets" in *motif* ) | |
4502 AC_DEFINE(LWLIB_USES_MOTIF) | |
4503 AC_DEFINE(NEED_MOTIF) | |
4504 XE_APPEND(lwlib-Xm.o, lwlib_objs) | |
4505 need_motif=yes ;; | |
4506 esac | |
4507 | |
4508 test "$enable_menubars" = "lucid" && XE_APPEND(xlwmenu.o, lwlib_objs) | |
4509 test "$enable_menubars" = "motif" && XE_APPEND(xlwmenu.o, lwlib_objs) | |
4510 test "$enable_scrollbars" = "lucid" && XE_APPEND(xlwscrollbar.o, lwlib_objs) | |
4511 test "$enable_widgets" != "no" && test "$enable_widgets" != "msw" && \ | |
4512 XE_APPEND(xlwtabs.o xlwgcs.o, lwlib_objs) | |
4513 case "$enable_widgets" in athena* ) | |
4514 XE_APPEND(xlwradio.o xlwcheckbox.o xlwgauge.o, lwlib_objs);; | |
4515 esac | |
4516 case "$all_widgets" in *lucid* ) | |
4517 AC_DEFINE(NEED_LUCID) | |
4518 XE_APPEND(lwlib-Xlw.o, lwlib_objs) ;; | |
4519 esac | |
4520 | |
4521 AC_SUBST(lwlib_objs) | |
4522 | |
4523 test "$enable_scrollbars" = "athena" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA) | |
4524 test "$enable_dialogs" = "athena" && AC_DEFINE(LWLIB_DIALOGS_ATHENA) | |
4525 | |
4526 if test "$athena_3d" = "yes"; then | |
4527 test "$enable_scrollbars" = "athena" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA3D) | |
4528 test "$enable_dialogs" = "athena" && AC_DEFINE(LWLIB_DIALOGS_ATHENA3D) | |
4529 fi | |
4530 | |
4531 case "$enable_widgets" in athena* ) AC_DEFINE(LWLIB_WIDGETS_ATHENA);; esac | |
4532 test "$enable_widgets" != "no" && test "$enable_widgets" != "msw" && \ | |
4533 AC_DEFINE(LWLIB_TABS_LUCID) | |
4534 | |
4535 test "$enable_menubars" != "no" && AC_DEFINE(HAVE_MENUBARS) | |
4536 test "$enable_scrollbars" != "no" && AC_DEFINE(HAVE_SCROLLBARS) | |
4537 test "$enable_dialogs" != "no" && AC_DEFINE(HAVE_DIALOGS) | |
4538 test "$enable_toolbars" != "no" && AC_DEFINE(HAVE_TOOLBARS) | |
4539 test "$enable_widgets" != "no" && AC_DEFINE(HAVE_WIDGETS) | |
4540 | |
4541 test "$enable_menubars" = "lucid" && AC_DEFINE(LWLIB_MENUBARS_LUCID) | |
4542 test "$enable_scrollbars" = "lucid" && AC_DEFINE(LWLIB_SCROLLBARS_LUCID) | |
4543 | |
4544 test "$enable_menubars" = "motif" && AC_DEFINE(LWLIB_MENUBARS_MOTIF) | |
4545 test "$enable_scrollbars" = "motif" && AC_DEFINE(LWLIB_SCROLLBARS_MOTIF) | |
4546 test "$enable_dialogs" = "motif" && AC_DEFINE(LWLIB_DIALOGS_MOTIF) | |
4547 test "$enable_widgets" = "motif" && AC_DEFINE(LWLIB_WIDGETS_MOTIF) | |
4548 | |
3094 | 4549 test "$with_xft_menubars" = "yes" && AC_DEFINE(USE_XFT_MENUBARS) |
4550 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
|
4551 test "$with_xft_gauges" = "yes" && AC_DEFINE(USE_XFT_GAUGES) |
3094 | 4552 |
2651 | 4553 dnl ---------------------- |
4554 dnl Mule-dependent options | |
4555 dnl ---------------------- | |
4556 | |
4557 test -z "$enable_mule" && enable_mule=no | |
4558 | |
4559 dnl if test "$enable_mule" = "yes" && test ! -d "$srcdir/lisp/mule"; then | |
4560 dnl echo "Attempt to Build with Mule without Mule/Lisp" | |
4561 dnl echo "Please install the XEmacs/Mule tarball or" | |
4562 dnl echo "rerun configure with --with-mule=no" | |
4563 dnl exit 1 | |
4564 dnl fi | |
4565 | |
4566 if test "$enable_default_eol_detection" = "yes"; then | |
4567 AC_DEFINE(HAVE_DEFAULT_EOL_DETECTION) | |
4568 fi | |
4569 | |
2973 | 4570 dnl initialize _libs variables for possible modules at top level |
4571 canna_libs= | |
4572 wnn_libs= | |
4573 | |
2651 | 4574 if test "$enable_mule" = "yes" ; then |
3312 | 4575 AC_MSG_CHECKING([for Mule-related features]) |
2651 | 4576 AC_DEFINE(MULE) |
4577 | |
4578 dnl Use -lintl to get internationalized strerror for Mule | |
4579 AC_CHECK_HEADERS(libintl.h) | |
4580 AC_CHECK_LIB(intl, strerror) | |
4581 | |
3312 | 4582 AC_MSG_CHECKING([for Mule input methods]) |
2651 | 4583 dnl Do we have the XmIm* routines? And if so, do we want to use them? |
4584 case "$with_xim" in "" | "yes" ) | |
3312 | 4585 AC_MSG_CHECKING([for XIM]) |
2651 | 4586 AC_CHECK_LIB(X11, XOpenIM, with_xim=xlib, with_xim=no) |
4587 dnl XIM + Lesstif is not (yet?) usable | |
3019 | 4588 dnl Only use Motif if linking Motif anyway, or don't have xlib XIM |
4589 if test "$need_motif $have_lesstif" = "yes no"; then | |
4590 AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif) | |
3248 | 4591 dnl #### This is always false. |
4592 dnl Not clear what we want, although "yes no yes" is insufficient. | |
3019 | 4593 elif test "$have_motif $have_lesstif $with_xim" = "yes no no"; then |
2651 | 4594 AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif) |
4595 fi ;; | |
4596 esac | |
4597 if test "$with_xim" != "no"; then | |
4598 AC_DEFINE(HAVE_XIM) | |
4599 if test "$with_xim" = "xlib"; then | |
4600 AC_DEFINE(XIM_XLIB) | |
4601 XE_ADD_OBJS(input-method-xlib.o) | |
4602 fi | |
4603 if test "$with_xim" = "motif"; then | |
4604 AC_DEFINE(XIM_MOTIF) | |
4605 need_motif=yes | |
4606 XE_ADD_OBJS(input-method-motif.o) | |
4607 fi | |
4608 if test "$with_xim" = "motif"; then | |
4609 with_xfs=no | |
4610 fi | |
4611 fi | |
4612 | |
4613 dnl "with_xfs" = "yes" | |
4614 if test "$with_xfs" = "yes" ; then | |
3312 | 4615 AC_MSG_CHECKING([for XFontSet]) |
2651 | 4616 AC_CHECK_LIB(X11, XmbDrawString, [:], with_xfs=no) |
4617 if test "$with_xfs" = "yes" && test "$enable_menubars" = "lucid"; then | |
4618 AC_DEFINE(USE_XFONTSET) | |
4619 if test "$with_xim" = "no" ; then | |
4620 XE_ADD_OBJS(input-method-xlib.o) | |
4621 fi | |
4622 fi | |
4623 fi dnl with_xfs | |
4624 | |
4625 dnl Autodetect WNN | |
4626 test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support | |
4627 test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/jllib.h, ,with_wnn=no) } | |
4628 dnl gcc 2.97 fixincludes breaks inclusion of wnn/commonhd.h | |
4629 test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/commonhd.h, ,with_wnn=no) } | |
4630 dnl Detour to find crypt | |
4631 if test "$with_wnn" != "no"; then | |
4632 AC_CHECK_FUNCS(crypt) | |
4633 test "$ac_cv_func_crypt" != "yes" && { AC_CHECK_LIB(crypt, crypt) } | |
4634 fi | |
4635 dnl Back to our regularly scheduled wnn hunting | |
4636 if test -z "$with_wnn" -o "$with_wnn" = "yes"; then | |
4637 AC_CHECK_LIB(wnn,jl_dic_list_e,libwnn=wnn, | |
4638 AC_CHECK_LIB(wnn4,jl_dic_list_e,libwnn=wnn4, | |
4639 AC_CHECK_LIB(wnn6,jl_dic_list_e,libwnn=wnn6, | |
4640 AC_CHECK_LIB(wnn6_fromsrc,dic_list_e,libwnn=wnn6_fromsrc,with_wnn=no)))) | |
4641 fi | |
4642 test -z "$with_wnn" && with_wnn=yes | |
4643 if test "$with_wnn" = "yes"; then | |
4644 AC_DEFINE(HAVE_WNN) | |
4645 XE_PREPEND(-l$libwnn, libs_x) | |
4646 if test "$with_wnn6" != "no"; then | |
4647 AC_CHECK_LIB($libwnn, jl_fi_dic_list, with_wnn6=yes) | |
4648 test "$with_wnn6" = "yes" && AC_DEFINE(WNN6) | |
4649 fi | |
4650 fi | |
4651 | |
3830 | 4652 dnl Configure canna |
2973 | 4653 dnl canna_libs variable is initialized at toplevel |
3830 | 4654 dnl #### the hard-coding of /usr/local/canna/include is bogus and |
4655 dnl my Mac OS X 10.4 system needs /usr/local/canna/lib, too | |
4656 dnl #### this whole mess should be in modules/canna, no? maybe not | |
4657 have_canna=no | |
2651 | 4658 if test "$with_canna" != "no"; then |
4659 save_c_switch_site="$c_switch_site" | |
3830 | 4660 for canna_include_path in "" " -I/usr/local/canna/include"; do |
4661 for canna_wchar_aware in "" " -DCANNA_NEW_WCHAR_AWARE=1"; do | |
4662 c_switch_site="$save_c_switch_site$canna_include_path$canna_wchar_aware" | |
4663 # defeat autoconf's cache mechanism | |
4664 $as_unset ac_cv_header_canna_jrkanji_h | |
4665 $as_unset ac_cv_header_canna_RK_h | |
4666 # using $ac_header_compiler is a hack, but autoconf doesn't let us | |
4667 # get at this information otherwise :-( | |
4668 AC_CHECK_HEADER(canna/jrkanji.h,[AC_CHECK_HEADER(canna/RK.h,have_canna=$ac_header_compiler)]) | |
4669 test "$have_canna" = "yes" && break | |
4670 AC_MSG_WARN([You may ignore any *Present but not compiled* message | |
4671 from autoconf. We detect that condition and recheck, but there | |
4672 is no way to suppress autoconf's message.]) | |
4673 done | |
4674 test "$have_canna" = "yes" && break | |
4675 done | |
4676 if test "$have_canna" = "yes"; then | |
4677 c_switch_site="$save_c_switch_site$canna_include_path" | |
4678 else | |
2651 | 4679 c_switch_site="$save_c_switch_site" |
4680 fi | |
4681 fi | |
4682 | |
3830 | 4683 test "$have_canna" = "yes" && { AC_CHECK_LIB(RKC, RkBgnBun, [:],have_canna=no) } |
4684 test "$have_canna" = "yes" && { AC_CHECK_LIB(canna,jrKanjiControl,[:],have_canna=no) } | |
4685 if test "$have_canna" = "yes"; then | |
2651 | 4686 AC_DEFINE(HAVE_CANNA) |
3830 | 4687 test -n "$canna_wchar_aware" && AC_DEFINE(CANNA_NEW_WCHAR_AWARE) |
2973 | 4688 XE_APPEND(modules/canna, MAKE_SUBDIR) |
4689 need_modules_common=yes | |
4690 if test "$with_modules" = "yes"; then | |
4691 XE_APPEND(modules/canna, INSTALL_ARCH_DEP_SUBDIR) | |
4692 fi | |
4693 XE_PREPEND(-lcanna -lRKC, canna_libs) | |
3830 | 4694 elif test "$with_canna" != "no"; then |
4695 AC_MSG_WARN([Canna configuration failed. If you expected success, | |
4696 maybe you need --with-site-prefixes=/usr/local/canna?]) | |
2651 | 4697 fi |
2973 | 4698 AC_SUBST(canna_libs) |
2651 | 4699 |
4700 else dnl "$enable_mule" = "no" | |
4701 for feature in xim canna wnn; do | |
4702 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then | |
4703 AC_MSG_WARN([--with-${feature} ignored: Not valid without Mule support]) | |
4704 fi | |
4705 eval "with_${feature}=no" | |
4706 done | |
4707 fi dnl with_mule | |
4708 | |
4709 | |
4710 dnl At this point, we know whether we need the motif lib or not. | |
4711 if test "$need_motif" = "yes" ; then | |
4712 XE_PREPEND(-lXm, libs_x) | |
4713 dnl AIX needs the following library for use with Motif | |
4714 AC_CHECK_LIB(i18n, layout_object_getvalue, [XE_PREPEND(-li18n, libs_x)]) | |
4715 XE_COMPUTE_RUNPATH() | |
4716 fi | |
4717 | |
4718 dnl ---------------------------------------------------------------- | |
4719 dnl Check for POSIX functions. | |
4720 dnl ---------------------------------------------------------------- | |
4721 | |
4722 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) | |
4723 | |
4724 dnl getaddrinfo() is borked under hpux11 | |
4725 if test "$ac_cv_func_getaddrinfo" != "no" ; then | |
4726 case "$opsys" in | |
4727 hpux11 ) | |
4728 AC_MSG_WARN([Use of getaddrinfo is disabled for HP-UX 11.XX.]) | |
4729 ac_cv_func_getaddrinfo=no | |
4730 ;; | |
4731 esac | |
4732 fi | |
4733 | |
3092 | 4734 dnl check for vdb-related stuff |
4735 if test "$check_vdb_posix" = "yes" ; then | |
4736 dnl no mprotect, no vdb | |
4737 AC_CHECK_FUNC(mprotect,AC_DEFINE(HAVE_MPROTECT) have_vdb_mprotect=yes,) | |
4738 | |
4739 dnl sigaction needs either struct siginfo or siginfo_t | |
4740 AC_CHECK_FUNC(sigaction, AC_DEFINE(HAVE_SIGACTION) have_vdb_sigaction=yes, | |
4741 have_vdb_sigaction=no) | |
4742 AC_CHECK_MEMBER(struct siginfo.si_addr, | |
4743 AC_DEFINE(HAVE_STRUCT_SIGINFO_SI_ADDR) have_si_addr=yes,, | |
4744 [#include <signal.h>]) | |
4745 AC_CHECK_MEMBER(siginfo_t.si_addr, | |
4746 AC_DEFINE(HAVE_SIGINFO_T_SI_ADDR) have_si_addr=yes,, | |
4747 [#include <signal.h>]) | |
4748 if test "$have_si_addr" != "yes" ; then | |
4749 have_vdb_sigaction=no | |
4750 fi | |
4751 | |
4752 dnl signal needs struct sigcontext | |
4753 AC_CHECK_FUNC(signal, AC_DEFINE(HAVE_SIGNAL) have_vdb_signal=yes,) | |
4754 AC_CHECK_MEMBER(struct sigcontext.cr2, | |
4755 AC_DEFINE(HAVE_STRUCT_SIGCONTEXT_CR2) have_cr2=yes,, | |
4756 [#include <signal.h>]) | |
4757 | |
4758 if test "$have_cr2" != "yes" ; then | |
4759 have_vdb_signal=no | |
4760 fi | |
4761 | |
4762 if test "$have_vdb_mprotect" != "yes" ; then | |
4763 have_vdb_sigaction=no | |
4764 have_vdb_signal=no | |
4765 fi | |
4766 | |
4767 if test "$have_vdb_sigaction" != "yes" -a "$have_vdb_signal" != "yes" ; then | |
4768 have_vdb_posix=no | |
4769 have_vdb_fake=yes | |
3102 | 4770 XE_DIE("No working write-barrier implementation found for this system. |
4771 Please report this and provide information about your system.") | |
3092 | 4772 else |
4773 have_vdb_posix=yes | |
4774 have_vdb_fake=no | |
4775 fi | |
4776 fi | |
4777 | |
2651 | 4778 dnl ---------------------------------------------------------------- |
4779 dnl Check for Unixoid pty/process support. | |
4780 dnl ---------------------------------------------------------------- | |
4781 | |
4782 dnl There is no "standard" pty allocation method. Every system is different. | |
4783 dnl getpt() is the preferred pty allocation method on glibc systems. | |
4784 dnl _getpty() is the preferred pty allocation method on SGI systems. | |
4785 dnl grantpt(), unlockpt(), ptsname() are defined by Unix98. | |
4786 AC_CHECK_FUNCS(getpt _getpty grantpt unlockpt ptsname killpg tcgetpgrp) | |
4787 | |
4788 dnl openpty() is the preferred pty allocation method on BSD and Tru64 systems. | |
4789 dnl openpty() might be declared in: | |
4790 dnl - pty.h (Tru64 or Linux) | |
4791 dnl - libutil.h (FreeBSD) | |
4792 dnl - util.h (NetBSD) | |
4793 AC_CHECK_FUNC(openpty, have_openpty=yes, [ | |
4794 AC_CHECK_LIB(util, openpty, have_openpty=yes need_libutil=yes)]) | |
4795 if test "$have_openpty" = "yes"; then | |
4796 AC_DEFINE(HAVE_OPENPTY) | |
4797 AC_CHECK_HEADERS(libutil.h util.h, break) | |
4798 test "$need_libutil" = "yes" && XE_APPEND(-lutil, libs_system) | |
4799 fi | |
4800 | |
4801 dnl Check for system-specific pty header files | |
4802 dnl Often the TIOCSIG* symbols are hiding there. | |
4803 case "$opsys" in | |
4804 dnl HPUX pty.h #defines TRUE and FALSE, so just use ptyio.h there. | |
4805 hpux*) AC_CHECK_HEADERS(sys/ptyio.h) ;; | |
4806 *) AC_CHECK_HEADERS(pty.h) | |
4807 test "$ac_cv_header_pty_h" = "no" && AC_CHECK_HEADERS(sys/pty.h) | |
4808 ;; | |
4809 esac | |
4810 | |
4811 dnl Check for STREAM support functions. | |
4812 dnl Confusingly, "str" means both "string" and "SysV Streams". | |
4813 AC_CHECK_HEADERS(stropts.h) | |
4814 if test "$ac_cv_header_stropts_h" = "yes"; then | |
4815 AC_CHECK_FUNCS(isastream) | |
4816 AC_CHECK_HEADERS(strtio.h) dnl TIOCSIGNAL | |
4817 fi | |
4818 | |
4819 dnl Check whether the system provides getloadavg(). | |
4820 AC_CHECK_FUNCS(getloadavg) | |
4821 | |
4822 if test "$ac_cv_func_getloadavg" = "yes"; then | |
4823 dnl Solaris 8 declares getloadavg() in <sys/loadavg.h>. | |
4824 dnl glibc 2.2 declares getloadavg() in <stdlib.h>... | |
4825 dnl ...if we #define _GNU_SOURCE, which we do. | |
4826 AC_CHECK_HEADERS(sys/loadavg.h) | |
4827 else | |
4828 dnl We define our own getloadavg() using lower level functions. | |
4829 XE_ADD_OBJS(getloadavg.o) | |
4830 | |
4831 dnl Used by getloadavg() - does not require root priveleges | |
4832 AC_CHECK_LIB(kstat, kstat_open) | |
4833 AC_CHECK_HEADERS(kstat.h) | |
4834 | |
4835 dnl Another way to get the load average | |
4836 AC_CHECK_LIB(kvm, kvm_read) | |
4837 fi | |
4838 | |
4839 dnl If netdb.h does not declare h_errno, we must declare it by hand. | |
4840 AC_MSG_CHECKING(whether netdb declares h_errno) | |
3312 | 4841 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <netdb.h>], |
4842 [return h_errno;])], | |
2651 | 4843 [AC_MSG_RESULT(yes) |
4844 AC_DEFINE(HAVE_H_ERRNO)], | |
4845 [AC_MSG_RESULT(no)]) | |
4846 | |
4847 AC_MSG_CHECKING(for sigsetjmp) | |
3312 | 4848 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <setjmp.h>], |
4849 [sigjmp_buf bar; sigsetjmp (bar, 0);])], | |
2651 | 4850 [AC_MSG_RESULT(yes) |
4851 AC_DEFINE(HAVE_SIGSETJMP)], | |
4852 [AC_MSG_RESULT(no)]) | |
4853 | |
4854 AC_MSG_CHECKING(whether localtime caches TZ) | |
4855 AC_CACHE_VAL(emacs_cv_localtime_cache, | |
4856 [if test "$ac_cv_func_tzset" = "yes"; then | |
4857 AC_RUN_IFELSE([AC_LANG_SOURCE([#include <time.h> | |
4858 #if STDC_HEADERS | |
4859 # include <stdlib.h> | |
4860 #endif | |
4861 extern char **environ; | |
4862 unset_TZ () | |
4863 { | |
4864 char **from, **to; | |
4865 for (to = from = environ; (*to = *from); from++) | |
4866 if (! (to[[0]][[0]] == 'T' && to[[0]][[1]] == 'Z' && to[[0]][[2]] == '=')) | |
4867 to++; | |
4868 } | |
4869 char TZ_GMT0[[]] = "TZ=GMT0"; | |
4870 char TZ_PST8[[]] = "TZ=PST8"; | |
4871 main() | |
4872 { | |
4873 time_t now = time ((time_t *) 0); | |
4874 int hour_GMT0, hour_unset; | |
4875 if (putenv (TZ_GMT0) != 0) | |
4876 exit (1); | |
4877 hour_GMT0 = localtime (&now)->tm_hour; | |
4878 unset_TZ (); | |
4879 hour_unset = localtime (&now)->tm_hour; | |
4880 if (putenv (TZ_PST8) != 0) | |
4881 exit (1); | |
4882 if (localtime (&now)->tm_hour == hour_GMT0) | |
4883 exit (1); | |
4884 unset_TZ (); | |
4885 if (localtime (&now)->tm_hour != hour_unset) | |
4886 exit (1); | |
4887 exit (0); | |
4888 }])], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes, | |
4889 [# If we have tzset, assume the worst when cross-compiling. | |
4890 emacs_cv_localtime_cache=yes]) | |
4891 else | |
4892 # If we lack tzset, report that localtime does not cache TZ, | |
4893 # since we can't invalidate the cache if we don't have tzset. | |
4894 emacs_cv_localtime_cache=no | |
4895 fi],[:])dnl | |
4896 AC_MSG_RESULT($emacs_cv_localtime_cache) | |
4897 if test $emacs_cv_localtime_cache = yes; then | |
4898 AC_DEFINE(LOCALTIME_CACHE) | |
4899 fi | |
4900 | |
4901 if test "$HAVE_TIMEVAL" = "yes"; then | |
4902 AC_MSG_CHECKING(whether gettimeofday accepts one or two arguments) | |
3312 | 4903 AC_LINK_IFELSE([AC_LANG_PROGRAM([ |
2651 | 4904 #ifdef TIME_WITH_SYS_TIME |
4905 #include <sys/time.h> | |
4906 #include <time.h> | |
4907 #else | |
4908 #ifdef HAVE_SYS_TIME_H | |
4909 #include <sys/time.h> | |
4910 #else | |
4911 #include <time.h> | |
4912 #endif | |
4913 #endif | |
4914 ], | |
4915 [ | |
4916 struct timeval time; | |
4917 gettimeofday (&time, 0); | |
3312 | 4918 ])], |
2651 | 4919 [AC_MSG_RESULT(two)], |
4920 [AC_MSG_RESULT(one) | |
4921 AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)]) | |
4922 fi | |
4923 | |
4924 | |
4925 AC_C_INLINE | |
4926 test "$ac_cv_c_inline" != "no" -a "$GCC" = "yes" && XE_ADD_OBJS(inline.o) | |
4927 | |
4928 dnl check for the typeof extension | |
4929 AC_MSG_CHECKING(for typeof) | |
3312 | 4930 AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i; __typeof__(i) j;])], |
4931 typeofname="__typeof__", | |
4932 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i; typeof(i) j;])], | |
4933 typeofname="typeof", | |
2651 | 4934 typeofname=no)]) |
4935 AC_MSG_RESULT($typeofname) | |
4936 if test "$typeofname" != "no"; then | |
4937 AC_DEFINE_UNQUOTED(TYPEOF, $typeofname) | |
4938 fi | |
4939 | |
4940 dnl HP-UX has a working alloca in libPW. | |
4941 dnl case "${GCC}${opsys}" in hpux* ) | |
4942 dnl AC_CHECK_FUNC(alloca, [:], [AC_CHECK_LIB(PW, alloca)]) | |
4943 dnl esac | |
4944 | |
4945 dnl AC_FUNC_ALLOCA doesn't know about DEC C's #pragma intrinsic(alloca) | |
4946 if test "$__DECC" != "yes"; then | |
4947 AC_FUNC_ALLOCA | |
4948 test -n "$ALLOCA" && XE_ADD_OBJS($ALLOCA) | |
4949 fi | |
4950 | |
4951 AC_MSG_CHECKING(for working alloca in function calls) | |
4952 AC_RUN_IFELSE([AC_LANG_SOURCE([ | |
4953 #if defined (__CYGWIN__) | |
4954 #include <alloca.h> | |
4955 #elif defined (__GNUC__) | |
4956 #define alloca __builtin_alloca | |
4957 #elif defined (__DECC) | |
4958 #include <alloca.h> | |
4959 #pragma intrinsic(alloca) | |
4960 #elif defined (HAVE_ALLOCA_H) | |
4961 #include <alloca.h> | |
4962 #elif defined (_AIX) | |
4963 #pragma alloca | |
4964 #elif ! defined (alloca) | |
4965 #ifdef C_ALLOCA | |
4966 #define alloca xemacs_c_alloca | |
4967 #else | |
4968 void *alloca (); | |
4969 #endif /* C_ALLOCA */ | |
4970 #endif /* !defined (alloca) */ | |
4971 | |
4972 void | |
4973 f1 (double a, void *ptr, int b) | |
4974 { | |
4975 unsigned char *ptr2 = (unsigned char *) ptr; | |
4976 if (ptr2[[0]] != 0xBF || ptr2[[1]] != 0xBF || ptr2[[3000]] != 0xBF) | |
4977 exit (1); | |
4978 if (a != 3.1415 || b != -5490) | |
4979 exit (1); | |
4980 } | |
4981 | |
4982 int | |
4983 f2 (short c, void *ptr, long e) | |
4984 { | |
4985 unsigned char *ptr2 = (unsigned char *) ptr; | |
4986 if (ptr2[[0]] != 0xFB || ptr2[[1]] != 0xFB || ptr2[[1000]] != 0xFB) | |
4987 exit (1); | |
4988 if (c != 665 || e != 776776776) | |
4989 exit (1); | |
4990 f1 (3.1415, memset (alloca (3001), 0xBF, 3001), -5490); | |
4991 return 42; | |
4992 } | |
4993 | |
4994 int | |
4588
6a6689b96f00
Adopt Martin's suggestion of "char **argv" throughout configure.ac.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4543
diff
changeset
|
4995 main (int argc, char **argv) |
2651 | 4996 { |
4997 if (f2 (665, memset (alloca (1001), 0xFB, 1001), 776776776) != 42) | |
4998 return 1; | |
4999 return 0; | |
5000 } | |
5001 ])], working_alloca_in_function_calls=yes, working_alloca_in_function_calls=no) | |
5002 AC_MSG_RESULT($working_alloca_in_function_calls) | |
5003 test "$working_alloca_in_function_calls" != "yes" && \ | |
5004 AC_DEFINE(BROKEN_ALLOCA_IN_FUNCTION_CALLS) | |
5005 | |
5006 AC_MSG_CHECKING([for working scanf]) | |
5007 AC_RUN_IFELSE([AC_LANG_SOURCE([ | |
5008 int | |
5009 main (int argc, char **argv) | |
5010 { | |
5011 int ret, cp1, cp2, endcount; | |
5012 char *p = "0x7d 0x000E "; | |
5013 ret = sscanf (p, "%i %i%n", &cp1, &cp2, &endcount); | |
5014 /* endcount should be 13 but it's 11 in Cygwin newlib after 6/04; | |
5015 this breaks unicode.c */ | |
5016 return endcount != 13; | |
5017 } | |
5018 ])], working_scanf=yes, working_scanf=no) | |
5019 AC_MSG_RESULT($working_scanf) | |
5020 test "$working_scanf" != "yes" && \ | |
5021 AC_DEFINE(CYGWIN_SCANF_BUG) | |
5022 | |
5023 dnl Check whether strcoll exists and works correctly. (This does more | |
5024 dnl than just check for its existence.) If so, it defines HAVE_STRCOLL. | |
5025 AC_FUNC_STRCOLL | |
5026 | |
5027 dnl If `getpgrp' takes no argument (the POSIX.1 version), define | |
5028 dnl `GETPGRP_VOID'. Otherwise, it is the BSD version, which takes a | |
5029 dnl process ID as an argument. | |
5030 AC_CHECK_FUNCS(getpgrp) | |
5031 AC_FUNC_GETPGRP | |
5032 | |
5033 dnl We used to call AC_FUNC_MMAP here | |
5034 dnl Instead we now use following, suggested by Neal Becker | |
5035 AC_MSG_CHECKING(for working mmap) | |
5036 case "$opsys" in ultrix* ) have_mmap=no ;; *) | |
5037 AC_RUN_IFELSE([AC_LANG_SOURCE([#include <stdio.h> | |
5038 #include <unistd.h> | |
5039 #include <fcntl.h> | |
5040 #include <sys/mman.h> | |
5041 | |
5042 #ifndef MAP_VARIABLE | |
5043 #define MAP_VARIABLE 0 | |
5044 #endif | |
5045 | |
5046 #ifndef MAP_FAILED | |
5047 #define MAP_FAILED -1 | |
5048 #endif | |
5049 | |
4588
6a6689b96f00
Adopt Martin's suggestion of "char **argv" throughout configure.ac.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4543
diff
changeset
|
5050 int main (int argc, char **argv) |
2651 | 5051 { |
5052 int fd = -1; | |
5053 caddr_t p; | |
5054 #ifndef MAP_ANONYMOUS | |
5055 fd = open ("/dev/zero", O_RDWR); | |
5056 if (fd < 0) | |
5057 return 1; | |
5058 #define MAP_ANONYMOUS 0 | |
5059 #endif | |
5060 if (mmap(0, 1024, PROT_READ | PROT_WRITE, | |
5061 MAP_PRIVATE | MAP_VARIABLE | MAP_ANONYMOUS, | |
5062 fd, 0) != (void *) MAP_FAILED) | |
5063 return 0; | |
5064 perror ("conftest: mmap failed"); | |
5065 return 1; | |
5066 }])], have_mmap=yes, have_mmap=no) ;; | |
5067 esac | |
5068 AC_MSG_RESULT($have_mmap) | |
5069 test "$have_mmap" = "yes" && AC_DEFINE(HAVE_MMAP) | |
5070 | |
5071 dnl By default we switch off rel-alloc on cygwin as it generally causes us grief | |
5072 case "$opsys" in cygwin*) | |
5073 test "$with_rel_alloc" = "default" && with_rel_alloc=no ;; | |
5074 esac | |
5075 dnl rel_alloc requires either GNU malloc or system malloc with mmap | |
5076 dnl We only turn rel_alloc on by default if mmap is available. | |
5077 test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && with_rel_alloc=no | |
5078 if test "$with_rel_alloc $have_mmap" = "default yes"; then | |
5079 if test "$doug_lea_malloc" = "yes"; then | |
5080 dnl Check if malloc() calls mmap(), making rel_alloc pointless. | |
5081 AC_MSG_CHECKING(for M_MMAP_THRESHOLD) | |
3312 | 5082 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <malloc.h>],[ |
2651 | 5083 #ifndef M_MMAP_THRESHOLD |
5084 #error No M_MMAP_THRESHOLD :-( | |
5085 !@+$%^&*_)(_ - unlikely to compile... | |
5086 #endif | |
3312 | 5087 ])], [with_rel_alloc=no; AC_MSG_RESULT(yes);], |
5088 [with_rel_alloc=yes; AC_MSG_RESULT(no);]) | |
2651 | 5089 else |
5090 with_rel_alloc=yes | |
5091 fi | |
5092 fi | |
5093 test "$with_rel_alloc" = "yes" && AC_DEFINE(REL_ALLOC) | |
5094 | |
5095 dnl Check for terminal I/O variants | |
5096 dnl TERMIOS systems may have termio.h, but not vice-versa, I think. | |
5097 AC_CHECK_HEADER(termios.h, | |
5098 AC_DEFINE(HAVE_TERMIOS) | |
5099 AC_DEFINE(SIGNALS_VIA_CHARACTERS) | |
5100 AC_DEFINE(NO_TERMIO), | |
5101 [AC_CHECK_HEADER(termio.h, [AC_DEFINE(HAVE_TERMIO)])]) | |
5102 | |
5103 | |
5104 dnl Check for Internet sockets. | |
5105 AC_CHECK_FUNC(socket, | |
5106 [AC_CHECK_HEADER(netinet/in.h, | |
5107 [AC_CHECK_HEADER(arpa/inet.h, [ | |
5108 AC_DEFINE(HAVE_SOCKETS) | |
3312 | 5109 AC_MSG_CHECKING([for sun_len member in struct sockaddr_un]) |
5110 AC_LINK_IFELSE([AC_LANG_PROGRAM([ | |
2651 | 5111 #include <sys/types.h> |
5112 #include <sys/socket.h> | |
5113 #include <sys/un.h> | |
5114 ], | |
3312 | 5115 [static struct sockaddr_un x; x.sun_len = 1;])], |
2651 | 5116 [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOCKADDR_SUN_LEN)], |
5117 [AC_MSG_RESULT(no)]) | |
3312 | 5118 AC_MSG_CHECKING([for ip_mreq struct in netinet/in.h]) |
5119 AC_LINK_IFELSE([AC_LANG_PROGRAM([ | |
2651 | 5120 #include <sys/types.h> |
5121 #include <netinet/in.h> | |
5122 ], | |
3312 | 5123 [static struct ip_mreq x;])], |
2651 | 5124 [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_MULTICAST)], |
5125 [AC_MSG_RESULT(no)])])])]) | |
5126 | |
5127 dnl Check for SYS V IPC. (Inferior to sockets.) | |
5128 AC_CHECK_FUNC(msgget, | |
5129 [AC_CHECK_HEADER(sys/ipc.h, | |
5130 [AC_CHECK_HEADER(sys/msg.h, | |
5131 [AC_DEFINE(HAVE_SYSVIPC)])])]) | |
5132 | |
5133 dnl Check for directory variants | |
5134 AC_CHECK_HEADER(dirent.h, [AC_DEFINE(SYSV_SYSTEM_DIR)], | |
5135 [AC_CHECK_HEADER(sys/dir.h, , [AC_DEFINE(NONSYSTEM_DIR_LIBRARY)])]) | |
5136 | |
5137 dnl Check for nlist.h | |
5138 AC_CHECK_HEADER(nlist.h, AC_DEFINE(NLIST_STRUCT), ) | |
5139 | |
5140 dnl Check for sound of various sorts. | |
3312 | 5141 AC_MSG_CHECKING([for sound support]) |
5142 AC_MSG_RESULT() | |
2651 | 5143 |
5144 dnl Autodetect native sound | |
5145 test -n "$with_native_sound_lib" && enable_sound_native=yes | |
5146 | |
5147 if test "$enable_sound_native" != "no"; then | |
5148 dnl Maybe sound is already on include path... | |
5149 if test -n "$with_native_sound_lib"; then | |
5150 AC_CHECK_HEADER(multimedia/audio_device.h, | |
5151 [sound_found=yes sound_cflags="" | |
5152 XE_ADD_OBJS(sunplay.o)]) | |
5153 fi | |
5154 | |
5155 dnl Autodetect Sun native sound from SUNWaudmo package | |
5156 if test -z "$sound_found" -a -d "/usr/demo/SOUND"; then | |
5157 if test -d "/usr/demo/SOUND/include/multimedia"; then | |
5158 sun_sound_cflags="-I/usr/demo/SOUND/include" | |
5159 elif test -d "/usr/demo/SOUND/multimedia"; then | |
5160 sun_sound_cflags="-I/usr/demo/SOUND" | |
5161 fi | |
5162 | |
5163 if test -n "$with_native_sound_lib"; then | |
5164 sun_sound_lib="$with_native_sound_lib" | |
5165 elif test -r "/usr/demo/SOUND/lib/libaudio.a"; then | |
5166 sun_sound_lib="/usr/demo/SOUND/lib/libaudio.a" | |
5167 elif test -r "/usr/demo/SOUND/libaudio.a"; then | |
5168 sun_sound_lib="/usr/demo/SOUND/libaudio.a" | |
5169 fi | |
5170 | |
5171 if test -n "$sun_sound_cflags" -a -n "$sun_sound_lib"; then | |
5172 with_native_sound_lib="$sun_sound_lib" | |
5173 sound_cflags="$sun_sound_cflags" | |
5174 sound_found=yes | |
5175 XE_ADD_OBJS(sunplay.o) | |
5176 fi | |
5177 fi | |
5178 | |
5179 dnl Check for SGI and HP native sound libs | |
5180 if test -z "$sound_found"; then | |
5181 case "$ac_cv_build" in | |
5182 *-sgi-* ) | |
5183 if test -z "$with_native_sound_lib"; then | |
5184 AC_CHECK_LIB(audio, ALopenport, with_native_sound_lib="-laudio") | |
5185 fi | |
5186 if test -n "$with_native_sound_lib"; then | |
5187 sound_found=yes sound_cflags="" | |
5188 XE_ADD_OBJS(sgiplay.o) | |
5189 fi ;; | |
5190 hppa*-hp-hpux* ) | |
5191 if test -z "$with_native_sound_lib"; then | |
5192 AC_CHECK_LIB(Alib, AOpenAudio, with_native_sound_lib="-lAlib") | |
5193 fi | |
5194 if test -n "$with_native_sound_lib"; then | |
5195 sound_found=yes | |
5196 XE_ADD_OBJS(hpplay.o) | |
5197 if test "$GCC" = "yes" # Kludge city | |
5198 then sound_cflags="-Dconst= -Dvolatile= -I/usr/audio/examples" | |
5199 else sound_cflags="+e -I/usr/audio/examples" | |
5200 fi | |
5201 fi ;; | |
5202 esac | |
5203 fi | |
5204 | |
3060 | 5205 dnl Win32 uses native sound |
2651 | 5206 if test -z "$sound_found"; then |
3060 | 5207 case "$opsys" in cygwin* | mingw* ) |
2651 | 5208 sound_found=yes |
5209 with_native_sound_lib= | |
5210 XE_ADD_OBJS(ntplay.o) | |
3060 | 5211 ;; |
5212 esac | |
2651 | 5213 fi |
5214 | |
5215 dnl Check for Linux/BSD native sound (also on recent Cygwins) | |
5216 if test -z "$sound_found"; then | |
5217 for dir in "machine" "sys" "linux"; do | |
5218 AC_CHECK_HEADER([${dir}/soundcard.h], [ | |
5219 sound_found=yes | |
2663 | 5220 case "${ac_cv_build}" in |
2651 | 5221 *netbsd* ) |
5222 # #### this is probably not the right way to do this | |
5223 # we should port to native NetBSD stuff | |
2663 | 5224 |
5225 dnl Aidan says: We have other things to be doing. If some | |
5226 dnl energetic NetBSD partisan volunteers, then yeah, cool, | |
5227 dnl but as it is, this works, and is unlikely to stop | |
5228 dnl working any time soon. | |
5229 | |
2651 | 5230 AC_CHECK_LIB(ossaudio, _oss_ioctl, |
2663 | 5231 [with_native_sound_lib=-lossaudio |
2651 | 5232 AC_MSG_WARN([Using NetBSD-deprecated -lossaudio])], |
5233 [sound_found=no]) | |
5234 ;; | |
5235 dnl Aidan sez: OpenBSD as well can use Linux's sound API, and needs | |
5236 dnl the same library. Add here! | |
5237 esac | |
5238 break]) | |
5239 done | |
5240 | |
5241 if test "$sound_found" = "yes"; then | |
5242 need_miscplay=yes | |
5243 XE_ADD_OBJS(linuxplay.o) | |
5244 AC_DEFINE_UNQUOTED(SOUNDCARD_H_FILE, ["${dir}/soundcard.h"]) | |
5245 fi | |
5246 fi | |
5247 | |
5248 if test "$sound_found" = "yes"; then | |
5249 enable_sound_native=yes | |
5250 else | |
5251 if test "$enable_sound_native" = "yes" ; then | |
5252 AC_MSG_WARN([No native libraries found. Disabling native sound support.]) | |
5253 fi | |
5254 enable_sound_native=no | |
5255 fi | |
5256 fi | |
5257 | |
5258 if test "$enable_sound_native" = "yes"; then | |
5259 AC_DEFINE(HAVE_NATIVE_SOUND) | |
5260 test -n "$with_native_sound_lib" && XE_PREPEND($with_native_sound_lib, LIBS) | |
5261 fi | |
5262 | |
3308 | 5263 dnl ALSA sound support |
5264 if test "$enable_sound_alsa" != "no"; then | |
3309 | 5265 AC_CHECK_HEADER([alsa/input.h], [ |
3308 | 5266 AC_CHECK_LIB(asound, snd_pcm_open, have_alsa_sound=yes)]) |
5267 if test "$have_alsa_sound" = "yes"; then | |
5268 enable_sound_alsa=yes | |
5269 AC_DEFINE(HAVE_ALSA_SOUND) | |
5270 XE_ADD_OBJS(alsaplay.o) | |
5271 XE_PREPEND(-lasound, LIBS) | |
5272 else | |
5273 test "$enable_sound_alsa" = "yes" && \ | |
5274 XE_DIE("Required ALSA sound support cannot be provided.") | |
5275 enable_sound_alsa=no | |
5276 fi | |
5277 fi | |
5278 | |
2651 | 5279 dnl NAS Sound support |
5280 if test "$enable_sound_nas" != "no"; then | |
5281 AC_CHECK_HEADER(audio/audiolib.h, [ | |
5282 AC_CHECK_LIB(audio, AuOpenServer, have_nas_sound=yes)]) | |
5283 if test "$have_nas_sound" = "yes"; then | |
5284 enable_sound_nas=yes | |
5285 AC_DEFINE(HAVE_NAS_SOUND) | |
5286 XE_ADD_OBJS(nas.o) | |
5287 XE_PREPEND(-laudio, libs_x) | |
5288 dnl If the nas library does not contain the error jump point, | |
5289 dnl then we force safer behavior. | |
5290 AC_EGREP_HEADER(AuXtErrorJump,audio/Xtutil.h,,[old_nas=yes; AC_DEFINE(NAS_NO_ERROR_JUMP)]) | |
5291 else | |
5292 test "$enable_sound_nas" = "yes" && \ | |
5293 XE_DIE("Required NAS sound support cannot be provided.") | |
5294 enable_sound_nas=no | |
5295 fi | |
5296 fi | |
5297 | |
5298 dnl ESD Sound support | |
5299 if test "$enable_sound_esd" != "no"; then | |
5300 AC_CHECK_PROG(have_esd_config, esd-config, yes, no) | |
5301 if test "$have_esd_config" = "yes"; then | |
5302 save_c_switch_site="$c_switch_site" save_LIBS="$LIBS" | |
5303 XE_APPEND(`esd-config --cflags`, c_switch_site) | |
5304 XE_PREPEND(`esd-config --libs`, LIBS) | |
5305 AC_CHECK_FUNC(esd_play_stream, | |
5306 have_esd_sound=yes, | |
5307 c_switch_site="$save_c_switch_site" LIBS="$save_LIBS") | |
5308 fi | |
5309 | |
5310 if test "$have_esd_sound" = "yes"; then | |
5311 enable_sound_esd=yes | |
5312 need_miscplay=yes | |
5313 XE_ADD_OBJS(esd.o) | |
5314 AC_DEFINE(HAVE_ESD_SOUND) | |
5315 else | |
5316 test "$enable_sound_esd" = "yes" && \ | |
5317 XE_DIE("Required ESD sound support cannot be provided.") | |
5318 enable_sound_esd=no | |
5319 fi | |
5320 fi | |
5321 | |
5322 test "$need_miscplay" = "yes" && XE_ADD_OBJS(miscplay.o) | |
5323 | |
5324 dnl --------------------- | |
5325 dnl TTY-dependent options | |
5326 dnl --------------------- | |
5327 | |
5328 test -z "$with_tty" && with_tty=yes | |
5329 | |
5330 if test "$with_tty" = "yes" ; then | |
3312 | 5331 AC_MSG_CHECKING([for TTY-related features]) |
5332 AC_MSG_RESULT() | |
2651 | 5333 AC_DEFINE(HAVE_TTY) |
5334 | |
5335 dnl Autodetect ncurses. | |
5336 if test -z "$with_ncurses"; then | |
5337 AC_CHECK_LIB(ncurses, tgetent, with_ncurses=yes, with_ncurses=no) | |
5338 fi | |
5339 if test "$with_ncurses" = "yes"; then | |
5340 AC_DEFINE(HAVE_NCURSES) | |
5341 AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h) | |
5342 AC_CHECK_HEADER(ncurses/term.h, term_h_file=ncurses/term.h) | |
5343 XE_ADD_OBJS(terminfo.o) | |
5344 XE_PREPEND(-lncurses, LIBS) | |
5345 | |
5346 if test "$ac_cv_header_ncurses_curses_h" != "yes" ; then | |
5347 dnl Try again, and check for the bogus ncurses/ include bug. | |
5348 dnl (i.e. ncurses/curses.h bogusly includes <unctrl.h> instead of | |
5349 dnl <ncurses/unctrl.h>) | |
5350 save_c_switch_site="$c_switch_site" | |
5351 c_switch_site="$c_switch_site -I/usr/include/ncurses" | |
5352 AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h) | |
5353 if test "$ac_cv_header_ncurses_curses_h" = "yes" | |
5354 then AC_MSG_WARN([Your system has the bogus ncurses include bug.]) | |
5355 else c_switch_site="$save_c_switch_site" | |
5356 fi | |
5357 fi | |
5358 else dnl "$with_ncurses" = "no" | |
5359 dnl Autodetect terminfo/-lcurses/-ltermlib/-ltermcap | |
5360 if test "$have_terminfo" = "yes"; then | |
5361 XE_ADD_OBJS(terminfo.o) | |
5362 if test -n "$libs_termcap"; then | |
5363 XE_PREPEND($libs_termcap, LIBS) | |
5364 else | |
5365 for lib in curses termlib termcap; do | |
5366 AC_CHECK_LIB($lib, tgetent, XE_PREPEND(-l${lib}, LIBS); break) | |
5367 done | |
5368 fi | |
5369 else dnl "$have_terminfo" = "no" && "with_ncurses" = "no" | |
5370 XE_ADD_OBJS(tparam.o) | |
5371 dnl The HP-UX curses library seems to have a badly broken version of select(2) | |
5372 dnl that makes "poll: interrupted system call" messages to appear and | |
5373 dnl Emacs subprocesses to hang (e.g. TeX compilation w/ AUCTeX) */ | |
5374 case "$opsys" in *-hp-hpux* ) libs_termcap="-ltermcap" ;; esac | |
5375 if test -n "$libs_termcap"; then | |
5376 XE_PREPEND($libs_termcap, LIBS) | |
5377 else | |
5378 AC_CHECK_LIB(curses, tgetent, XE_PREPEND(-lcurses, LIBS), | |
5379 AC_CHECK_LIB(termcap, tgetent, XE_PREPEND(-ltermcap, LIBS), | |
5380 XE_ADD_OBJS(termcap.o))) | |
5381 fi | |
5382 fi | |
5383 fi | |
5384 AC_DEFINE_UNQUOTED(CURSES_H_FILE, "${curses_h_file-curses.h}") | |
5385 AC_DEFINE_UNQUOTED(TERM_H_FILE, "${term_h_file-term.h}") | |
5386 | |
5387 dnl General Purpose Mouse (libgpm) support | |
5388 if test "$with_gpm" != "no"; then | |
5389 AC_CHECK_HEADER(gpm.h, [ | |
5390 AC_CHECK_LIB(gpm, Gpm_Open, have_gpm=yes)]) | |
5391 if test "$have_gpm" = "yes"; then | |
5392 with_gpm=yes | |
5393 AC_DEFINE(HAVE_GPM) | |
5394 XE_PREPEND(-lgpm, LIBS) | |
5395 elif test "$with_gpm" = "yes"; then | |
5396 XE_DIE(["GPM requested, but gpm.h or libgpm seems to be missing."]) | |
5397 else | |
5398 with_gpm=no | |
5399 fi | |
5400 fi | |
5401 | |
5402 else dnl "$with_tty" = "no" | |
5403 for feature in ncurses gpm; do | |
5404 if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then | |
5405 AC_MSG_WARN([--with-${feature} ignored: Not valid without TTY support]) | |
5406 fi | |
5407 eval "with_${feature}=no" | |
5408 done | |
5409 fi dnl with_tty | |
5410 | |
5411 dnl Database support | |
5412 dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support. | |
5413 dnl On FreeBSD, both DB and DBM are part of libc. | |
5414 dnl By default, we check for DBM support in libgdbm, then libc, then libdbm. | |
5415 | |
5416 test "$enable_database_gdbm $enable_database_dbm $enable_database_berkdb" \ | |
3312 | 5417 != "no no no" && AC_MSG_CHECKING([for database support]) && \ |
5418 AC_MSG_RESULT() | |
2651 | 5419 |
5420 dnl Check for ndbm.h, required for either kind of DBM support. | |
4699
0e1461b592ce
Check for gdbm/ndbm.h, too.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4661
diff
changeset
|
5421 dnl #### Should we check for gdbm.h, too? (Seen on MacPorts.) |
2651 | 5422 if test "$enable_database_gdbm $enable_database_dbm" != "no no"; then |
4699
0e1461b592ce
Check for gdbm/ndbm.h, too.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4661
diff
changeset
|
5423 ndbm_h_file="" |
0e1461b592ce
Check for gdbm/ndbm.h, too.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4661
diff
changeset
|
5424 AC_CHECK_HEADERS([ndbm.h gdbm/ndbm.h],[ndbm_h_file=$ac_header; break;],[],[]) |
0e1461b592ce
Check for gdbm/ndbm.h, too.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4661
diff
changeset
|
5425 if test "$ndbm_h_found" != "yes"; then |
2651 | 5426 test "$enable_database_gdbm" = "yes" -o \ |
5427 "$enable_database_dbm" = "yes" && \ | |
5428 XE_DIE("Required DBM support cannot be provided.") | |
4699
0e1461b592ce
Check for gdbm/ndbm.h, too.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4661
diff
changeset
|
5429 enable_database_gdbm=no enable_database_dbm=no] |
0e1461b592ce
Check for gdbm/ndbm.h, too.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4661
diff
changeset
|
5430 fi |
2651 | 5431 fi |
5432 | |
5433 dnl Check for DBM support in libgdbm. | |
5434 if test "$enable_database_gdbm" != "no"; then | |
5435 AC_CHECK_LIB(gdbm, dbm_open, [ | |
5436 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
|
5437 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
|
5438 enable_database_gdbm=yes enable_database_dbm=no libdbm="-lgdbm_compat -lgdbm"], [ |
2651 | 5439 if test "$enable_database_gdbm" = "yes"; then |
5440 XE_DIE("Required GNU DBM support cannot be provided.") | |
5441 fi | |
4401
01970033faa6
Configure fixes from Hans de Graaff, as used in Gentoo.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4350
diff
changeset
|
5442 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
|
5443 ]) |
2651 | 5444 fi |
5445 | |
5446 dnl Check for DBM support in libc and libdbm. | |
5447 if test "$enable_database_dbm" != "no"; then | |
5448 AC_CHECK_FUNC(dbm_open, [enable_database_dbm=yes libdbm=], [ | |
5449 AC_CHECK_LIB(dbm, dbm_open, [enable_database_dbm=yes libdbm=-ldbm], [ | |
5450 test "$enable_database_dbm" = "yes" && \ | |
5451 XE_DIE("Required DBM support cannot be provided.") | |
5452 enable_database_dbm=no])]) | |
5453 fi | |
5454 | |
5455 dnl Tell make about the DBM support we detected. | |
5456 test -n "$libdbm" && XE_PREPEND("$libdbm", LIBS) | |
4699
0e1461b592ce
Check for gdbm/ndbm.h, too.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4661
diff
changeset
|
5457 if test "$enable_database_gdbm" = "yes" -o \ |
0e1461b592ce
Check for gdbm/ndbm.h, too.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4661
diff
changeset
|
5458 "$enable_database_dbm" = "yes"; then |
0e1461b592ce
Check for gdbm/ndbm.h, too.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4661
diff
changeset
|
5459 AC_DEFINE_UNQUOTED(NDBM_H_FILE,"$ndbm_h_file") |
2651 | 5460 AC_DEFINE(HAVE_DBM) |
4699
0e1461b592ce
Check for gdbm/ndbm.h, too.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4661
diff
changeset
|
5461 $as_unset ndbm_h_file |
0e1461b592ce
Check for gdbm/ndbm.h, too.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4661
diff
changeset
|
5462 fi |
2651 | 5463 |
3739 | 5464 dnl Check for u_int*_t typedefs. |
5465 AC_CHECK_TYPES([u_int8_t, u_int16_t, u_int32_t]) | |
5466 | |
2651 | 5467 dnl Check for Berkeley DB. |
5468 if test "$enable_database_berkdb" != "no"; then | |
5469 AC_MSG_CHECKING(for Berkeley db.h) | |
5470 for header in "db/db.h" "db.h"; do | |
3312 | 5471 AC_COMPILE_IFELSE([AC_LANG_SOURCE([ |
2651 | 5472 #include <stdlib.h> |
5473 #if !(defined __GLIBC__ && __GLIBC_MINOR__ >= 1) | |
5474 #ifdef HAVE_INTTYPES_H | |
5475 #define __BIT_TYPES_DEFINED__ | |
5476 #include <inttypes.h> | |
3739 | 5477 #if !HAVE_U_INT8_T |
2651 | 5478 typedef uint8_t u_int8_t; |
3739 | 5479 #endif |
5480 #if !HAVE_U_INT16_T | |
2651 | 5481 typedef uint16_t u_int16_t; |
3739 | 5482 #endif |
5483 #if !HAVE_U_INT32_T | |
2651 | 5484 typedef uint32_t u_int32_t; |
3739 | 5485 #endif |
2651 | 5486 #ifdef WE_DONT_NEED_QUADS |
3739 | 5487 #if !HAVE_U_INT64_T |
2651 | 5488 typedef uint64_t u_int64_t; |
5489 #endif | |
5490 #endif | |
5491 #endif | |
3739 | 5492 #endif |
2651 | 5493 #include <$header> |
3312 | 5494 ])], db_h_file="$header"; break) |
2651 | 5495 done |
5496 if test -z "$db_h_file" | |
5497 then AC_MSG_RESULT(no); enable_database_berkdb=no | |
5498 else AC_MSG_RESULT($db_h_file) | |
5499 fi | |
5500 | |
5501 if test "$enable_database_berkdb" != "no"; then | |
5502 AC_MSG_CHECKING(for Berkeley DB version) | |
5503 AC_EGREP_CPP(yes, | |
5504 [#include <$db_h_file> | |
5505 #if DB_VERSION_MAJOR > 1 | |
5506 yes | |
5507 #endif | |
5508 ], [AC_EGREP_CPP(yes, | |
5509 [#include <$db_h_file> | |
5510 #if DB_VERSION_MAJOR > 2 | |
5511 yes | |
5512 #endif | |
5513 ], [AC_EGREP_CPP(yes, | |
5514 [#include <$db_h_file> | |
5515 #if DB_VERSION_MAJOR > 3 | |
5516 yes | |
5517 #endif | |
5518 ], [AC_MSG_RESULT(4); dbfunc=db_create; dbver=4],[ | |
5519 AC_MSG_RESULT(3); dbfunc=db_create; dbver=3])],[ | |
5520 AC_MSG_RESULT(2); dbfunc=db_open; dbver=2])],[ | |
5521 AC_MSG_RESULT(1); dbfunc=dbopen; dbver=1]) | |
5522 AC_CHECK_FUNC($dbfunc, enable_database_berkdb=yes need_libdb=no, [ | |
5523 AC_CHECK_LIB(db, $dbfunc, enable_database_berkdb=yes need_libdb=yes)]) | |
5524 fi | |
5525 | |
5526 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
|
5527 if test "$enable_database_berkdb" = "yes" -a "$dbver" = "4"; then |
2651 | 5528 rm -f $tempcname |
5529 echo "#include <$db_h_file>" > $tempcname | |
5530 echo "configure___ dbfunc=db_create" >> $tempcname | |
5531 define(TAB, [ ])dnl | |
5532 eval `$CPP -Isrc $tempcname \ | |
5533 | sed -n -e "s/[[ TAB]]*=[[ TAB\"]]*/='/" -e "s/[[ TAB\"]]*\$/'/" -e "s/^configure___//p"` | |
5534 rm -f $tempcname | |
5535 AC_MSG_WARN("db_create is really $dbfunc") | |
5536 AC_CHECK_LIB(db, $dbfunc, enable_database_berkdb=yes need_libdb=yes) | |
5537 fi | |
5538 | |
5539 if test "$enable_database_berkdb" = "yes"; then | |
5540 AC_DEFINE_UNQUOTED(DB_H_FILE, "$db_h_file") | |
5541 AC_DEFINE(HAVE_BERKELEY_DB) | |
5542 test "$need_libdb" = "yes" && XE_PREPEND(-ldb, LIBS) | |
5543 else enable_database_berkdb=no | |
5544 fi | |
5545 fi | |
5546 | |
5547 if test "$enable_database_gdbm $enable_database_dbm $enable_database_berkdb" \ | |
5548 != "no no no"; then | |
5549 AC_DEFINE(HAVE_DATABASE) | |
5550 fi | |
5551 | |
5552 dnl Socks support | |
5553 if test "$with_socks" = "yes"; then | |
5554 AC_CHECK_LIB(socks, SOCKSinit) | |
5555 test -n "$ac_cv_lib_socks_SOCKSinit" && AC_DEFINE(HAVE_SOCKS) | |
5556 fi | |
5557 | |
5558 dnl Usage tracking (undocumented and likely unused option) | |
5559 if test "$usage_tracking" = "yes"; then | |
5560 AC_DEFINE(USAGE_TRACKING) | |
5561 XE_PREPEND(-Bstatic -lut -Bdynamic, LIBS) | |
5562 fi | |
5563 | |
5564 dnl Enhanced number support | |
5565 if test "$enable_bignum" = "gmp"; then | |
5566 AC_CHECK_HEADER(gmp.h, [ | |
5567 AC_CHECK_LIB(gmp, __gmpz_init, have_mpz_init=yes)]) | |
5568 if test "$have_mpz_init" = "yes"; then | |
5569 AC_DEFINE(WITH_NUMBER_TYPES) | |
5570 AC_DEFINE(WITH_GMP) | |
5571 XE_PREPEND(-lgmp, LIBS) | |
5572 else | |
5573 XE_DIE("Required GMP numeric support cannot be provided.") | |
5574 fi | |
5575 elif test "$enable_bignum" = "mp"; then | |
5576 for library in "" "-lcrypto"; do | |
5577 AC_CHECK_HEADER(mp.h, [ | |
5578 AC_CHECK_LIB(mp, mp_mfree, have_mp_mfree=yes; break, [ | |
5579 AC_CHECK_LIB(mp, mfree, have_mfree=yes; break, , $library)], | |
5580 $library)]) | |
5581 done | |
5582 if test "$have_mp_mfree" = "yes"; then | |
5583 AC_DEFINE(MP_PREFIX) | |
5584 XE_APPEND(-lmp, LIBS) | |
5585 if test "$library" != ""; then | |
5586 XE_APPEND($library, LIBS) | |
5587 fi | |
5588 AC_CHECK_FUNC(mp_move, [AC_DEFINE(HAVE_MP_MOVE)]) | |
5589 elif test "$have_mfree" = "yes"; then | |
5590 XE_APPEND(-lmp, LIBS) | |
5591 if test "$library" != ""; then | |
5592 XE_APPEND($library, LIBS) | |
5593 fi | |
5594 AC_CHECK_FUNC(move, [AC_DEFINE(HAVE_MP_MOVE)]) | |
5595 else | |
5596 XE_DIE("Required MP numeric support cannot be provided.") | |
5597 fi | |
5598 AC_DEFINE(WITH_NUMBER_TYPES) | |
5599 AC_DEFINE(WITH_MP) | |
5600 fi | |
5601 | |
5602 dnl Unfortunately, just because we can link doesn't mean we can run. | |
5603 dnl One of the above link tests may have succeeded but caused resulting | |
5604 dnl executables to fail to run. Also any tests using AC_RUN_IFELSE will | |
5605 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
|
5606 AC_RUN_IFELSE([AC_LANG_SOURCE([int main(int c,char **v){return 0;}])],[:],[ |
2651 | 5607 echo "" |
5608 echo "*** PANIC *** The C compiler can no longer build working executables." | |
5609 echo "*** PANIC *** Please examine the tail of config.log for runtime errors." | |
5610 echo "*** PANIC *** The most likely reason for this problem is that configure" | |
5611 echo "*** PANIC *** links with shared libraries, but those libraries cannot be" | |
5612 echo "*** PANIC *** found at run time." | |
5613 echo "*** PANIC ***" | |
5614 echo "*** PANIC *** On a Linux system, edit /etc/ld.so.conf and re-run ldconfig." | |
5615 echo "*** PANIC *** On other systems, try telling configure where to find the" | |
5616 echo "*** PANIC *** shared libraries using the --with-site-runtime-libraries option" | |
5617 echo "*** PANIC ***" | |
5618 echo "*** PANIC *** Another way to shoot yourself in the foot is to specify" | |
5619 echo "*** PANIC *** --with-FEATURE when FEATURE is not actually installed" | |
5620 echo "*** PANIC *** on your system. Don't do that." | |
5621 exit 1]) | |
5622 | |
5623 dnl Process support | |
5624 if test "$win32_processes" != "yes"; then | |
5625 AC_DEFINE(HAVE_UNIX_PROCESSES) | |
5626 fi | |
5627 | |
5628 dnl -------------------------------- | |
5629 dnl Compute SUBST-itutable variables | |
5630 dnl -------------------------------- | |
5631 | |
5632 dnl We ignore (C|LD)_SWITCH_X_(MACHINE|SYSTEM) | |
5633 dnl Use XE_SPACE instead of plain assignment statements to remove extraneous blanks | |
5634 if test "$enable_modules" = "yes"; then | |
5635 ld_libs_module= | |
5636 else | |
2973 | 5637 XE_SPACE(ld_libs_module, $ldap_libs $postgresql_libs $canna_libs) |
2651 | 5638 fi |
5639 | |
5640 XE_SPACE(CFLAGS, $CFLAGS) | |
5641 XE_SPACE(extra_objs, $extra_objs) | |
5642 XE_SPACE(c_switch_general, -DHAVE_CONFIG_H $c_switch_site $c_switch_machine $c_switch_system) | |
5643 XE_SPACE(c_switch_window_system, $c_switch_x_site $c_switch_gtk $X_CFLAGS) | |
5644 XE_SPACE(c_switch_all, $c_switch_general $c_switch_window_system) | |
5645 XE_SPACE(ld_switch_general, $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_run) | |
5646 XE_SPACE(ld_switch_window_system, $ld_switch_x_site) | |
5647 XE_SPACE(ld_switch_all, $ld_switch_general $ld_switch_window_system) | |
5648 XE_SPACE(ld_libs_general, $LIBS $libs_machine $libs_system $libs_standard) | |
5649 XE_SPACE(ld_libs_window_system, $X_EXTRA_LIBS $libs_x $libs_gtk $X_PRE_LIBS) | |
5650 XE_SPACE(ld_libs_all, $ld_libs_window_system $ld_libs_general $ld_libs_module) | |
5651 | |
5652 dnl For no-module builds, make the src dir last | |
5653 if test "$enable_modules" = "no"; then | |
5654 XE_APPEND(src, MAKE_SUBDIR) | |
5655 fi | |
5656 | |
5657 dnl Compute lists of Makefiles and subdirs | |
5658 AC_SUBST(SRC_SUBDIR_DEPS) | |
5659 internal_makefile_list="Makefile.in" | |
5660 SUBDIR_MAKEFILES='' | |
5661 test -d lock || mkdir lock | |
5662 for dir in $MAKE_SUBDIR; do | |
5663 case "$dir" in */* ) dnl Implement mkdir -p | |
5664 ( for d in `echo $dir | sed 's:/: :g'` ; do | |
5665 test -d "$d" || mkdir "$d"; cd "$d" | |
5666 done ) ;; | |
5667 * ) test -d "$dir" || mkdir "$dir" ;; | |
5668 esac | |
5669 XE_SPACE(SUBDIR_MAKEFILES, $SUBDIR_MAKEFILES $dir/Makefile $dir/GNUmakefile) | |
5670 XE_SPACE(internal_makefile_list, $internal_makefile_list $dir/Makefile.in) | |
5671 done | |
5672 AC_SUBST(INSTALL_ARCH_DEP_SUBDIR) | |
5673 AC_SUBST(MAKE_SUBDIR) | |
5674 AC_SUBST(SUBDIR_MAKEFILES) | |
5675 | |
5676 dnl Make s&m symlinks in the src directory, for config.h. | |
5677 for dir in src/s src/m; do | |
5678 if test ! -d "$dir" ; then | |
5679 echo Making symbolic link to "$srcdir/$dir" | |
5680 ${LN_S} "$srcdir/$dir" "$dir" | |
5681 fi | |
5682 done | |
5683 | |
5684 dnl Also make modules/common link if needed for the module Makefiles. | |
5685 if test "$need_modules_common" = "yes"; then | |
5686 for dir in modules/common; do | |
5687 if test ! -d "$dir" ; then | |
5688 echo Making symbolic link to "$srcdir/$dir" | |
5689 ${LN_S} "$srcdir/$dir" "$dir" | |
5690 fi | |
5691 done | |
5692 fi | |
5693 | |
5694 if test "$verbose" = "yes"; then | |
5695 echo "" | |
5696 PRINT_VAR(extra_objs | |
5697 c_switch_general c_switch_window_system c_switch_all | |
5698 ld_switch_general ld_switch_window_system ld_switch_all | |
5699 ld_libs_general ld_libs_window_system ld_libs_all) | |
5700 echo "" | |
5701 fi | |
5702 | |
5703 dnl ---------------------------------------------- | |
5704 dnl Create some auxiliary files for developers. | |
5705 dnl ---------------------------------------------- | |
5706 | |
3418 | 5707 dnl Unlike TAGS, debugger init files depend on config.h. |
5708 dnl Regenerate them locally on every configure. | |
2651 | 5709 dnl Create a .gdbinit useful for debugging XEmacs |
3418 | 5710 if test -f "$srcdir/etc/gdbinit.in"; then |
3092 | 5711 test "$verbose" = "yes" && echo "creating src/.gdbinit.in" |
3418 | 5712 cp $srcdir/etc/gdbinit.in src/.gdbinit.in |
2651 | 5713 fi |
5714 | |
5715 dnl Create a .dbxrc useful for debugging XEmacs | |
3418 | 5716 if test -f "$srcdir/etc/dbxrc.in"; then |
3092 | 5717 test "$verbose" = "yes" && echo "creating src/.dbxrc.in" |
3418 | 5718 echo ". $srcdir/etc/dbxrc.in" > "src/.dbxrc.in" |
2651 | 5719 fi |
5720 | |
5721 dnl Create a useful TAGS file | |
5722 if test -f "$srcdir/TAGS" -a ! -f "TAGS"; then | |
5723 test "$verbose" = "yes" && echo "creating TAGS" | |
5724 echo " | |
5725 $srcdir/TAGS,include" > "TAGS" | |
5726 fi | |
5727 | |
5728 dnl Create top level .sbinit for Sun compilers | |
5729 if test "$__SUNPRO_C" = "yes"; then | |
5730 test "$verbose" = "yes" && echo "creating .sbinit" | |
5731 ( echo "# For use with Sun WorkShop's Source browser." | |
5732 echo "# See sbquery(1) and sbinit(4) for more information" | |
5733 for dir in $MAKE_SUBDIR; do echo "import $dir"; done | |
5734 ) > .sbinit | |
5735 fi | |
5736 | |
5737 dnl There are no more compile tests; remove the core they created. | |
5738 rm -f core | |
5739 | |
5740 dnl ---------------------------------------------- | |
5741 dnl Substitute into Makefile, config.h and paths.h | |
5742 dnl ---------------------------------------------- | |
5743 | |
5744 dnl what sort of things to edit into Makefile, config.h and paths.h | |
5745 dnl configuration here uncanonicalized to avoid exceeding size limits. | |
5746 | |
5747 AC_SUBST(PROGNAME) | |
5748 AC_SUBST(version) | |
3972 | 5749 AC_SUBST(verbose_version) |
2651 | 5750 AC_SUBST(inststaticdir) |
5751 AC_SUBST(instvardir) | |
5752 AC_SUBST(srcdir) | |
5753 AC_SUBST(bindir) | |
4118 | 5754 AC_SUBST(datarootdir) |
2651 | 5755 AC_SUBST(datadir) |
5756 AC_SUBST(statedir) | |
5757 AC_SUBST(libdir) | |
5758 AC_SUBST(mandir) | |
5759 AC_SUBST(extra_includes) | |
5760 | |
5761 AC_SUBST(prefix) | |
5762 AC_SUBST(PREFIX_USER_DEFINED) | |
4660
32be564c53dd
More accurate tests for explicitly-set paths.
Mike Sperber <sperber@deinprogramm.de>
parents:
4656
diff
changeset
|
5763 XE_EXPAND_VARIABLE(prefix,PREFIX) |
4661
24224362882c
Expand @PREFIX@ in paths.h.
Mike Sperber <sperber@deinprogramm.de>
parents:
4660
diff
changeset
|
5764 AC_SUBST(PREFIX) |
2651 | 5765 |
5766 AC_SUBST(exec_prefix) | |
5767 AC_SUBST(EXEC_PREFIX_USER_DEFINED) | |
4660
32be564c53dd
More accurate tests for explicitly-set paths.
Mike Sperber <sperber@deinprogramm.de>
parents:
4656
diff
changeset
|
5768 XE_EXPAND_VARIABLE(exec_prefix,EXEC_PREFIX) |
2651 | 5769 AC_SUBST(EXEC_PREFIX) |
5770 | |
5771 AC_SUBST(infodir) | |
5772 AC_SUBST(INFODIR_USER_DEFINED) | |
3729 | 5773 XE_EXPAND_VARIABLE(infodir,INFODIR) |
2651 | 5774 AC_SUBST(INFODIR) |
5775 | |
5776 AC_SUBST(infopath,$with_infopath) | |
5777 AC_SUBST(INFOPATH_USER_DEFINED) | |
3729 | 5778 XE_EXPAND_VARIABLE(with_info_path,INFOPATH) |
4455
49f8ed034500
Fix path-configuration glitches:
Mike Sperber <sperber@deinprogramm.de>
parents:
4450
diff
changeset
|
5779 AC_SUBST(INFOPATH) |
2651 | 5780 |
3179 | 5781 test -n "$with_user_packages" && with_early_packages=$with_user_packages |
5782 AC_SUBST(early_packages,$with_early_packages) | |
5783 AC_SUBST(EARLY_PACKAGE_DIRECTORIES_USER_DEFINED) | |
3729 | 5784 XE_EXPAND_VARIABLE(with_early_packages,EARLY_PACKAGE_DIRECTORIES) |
3179 | 5785 AC_SUBST(EARLY_PACKAGE_DIRECTORIES) |
5786 | |
5787 test -n "$with_system_packages" && with_late_packages=$with_system_packages | |
5788 AC_SUBST(late_packages,$with_late_packages) | |
5789 AC_SUBST(LATE_PACKAGE_DIRECTORIES_USER_DEFINED) | |
3729 | 5790 XE_EXPAND_VARIABLE(with_late_packages,LATE_PACKAGE_DIRECTORIES) |
3179 | 5791 AC_SUBST(LATE_PACKAGE_DIRECTORIES) |
5792 | |
5793 test -n "$with_legacy_packages" && with_last_packages=$with_legacy_packages | |
5794 AC_SUBST(last_packages,$with_last_packages) | |
5795 AC_SUBST(LAST_PACKAGE_DIRECTORIES_USER_DEFINED) | |
3729 | 5796 XE_EXPAND_VARIABLE(with_last_packages,LAST_PACKAGE_DIRECTORIES) |
3179 | 5797 AC_SUBST(LAST_PACKAGE_DIRECTORIES) |
2651 | 5798 |
5799 AC_SUBST(package_path,$with_package_path) | |
5800 AC_SUBST(PACKAGE_PATH_USER_DEFINED) | |
3729 | 5801 XE_EXPAND_VARIABLE(with_package_path,PACKAGE_PATH) |
2651 | 5802 AC_SUBST(PACKAGE_PATH) |
5803 | |
5804 AC_SUBST(lispdir, $with_lispdir) | |
5805 AC_SUBST(LISPDIR_USER_DEFINED) | |
3729 | 5806 XE_EXPAND_VARIABLE(with_lispdir,LISPDIR) |
2651 | 5807 AC_SUBST(LISPDIR) |
5808 | |
5809 AC_SUBST(moduledir,$with_moduledir) | |
5810 AC_SUBST(MODULEDIR_USER_DEFINED) | |
3729 | 5811 XE_EXPAND_VARIABLE(with_moduledir,MODULEDIR) |
2651 | 5812 AC_SUBST(MODULEDIR) |
5813 | |
5814 AC_SUBST(sitelispdir,$with_sitelispdir) | |
5815 AC_SUBST(SITELISPDIR_USER_DEFINED) | |
3729 | 5816 XE_EXPAND_VARIABLE(sitelispdir,SITELISPDIR) |
2651 | 5817 AC_SUBST(SITELISPDIR) |
5818 | |
5819 AC_SUBST(sitemoduledir) | |
5820 AC_SUBST(SITEMODULEDIR_USER_DEFINED) | |
3729 | 5821 XE_EXPAND_VARIABLE(sitemoduledir,SITEMODULEDIR) |
2651 | 5822 AC_SUBST(SITEMODULEDIR) |
5823 | |
5824 AC_SUBST(etcdir,$with_etcdir) | |
5825 AC_SUBST(ETCDIR_USER_DEFINED) | |
3729 | 5826 XE_EXPAND_VARIABLE(with_etcdir,ETCDIR) |
2651 | 5827 AC_SUBST(ETCDIR) |
5828 | |
5829 AC_SUBST(archlibdir,$with_archlibdir) | |
5830 AC_SUBST(ARCHLIBDIR_USER_DEFINED) | |
5831 ARCHLIBDIR=$with_archlibdir | |
3729 | 5832 XE_EXPAND_VARIABLE(with_archlibdir,ARCHLIBDIR) |
2651 | 5833 AC_SUBST(ARCHLIBDIR) |
5834 | |
5835 AC_SUBST(docdir,$with_docdir) | |
5836 AC_SUBST(DOCDIR_USER_DEFINED) | |
3729 | 5837 XE_EXPAND_VARIABLE(with_docdir,DOCDIR) |
2651 | 5838 AC_SUBST(DOCDIR) |
5839 | |
5840 AC_SUBST(docdir) | |
5841 AC_SUBST(bitmapdir) | |
5842 AC_SUBST(extra_objs) | |
5843 | |
5844 dnl The following flags combine all the information from: | |
5845 dnl - command line options (user always gets priority) | |
5846 dnl - user environment variables | |
5847 dnl - determined by configure | |
5848 dnl - the s&m header files (required for ellcc) | |
5849 AC_SUBST(machfile) | |
5850 AC_SUBST(opsysfile) | |
5851 AC_SUBST(c_switch_general) | |
5852 AC_SUBST(c_switch_window_system) | |
5853 AC_SUBST(c_switch_all) | |
5854 AC_SUBST(ld_switch_general) | |
5855 AC_SUBST(ld_switch_window_system) | |
5856 AC_SUBST(ld_switch_all) | |
5857 AC_SUBST(ld_libs_general) | |
5858 AC_SUBST(ld_libs_window_system) | |
5859 AC_SUBST(ld_libs_all) | |
5860 AC_SUBST(CFLAGS) | |
5861 AC_SUBST(CPPFLAGS) | |
5862 AC_SUBST(LDFLAGS) | |
5863 RECURSIVE_MAKE_ARGS="\$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'" | |
5864 AC_SUBST(RECURSIVE_MAKE_ARGS) | |
5865 | |
5866 AC_SUBST(native_sound_lib,$with_native_sound_lib) | |
5867 AC_SUBST(sound_cflags) | |
5868 AC_SUBST(RANLIB) | |
5869 AC_SUBST(dynodump_arch) | |
5870 | |
5871 AC_SUBST(XEMACS_CC) | |
5872 AC_SUBST(XE_CFLAGS) | |
5873 | |
5874 dnl The default is yes | |
5875 if test "$with_prefix" = "yes"; then | |
5876 AC_DEFINE(PREFIX_USER_DEFINED) | |
5877 fi | |
5878 | |
5879 dnl The default is no | |
5880 if test "$with_site_lisp" = "no"; then | |
5881 AC_DEFINE(INHIBIT_SITE_LISP) | |
5882 fi | |
5883 dnl The default is yes | |
5884 if test "$with_site_modules" = "no"; then | |
5885 AC_DEFINE(INHIBIT_SITE_MODULES) | |
5886 fi | |
5887 | |
5888 XE_SPACE(ac_configure_args, $ac_configure_args) | |
3765 | 5889 dnl Put back the leading space to work around problems with |
5890 dnl 'config.status --recheck' under autoconf 2.60 and 2.61. | |
5891 ac_configure_args=" $ac_configure_args" | |
2651 | 5892 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "$ac_cv_build") |
5893 AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "$ac_configure_args") | |
5894 | |
5895 dnl Following are deprecated | |
5896 | |
5897 null_string="" | |
5898 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, $null_string) | |
5899 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, $null_string) | |
5900 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE, $null_string) | |
5901 AC_DEFINE_UNQUOTED(LD_SWITCH_SITE, $null_string) | |
5902 AC_DEFINE_UNQUOTED(C_SWITCH_SITE, $null_string) | |
5903 | |
5904 dnl Note: as a general rule, *only* define things here that are not | |
5905 dnl autodetected. For things that are autodetected, define them | |
5906 dnl at the point where the autodetection occurs or would occur, | |
5907 dnl so that the user gets immediate feedback on the results of the | |
5908 dnl autodetection. | |
5909 | |
5910 if test "$GNU_MALLOC" = "yes"; then AC_DEFINE(GNU_MALLOC) | |
5911 elif test "$with_system_malloc" = "yes"; then AC_DEFINE(USE_SYSTEM_MALLOC) | |
5912 elif test "$with_debug_malloc" = "yes"; then AC_DEFINE(USE_DEBUG_MALLOC) | |
5913 AC_DEFINE(USE_SYSTEM_MALLOC) | |
5914 fi | |
5915 test "$GCC" = "yes" && AC_DEFINE(USE_GCC) | |
5916 test "$enable_external_widget" = "yes" && AC_DEFINE(EXTERNAL_WIDGET) | |
5917 test "$enable_kkcc" = "yes" && AC_DEFINE(USE_KKCC) | |
3092 | 5918 test "$enable_newgc" = "yes" && AC_DEFINE(NEW_GC) |
5919 test "$have_vdb_posix" = "yes" && AC_DEFINE(VDB_POSIX) | |
5920 test "$have_vdb_fake" = "yes" && AC_DEFINE(VDB_FAKE) | |
2651 | 5921 test "$enable_quick_build" = "yes" && AC_DEFINE(QUICK_BUILD) |
5922 test "$with_purify" = "yes" && AC_DEFINE(PURIFY) | |
5923 test "$with_quantify" = "yes" && AC_DEFINE(QUANTIFY) | |
5924 test "$with_pop" = "yes" && AC_DEFINE(MAIL_USE_POP) | |
5925 test "$with_kerberos" = "yes" && AC_DEFINE(KERBEROS) | |
5926 test "$with_hesiod" = "yes" && AC_DEFINE(HESIOD) | |
5927 test "$enable_union_type" = "yes" && AC_DEFINE(USE_UNION_TYPE) | |
5928 test "$enable_pdump" = "yes" && AC_DEFINE(PDUMP) | |
2720 | 5929 test "$enable_dump_in_exec" = "yes" && AC_DEFINE(DUMP_IN_EXEC) |
2651 | 5930 test "$with_ipv6_cname" = "yes" && AC_DEFINE(IPV6_CANONICALIZE) |
5931 | |
5932 | |
5933 | |
5934 dnl ------------------------------------------------------------------------- | |
5935 dnl ------------------------------- | |
5936 dnl Report on what we decided to do | |
5937 dnl ------------------------------- | |
5938 | |
5939 dnl #### We should tag this as the _build_ environment. | |
5940 dnl Before doing that, though, must check if tools care about line 1. | |
5941 | |
5942 ( | |
5943 dnl /etc/osversion is on SONY NEWS-OS | |
5944 if test -f /etc/osversion; then dnl SONY NEWS-OS | |
5945 echo "osversion: `cat /etc/osversion`" | |
5946 else | |
5947 echo "uname -a: `uname -a`" | |
5948 fi | |
5949 echo "" | |
5950 echo "$progname $ac_configure_args" | |
5951 ) > Installation | |
5952 | |
5953 if test ! -z ${emacs_beta_version} ; then | |
5954 if test -z "${emacs_is_beta}" ; then | |
5955 xemacs_betaname=".${emacs_beta_version}" | |
5956 else | |
5957 xemacs_betaname="-b${emacs_beta_version}" | |
5958 fi | |
5959 else | |
5960 xemacs_betaname="" | |
5961 fi | |
5962 | |
5963 dnl Start stdout redirection to '| tee -a Installation' | |
5964 ( | |
5965 echo " | |
5966 | |
2938 | 5967 XEmacs ${emacs_major_version}.${emacs_minor_version}${xemacs_betaname} \"$xemacs_codename\" $xemacs_extra_name configured for \`$ac_cv_build'." |
2651 | 5968 |
5969 echo " | |
5970 Compilation Environment and Installation Defaults:" | |
5971 echo " Source code location: $srcdir" | |
5972 echo " Installation prefix: $prefix" | |
5973 if test -n "$with_site_includes"; then | |
5974 echo " Additional header files: $with_site_includes" | |
5975 fi | |
5976 if test -n "$with_site_libraries"; then | |
5977 echo " Additional libraries: $with_site_libraries" | |
5978 fi | |
5979 if test -n "$with_site_prefixes"; then | |
5980 echo " Additional prefixes: $with_site_prefixes" | |
5981 fi | |
5982 if test -n "$runpath"; then | |
5983 echo " Runtime library search path: $runpath" | |
5984 fi | |
5985 | |
5986 if test -n "$opsysfile" | |
5987 then echo " Operating system description file: \`$opsysfile'" | |
5988 else echo " Not using any operating system description file" | |
5989 fi | |
5990 if test -n "$machfile" | |
5991 then echo " Machine description file: \`$machfile'" | |
5992 else echo " Not using any machine description file" | |
5993 fi | |
5994 | |
5995 echo " Compiler version: $compiler_version" | |
5996 if test -n "$gcc_compiler_specs"; then | |
5997 echo " - GCC specs file: $gcc_compiler_specs" | |
5998 fi | |
5999 echo " - Compiler command: $XEMACS_CC $XE_CFLAGS" | |
6000 if test "$CC" != "$XEMACS_CC"; then | |
6001 echo " Compiler version for lib-src: (detection code unimplemented)" | |
6002 echo " - Compiler command for lib-src: $CC $CFLAGS" | |
6003 if test "$xemacs_cc_cc_mismatch" = "yes"; then | |
6004 echo " WARNING: CC and XEMACS_CC mismatched; check CFLAGS carefully." | |
6005 fi | |
6006 fi | |
6007 echo " libc version: $libc_version" | |
6008 echo " Relocating allocator for buffers: $with_rel_alloc" | |
6009 echo " GNU version of malloc: ${GNU_MALLOC}${GNU_MALLOC_reason}" | |
6010 case "$ld_switch_site" in | |
6011 *nocombreloc*) echo " Linking with \`-z nocombreloc'. | |
6012 - Consider configuring with --enable-pdump." ;; | |
6013 esac | |
6014 | |
6015 echo " | |
6016 Window System:" | |
6017 if test "$with_msw" = "yes"; then | |
6018 echo " Compiling in support for the Microsoft window system." | |
6019 fi | |
6020 if test "$with_x11" = "yes"; then | |
6021 echo " Compiling in support for the X window system:" | |
6022 echo " - X Windows headers location: $x_includes" | |
6023 echo " - X Windows libraries location: $x_libraries" | |
6024 if test "$with_xauth" != yes; then | |
6025 echo " - Xau (X authority) not available." | |
6026 fi | |
6027 if test "$with_xmu" != yes; then | |
6028 echo " - Xmu library not available; substituting equivalent routines." | |
6029 fi | |
6030 if test "$with_wmcommand" != no; then | |
6031 echo " - Handling WM_COMMAND properly." | |
6032 fi | |
3354 | 6033 if test "$with_fontconfig" = "yes"; then |
6034 echo " - Using fontconfig to manage fonts." | |
6035 fi | |
3166 | 6036 if test "$with_xft_emacs" = "yes"; then |
3094 | 6037 echo " - Compiling in support for Xft antialiased fonts (EXPERIMENTAL)." |
6038 fi | |
2651 | 6039 fi |
3019 | 6040 if test "$need_motif" = "yes" ; then |
6041 echo " Compiling in support for Motif." | |
6042 if test "$have_lesstif" = "yes"; then | |
6043 echo " - Using LessTif implementation." | |
6044 fi | |
6045 echo " *WARNING* Many versions of Motif are buggy, requiring workarounds." | |
6046 echo " You are likely to experience slow redisplay." | |
6047 echo " You may need to install vendor patches to Motif." | |
6048 echo " See PROBLEMS for more information." | |
6049 fi | |
2651 | 6050 if test "$need_athena" = "yes"; then |
6051 echo " Compiling in support for the Athena widget set:" | |
6052 echo " - Athena headers location: $athena_h_path" | |
6053 echo " - Athena library to link: $athena_lib" | |
6054 fi | |
6055 case "$enable_menubars" in | |
6056 gtk ) echo " Using GTK menubars." ;; | |
6057 lucid ) echo " Using Lucid menubars." ;; | |
6058 motif ) echo " Using Motif menubars." | |
6059 echo " *WARNING* The Motif menubar implementation is currently buggy." | |
6060 echo " We recommend using the Lucid menubar instead." | |
6061 echo " Re-run configure with --enable-menubars='lucid'." ;; | |
6062 msw ) echo " Using MS-Windows menubars." ;; | |
6063 esac | |
3094 | 6064 if test "$with_xft_menubars" = "yes"; then |
6065 echo " - Using Xft to render antialiased fonts in menubars." | |
6066 echo " WARNING: This feature will be replaced with a face." | |
6067 fi | |
2651 | 6068 case "$enable_scrollbars" in |
6069 gtk ) echo " Using GTK scrollbars." ;; | |
6070 lucid ) echo " Using Lucid scrollbars." ;; | |
6071 motif ) echo " Using Motif scrollbars." ;; | |
6072 athena ) echo " Using Athena scrollbars." ;; | |
6073 msw ) echo " Using MS-Windows scrollbars." ;; | |
6074 esac | |
6075 case "$enable_dialogs" in | |
6076 gtk ) echo " Using GTK dialog boxes." ;; | |
6077 motif ) echo " Using Motif dialog boxes." | |
6078 if test "$unexec" = "unexaix.o"; then if test "`uname -v`" = 4 -a "`uname -r`" -ge 3; then | |
6079 echo " *WARNING* The Motif dialog boxes cause problems on AIX 4.3 and higher." | |
6080 echo " We recommend using the Athena dialog boxes instead." | |
6081 echo " Install libXaw and re-run configure with --enable-dialogs='athena'." | |
6082 echo " Read the PROBLEMS file for more information." | |
6083 fi; fi ;; | |
6084 athena ) echo " Using Athena dialog boxes." ;; | |
6085 msw ) echo " Using MS-Windows dialog boxes." ;; | |
6086 esac | |
6087 case "$enable_widgets" in | |
6088 gtk ) echo " Using GTK native widgets." ;; | |
6089 motif ) echo " Using Motif native widgets." ;; | |
6090 athena ) echo " Using Athena native widgets." ;; | |
6091 msw ) echo " Using MS-Windows native widgets." ;; | |
6092 esac | |
3094 | 6093 if test "$with_xft_tabs" = "yes"; then |
6094 echo " - Using Xft to render antialiased fonts in tab controls." | |
6095 echo " WARNING: This feature will be replaced with a face." | |
6096 fi | |
4497
f863b2ee146f
Rename xft_gauge to xft_gauges.
Mats Lidell <matsl@xemacs.org>
parents:
4496
diff
changeset
|
6097 if test "$with_xft_gauges" = "yes"; then |
3094 | 6098 echo " - Using Xft to render antialiased fonts in progress bars." |
6099 echo " WARNING: This feature will be replaced with a face." | |
6100 echo " WARNING: This feature not yet implemented; setting ignored." | |
6101 fi | |
2651 | 6102 if test "$with_dragndrop" = yes; then |
6103 echo " Compiling in support for Drag'n'Drop (EXPERIMENTAL)." | |
6104 echo " - Drag'n'Drop prototype: $dragndrop_proto." | |
6105 fi | |
6106 | |
6107 echo " | |
6108 TTY:" | |
6109 test "$with_ncurses" = yes && echo " Compiling in support for ncurses." | |
6110 test "$with_gpm" = yes && echo " Compiling in support for GPM (General Purpose Mouse)." | |
6111 | |
6112 echo " | |
6113 Images:" | |
4708
1cecc3e9f0a0
Use giflib or libungif to provide GIF support, instead of using internal
Jerry James <james@xemacs.org>
parents:
4699
diff
changeset
|
6114 test "$with_gif" = yes && echo " Compiling in support for GIF images." |
2651 | 6115 if test "$with_xpm" = yes; then |
6116 echo " Compiling in support for XPM images." | |
6117 elif test "$with_x11" = yes; then | |
6118 echo " WARNING: -----------------------------------------------------------" | |
6119 echo " WARNING: Compiling without XPM image support." | |
6120 if test "$xpm_problem" != ""; then | |
6121 echo " Reason: $xpm_problem" | |
6122 fi | |
6123 echo " WARNING: You should strongly consider installing XPM." | |
6124 echo " WARNING: Otherwise toolbars and other graphics will look suboptimal." | |
6125 echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)" | |
6126 echo " WARNING: -----------------------------------------------------------" | |
6127 fi | |
6128 if test "$with_png" = yes; then | |
6129 echo " Compiling in support for PNG images." | |
6130 elif test "$window_system" != "none"; then | |
6131 echo " WARNING: -----------------------------------------------------------" | |
6132 echo " WARNING: Compiling without PNG image support." | |
6133 if test "$png_problem" != ""; then | |
6134 echo " Reason: $png_problem" | |
6135 fi | |
6136 echo " WARNING: You should strongly consider installing the PNG libraries." | |
6137 echo " WARNING: Otherwise certain images and glyphs may not display." | |
6138 echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)" | |
6139 echo " WARNING: -----------------------------------------------------------" | |
6140 fi | |
6141 test "$with_jpeg" = yes && echo " Compiling in support for JPEG images." | |
6142 test "$with_tiff" = yes && echo " Compiling in support for TIFF images." | |
6143 test "$with_xface" = yes && echo " Compiling in support for X-Face message headers." | |
6144 | |
6145 echo " | |
6146 Sound:" | |
6147 test "$enable_sound_native" = yes && echo " Compiling in support for sound (native)." | |
3308 | 6148 test "$enable_sound_alsa" = yes && echo " Compiling in support for ALSA (Advanced Linux Sound Architecture)." |
2651 | 6149 test "$enable_sound_nas" = yes && echo " Compiling in support for NAS (network audio system)." |
6150 test "$old_nas" = yes && echo " - NAS library lacks error trapping; will play synchronously." | |
6151 test "$enable_sound_esd" = yes && echo " Compiling in support for ESD (Enlightened Sound Daemon)." | |
6152 | |
6153 echo " | |
6154 Databases:" | |
6155 test "$enable_database_berkdb" = yes && echo " Compiling in support for Berkeley database." | |
6156 test "$enable_database_dbm" = yes && echo " Compiling in support for DBM." | |
6157 test "$enable_database_gdbm" = yes && echo " Compiling in support for GNU DBM." | |
6158 test "$with_ldap" = yes && echo " Compiling in support for LDAP." | |
6159 if test "$with_postgresql" = yes; then | |
6160 echo " Compiling in support for PostgreSQL." | |
6161 echo " - Using PostgreSQL header file: $libpq_fe_h_file" | |
6162 test "$with_postgresqlv7" = yes && echo " - Using PostgreSQL V7 bindings." | |
6163 fi | |
6164 | |
6165 echo " | |
6166 Internationalization:" | |
6167 test "$enable_mule" = yes && echo " Compiling in support for Mule (multi-lingual Emacs)." | |
6168 test "$with_xim" != no && echo " Compiling in support for XIM (X11R5+ I18N input method)." | |
6169 test "$with_xim" = motif && echo " - Using Motif to provide XIM support." | |
6170 test "$with_xim" = xlib && echo " - Using raw Xlib to provide XIM support." | |
6171 test "$with_xfs" = yes && echo " - Using XFontSet to provide bilingual menubar." | |
3830 | 6172 test "$have_canna" = yes && echo " Compiling in support for Canna on Mule." |
2651 | 6173 if test "$with_wnn" = yes; then |
6174 echo " Compiling in support for the WNN input method on Mule." | |
6175 test "$with_wnn6" = yes && echo " - Using WNN version 6." | |
6176 fi | |
6177 | |
6178 echo " | |
6179 Mail:" | |
6180 test "$with_pop" = yes && echo " Compiling in support for POP mail retrieval." | |
6181 test "$with_kerberos" = yes && echo " Compiling in support for Kerberos POP authentication." | |
6182 test "$with_hesiod" = yes && echo " Compiling in support for Hesiod POP server access." | |
6183 test -n "$with_mail_locking" && echo " Compiling in support for \"$with_mail_locking\" mail spool file locking method." | |
6184 | |
6185 echo " | |
6186 Other Features:" | |
6187 test "$with_ipv6_cname" = no && echo " Inhibiting IPv6 canonicalization at startup." | |
6188 test "$with_tooltalk" = yes && echo " Compiling in support for ToolTalk." | |
6189 test "$with_workshop" = yes && echo " Compiling in support for Sun WorkShop." | |
6190 test "$with_socks" = yes && echo " Compiling in support for SOCKS." | |
6191 test "$with_dnet" = yes && echo " Compiling in support for DNET." | |
6192 test "$enable_modules" = "yes" && echo " Compiling in support for dynamic shared object modules." | |
6193 test "$enable_bignum" = "gmp" && echo " Compiling in support for more number types using the GNU MP library." | |
6194 test "$enable_bignum" = "mp" && echo " Compiling in support for more number types using the BSD MP library." | |
6195 if test "$enable_union_type" = yes ; then | |
6196 echo " Using the union type for Lisp_Objects." | |
6197 echo " WARNING: ---------------------------------------------------------" | |
6198 echo " WARNING: This tends to trigger compiler bugs, especially when" | |
6199 echo " WARNING: combined with MULE and ERROR_CHECKING. Crashes have" | |
6200 echo " WARNING: been seen with various versions of GCC (up to about 2.95)," | |
6201 echo " WARNING: and recently with Visual C++ as well (mid-2003)." | |
6202 echo " WARNING: More recent versions may be safer, or not." | |
6203 echo " WARNING: ---------------------------------------------------------" | |
6204 fi | |
2790 | 6205 if test "$enable_kkcc" = yes ; then |
3263 | 6206 echo " Using the new GC mark algorithms (KKCC)." |
2790 | 6207 echo " WARNING: ---------------------------------------------------------" |
6208 echo " WARNING: The new algorithms are experimental. They are enabled by" | |
6209 echo " WARNING: default for this release. Use \`--disable-kkcc' to" | |
6210 echo " WARNING: turn it off." | |
6211 echo " WARNING: ---------------------------------------------------------" | |
6212 fi | |
3263 | 6213 test "$enable_newgc" = yes && echo " Using the new incremental garbage collector and the new allocator." |
3092 | 6214 if test "$have_vdb_posix" = yes ; then |
6215 if test "$have_vdb_sigaction" = yes ; then | |
6216 echo " Using POSIX sigaction() to install fault handler." | |
6217 else | |
6218 echo " Using POSIX signal() to install vdb fault handler." | |
6219 fi | |
6220 fi | |
6221 if test "$have_vdb_win32" = yes ; then | |
6222 echo " Using special WIN32 vdb fault handler." | |
6223 fi | |
6224 if test "$have_vdb_mach" = yes ; then | |
6225 echo " Using mach exception mechanism as vdb fault handler." | |
6226 fi | |
6227 if test "$have_vdb_fake" = yes && test "$enable_vdb" == fake; then | |
6228 echo " Virtual dirty bit write barrier manually disabled." | |
6229 fi | |
2651 | 6230 test "$enable_pdump" = yes && echo " Using the new portable dumper." |
2720 | 6231 test "$enable_dump_in_exec" = yes && echo " Dumping into executable." |
2651 | 6232 test "$enable_debug" = yes && echo " Compiling in support for extra debugging code." |
6233 test "$usage_tracking" = yes && echo " Compiling in support for active usage tracking (Sun internal)." | |
6234 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" \ | |
6235 != "no no no no no no no no no"; then | |
6236 echo " Compiling in support for runtime error checking." | |
6237 echo " WARNING: ---------------------------------------------------------" | |
6238 echo " WARNING: XEmacs will run noticeably more slowly as a result." | |
6239 echo " WARNING: Error checking is on by default for XEmacs beta releases." | |
6240 echo " WARNING: ---------------------------------------------------------" | |
6241 fi | |
6242 echo "" | |
6243 ) | tee -a Installation | |
6244 dnl echo "The above configure report is appended to \"Installation\" file." | |
6245 echo "" | |
6246 | |
6247 dnl ----------------------------------- | |
6248 dnl Now generate config.h and Makefiles | |
6249 dnl ----------------------------------- | |
6250 AC_CONFIG_HEADER(src/config.h lwlib/config.h) | |
6251 | |
6252 dnl This has to be called in order for this variable to get into config.status | |
6253 AC_SUBST(internal_makefile_list) | |
6254 # Remove any trailing slashes in these variables. | |
6255 test -n "$prefix" && | |
6256 prefix=`echo '' "$prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'` | |
6257 test -n "$exec_prefix" && | |
6258 exec_prefix=`echo '' "$exec_prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'` | |
6259 | |
6260 dnl Build Makefile.in's from Makefile.in.in's | |
6261 dnl except ./Makefile from $srcdir/Makefile.in | |
6262 dnl src/Makefile.in will have src/depend appended to it; | |
6263 dnl module Makefiles will have the common text in | |
6264 dnl modules/common/Makefile.common appended. | |
6265 | |
3481 | 6266 dnl this actually should be conditional on having perl (ie, effectively |
6267 dnl unconditional on sane systems) | |
6268 if test -r $srcdir/src/depend; then :; | |
6269 else | |
6270 echo "creating $srcdir/src/depend" | |
6271 perl $srcdir/src/make-src-depend > $srcdir/src/depend | |
6272 fi | |
6273 | |
2651 | 6274 for file in $internal_makefile_list; do |
6275 case $file in | |
6276 src/Makefile.in ) file="src/Makefile.in:src/Makefile.in.in:src/depend" ;; | |
6277 modules/* ) file="${file}:${file}.in:modules/common/Makefile.common" ;; | |
6278 esac | |
6279 AC_CONFIG_FILES($file) | |
6280 done | |
6281 AC_CONFIG_FILES(src/paths.h src/xemacs.def.in lib-src/config.values) | |
6282 test "$enable_modules" = "yes" && AC_CONFIG_FILES(lib-src/ellcc.h) | |
6283 | |
6284 | |
6285 dnl Normally []'s are used for quoting but this will cause problems | |
6286 dnl since we use brackets in sed. When not inside of a macro definition, | |
6287 dnl two brackets become one, but inside of a macro definition you need | |
6288 dnl more, or something -- I don't understand, but Martin probably does. | |
6289 dnl We put the brackets back later. | |
6290 dnl [ben] | |
3418 | 6291 dnl To insert comments that will remain in the generated file, we use the |
6292 dnl imake XCOMM convention. Lines beginning with "XCOMM " exactly (no | |
6293 dnl leading whitespace, one trailing ASCII space, case sensitive) will be | |
6294 dnl transformed to shell/make/gdb comments in the generated file. | |
6295 dnl [sjt] | |
2651 | 6296 |
6297 dnl MAKE_JUNK_C(filename): | |
6298 dnl Copy a .in file to junk.c in preparation for passing through the | |
6299 dnl C preprocessor. Delete comment lines, pass lines that will be | |
6300 dnl interpreted by cpp through directly, and put quotes around remaining | |
6301 dnl lines, to avoid problems from overly helpful preprocessors that | |
6302 dnl "helpfully" put extra quotes in various places for later use by the | |
6303 dnl compiler. Later, the quotes will be removed. | |
6304 | |
6305 m4_define([MAKE_JUNK_C], | |
6306 [ rm -f junk.c | |
6307 < $1 \ | |
6308 sed -e '/^# Generated/d' \ | |
6309 -e 's%/\*\*/#.*%%' \ | |
6310 -e 's/^ *# */#/' \ | |
6311 dnl Delete Makefile.in.in comment lines | |
6312 -e '/^##/d' \ | |
6313 dnl Pass through CPP directives unchanged | |
6314 -e '/^#/ { | |
6315 p | |
6316 d | |
6317 }' \ | |
6318 dnl Quote other lines to protect from CPP substitution | |
6319 -e '/./ { | |
6320 s/\([[\"]]\)/\\\1/g | |
6321 s/^/"/ | |
6322 s/$/"/ | |
6323 }' > junk.c; | |
6324 ])dnl MAKE_JUNK_C | |
6325 | |
6326 dnl CPP_MAKEFILE(CPPFLAGS,filename): | |
6327 dnl Pass junk.c through the preprocessor and put the result in FILENAME. | |
6328 | |
6329 m4_define([CPP_MAKEFILE], | |
6330 [echo creating $dir/$2 | |
6331 $CPP -I. -I${srcdir}/src $1 junk.c \ | |
6332 dnl Delete line directives inserted by $CPP | |
6333 | sed -e 's/^\#.*//' \ | |
6334 dnl Delete spurious blanks inserted by $CPP | |
6335 -e 's/^[[ TAB]][[ TAB]]*$//'\ | |
6336 -e 's/^ /TAB/' \ | |
6337 dnl Delete blank lines | |
6338 -e '/^[[ ]]*$/d' \ | |
6339 dnl Restore lines quoted above to original contents. | |
6340 -e '/^\"/ { | |
6341 s/\\\([[\"]]\)/\1/g | |
6342 s/^[[ TAB]]*\"// | |
6343 s/\"[[ TAB]]*$// | |
3418 | 6344 }' \ |
6345 dnl Convert comments -- must come after the unquoting operations | |
6346 -e 's/^XCOMM /\# /' > Makefile.new | |
2651 | 6347 chmod 444 Makefile.new |
6348 mv -f Makefile.new $2 | |
6349 ])dnl CPP_MAKEFILE | |
6350 | |
6351 AC_CONFIG_COMMANDS([default], | |
6352 [for dir in . $MAKE_SUBDIR; do | |
6353 ( | |
6354 cd $dir | |
6355 | |
6356 dnl Create a GNUmakefile and Makefile from Makefile.in. | |
6357 dnl Create xemacs.def from xemacs.def.in in the same fashion, | |
3418 | 6358 dnl if it exists (i.e. in the src/ directory). Ditto for the |
6359 dnl debugger init files (in the src/ directory). | |
2651 | 6360 MAKE_JUNK_C(Makefile.in) |
6361 CPP_MAKEFILE(,Makefile) | |
6362 CPP_MAKEFILE(-DUSE_GNU_MAKE,GNUmakefile) | |
3092 | 6363 if test -r ".gdbinit.in"; then |
6364 MAKE_JUNK_C(.gdbinit.in) | |
6365 CPP_MAKEFILE(,.gdbinit) | |
6366 fi | |
6367 if test -r ".dbxrc.in"; then | |
6368 MAKE_JUNK_C(.dbxrc.in) | |
6369 CPP_MAKEFILE(,.dbxrc) | |
6370 fi | |
2651 | 6371 if test -r "xemacs.def.in"; then |
6372 dnl #### We should be using MAKE_JUNK_C instead of the next two lines. | |
6373 dnl #### But the comments in xemacs.def.in need to be converted from C-style | |
6374 dnl #### to lines beginning with ##. | |
6375 rm -f junk.c | |
6376 cp xemacs.def.in junk.c | |
6377 CPP_MAKEFILE(,xemacs.def) | |
6378 fi | |
6379 rm -f junk.c | |
6380 ) | |
6381 done | |
6382 | |
6383 dnl Append AC_DEFINE information to lib-src/config.values | |
6384 dnl (AC_SUBST information is already there (see config.values.sh). | |
6385 sed < config.status >> lib-src/config.values \ | |
6386 -e '/{ac_dA}.*{ac_dB}.*{ac_dC}.*{ac_dD}$/!d' \ | |
6387 -e 's/\${ac_dA}\(.*\)\${ac_dB}.*\${ac_dC}\(.*\)\${ac_dD}/\1 \2/' \ | |
6388 -e 's/^\([[^ ]]*\) $/\1 ""/' \ | |
6389 -e 's/ 1$/ t/' | |
6390 | |
6391 ], | |
6392 [CPP="$CPP" | |
6393 MAKE_SUBDIR="$MAKE_SUBDIR" | |
6394 ])dnl | |
6395 | |
6396 AC_OUTPUT()dnl | |
6397 |