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