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