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