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