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