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